diff --git a/.gitignore b/.gitignore index b4a54ec2c..fef5d915c 100644 --- a/.gitignore +++ b/.gitignore @@ -57,5 +57,3 @@ Rules/*/*/*.zip docs/_site docs/.jekyll-cache docs/Gemfile.lock - -docs/nb_of_norway/ \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 0f327f9cd..17fd6552e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -34,6 +34,7 @@ but add common mistakes of AI agents here instead. - Keep code/rule changes focused and validate with targeted tests first: `cargo test ` - do not do any git commands unless explicitly asked for - Rust coverage is in `target/coverage/`. +- When working with GitHub, e.g. looking at PRs and issues, check if the GitHub CLI is installed (`gh --version`). ## Fuzzing (`fuzz/` + cargo-fuzz) - Install: `cargo install cargo-fuzz`, use a **nightly** toolchain (`rustup run nightly cargo fuzz …`). diff --git a/Cargo.toml b/Cargo.toml index f499124b6..b5b30304f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mathcat" -version = "0.7.6-beta.8" +version = "0.7.6-beta.9" authors = ["Neil Soiffer "] license = "MIT" description = "MathCAT: Math Capable Assistive Technology ('Speech and braille from MathML')" @@ -23,8 +23,7 @@ sxd-document-no-unsafe = "0.4.2" sxd-xpath-no-unsafe = "0.5.1" yaml-rust = "0.4" # yaml-rust = { version = "0.11", package = "yaml-rust2" } -strum = "0.28" -strum_macros = "0.28" +strum = { version = "0.28", features = ["derive"] } anyhow = "1.0" regex = "1.12.3" dirs = "6.0" diff --git a/PythonScripts/audit_translations/README.md b/PythonScripts/audit_translations/README.md index b4d611d94..240e72300 100644 --- a/PythonScripts/audit_translations/README.md +++ b/PythonScripts/audit_translations/README.md @@ -50,6 +50,10 @@ The tool automatically adjusts its matching logic based on the file type: * Matches rules based on character/range keys. * *Examples:* `unicode.yaml`, `unicode-full.yaml` (keys like `a-z`, `!`, `0-9`). +`definitions.yaml` is intentionally excluded from audits *for now*. It does not have the same semantics + as normal rules, so the tool ignores it during automatic file discovery and when it is passed to +`--file`. + --- ### ⚙️ Usage & Commands diff --git a/PythonScripts/audit_translations/auditor.py b/PythonScripts/audit_translations/auditor.py index efc14790e..e73bb629c 100644 --- a/PythonScripts/audit_translations/auditor.py +++ b/PythonScripts/audit_translations/auditor.py @@ -31,6 +31,11 @@ def get_rules_dir(rules_dir: str | None = None) -> Path: return package_dir.parent.parent / "Rules" / "Languages" +def is_definitions_file(file_path: str | Path) -> bool: + """Return if the file name is definitions.yaml, which is not yet supported.""" + return Path(file_path).name == "definitions.yaml" + + def get_yaml_files(lang_dir: Path, region_dir: Path | None = None) -> list[Path]: """Get all YAML files to audit for a language, including region overrides.""" files: set[Path] = set() @@ -39,12 +44,13 @@ def collect_from(directory: Path, root: Path) -> None: if not directory.exists(): return for f in directory.glob("*.yaml"): - if f.name != "prefs.yaml": # Skip prefs.yaml as it's not translated + if f.name != "prefs.yaml" and not is_definitions_file(f): files.add(f.relative_to(root)) shared_dir = directory / "SharedRules" if shared_dir.exists(): for f in shared_dir.glob("*.yaml"): - files.add(f.relative_to(root)) + if not is_definitions_file(f): + files.add(f.relative_to(root)) collect_from(lang_dir, lang_dir) if region_dir: @@ -144,7 +150,11 @@ def audit_language( verbose: bool = False, source_language: str = "en", ) -> int: - """Audit translations for a specific language. Returns total issue count.""" + """Audit translations for a specific language and return the total issue count. + + ``specific_file`` is the relative file path supplied by the CLI's ``--file`` + option. When set, the audit is limited to that file. + """ rules_dir_path = get_rules_dir(rules_dir) source_base_language, source_region = split_language_into_base_and_region(source_language) @@ -168,7 +178,10 @@ def audit_language( raise AuditError(f"Target region directory not found: {translated_region_dir}") # Get list of files to audit - files = [specific_file] if specific_file else get_yaml_files(source_dir, source_region_dir) + if specific_file: + files = [] if is_definitions_file(Path(specific_file)) else [specific_file] + else: + files = get_yaml_files(source_dir, source_region_dir) print_audit_header(language, len(files), source_language) diff --git a/PythonScripts/audit_translations/tests/test_auditor.py b/PythonScripts/audit_translations/tests/test_auditor.py index cec10fe40..a1be8e3d1 100644 --- a/PythonScripts/audit_translations/tests/test_auditor.py +++ b/PythonScripts/audit_translations/tests/test_auditor.py @@ -322,6 +322,34 @@ def test_get_yaml_files_includes_region(tmp_path) -> None: assert set(files) == {Path("base.yaml"), Path("SharedRules/shared.yaml"), Path("unicode.yaml")} +def test_get_yaml_files_ignores_definitions(tmp_path) -> None: + """Definitions files are excluded from automatic audit discovery.""" + lang_dir = tmp_path / "lang" + shared_dir = lang_dir / "SharedRules" + shared_dir.mkdir(parents=True) + (lang_dir / "rules.yaml").write_text("---", encoding="utf-8") + (lang_dir / "definitions.yaml").write_text("---", encoding="utf-8") + (shared_dir / "definitions.yaml").write_text("---", encoding="utf-8") + + assert get_yaml_files(lang_dir) == [Path("rules.yaml")] + + +def test_audit_language_ignores_explicit_definitions_file(tmp_path, fixed_console_width) -> None: + """Passing definitions.yaml through --file produces an empty audit.""" + rules_dir = tmp_path / "Rules" / "Languages" + (rules_dir / "en").mkdir(parents=True) + (rules_dir / "de").mkdir(parents=True) + + with console.capture() as capture: + total_issues = audit_language("de", specific_file="definitions.yaml", rules_dir=str(rules_dir)) + output = strip_ansi(capture.get()) + + assert total_issues == 0 + assert "Files to check: 0" in output + assert "Files checked" in output + assert "definitions.yaml" not in output + + def test_list_languages_includes_region_codes(tmp_path) -> None: """ Ensures list_languages reports region variants. diff --git a/Rules/Braille/ASCIIMath/definitions.yaml b/Rules/Braille/ASCIIMath/definitions.yaml index ff8b98e9f..e2d9fbb62 100644 --- a/Rules/Braille/ASCIIMath/definitions.yaml +++ b/Rules/Braille/ASCIIMath/definitions.yaml @@ -11,7 +11,7 @@ "lambda", "Lambda", "and", "or", "if", "lim", "Lim", "sin", "cos", "tan", "arcsin", "arccos", "arctan", "sinh", "cosh", "tanh", "cot", "coth", "sech", "csch", "sec", "csc", - "log", "ln", "abs", "norm", "floor", "ceil", + "log", "lg", "ln", "abs", "norm", "floor", "ceil", "Sin", "Cos", "Tan", "Arcsin", "Arccos", "Arctan", "Sinh", "Cosh", "Tanh", "Cot", "Sec", "Csc", "Log", "Ln", "det", "exp", "dim", "mod", "gcd", "lcm", "lub", "glb", "min", "max", } @@ -30,4 +30,4 @@ - UnderAccents: { "¯": "ul", "⏟": "ubrace", - } \ No newline at end of file + } diff --git a/Rules/Braille/CMU/CMU_Rules.yaml b/Rules/Braille/CMU/CMU_Rules.yaml index fb53fbeb8..3b5c59a40 100644 --- a/Rules/Braille/CMU/CMU_Rules.yaml +++ b/Rules/Braille/CMU/CMU_Rules.yaml @@ -598,7 +598,7 @@ - name: single-char-exceptions # 4.3.1 tag: msup - match: "*[2][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + match: "*[2][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" replace: - x: "*" - test: @@ -609,7 +609,7 @@ - name: single-char-exceptions # 4.3.1 tag: msubsup - match: "*[3][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + match: "*[3][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" replace: - x: "*[1]" - x: "*[3]" @@ -633,8 +633,8 @@ name: number-char-exceptions # 4.3.1 (FIX: degree doesn't use dot-3 for chemistry or temp/angles/etc) tag: [msub, msup] match: - - "*[2][translate(., \"'*`+-∞ª°²³´¹º‘’“”‟‵‶‷\",'')=''] or" - - "*[2][self::m:mrow and count(*)=2 and *[1][self::m:mn] and *[2][self::m:mo][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']]" + - "*[2][translate(., \"'*`+-∞´°‘’“”‟‵‶‷\",'')=''] or" + - "*[2][self::m:mrow and count(*)=2 and *[1][self::m:mn] and *[2][self::m:mo][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']]" replace: - x: "*[1]" - test: @@ -779,7 +779,7 @@ replace: - x: "*[1]" - test: # special case superscript postscripts that preceed the prescripts - if: "$Postscripts and not($Postscripts[2][self::m:none]) and $Postscripts[2][translate(., \"′″‴⁗'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + if: "$Postscripts and not($Postscripts[2][self::m:none]) and $Postscripts[2][translate(., \"′″‴⁗'*`+-´°‘’“”‟‵‶‷\",'')='']" then: - x: "$Postscripts[2]" - test: @@ -805,7 +805,7 @@ # degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here if: "not($Prescripts[1][.='°'] and *[1][self::m:mn or @data-chem-element])" then: [t: "⠄"] - - else_if: "$Prescripts[1][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + - else_if: "$Prescripts[1][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" then: - x: "$Prescripts[1]" - test: @@ -835,7 +835,7 @@ # degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here if: "not($Prescripts[2][.='°'] and *[1][self::m:mn or @data-chem-element])" then: [t: "⠄"] - - else_if: "$Prescripts[2][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + - else_if: "$Prescripts[2][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" then: - x: "$Prescripts[2]" - test: @@ -868,7 +868,7 @@ # degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here if: "not($Prescripts[3][.='°'] and *[1][self::m:mn or @data-chem-element])" then: [t: "⠄"] - - else_if: "$Prescripts[3][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + - else_if: "$Prescripts[3][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" then: - x: "$Prescripts[3]" - test: @@ -898,7 +898,7 @@ # degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here if: "not($Prescripts[4][.='°'] and *[1][self::m:mn or @data-chem-element])" then: [t: "⠄"] - - else_if: "$Prescripts[4][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + - else_if: "$Prescripts[4][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" then: - x: "$Prescripts[4]" - test: @@ -935,7 +935,7 @@ # degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here if: "not($Postscripts[1][.='°'] and *[1][self::m:mn or @data-chem-element])" then: [t: "⠄"] - - else_if: "$Postscripts[1][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + - else_if: "$Postscripts[1][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" then: - x: "$Postscripts[1]" - test: @@ -950,7 +950,7 @@ else: - x: "$Postscripts[1]" - test: - if: "not($Postscripts[2][self::m:none]) and $Postscripts[2][translate(., \"′″‴⁗'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')!='']" + if: "not($Postscripts[2][self::m:none]) and $Postscripts[2][translate(., \"′″‴⁗'*`+-´°‘’“”‟‵‶‷\",'')!='']" then: - t: "⠡" - test: @@ -991,7 +991,7 @@ # degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here if: "not($Postscripts[3][.='°'] and *[1][self::m:mn or @data-chem-element])" then: [t: "⠄"] - - else_if: "$Postscripts[3][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + - else_if: "$Postscripts[3][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" then: - x: "$Postscripts[3]" - test: @@ -1021,7 +1021,7 @@ # degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here if: "not($Postscripts[4][.='°'] and *[1][self::m:mn or @data-chem-element])" then: [t: "⠄"] - - else_if: "$Postscripts[4][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + - else_if: "$Postscripts[4][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" then: - x: "$Postscripts[4]" - test: @@ -1054,7 +1054,7 @@ # degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here if: "not($Postscripts[5][.='°'] and *[1][self::m:mn or @data-chem-element])" then: [t: "⠄"] - - else_if: "$Postscripts[5][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + - else_if: "$Postscripts[5][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" then: - x: "$Postscripts[5]" - test: @@ -1084,7 +1084,7 @@ # degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here if: "not($Postscripts[6][.='°'] and *[1][self::m:mn or @data-chem-element])" then: [t: "⠄"] - - else_if: "$Postscripts[6][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']" + - else_if: "$Postscripts[6][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']" then: - x: "$Postscripts[6]" - test: diff --git a/Rules/Braille/Russian/Russian_Rules.yaml b/Rules/Braille/Russian/Russian_Rules.yaml new file mode 100644 index 000000000..ee9004aed --- /dev/null +++ b/Rules/Braille/Russian/Russian_Rules.yaml @@ -0,0 +1,1692 @@ +--- +# Russian mathematical braille rules. + +- + name: flat-vector-arrow-postfix-operator + tag: mo + match: + - "not(following-sibling::*) and" + - "translate(., '→⟶⇀⃗', '')='' and" + - "count(preceding-sibling::*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 0" + replace: + - test: + if: "count(preceding-sibling::*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 1 or string-length(preceding-sibling::*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])][1]) > 1" + then: [t: "⠨⠒⠂"] + else: [t: "⠒⠂"] + +- + name: flat-vector-bar-postfix-operator + tag: mo + match: + - "not(following-sibling::*) and" + - "translate(., '¯‾_ ̄', '')='' and" + - "count(preceding-sibling::*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 0" + replace: + - test: + if: "count(preceding-sibling::*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 1 or string-length(preceding-sibling::*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])][1]) > 1" + then: [t: "⠨⠒"] + else: [t: "⠒"] + +- + name: flat-geometry-line-double-arrow-postfix-operator + tag: mo + match: + - "not(following-sibling::*) and" + - "translate(., '↔⟷', '')='' and" + - "count(preceding-sibling::*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 0" + replace: + - test: + if: "count(preceding-sibling::*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 1 or string-length(preceding-sibling::*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])][1]) > 1" + then: [t: "⠨⠒⠂⠂"] + else: [t: "⠒⠂⠂"] + +- + name: whitespace + tag: "!*" + match: "not(self::m:math) and not($MatchingWhitespace) and (@data-previous-space-width >= 0.25 or @data-following-space-width >= 0.25)" + replace: + - with: + variables: [MatchingWhitespace: "true()"] + replace: + - test: + - if: "@data-previous-space-width > 1.1" + then: [t: "⠀"] + - else_if: "@data-previous-space-width >= 0.25" + then: [t: "W"] + - x: "." + - test: + - if: "@data-following-space-width > 1.1" + then: [t: "⠀"] + - else_if: "@data-following-space-width >= 0.25" + then: [t: "W"] + +- + name: omission-intent + tag: "!*" + match: "contains(@intent, ':blank')" + replace: [t: "⠀"] + +- + name: omitted-digit-in-number + tag: mrow + match: + - "count(*)=3 and" + - "*[1][self::m:mn and translate(., '0123456789', '')=''] and" + - "*[2][contains(@intent, ':blank')] and" + - "*[3][self::m:mn and translate(., '0123456789', '')='']" + replace: + - x: "*[1]" + - t: "⠬" + - x: "BrailleChars(translate(*[3], '0123456789', '\ue020\ue021\ue022\ue023\ue024\ue025\ue026\ue027\ue028\ue029'), 'Russian')" + +- + name: flat-vector-arrow-postfix-math + tag: math + match: + - "count(*) >= 2 and" + - "*[last()][self::m:mo and translate(., '→⟶⇀⃗', '')=''] and" + - "not(*[position() < last()][not(self::m:mi or self::m:msub or self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])])" + variables: + - RowStart: "''" + - RowEnd: "''" + - InSystemLeftBrace: "false()" + - InSystemRightBrace: "false()" + - InChemElementGroup: "false()" + - InColumnArithmetic: "false()" + - InLongDivision: "false()" + - MatchingWhitespace: "false()" + replace: + - x: "*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]" + - test: + if: "count(*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 1" + then: [t: "⠨⠒⠂"] + else: [t: "⠒⠂"] + +- + name: flat-vector-bar-postfix-math + tag: math + match: + - "count(*) >= 2 and" + - "*[last()][self::m:mo and translate(., '¯‾_ ̄', '')=''] and" + - "not(*[position() < last()][not(self::m:mi or self::m:msub or self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])])" + variables: + - RowStart: "''" + - RowEnd: "''" + - InSystemLeftBrace: "false()" + - InSystemRightBrace: "false()" + - InChemElementGroup: "false()" + - InColumnArithmetic: "false()" + - InLongDivision: "false()" + - MatchingWhitespace: "false()" + replace: + - x: "*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]" + - test: + if: "count(*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 1" + then: [t: "⠨⠒"] + else: [t: "⠒"] + +- + name: flat-geometry-line-double-arrow-postfix-math + tag: math + match: + - "count(*) >= 2 and" + - "*[last()][self::m:mo and translate(., '↔⟷', '')=''] and" + - "not(*[position() < last()][not(self::m:mi or self::m:msub or self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])])" + variables: + - RowStart: "''" + - RowEnd: "''" + - InSystemLeftBrace: "false()" + - InSystemRightBrace: "false()" + - InChemElementGroup: "false()" + - InColumnArithmetic: "false()" + - InLongDivision: "false()" + - MatchingWhitespace: "false()" + replace: + - x: "*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]" + - test: + if: "count(*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 1" + then: [t: "⠨⠒⠂⠂"] + else: [t: "⠒⠂⠂"] + +- + name: unicode-override + tag: "*" + match: "@data-unicode" + replace: [x: "@data-unicode"] + +- + name: default + tag: math + match: "." + variables: + - RowStart: "''" + - RowEnd: "''" + - InSystemLeftBrace: "false()" + - InSystemRightBrace: "false()" + - InChemElementGroup: "false()" + - InColumnArithmetic: "false()" + - InLongDivision: "false()" + - MatchingWhitespace: "false()" + replace: [x: "*"] + +- + name: system-left-brace-opener + tag: mo + match: "not(preceding-sibling::*) and following-sibling::*[1][self::m:mtable] and count(../*)=2" + replace: [t: ""] + +- + name: system-right-brace-closer + tag: mo + match: "not(following-sibling::*) and preceding-sibling::*[1][self::m:mtable] and count(../*)=2" + replace: [t: ""] + +- + name: chemistry-single-letter-element-group + tag: mrow + match: + - "(@data-chem-formula or ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')]) and" + - "count(*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 1 and" + - "count(*[not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) = count(*[self::m:mi[@data-chem-element='1']])" + replace: + - t: "⠸" + - with: + variables: [InChemElementGroup: "true()"] + replace: [x: "*"] + +- + name: canonical-prefix-geometry-op + tag: mrow + match: + - "count(*)=3 and" + - "*[1][(self::m:mo or self::m:mi) and (.='∠' or .='△' or .='∪')] and" + - "*[2][self::m:mo and .='⁡']" + replace: + - test: + - if: "*[1][.='∪']" + then: [t: "⠸⠜"] + - else: + - x: "*[1]/text()" + - t: "#" + - x: "*[3]" + +- + name: geometry-prefix-after-canonical-multiplier + tag: mrow + match: + - "count(*)=3 and" + - "*[2][self::m:mo and (.='⁢' or .='⁤')] and" + - "*[3][self::m:mrow and *[1][(self::m:mo or self::m:mi) and (.='∠' or .='△' or .='∪')]]" + replace: + - x: "*[1]" + - t: "⠄" + - x: "*[3]" + +- + name: flat-vector-arrow-postfix + tag: mrow + match: + - "count(*) >= 2 and" + - "*[last()][self::m:mo and translate(., '→⟶⇀⃗', '')=''] and" + - "not(*[position() < last()][not(self::m:mi or self::m:msub or self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])])" + replace: + - x: "*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]" + - test: + if: "count(*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 1" + then: [t: "⠨⠒⠂"] + else: [t: "⠒⠂"] + +- + name: flat-vector-bar-postfix + tag: mrow + match: + - "count(*) >= 2 and" + - "*[last()][self::m:mo and translate(., '¯‾_ ̄', '')=''] and" + - "not(*[position() < last()][not(self::m:mi or self::m:msub or self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])])" + replace: + - x: "*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]" + - test: + if: "count(*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 1" + then: [t: "⠨⠒"] + else: [t: "⠒"] + +- + name: flat-geometry-line-double-arrow-postfix + tag: mrow + match: + - "count(*) >= 2 and" + - "*[last()][self::m:mo and translate(., '↔⟷', '')=''] and" + - "not(*[position() < last()][not(self::m:mi or self::m:msub or self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])])" + replace: + - x: "*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]" + - test: + if: "count(*[position() < last() and not(self::m:mo[.='⁡' or .='⁢' or .='⁣' or .='⁤'])]) > 1" + then: [t: "⠨⠒⠂⠂"] + else: [t: "⠒⠂⠂"] + +- + name: periodic-decimal-row + tag: mrow + match: + - "count(*)=4 and" + - "*[1][self::m:mn and contains(., ',') and translate(., '0123456789,', '')=''] and" + - "*[2][self::m:mo and .='('] and" + - "*[3][self::m:mn and translate(., '0123456789', '')=''] and" + - "*[4][self::m:mo and .=')']" + replace: + - x: "*[1]" + - t: "⠣" + - x: "BrailleChars(translate(string(*[3]), '0123456789', '\ue020\ue021\ue022\ue023\ue024\ue025\ue026\ue027\ue028\ue029'), 'Russian')" + - t: "⠜" + +- + name: mixed-number-simple-fraction-with-invisible-times + tag: mrow + match: + - "count(*)=3 and" + - "*[1][self::m:mn and translate(., '0123456789', '')=''] and" + - "*[2][self::m:mo and (.='⁢' or .='⁤')] and" + - "*[3][self::m:mfrac] and" + - "*[3]/*[1][self::m:mn and translate(., '0123456789', '')=''] and" + - "*[3]/*[2][self::m:mn and translate(., '0123456789', '')='']" + replace: + - x: "*[1]" + - t: "#" + - x: "*[3]" + +- + name: mixed-number-simple-fraction + tag: mrow + match: + - "count(*)=2 and" + - "*[1][self::m:mn and translate(., '0123456789', '')=''] and" + - "*[2][self::m:mfrac] and" + - "*[2]/*[1][self::m:mn and translate(., '0123456789', '')=''] and" + - "*[2]/*[2][self::m:mn and translate(., '0123456789', '')='']" + replace: + - x: "*[1]" + - t: "#" + - x: "*[2]" + +- + name: mixed-number-with-arithmetic-fraction-with-invisible-times + tag: mrow + match: + - "count(*)=3 and" + - "*[1][self::m:mn and translate(., '0123456789', '')=''] and" + - "*[2][self::m:mo and (.='⁢' or .='⁤')] and" + - "*[3][self::m:mfrac] and" + - "not(*[3]/*[1][self::m:mn and translate(., '0123456789', '')=''] and *[3]/*[2][self::m:mn and translate(., '0123456789', '')=''])" + replace: + - x: "*[1]" + - t: "⠐" + - x: "*[3]" + +- + name: mixed-number-with-arithmetic-fraction + tag: mrow + match: + - "count(*)=2 and" + - "*[1][self::m:mn and translate(., '0123456789', '')=''] and" + - "*[2][self::m:mfrac] and" + - "not(*[2]/*[1][self::m:mn and translate(., '0123456789', '')=''] and *[2]/*[2][self::m:mn and translate(., '0123456789', '')=''])" + replace: + - x: "*[1]" + - t: "⠐" + - x: "*[2]" + +- + name: gost-58511-small-font + tag: [mrow, mstyle, semantics] + match: "@data-braille-typeform='small' or contains(@intent, ':small-font')" + replace: + - t: "⠔" + - x: "*" + - t: "⠔" + +- + name: gost-58511-letter-spacing + tag: [mrow, mstyle, semantics] + match: "@data-braille-typeform='letter-spacing' or contains(@intent, ':letter-spacing')" + replace: + - t: "⠌" + - x: "*" + - t: "⠌" + +- + name: gost-58511-insertion + tag: [mrow, mstyle, semantics] + match: "@data-braille-typeform='insertion' or contains(@intent, ':insertion')" + replace: + - t: "⠧" + - x: "*" + - t: "⠼" + +- + name: default + tag: [mrow, mstyle, semantics] + match: "." + replace: [x: "*[1] | *[position()>1]"] + +- + name: mspace + tag: mspace + match: "@linebreak='newline' or @linebreak='indentingnewline'" + replace: + - test: + - if: "string(@width) != '' or @data-previous-space-width >= 0.25 or @data-following-space-width >= 0.25" + then: [t: "⠠"] + - else: [t: "⠐"] + +- + name: mspace + tag: mspace + match: "." + replace: [t: "W"] + +- + name: no-content + tag: [math, mrow] + match: "not(*)" + replace: [t: "⠀"] + +- + name: default + tag: msqrt + match: "." + replace: + - t: "⠩⠱" + - x: "*[1]" + - t: "⠹" + +- + name: default + tag: mroot + match: "not(*[2][self::m:mn and translate(., '0123456789', '')=''])" + replace: + - t: "⠩" + - x: "*[2]" + - t: "⠱" + - x: "*[1]" + - t: "⠹" + +- + name: integer-index + tag: mroot + match: "*[2][self::m:mn and translate(., '0123456789', '')='']" + replace: + - t: "⠩" + - x: "BrailleChars(translate(*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - t: "⠱" + - x: "*[1]" + - t: "⠹" + +- + name: nested-fraction + tag: mfrac + match: "parent::m:mfrac" + replace: + - t: "⠆" + - x: "*[1]" + - t: "⠀⠳" + - x: "*[2]" + - t: "⠰" + +- + name: simple-numeric + tag: mfrac + match: + - "*[1][self::m:mn and translate(., '0123456789', '')=''] and" + - "*[2][self::m:mn and translate(., '0123456789', '')='']" + replace: + - x: "*[1]" + - x: "BrailleChars(translate(*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + +- + name: simple-algebraic-negative-integer-denominator + tag: mfrac + match: + - "(*[1][self::m:mi] or *[1][self::m:mn and translate(., '0123456789,', '')='']) and" + - "*[2][self::m:mrow and count(*)=2 and *[1][self::m:mo and (.='-' or .='−')] and *[2][self::m:mn and translate(., '0123456789', '')='']]" + replace: + - x: "*[1]" + - t: "⠳⠤" + - x: "BrailleChars(translate(*[2]/*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + +- + name: simple-algebraic-negative-decimal-denominator + tag: mfrac + match: + - "(*[1][self::m:mi] or *[1][self::m:mn and translate(., '0123456789,', '')='']) and" + - "*[2][self::m:mrow and count(*)=2 and *[1][self::m:mo and (.='-' or .='−')] and *[2][self::m:mn and contains(., ',') and translate(., '0123456789,', '')='']]" + replace: + - x: "*[1]" + - t: "⠳⠤" + - x: "*[2]/*[2]" + +- + name: simple-algebraic + tag: mfrac + match: + - "(*[1][self::m:mi] or *[1][self::m:mn and translate(., '0123456789,', '')='']) and" + - "(*[2][self::m:mi] or *[2][self::m:mn and translate(., '0123456789,', '')=''])" + replace: + - x: "*[1]" + - t: "⠳" + - test: + if: "*[2][self::m:mn and translate(., '0123456789', '')='']" + then: + - x: "BrailleChars(translate(*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + else: + - x: "*[2]" + +- + name: default + tag: mfrac + match: "." + replace: + - t: "⠆" + - x: "*[1]" + - t: "⠀⠳" + - x: "*[2]" + - t: "⠰" + +- + name: binomial-frac + tag: mrow + match: "IsBracketed(., '(', ')') and *[2][self::m:mfrac][@linethickness=0]" + replace: + - x: "*[1]" + - t: "⠨⠉⠡" + - x: "*[2]/*[2]" + - t: "⠌" + - x: "*[2]/*[1]" + - x: "*[3]" + +- + name: binomial-table + tag: mrow + match: "IsBracketed(., '(', ')') and *[2][self::m:mtable][count(*)=2 and count(*[1])=1] and contains(@intent, 'binomial(')" + replace: + - x: "*[1]" + - t: "⠨⠉⠡" + - x: "*[2]/*[2]/*[1]/*[1]" + - t: "⠌" + - x: "*[2]/*[1]/*[1]/*[1]" + - x: "*[3]" + +- + name: long-division-table + tag: mtable + variables: + - InLongDivision: "true()" + - RowStart: "''" + - RowEnd: "''" + match: "contains(@intent, ':long-division') or contains(@intent, ':angle-division')" + replace: [x: "*"] + +- + name: column-arithmetic-table + tag: mtable + variables: + - InColumnArithmetic: "true()" + - RowStart: "''" + - RowEnd: "''" + match: "contains(@intent, ':column-arithmetic')" + replace: [x: "*"] + +- + name: system-right-brace-table + tag: mtable + variables: + - InSystemRightBrace: "true()" + - RowStart: "''" + - RowEnd: "''" + match: "not(preceding-sibling::*) and count(../*)=2" + replace: [x: "*"] + +- + name: system-left-brace-table + tag: mtable + variables: + - InSystemLeftBrace: "true()" + - RowStart: "''" + - RowEnd: "''" + match: "not(following-sibling::*) and count(../*)=2" + replace: [x: "*"] + +- + name: default-matrix + tag: mrow + variables: + - RowStart: "*[1]" + - RowEnd: "*[3]" + match: + - "*[2][self::m:mtable] and" + - (IsBracketed(., '(', ')') or IsBracketed(., '[', ']') or IsBracketed(., '|', '|')) + replace: [x: "*[2]"] + +- + name: default + tag: mtable + match: "." + replace: [x: "*"] + +- + name: default + tag: [mtr, mlabeledtr] + match: "." + replace: + - test: + if: "preceding-sibling::*" + then: [t: "⠨⠳"] + - test: + - if: "$InSystemLeftBrace and not(preceding-sibling::*)" + then: [t: "⠏⠀"] + - else_if: "$InSystemLeftBrace and not(following-sibling::*)" + then: [t: "⠧⠀"] + - else_if: "$InSystemLeftBrace" + then: [t: "⠇⠀"] + - else: + - x: $RowStart + - test: + if: .[self::m:mlabeledtr] + then: + - t: "⠍⠑⠞⠅⠁⠀⠎⠞⠗⠕⠅⠊⠀⠲" + - x: "*[1]/*" + - t: "W" + - test: + if: .[self::m:mlabeledtr] + then: [x: "*[position()>1]"] + else: [x: "*"] + - test: + - if: "$InSystemRightBrace and not(preceding-sibling::*)" + then: [t: "⠀⠹"] + - else_if: "$InSystemRightBrace and not(following-sibling::*)" + then: [t: "⠀⠼"] + - else_if: "$InSystemRightBrace" + then: [t: "⠀⠸"] + - x: $RowEnd + +- + name: default + tag: mtd + match: "." + replace: + - test: + if: "*" + then: + - test: + if: "preceding-sibling::*" + then: [t: "W"] + - x: "*" + +- + name: single-char-exceptions + tag: msup + match: "*[2][translate(., \"'*`ª°²³´¹º′″‴‵‶‷⁗\",'')='']" + replace: [x: "*"] + +- + name: chemistry-mhchem-equilibrium-arrow + tag: mover + match: + - "*[1][substring(., 1, 1)='↽'] and" + - "*[2][substring(., string-length(), 1)='⇀']" + replace: + - t: "⠀⠒⠕⠀⠦⠶" + +- + name: chemistry-reaction-arrow-above + tag: mover + match: + - "(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')] or @data-chem-equation-op) and" + - "*[1][self::m:mo and translate(., '→⟶←⟵⇌⥂⥄↑↓', '')='']" + replace: + - x: "*[1]" + - t: "⠨⠌" + - x: "*[2]" + - t: "⠱" + +- + name: chemistry-reaction-arrow-below + tag: munder + match: + - "(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')] or @data-chem-equation-op) and" + - "*[1][self::m:mo and translate(., '→⟶←⟵⇌⥂⥄↑↓', '')='']" + replace: + - x: "*[1]" + - t: "⠨⠡" + - x: "*[2]" + - t: "⠱" + +- + name: chemistry-reaction-arrow-above-and-below + tag: munderover + match: + - "(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')] or @data-chem-equation-op) and" + - "*[1][self::m:mo and translate(., '→⟶←⟵⇌⥂⥄↑↓', '')='']" + replace: + - x: "*[1]" + - t: "⠨⠡" + - x: "*[2]" + - t: "⠱" + - t: "⠨⠌" + - x: "*[3]" + - t: "⠱" + +- + name: vector-arrow + tag: mover + match: + - "*[2][translate(., '→⟶⇀⃗', '')=''] and" + - "string-length(translate(normalize-space(*[1]), ' ', '')) > 0" + replace: + - x: "*[1]" + - test: + if: "string-length(translate(normalize-space(*[1]), ' ', '')) > 1" + then: [t: "⠨⠒⠂"] + else: [t: "⠒⠂"] + +- + name: geometry-line-double-arrow + tag: mover + match: + - "*[2][translate(., '↔⟷', '')=''] and" + - "string-length(translate(normalize-space(*[1]), ' ', '')) > 0" + replace: + - x: "*[1]" + - test: + if: "string-length(translate(normalize-space(*[1]), ' ', '')) > 1" + then: [t: "⠨⠒⠂⠂"] + else: [t: "⠒⠂⠂"] + +- + name: vector-bar + tag: mover + match: + - "*[2][translate(., '¯‾_ ̄', '')=''] and" + - "string-length(translate(normalize-space(*[1]), ' ', '')) > 0" + replace: + - x: "*[1]" + - test: + if: "string-length(translate(normalize-space(*[1]), ' ', '')) > 1" + then: [t: "⠨⠒"] + else: [t: "⠒"] + +- + name: lower-vector-arrow + tag: munder + match: + - "*[2][translate(., '→⟶⇀⃗', '')=''] and" + - "string-length(translate(normalize-space(*[1]), ' ', '')) > 0" + replace: + - x: "*[1]" + - t: "⠰" + - test: + if: "string-length(translate(normalize-space(*[1]), ' ', '')) > 1" + then: [t: "⠨⠒⠂"] + else: [t: "⠒⠂"] + +- + name: lower-geometry-line-double-arrow + tag: munder + match: + - "*[2][translate(., '↔⟷', '')=''] and" + - "string-length(translate(normalize-space(*[1]), ' ', '')) > 0" + replace: + - x: "*[1]" + - t: "⠰" + - test: + if: "string-length(translate(normalize-space(*[1]), ' ', '')) > 1" + then: [t: "⠨⠒⠂⠂"] + else: [t: "⠒⠂⠂"] + +- + name: lower-vector-bar + tag: munder + match: + - "*[2][translate(., '¯‾_ ̄', '')=''] and" + - "string-length(translate(normalize-space(*[1]), ' ', '')) > 0" + replace: + - x: "*[1]" + - t: "⠰" + - test: + if: "string-length(translate(normalize-space(*[1]), ' ', '')) > 1" + then: [t: "⠨⠒"] + else: [t: "⠒"] + +- + name: geometry-arc + tag: mover + match: "*[2][translate(., '⌒⏜︵', '')='']" + replace: + - t: "⠸⠜" + - t: "#" + - x: "*[1]" + +- + name: exact-over-label-no-indicator + tag: mover + match: + - "DefinitionValue(*[2], 'Braille', 'RussianExactOverLabelMarksWithoutIndicator') != '' and" + - "string-length(*[2]) = 1" + replace: + - test: + if: "*[1][self::m:mrow or self::m:mfrac or self::m:msqrt or self::m:mroot or self::m:mtable]" + then: + - t: "⠯" + - x: "*[1]" + - t: "⠽" + else: + - x: "*[1]" + - x: "DefinitionValue(*[2], 'Braille', 'RussianExactOverLabelMarksWithoutIndicator')" + +- + name: exact-over-label-repeated + tag: mover + match: + - "string-length(*[2]) <= 3 and" + - "translate(*[2], substring(*[2], 1, 1), '') = '' and" + - "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks') != ''" + replace: + - test: + if: "*[1][self::m:mrow or self::m:mfrac or self::m:msqrt or self::m:mroot or self::m:mtable]" + then: + - t: "⠯" + - x: "*[1]" + - t: "⠽" + else: + - x: "*[1]" + - t: "⠘" + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + - test: + if: "string-length(*[2]) > 1" + then: + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + - test: + if: "string-length(*[2]) > 2" + then: + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + +- + name: exact-over-label + tag: mover + match: "DefinitionValue(*[2], 'Braille', 'RussianLabelMarks') != ''" + replace: + - test: + if: "*[1][self::m:mrow or self::m:mfrac or self::m:msqrt or self::m:mroot or self::m:mtable]" + then: + - t: "⠯" + - x: "*[1]" + - t: "⠽" + else: + - x: "*[1]" + - t: "⠘" + - x: "DefinitionValue(*[2], 'Braille', 'RussianLabelMarks')" + +- + name: exact-under-label-repeated + tag: munder + match: + - "string-length(*[2]) <= 3 and" + - "translate(*[2], substring(*[2], 1, 1), '') = '' and" + - "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks') != ''" + replace: + - test: + if: "*[1][self::m:mrow or self::m:mfrac or self::m:msqrt or self::m:mroot or self::m:mtable]" + then: + - t: "⠯" + - x: "*[1]" + - t: "⠽" + else: + - x: "*[1]" + - t: "⠰" + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + - test: + if: "string-length(*[2]) > 1" + then: + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + - test: + if: "string-length(*[2]) > 2" + then: + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + +- + name: exact-under-label + tag: munder + match: "DefinitionValue(*[2], 'Braille', 'RussianLabelMarks') != ''" + replace: + - test: + if: "*[1][self::m:mrow or self::m:mfrac or self::m:msqrt or self::m:mroot or self::m:mtable]" + then: + - t: "⠯" + - x: "*[1]" + - t: "⠽" + else: + - x: "*[1]" + - t: "⠰" + - x: "DefinitionValue(*[2], 'Braille', 'RussianLabelMarks')" + +- + name: upper-right-label-no-indicator-repeated + tag: msup + match: + - "not(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')]) and" + - "not(*[2][contains(., '+') or contains(., '-') or contains(., '−')] and" + - " *[1][self::m:mi or self::m:mtext or self::m:mrow or self::m:msub or self::m:mmultiscripts]) and" + - "string-length(*[2]) <= 3 and" + - "translate(*[2], substring(*[2], 1, 1), '') = '' and" + - "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianUpperRightLabelMarksWithoutIndicator') != ''" + replace: + - x: "*[1]" + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianUpperRightLabelMarksWithoutIndicator')" + - test: + if: "string-length(*[2]) > 1" + then: + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianUpperRightLabelMarksWithoutIndicator')" + - test: + if: "string-length(*[2]) > 2" + then: + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianUpperRightLabelMarksWithoutIndicator')" + +- + name: upper-right-label-no-indicator + tag: msup + match: + - "not(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')]) and" + - "not(*[2][contains(., '+') or contains(., '-') or contains(., '−')] and" + - " *[1][self::m:mi or self::m:mtext or self::m:mrow or self::m:msub or self::m:mmultiscripts]) and" + - "DefinitionValue(*[2], 'Braille', 'RussianUpperRightLabelMarksWithoutIndicator') != ''" + replace: + - x: "*[1]" + - x: "DefinitionValue(*[2], 'Braille', 'RussianUpperRightLabelMarksWithoutIndicator')" + +- + name: upper-right-label-repeated + tag: msup + match: + - "not(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')]) and" + - "not(*[2][contains(., '+') or contains(., '-') or contains(., '−')] and" + - " *[1][self::m:mi or self::m:mtext or self::m:mrow or self::m:msub or self::m:mmultiscripts]) and" + - "string-length(*[2]) <= 3 and" + - "translate(*[2], substring(*[2], 1, 1), '') = '' and" + - "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks') != ''" + replace: + - x: "*[1]" + - t: "⠨" + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + - test: + if: "string-length(*[2]) > 1" + then: + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + - test: + if: "string-length(*[2]) > 2" + then: + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + +- + name: upper-right-label + tag: msup + match: + - "not(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')]) and" + - "not(*[2][contains(., '+') or contains(., '-') or contains(., '−')] and" + - " *[1][self::m:mi or self::m:mtext or self::m:mrow or self::m:msub or self::m:mmultiscripts]) and" + - "DefinitionValue(*[2], 'Braille', 'RussianLabelMarks') != ''" + replace: + - x: "*[1]" + - t: "⠨" + - x: "DefinitionValue(*[2], 'Braille', 'RussianLabelMarks')" + +- + name: lower-right-label-repeated + tag: msub + match: + - "not(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')]) and" + - "string-length(*[2]) <= 3 and" + - "translate(*[2], substring(*[2], 1, 1), '') = '' and" + - "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks') != ''" + replace: + - x: "*[1]" + - t: "⠸" + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + - test: + if: "string-length(*[2]) > 1" + then: + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + - test: + if: "string-length(*[2]) > 2" + then: + - x: "DefinitionValue(substring(*[2], 1, 1), 'Braille', 'RussianLabelMarks')" + +- + name: lower-right-label + tag: msub + match: + - "not(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')]) and" + - "DefinitionValue(*[2], 'Braille', 'RussianLabelMarks') != ''" + replace: + - x: "*[1]" + - t: "⠸" + - x: "DefinitionValue(*[2], 'Braille', 'RussianLabelMarks')" + +- + name: signed-integer-number + tag: [msub, munder] + match: "*[2][self::m:mn and (substring(., 1, 1)='-' or substring(., 1, 1)='−' or substring(., 1, 1)='+') and translate(substring(., 2), '0123456789', '')='']" + replace: + - x: "*[1]" + - test: + if: "self::m:munder" + then: [t: "⠨⠡"] + else: [t: "⠡"] + - test: + if: "substring(*[2], 1, 1)='+'" + then: [t: "⠖"] + else: [t: "⠤"] + - x: "BrailleChars(translate(substring(*[2], 2), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + +- + name: signed-integer + tag: [msub, munder] + match: + - "*[2][self::m:mrow and count(*)=2 and" + - " *[1][self::m:mo][.='-' or .='−' or .='+'] and" + - " *[2][self::m:mn and translate(., '0123456789', '')='']]" + replace: + - x: "*[1]" + - test: + if: "self::m:munder" + then: [t: "⠨⠡"] + else: [t: "⠡"] + - test: + if: "*[2]/*[1][.='+']" + then: [t: "⠖"] + else: [t: "⠤"] + - x: "BrailleChars(translate(*[2]/*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + +- + name: integer + tag: [msub, munder] + match: "*[2][self::m:mn and translate(., '0123456789', '')='']" + replace: + - x: "*[1]" + - test: + if: "self::m:munder" + then: [t: "⠨⠡"] + else: [t: "⠡"] + - x: "BrailleChars(translate(*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + +- + name: integer-sequence + tag: [msub, munder] + match: + - "*[2][not(self::m:mn) and translate(normalize-space(.), '0123456789⁣', '')='' and" + - " not(.//m:mo[.=',' or .='،'])]" + replace: + - x: "*[1]" + - test: + if: "self::m:munder" + then: [t: "⠨⠡"] + else: [t: "⠡"] + - x: "BrailleChars(translate(normalize-space(*[2]), '0123456789⁣', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + +- + name: infinity-index + tag: [msub, munder] + match: "*[2][.='∞']" + replace: + - x: "*[1]" + - test: + if: "self::m:munder" + then: [t: "⠨⠡"] + else: [t: "⠡"] + - x: "*[2]" + +- + name: default + tag: [msub, munder] + match: "." + replace: + - x: "*[1]" + - test: + if: "self::m:munder" + then: [t: "⠨⠡"] + else: [t: "⠡"] + - test: + if: "*[2][self::m:mrow[m:mo[.='+'] or m:mfrac] or self::m:mfrac]" + then: [t: "⠐"] + - x: "*[2]" + - t: "⠱" + +- + name: signed-integer-number + tag: [msup, mover] + match: "*[2][self::m:mn and (substring(., 1, 1)='-' or substring(., 1, 1)='−' or substring(., 1, 1)='+') and translate(substring(., 2), '0123456789', '')='']" + replace: + - x: "*[1]" + - test: + if: "self::m:mover" + then: [t: "⠨⠌"] + else: [t: "⠌"] + - test: + if: "substring(*[2], 1, 1)='+'" + then: [t: "⠖"] + else: [t: "⠤"] + - x: "BrailleChars(translate(substring(*[2], 2), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + +- + name: signed-integer + tag: [msup, mover] + match: + - "*[2][self::m:mrow and count(*)=2 and" + - " *[1][self::m:mo][.='-' or .='−' or .='+'] and" + - " *[2][self::m:mn and translate(., '0123456789', '')='']]" + replace: + - x: "*[1]" + - test: + if: "self::m:mover" + then: [t: "⠨⠌"] + else: [t: "⠌"] + - test: + if: "*[2]/*[1][.='+']" + then: [t: "⠖"] + else: [t: "⠤"] + - x: "BrailleChars(translate(*[2]/*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + +- + name: chemistry-repeated-charge + tag: msup + match: + - "(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')] or" + - " *[1][self::m:mi or self::m:mtext or self::m:mrow or self::m:msub or self::m:mmultiscripts]) and" + - "*[2][self::m:mrow and count(*) > 1 and not(*[not(self::m:mo[.='+' or .='-' or .='−'])])]" + replace: + - x: "*[1]" + - t: "⠌" + - x: "BrailleChars(translate(string(count(*[2]/*)), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - test: + if: "*[2]/*[1][.='+']" + then: [t: "⠖"] + else: [t: "⠤"] + +- + name: chemistry-charge + tag: msup + match: + - "(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')] or" + - " *[1][self::m:mi or self::m:mtext or self::m:mrow or self::m:msub or self::m:mmultiscripts]) and" + - "*[2][translate(., '+-−0123456789 ', '')=''] and" + - "*[2][contains(., '+') or contains(., '-') or contains(., '−')]" + replace: + - x: "*[1]" + - t: "⠌" + - test: + - if: "*[2][translate(., '+ ', '')='']" + then: + - test: + if: "string-length(translate(normalize-space(*[2]), ' ', '')) > 1" + then: + - x: "BrailleChars(translate(string(string-length(translate(normalize-space(*[2]), ' ', ''))), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - t: "⠖" + - else_if: "*[2][translate(., '-− ', '')='']" + then: + - test: + if: "string-length(translate(normalize-space(*[2]), ' ', '')) > 1" + then: + - x: "BrailleChars(translate(string(string-length(translate(normalize-space(*[2]), ' ', ''))), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - t: "⠤" + - else_if: "*[2][translate(substring(., 1, string-length(.) - 1), '0123456789', '')='' and substring(., string-length(.), 1)='+']" + then: + - x: "BrailleChars(translate(substring(*[2], 1, string-length(*[2]) - 1), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - t: "⠖" + - else_if: "*[2][translate(substring(., 1, string-length(.) - 1), '0123456789', '')='' and (substring(., string-length(.), 1)='-' or substring(., string-length(.), 1)='−')]" + then: + - x: "BrailleChars(translate(substring(*[2], 1, string-length(*[2]) - 1), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - t: "⠤" + - else: + - x: "*[2]" + +- + name: trig-function-integer-power-before-complex-fraction + tag: msup + match: + - "DefinitionValue(*[1], 'Braille', 'RussianFunctionBraille') != '' and" + - "*[2][self::m:mn and translate(., '0123456789', '')=''] and" + - "(following-sibling::*[1][self::m:mfrac and not((*[1][self::m:mi or self::m:mn]) and (*[2][self::m:mi or self::m:mn]))] or" + - " following-sibling::*[1][self::m:mo and (.='⁡' or .='⁢' or .='⁣' or .='⁤')]" + - " [following-sibling::*[1][self::m:mfrac and not((*[1][self::m:mi or self::m:mn]) and (*[2][self::m:mi or self::m:mn]))]])" + replace: + - x: "*[1]" + - t: "⠌" + - x: "BrailleChars(translate(*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - t: "⠐" + +- + name: integer + tag: [msup, mover] + match: "*[2][self::m:mn and translate(., '0123456789', '')='']" + replace: + - x: "*[1]" + - test: + if: "self::m:mover" + then: [t: "⠨⠌"] + else: [t: "⠌"] + - x: "BrailleChars(translate(*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + +- + name: default + tag: [msup, mover] + match: "." + replace: + - x: "*[1]" + - test: + if: "self::m:mover" + then: [t: "⠨⠌"] + else: [t: "⠌"] + - test: + if: "*[2][self::m:mfrac[not((*[1][self::m:mi or self::m:mn]) and (*[2][self::m:mi or self::m:mn]))]]" + then: [t: "⠐"] + - x: "*[2]" + - t: "⠱" + +- + name: large-op-limits + tag: [msubsup, munderover] + match: + - "count(*)=3 and" + - "*[1][self::m:mo][translate(., '∫∬∭∮∑∏', '')='']" + replace: + - x: "*[1]" + - test: + if: "self::m:munderover" + then: [t: "⠨⠡"] + else: [t: "⠡"] + - test: + if: "*[2][self::m:mn and translate(., '0123456789', '')='']" + then: + - x: "BrailleChars(translate(*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + else: + - x: "*[2]" + - t: "⠱" + - test: + if: "self::m:munderover" + then: [t: "⠨⠌"] + else: [t: "⠌"] + - test: + if: "*[3][self::m:mn and translate(., '0123456789', '')='']" + then: + - x: "BrailleChars(translate(*[3], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + else: + - x: "*[3]" + - t: "⠱" + +- + name: chemistry-charge-with-subscript + tag: msubsup + match: + - "(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')] or" + - " *[1][self::m:mi or self::m:mtext or self::m:mrow]) and" + - "*[3][translate(., '+-−0123456789', '')=''] and" + - "*[3][contains(., '+') or contains(., '-') or contains(., '−')]" + replace: + - x: "*[1]" + - test: + if: "*[2][self::m:mn and translate(., '0123456789', '')='']" + then: + - t: "⠡" + - x: "BrailleChars(translate(*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + else: + - t: "⠡" + - x: "*[2]" + - t: "⠱" + - t: "⠌" + - test: + - if: "*[3][translate(., '+', '')='']" + then: + - test: + if: "string-length(*[3]) > 1" + then: + - x: "BrailleChars(translate(string(string-length(*[3])), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - t: "⠖" + - else_if: "*[3][translate(., '-−', '')='']" + then: + - test: + if: "string-length(*[3]) > 1" + then: + - x: "BrailleChars(translate(string(string-length(*[3])), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - t: "⠤" + - else_if: "*[3][translate(substring(., 1, string-length(.) - 1), '0123456789', '')='' and substring(., string-length(.), 1)='+']" + then: + - x: "BrailleChars(translate(substring(*[3], 1, string-length(*[3]) - 1), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - t: "⠖" + - else_if: "*[3][translate(substring(., 1, string-length(.) - 1), '0123456789', '')='' and (substring(., string-length(.), 1)='-' or substring(., string-length(.), 1)='−')]" + then: + - x: "BrailleChars(translate(substring(*[3], 1, string-length(*[3]) - 1), '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - t: "⠤" + - else: + - x: "*[3]" + +- + name: mixed-subscript-before-superscript + tag: msubsup + match: + - "not(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')]) and" + - "*[2][self::m:mrow[m:mn and (m:mi or m:mtext) and not(m:mo[not(.='⁡' or .='⁢' or .='⁣' or .='⁤')])]]" + replace: + - x: "*[1]" + - t: "⠡" + - test: + if: "*[2][m:mo[.='+'] or m:mfrac]" + then: [t: "⠐"] + - x: "*[2]" + - t: "⠱" + - t: "⠌" + - x: "*[3]" + - t: "⠱" + +- + name: default + tag: [msubsup, munderover] + match: "count(*)=3" + replace: + - x: "*[1]" + - test: + if: "self::m:munderover" + then: [t: "⠨⠡"] + else: [t: "⠡"] + - test: + if: "*[2][self::m:mrow[m:mo[.='+'] or m:mfrac] or self::m:mfrac]" + then: [t: "⠐"] + - x: "*[2]" + - test: + if: "self::m:munderover" + then: [t: "⠨⠌"] + else: [t: "⠌"] + - x: "*[3]" + - t: "⠱" + +- + name: left-labels + tag: mmultiscripts + match: + - "not(ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')]) and" + - "count(m:mprescripts/preceding-sibling::*) >= 1 and" + - "(m:mprescripts/following-sibling::*[1][not(self::m:none) and DefinitionValue(., 'Braille', 'RussianLabelMarks') != ''] or" + - " m:mprescripts/following-sibling::*[2][not(self::m:none) and DefinitionValue(., 'Braille', 'RussianLabelMarks') != ''])" + variables: + - Prescripts: "m:mprescripts/following-sibling::*" + - NumChildren: "count(*)" + - Postscripts: "*[position()>1 and position() < (last() + ($NumChildren mod 2) - count($Prescripts))]" + replace: + - test: + if: "m:mprescripts/following-sibling::*[1][not(self::m:none) and DefinitionValue(., 'Braille', 'RussianLabelMarks') != '']" + then: + - t: "⠸" + - x: "DefinitionValue(m:mprescripts/following-sibling::*[1], 'Braille', 'RussianLabelMarks')" + - test: + if: "m:mprescripts/following-sibling::*[2][not(self::m:none) and DefinitionValue(., 'Braille', 'RussianLabelMarks') != '']" + then: + - t: "⠨" + - x: "DefinitionValue(m:mprescripts/following-sibling::*[2], 'Braille', 'RussianLabelMarks')" + - x: "*[1]" + - test: + if: "$Postscripts" + then: + - test: + if: "not($Postscripts[1][self::m:none])" + then: + - t: "⠡" + - test: + - if: "$Postscripts[1][self::m:mn and translate(., '0123456789', '')='']" + then: + - x: "BrailleChars(translate($Postscripts[1], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - else: + - x: "$Postscripts[1]" + - test: + if: "not($Postscripts[1][self::m:mn and translate(., '0123456789', '')='']) and not($Postscripts[1][.='∞'])" + then: [t: "⠱"] + - test: + if: "not($Postscripts[2][self::m:none])" + then: + - t: "⠌" + - test: + - if: "$Postscripts[2][self::m:mn and translate(., '0123456789', '')='']" + then: + - x: "BrailleChars(translate($Postscripts[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - else: + - x: "$Postscripts[2]" + - test: + if: "not($Postscripts[2][self::m:mn and translate(., '0123456789', '')='']) and not($Postscripts[2][.='∞'])" + then: [t: "⠱"] + +- + name: default + tag: mmultiscripts + match: "." + variables: + - Prescripts: "m:mprescripts/following-sibling::*" + - NumChildren: "count(*)" + - Postscripts: "*[position()>1 and position() < (last() + ($NumChildren mod 2) - count($Prescripts))]" + replace: + - test: + if: "$Prescripts" + then: + - test: + if: "not($Prescripts[1][self::m:none])" + then: + - t: "⠡" + - test: + - if: "$Prescripts[1][self::m:mn and translate(., '0123456789', '')='']" + then: + - x: "BrailleChars(translate($Prescripts[1], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - else: + - x: "$Prescripts[1]" + - test: + if: "not($Prescripts[1][self::m:mn and translate(., '0123456789', '')='']) and not($Prescripts[1][.='∞'])" + then: [t: "⠱"] + - test: + if: "not($Prescripts[2][self::m:none])" + then: + - t: "⠌" + - test: + - if: "$Prescripts[2][self::m:mn and translate(., '0123456789', '')='']" + then: + - x: "BrailleChars(translate($Prescripts[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - else: + - x: "$Prescripts[2]" + - test: + if: "not($Prescripts[2][self::m:mn and translate(., '0123456789', '')='']) and not($Prescripts[2][.='∞'])" + then: [t: "⠱"] + - x: "*[1]" + - test: + if: "$Postscripts" + then: + - test: + if: "not($Postscripts[1][self::m:none])" + then: + - t: "⠡" + - test: + - if: "$Postscripts[1][self::m:mn and translate(., '0123456789', '')='']" + then: + - x: "BrailleChars(translate($Postscripts[1], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - else: + - x: "$Postscripts[1]" + - test: + if: "not($Postscripts[1][self::m:mn and translate(., '0123456789', '')='']) and not($Postscripts[1][.='∞'])" + then: [t: "⠱"] + - test: + if: "not($Postscripts[2][self::m:none])" + then: + - t: "⠌" + - test: + - if: "$Postscripts[2][self::m:mn and translate(., '0123456789', '')='']" + then: + - x: "BrailleChars(translate($Postscripts[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'Russian')" + - else: + - x: "$Postscripts[2]" + - test: + if: "not($Postscripts[2][self::m:mn and translate(., '0123456789', '')='']) and not($Postscripts[2][.='∞'])" + then: [t: "⠱"] + +- + name: default + tag: menclose + match: "." + replace: + - t: "⠣" + - x: "*" + - t: "⠜" + +- + name: chemical-formula-operator-bond + tag: mo + match: "@data-chemical-bond" + replace: + - test: + - if: ".='-' or .=':'" + then: [t: "⠤"] + - else_if: ".='=' or .='∷'" + then: [t: "⠦"] + - else_if: ".='≡'" + then: [t: "⠿"] + else: [x: "text()"] + +- + name: chemical-reaction-operator + tag: mo + match: + - "(@data-chem-equation-op or ancestor::*[@data-chem-equation or contains(@intent, ':chemical-equation')]) and" + - "translate(., '+-=→⟶←⟵⇌⥂⥄↑↓', '')=''" + replace: + - test: + - if: ".='+'" + then: [t: "⠀⠖"] + - else_if: ".='-'" + then: [t: "⠀⠤"] + - else_if: ".='='" + then: [t: "⠀⠶"] + - else_if: ".='→' or .='⟶'" + then: [t: "⠀⠒⠕"] + - else_if: ".='←' or .='⟵'" + then: [t: "⠀⠦⠶"] + - else_if: ".='⇌'" + then: [t: "⠀⠒⠕⠀⠦⠶"] + - else_if: ".='⥂'" + then: [t: "⠀⠒⠕⠀⠦⠶"] + - else_if: ".='⥄'" + then: [t: "⠀⠦⠶⠀⠒⠕"] + - else_if: ".='↑'" + then: [t: "⠀⠰⠌"] + - else_if: ".='↓'" + then: [t: "⠀⠘⠡"] + - else: + - x: "text()" + +- + name: geometry-prefix-after-multiplier + tag: mo + match: + - "(.='∠' or .='△' or .='∪') and" + - "preceding-sibling::*[1][self::m:mn] and" + - "following-sibling::*[1][self::m:mi or self::m:msub or self::m:mrow]" + replace: + - t: "⠄" + - test: + - if: ".='∪'" + then: [t: "⠸⠜"] + - else: + - x: "text()" + - t: "#" + +- + name: prefix-geometry-ops + tag: mo + match: + - "not(preceding-sibling::*) and" + - "following-sibling::*[1][self::m:mi or self::m:msub or self::m:mrow] and" + - "( .='∠' or .='△' or .='∪' )" + replace: + - test: + - if: ".='∪'" + then: [t: "⠸⠜"] + - else: + - x: "text()" + - t: "#" + +- + name: long-division-angle-operator + tag: mo + match: + - "$InLongDivision and" + - "(.='÷' or .='⟌')" + replace: + - t: "⠴" + +- + name: column-arithmetic-operator + tag: mo + match: + - "$InColumnArithmetic and" + - "ancestor::m:mtr[preceding-sibling::*] and" + - "(.='+' or .='-' or .='−' or .='×' or .='⋅' or .='·')" + replace: + - test: + - if: ".='+'" + then: [t: "⠖"] + - else_if: ".='-' or .='−'" + then: [t: "⠤"] + - else: [t: "⠦"] + +- + name: column-arithmetic-result-line + tag: mo + match: + - "$InColumnArithmetic and" + - "ancestor::m:mtr[preceding-sibling::*] and" + - ".='='" + replace: + - t: "⠶" + +- + name: operator-functions + tag: mo + match: "DefinitionValue(., 'Braille', 'RussianFunctionBraille') != ''" + replace: + - x: "DefinitionValue(., 'Braille', 'RussianFunctionBraille')" + +- + name: div-operator-function + tag: mo + match: "contains(., 'div')" + replace: + - t: "⠫⠙⠊⠧#" + +- + name: default + tag: mo + match: "." + replace: + - x: "text()" + +- + name: long-division-continuation-number + tag: mn + match: + - "$InLongDivision and" + - "ancestor::m:mtr[preceding-sibling::*] and" + - "translate(., '0123456789', '')=''" + replace: + - x: "BrailleChars(translate(., '0123456789', '\ue020\ue021\ue022\ue023\ue024\ue025\ue026\ue027\ue028\ue029'), 'Russian')" + +- + name: column-arithmetic-continuation-number + tag: mn + match: + - "$InColumnArithmetic and" + - "ancestor::m:mtr[preceding-sibling::*] and" + - "translate(., '0123456789', '')=''" + replace: + - x: "BrailleChars(translate(., '0123456789', '\ue020\ue021\ue022\ue023\ue024\ue025\ue026\ue027\ue028\ue029'), 'Russian')" + +- + name: periodic-decimal-period-digits + tag: mn + match: + - "translate(., '0123456789', '')='' and" + - "preceding-sibling::*[1][self::m:mo and .='('] and" + - "following-sibling::*[1][self::m:mo and .=')'] and" + - "preceding-sibling::*[2][self::m:mn and contains(., ',')]" + replace: + - x: "BrailleChars(translate(., '0123456789', '\ue020\ue021\ue022\ue023\ue024\ue025\ue026\ue027\ue028\ue029'), 'Russian')" + +- + name: periodic-decimal + tag: mn + match: "contains(., ',') and substring-after(., '(') != '' and substring-before(substring-after(., '('), ')') != ''" + replace: + - x: "BrailleChars(substring-before(., ','), 'Russian')" + - t: "⠂" + - x: "BrailleChars(translate(substring-before(substring-after(., ','), '('), '0123456789', '\ue020\ue021\ue022\ue023\ue024\ue025\ue026\ue027\ue028\ue029'), 'Russian')" + - t: "⠣" + - x: "BrailleChars(translate(substring-before(substring-after(., '('), ')'), '0123456789', '\ue020\ue021\ue022\ue023\ue024\ue025\ue026\ue027\ue028\ue029'), 'Russian')" + - t: "⠜" + +- + name: decimal-comma + tag: mn + match: "contains(., ',') and translate(., '0123456789,', '')=''" + replace: + - x: "BrailleChars(substring-before(., ','), 'Russian')" + - t: "⠂" + - x: "BrailleChars(translate(substring-after(., ','), '0123456789', '\ue020\ue021\ue022\ue023\ue024\ue025\ue026\ue027\ue028\ue029'), 'Russian')" + +- + name: default + tag: mn + match: "." + replace: + - x: "BrailleChars(., 'Russian')" + +- + name: functions + tag: [mi, mtext] + match: "DefinitionValue(., 'Braille', 'RussianFunctionBraille') != ''" + replace: + - x: "DefinitionValue(., 'Braille', 'RussianFunctionBraille')" + +- + name: chemistry-single-letter-element-in-group + tag: mi + match: "$InChemElementGroup and @data-chem-element='1'" + replace: + - x: "translate(BrailleChars(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'Russian'), 'l', '')" + +- + name: div-function + tag: [mi, mo, mtext] + match: "contains(., 'div')" + replace: + - t: "⠫⠙⠊⠧#" + +- + name: default + tag: [mi, mtext] + match: "." + replace: + - x: "BrailleChars(., 'Russian')" + +- + name: default + tag: ms + match: "." + replace: + - test: + if: "string(@lquote)!=''" + then: [x: "@lquote"] + else: [t: "⠦"] + - x: "BrailleChars(., 'Russian')" + - test: + if: "string(@rquote)!=''" + then: [x: "@rquote"] + else: [t: "⠴"] + +- + name: default-children + tag: "*" + match: "*" + replace: + - x: "*" + +- + name: default-no-children + tag: "*" + match: "text()" + replace: + - x: "text()" + +- + name: default-no-text + tag: "*" + match: "." + replace: [t: ""] diff --git a/Rules/Braille/Russian/definitions.yaml b/Rules/Braille/Russian/definitions.yaml new file mode 100644 index 000000000..9aa56c6c7 --- /dev/null +++ b/Rules/Braille/Russian/definitions.yaml @@ -0,0 +1,45 @@ +--- +- include: "../definitions.yaml" + +- RussianFunctionBraille: { + "arcsin": "\uE100", "arccos": "\uE101", "arctg": "\uE102", "arctan": "\uE102", + "arcctg": "\uE103", "arccotan": "\uE103", "arccot": "\uE103", + "sin": "\uE104", "cos": "\uE105", "tg": "\uE106", "tan": "\uE106", "ctg": "\uE107", "cotan": "\uE107", "cot": "\uE107", + "sh": "\uE110", "sinh": "\uE110", "ch": "\uE111", "cosh": "\uE111", + "th": "\uE112", "tanh": "\uE112", "cth": "\uE113", "coth": "\uE113", + "log": "\uE108", "ln": "\uE109", "lg": "\uE10A", + "lim": "\uE10B", "min": "\uE10C", "max": "\uE10D", "exp": "\uE10E", + "arg": "\uE114", "sgn": "\uE115", "det": "\uE116", + "rank": "\uE117", "rg": "\uE118", + "Re": "\uE119", "re": "\uE119", "ℜ": "\uE119", + "Im": "\uE11A", "im": "\uE11A", "ℑ": "\uE11A", + "grad": "\uE11B", "gradient": "\uE11B", "rot": "\uE11C", "div": "\uE11D", + "gcd": "\uE11E", "lcm": "\uE11F" + } + +- RussianLabelMarks: { + "′": "\uE130", "″": "\uE130\uE130", "‴": "\uE130\uE130\uE130", "'": "\uE130", + "*": "\uE131", "∗": "\uE131", "⋆": "\uE131", + "×": "\uE132", "✕": "\uE132", "✖": "\uE132", + "∘": "\uE133", "○": "\uE133", "◦": "\uE133", "°": "\uE133", + "□": "\uE134", "◻": "\uE134", + "~": "\uE135", "∼": "\uE135", "˜": "\uE135", "̃": "\uE135", + "^": "\uE136", "∧": "\uE136", "ˆ": "\uE136", "̂": "\uE136", + "∨": "\uE137", "˅": "\uE137", "ˇ": "\uE137", "̌": "\uE137", + "+": "\uE138", "-": "\uE139", "−": "\uE139", + "?": "\uE13A", "⍰": "\uE13A", + "←": "\uE13B", "⟵": "\uE13B", "⃖": "\uE13B" + } + +- RussianExactOverLabelMarksWithoutIndicator: { + "~": "\uE135", "∼": "\uE135", "˜": "\uE135", "̃": "\uE135", + "^": "\uE136", "∧": "\uE136", "ˆ": "\uE136", "̂": "\uE136", + "∨": "\uE137", "˅": "\uE137", "ˇ": "\uE137", "̌": "\uE137" + } + +- RussianUpperRightLabelMarksWithoutIndicator: { + "′": "\uE130", "″": "\uE130\uE130", "‴": "\uE130\uE130\uE130", "'": "\uE130", + "*": "\uE131", "∗": "\uE131", "⋆": "\uE131", + "×": "\uE132", "✕": "\uE132", "✖": "\uE132", + "+": "\uE138", "-": "\uE139", "−": "\uE139" + } diff --git a/Rules/Braille/Russian/unicode-full.yaml b/Rules/Braille/Russian/unicode-full.yaml new file mode 100644 index 000000000..813669ecc --- /dev/null +++ b/Rules/Braille/Russian/unicode-full.yaml @@ -0,0 +1,301 @@ +--- + - "⋇": [tc: "1⠌⠯⠦"] # 0x22C7 (Division times) + - "⊩": [tc: "⠸⠳⠿⠸⠒"] # 0x22A9 (Forces) + - "ℏ": [tc: "⠈⠒⠓"] # t: "B"F (reduced Plank's constant) + - "ⅆ": [tc: "⠙"] # 0x2146 + - "ⅇ": [tc: "⠑"] # 0x2147 + - "ⅈ": [tc: "⠊"] # 0x2148 + - "⨯": [tc: "⠐⠦"] # U+2A2F(VECTOR OR CROSS PRODUCT) -- make the same as 0x00D7 (Multiplication sign) + + + - "¼": [tc: "#N⠁N⠌N⠙"] # 0x00BC (Vulgar Fraction One Quarter) + - "½": [tc: "#N⠁N⠌N⠃"] # 0x00BD (Vulgar Fraction One Half) + - "¾": [tc: "#N⠉N⠌N⠙"] # 0x00BE (Vulgar Fraction Three Quarters) + - "⅐": [tc: "#N⠁N⠌N⠛"] # 0x2150 (Vulgar Fraction One Seventh) + - "⅑": [tc: "#N⠁N⠌N⠊"] # 0x2151 (Vulgar Fraction One Ninth) + - "⅒": [tc: "#N⠁N⠌N⠁N⠚"] # 0x2152 (Vulgar Fraction One Tenth) + - "⅓": [tc: "#N⠁N⠌N⠉"] # 0x2153 (Vulgar Fraction One Third) + - "⅔": [tc: "#N⠃N⠌N⠉"] # 0x2154 (Vulgar Fraction Two Thirds) + - "⅕": [tc: "#N⠁N⠌N⠑"] # 0x2155 (Vulgar Fraction One Fifth) + - "⅖": [tc: "#N⠃N⠌N⠑"] # 0x2156 (Vulgar Fraction Two Fifths) + - "⅗": [tc: "#N⠉N⠌N⠑"] # 0x2157 (Vulgar Fraction Three Fifths) + - "⅘": [tc: "#N⠙N⠌N⠑"] # 0x2158 (Vulgar Fraction Four Fifths) + - "⅙": [tc: "#N⠁N⠌N⠋"] # 0x2159 (Vulgar Fraction One Sixth) + - "⅚": [tc: "#N⠑N⠌N⠋"] # 0x215A (Vulgar Fraction Five Sixths) + - "⅛": [tc: "#N⠁N⠌N⠓"] # 0x215B (Vulgar Fraction One Eighth) + - "⅜": [tc: "#N⠉N⠌N⠓"] # 0x215C (Vulgar Fraction Three Eighths) + - "⅝": [tc: "#N⠑N⠌N⠓"] # 0x215D (Vulgar Fraction Five Eighths) + - "⅞": [tc: "#N⠛N⠌N⠓"] # 0x215E (Vulgar Fraction Seven Eighths) + - "↉": [tc: "#N⠚N⠌N⠑"] # 0x2189 (Vulgar Fraction Zero Thirds) + + + + - "ℊ": [tc: "TL⠛⠁"] # 0x210a (Script Small G) + - "ℋ": [tc: "TCL⠓⠁"] # 0x210b (Script Capital H) + - "ℒ": [tc: "TCL⠇"] # 0x2113 (Script Capital L) + - "ℓ": [tc: "TL⠇"] # 0x2113 (Script Small L) + - "℘": [tc: "TCL⠏"] # 0x2118 (Script Capital P) + - "ℛ": [tc: "TCL⠗"] # 0x211B (Script Capital R) + - "ℯ": [tc: "TL⠑"] # 0x212F (Script Small E) + - "ℰ": [tc: "TCL⠑"] # 0x2130 (Script Capital E) + - "ℱ": [tc: "TCL⠋"] # 0x2131 (Script Capital F) + - "ℳ": [tc: "TCL⠍"] # 0x2133 (Script Capital M) + - "ℴ": [tc: "TL⠕"] # 0x21334 (Script Small O) + - "ℌ": [tc: "DCL⠓"] # 0x210C (Fraktur Capital H) + - "ℑ": [tc: "DCL⠊"] # 0x2111 (Fraktur Capital I) + - "ℜ": [tc: "DCL⠗"] # 0x211C (Fraktur Capital R) + - "ℨ": [tc: "DCL⠵"] # 0x2128 (Fraktur Capital Z) + - "ℭ": [tc: "DCL⠉"] # 0x22DC (Fraktur Capital C) + + - "ℂ": [tc: "𝔹CL⠉"] # 0x2102 + - "ℍ": [tc: "𝔹CL⠓"] # 0x210d + - "ℕ": [tc: "𝔹CL⠝"] # 0x2115 + - "ℙ": [tc: "𝔹CL⠏"] # 0x2119 + - "ℚ": [tc: "𝔹CL⠟"] # 0x211a + - "ℝ": [tc: "𝔹CL⠗"] # 0x211d + - "ℤ": [tc: "𝔹CL⠵"] # 0x2124 + + + - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 + - tc: "B" + - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + + - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da + - tc: "BGL" + - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + + - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) + - tc: "DC" + - spell: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝔞-𝔷": # 0x1d51e - 0x1d537 + - tc: "D" + - spell: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝕬-𝖅": # 0x1D56C - 0x1D585 + - tc: "BDC" + - spell: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝖆-𝖟": # 0x1d586 - 0x1d59f + - tc: "D" + - spell: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" + + # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area + # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display + - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) + - tc: "DC" + - spell: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝕒-𝕫": # 0x1d552 - 0x1d56b + - tc: "D" + - spell: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝟘-𝟡": # 0x1d7d8 - 0x1d7e1 + - tc: "D" + - spell: "translate('.', '𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡', '0123456789')" + + # script chars in math alphabetic block and also MathType private use area + - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 + - tc: "TsC" + - spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'abcdefghijklmnopqrstuvwxyza')" + + - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf + - tc: "Ts" + - spell: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" + + # bold script chars in math alphabetic block + - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 + - tc: "BTsC" + - spell: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝓪-𝔃": # 0x1d4ea - 0x1d503 + - tc: "BTs" + - spell: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝐀-𝐙": # 0x1d400 - 0x1d419 + - tc: "BC" + - spell: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝐚-𝐳": # 0x1d41a - 0x1d433 + - tc: "B" + - spell: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝐴-𝑍": # 0x1d434 - 0x1d44d + - tc: "IC" + - spell: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝑎-𝑧": # 0x1d44e - 0x1d467 + - tc: "I" + - spell: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝑨-𝒁": # 0x1d468 - 0x1d481 + - tc: "BIC" + - spell: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝒂-𝒛": # 0x1d482 - 0x1d49b + - tc: "BI" + - spell: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 + - spell: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 + - spell: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝗮-𝘇": # 0x1d5ee - 0x1d607 + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝘈-𝘡": # 0x1d608 - 0x1d621 + - tc: "IC" + - spell: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝘢-𝘻": # 0x1d622 - 0x1d63b + - tc: "I" + - spell: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝘼-𝙕": # 0x1d63c - 0x1d655 + # - tc: "bold italic" + - test: + if: "$IgnoreBold" + then: [tc: I] + else: [tc: "BI"] + - spell: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝙖-𝙯": # 0x1d656 - 0x1d66f + # - tc: "bold italic" + - test: + if: "$IgnoreBold" + then: [tc: I] + else: [tc: "BI"] + - spell: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝙰-𝚉": # 0x1d670 - 0x1d689 + - tc: "C" + - spell: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 + - spell: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝚤𝚥": # 0x1d6a4, 0x1d6a5 + - spell: "translate('.', '𝚤𝚥', 'ij')" # not sure what else these should be + + - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝛁": # 0x1d6c1 + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝜵', '∇')" + + - "𝛛𝛜𝛝𝛞𝛟𝛠𝛡": # 0x1D6DB - 0x1D6E1 + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠𝛡', '∂εθκφρπ')" + + - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa + - tc: "IC" + - spell: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝛼-𝜔": # 0x1d6fc - 0x1d714 + - spell: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + + - "𝛻": # 0x1d6fb + - spell: "translate('.', '𝜵', '∇')" + + - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b + # - tc: "italic" + - spell: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" + + - "𝜜-𝜴": # 0x1d71c - 0x1d734 + # - tc: "bold italic" + - tc: 'BIC⠁' + - spell: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝜶-𝝎": # 0x1d736 - 0x1d74e + - tc: "BI" + - spell: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝝏𝝐𝝑𝝒𝝓𝝔𝝕": # 0x1d74f - 0x1d755 + - tc: "BI" + - spell: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔𝝕', '∂εκθφρπ')" + + - "𝜵": # 0x1d735 + - tc: "BI" + - spell: "translate('.', '𝜵', '∇')" + + - "𝝖-𝝮": # 0x1d756 - 0x1d76e + - tc: "BSC" + - spell: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝝰-𝞈": # 0x1d770 - 0x1d788 + - tc: "BS" + - spell: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝞉𝞊𝞋𝞌𝞍𝞎𝞏": # 0x1d789 - 0x1d78f + - tc: "B" + - spell: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎𝞏', '∂εθκφρπ')" + + - "𝝯": # 0x1d76f + - tc: "B" + - spell: "translate('.', '𝜵', '∇')" + + - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 + # - tc: "bold italic" + - test: + if: "$IgnoreBold" + then: [tc: I] + else: [tc: "BI"] + - spell: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 + # - tc: "bold italic" + - test: + if: "$IgnoreBold" + then: [tc: I] + else: [tc: "BI"] + - spell: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝟃𝟄𝟅𝟆𝟇𝟈𝟉": # 0x1d7c3 - 0x1d7c9 + - tc: "B" + - spell: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈𝟉', '∂εθκφρπ')" + + - "𝞩": [tc: "B"] # 0x1d7a9 + + - "𝟎-𝟗": # 0x1d7ce - 0x1d7d7 + - tc: "B" + - spell: "translate('.', '𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗', '0123456789')" + + - "𝟬-𝟵": # 0x1D7EC - 0x1D7F5 + - tc: "BS" + - spell: "translate('.', '𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵', '0123456789')" + + - "𝟢-𝟫": # 0x1d7e2 - 0x1d7eb + - tc: "S" + - spell: "translate('.', '𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿', '0123456789')" + + - "𝟶-𝟿": # 0x1d7f6 - 0x1d7ff + - spell: "translate('.', '𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿', '0123456789')" + diff --git a/Rules/Braille/Russian/unicode.yaml b/Rules/Braille/Russian/unicode.yaml new file mode 100644 index 000000000..6b08895b9 --- /dev/null +++ b/Rules/Braille/Russian/unicode.yaml @@ -0,0 +1,393 @@ +--- +# Russian mathematical braille characters +- ".": [t: "⠠⠲"] +- ",": [t: "⠠⠂"] +- "!": [t: "⠠⠖"] +- "?": [t: "⠠⠢"] +- ":": [t: "⠀⠲"] +- ";": [t: "⠠⠆"] +- "№": [t: "⠝"] +- "§": [t: "⠬"] +- "…": [t: "⠠⠄"] +- "↵": [t: "⠐"] +- "⏎": [t: "⠠"] +- "⍰": [t: "⠐"] +- "[": [t: "⠷"] +- "]": [t: "⠾"] +- "{": [t: "⠪"] +- "}": [t: "⠕"] +- "/": [t: "⠠⠌"] +- "\\": [t: "⠀⠰⠤"] +- "|": [t: "⠸"] +- "+": [t: "⠀⠖"] +- "-": [t: "⠀⠤"] +- "=": [t: "⠀⠶"] +- "(": [t: "⠣"] +- ")": [t: "⠜"] +- ">": [t: "⠀⠕⠀"] +- "<": [t: "⠀⠪⠀"] +- "%": [t: "⠼⠴"] +- "‰": [t: "⠼⠴⠴"] +- "±": [t: "⠀⠖⠤"] +- ";": [t: "⠠⠢"] +- "Ϳ": [t: "⠰⠊"] +- "·": [t: "⠰"] +- "α": [t: "g⠁"] +- "β": [t: "g⠃"] +- "γ": [t: "g⠛"] +- "δ": [t: "g⠙"] +- "ε": [t: "g⠑"] +- "ζ": [t: "g⠵"] +- "η": [t: "g⠚"] +- "θ": [t: "g⠓"] +- "ι": [t: "g⠊"] +- "κ": [t: "g⠅"] +- "λ": [t: "g⠇"] +- "μ": [t: "g⠍"] +- "ν": [t: "g⠝"] +- "ξ": [t: "g⠭"] +- "ο": [t: "g⠕"] +- "π": [t: "g⠏"] +- "ρ": [t: "g⠗"] +- "σ": [t: "g⠎"] +- "τ": [t: "g⠞"] +- "υ": [t: "g⠥"] +- "φ": [t: "g⠋"] +- "χ": [t: "g⠉"] +- "ψ": [t: "g⠽"] +- "ω": [t: "g⠺"] +- "Α": [t: "v⠁"] +- "Β": [t: "v⠃"] +- "Γ": [t: "v⠛"] +- "Δ": [t: "v⠙"] +- "Ε": [t: "v⠑"] +- "Ζ": [t: "v⠵"] +- "Η": [t: "v⠚"] +- "Θ": [t: "v⠓"] +- "Ι": [t: "v⠊"] +- "Κ": [t: "v⠅"] +- "Λ": [t: "v⠇"] +- "Μ": [t: "v⠍"] +- "Ν": [t: "v⠝"] +- "Ξ": [t: "v⠭"] +- "Ο": [t: "v⠕"] +- "Π": [t: "v⠏"] +- "Ρ": [t: "v⠗"] +- "Σ": [t: "v⠎"] +- "Τ": [t: "v⠞"] +- "Υ": [t: "v⠥"] +- "Φ": [t: "v⠋"] +- "Χ": [t: "v⠉"] +- "Ψ": [t: "v⠽"] +- "Ω": [t: "v⠺"] +- "ϐ": [t: "g⠃"] +- "ϑ": [t: "g⠓"] +- "ϕ": [t: "g⠋"] +- "ϖ": [t: "g⠏"] +- "ϱ": [t: "g⠗"] +- "′": + - test: + if: "preceding-sibling::*[1][self::m:mn or .='°' or .='′']" + then: [t: "⠨⠔"] + else: [t: "⠔"] +- "″": + - test: + if: "preceding-sibling::*[1][self::m:mn or .='°' or .='′']" + then: [t: "⠨⠔⠔"] + else: [t: "⠔⠔"] +- "‴": [t: "⠔⠔⠔"] +- "°": [t: "⠨⠴"] +- "℃": [t: "⠨⠴⠨⠉"] +- "∀": [t: "⠫⠄"] +- "∂": [t: "⠹"] +- "∃": [t: "⠫⠢"] +- "∅": [t: "⠈⠴"] +- "∇": [t: "⠫⠴"] +- "∈": [t: "⠀⠐⠪⠀"] +- "∉": [t: "⠘⠪"] +- "∋": [t: "⠀⠕⠂⠀"] +- "∌": [t: "⠈⠕⠂⠄"] +- "∎": [t: "⠀⠸⠇⠀"] +- "∏": [t: "⠸⠏"] +- "∑": [t: "⠸⠎"] +- "−": [t: "⠀⠤"] +- "∓": [t: "⠀⠤⠖"] +- "∔": [t: "⠈⠖"] +- "∕": [t: "⠠⠌"] +- "∖": [t: "⠀⠰⠤"] +- "∗": [t: "⠔"] +- "·": [t: "⠄"] +- "×": [t: "⠀⠦"] +- "⋅": [t: "⠄"] +- "⁡": [t: ""] +- "⁢": [t: ""] +- "⁣": [t: ""] +- "⁤": [t: ""] +- "\uE100": [t: "⠫⠁⠎#"] +- "\uE101": [t: "⠫⠁⠉#"] +- "\uE102": [t: "⠫⠁⠞#"] +- "\uE103": [t: "⠫⠁⠉⠞#"] +- "\uE104": [t: "⠫⠎#"] +- "\uE105": [t: "⠫⠉#"] +- "\uE106": [t: "⠫⠞#"] +- "\uE107": [t: "⠫⠉⠞#"] +- "\uE108": [t: "⠫⠇#"] +- "\uE109": [t: "⠫⠇⠝#"] +- "\uE10A": [t: "⠫⠇⠛#"] +- "\uE10B": [t: "⠫⠇⠍#"] +- "\uE10C": [t: "⠫⠍⠝#"] +- "\uE10D": [t: "⠫⠍⠭#"] +- "\uE10E": [t: "⠫⠑#"] +- "\uE10F": [t: "⠂"] +- "\uE110": [t: "⠫⠎⠓#"] +- "\uE111": [t: "⠫⠉⠓#"] +- "\uE112": [t: "⠫⠞⠓#"] +- "\uE113": [t: "⠫⠉⠞⠓#"] +- "\uE114": [t: "⠫⠁⠗⠛#"] +- "\uE115": [t: "⠫⠎⠛⠝#"] +- "\uE116": [t: "⠫⠙⠑⠞#"] +- "\uE117": [t: "⠫⠗⠁⠝⠅#"] +- "\uE118": [t: "⠫⠗⠛#"] +- "\uE119": [t: "⠫⠗⠑#"] +- "\uE11A": [t: "⠫⠊⠍#"] +- "\uE11B": [t: "⠫⠛⠗⠁⠙#"] +- "\uE11C": [t: "⠫⠗⠕⠞#"] +- "\uE11D": [t: "⠫⠙⠊⠧#"] +- "\uE11E": [t: "⠫⠛⠉⠙#"] +- "\uE11F": [t: "⠫⠇⠉⠍#"] +- "\uE130": [t: "⠔"] +- "\uE131": [t: "⠆"] +- "\uE132": [t: "⠦"] +- "\uE133": [t: "⠴"] +- "\uE134": [t: "⠶"] +- "\uE135": [t: "⠢"] +- "\uE136": [t: "⠲"] +- "\uE137": [t: "⠰⠔"] +- "\uE138": [t: "⠖"] +- "\uE139": [t: "⠤"] +- "\uE13A": [t: "⠠⠢"] +- "\uE13B": [t: "⠦⠶"] +- "\ue020": [t: "⠚"] +- "\ue021": [t: "⠁"] +- "\ue022": [t: "⠃"] +- "\ue023": [t: "⠉"] +- "\ue024": [t: "⠙"] +- "\ue025": [t: "⠑"] +- "\ue026": [t: "⠋"] +- "\ue027": [t: "⠛"] +- "\ue028": [t: "⠓"] +- "\ue029": [t: "⠊"] +- "∘": [t: "⠴"] +- "√": [t: "⠩⠱"] +- "∛": [t: "⠩⠒⠱"] +- "∜": [t: "⠩⠲⠱"] +- "∞": [t: "⠻"] +- "∠": [t: "⠸⠪"] +- "∣": [t: "⠸"] +- "∤": [t: "⠀⠼⠀"] +- "∥": [t: "⠸⠸#"] +- "∧": [t: "⠀⠰⠢"] +- "∨": [t: "⠀⠰⠔"] +- "∩": [t: "⠀⠰⠲"] +- "∪": [t: "⠀⠰⠴"] +- "∫": [t: "⠮"] +- "∬": [t: "⠮⠮"] +- "∭": [t: "⠮⠮⠮"] +- "∮": [t: "⠮⠴"] +- "∯": [t: "⠮⠮⠴"] +- "∴": [t: "⠀⠠⠡⠀"] +- "∵": [t: "⠀⠈⠌⠀"] +- "∶": [t: "⠀⠳"] +- "∸": [t: "⠈⠤"] +- "∼": [t: "⠀⠢"] +- "≅": [t: "⠀⠢"] +- "≈": [t: "⠀⠢⠢"] +- "≐": [t: "⠀⠒⠕"] +- "≔": [t: "⠀⠶⠒"] +- "≕": [t: "⠀⠶⠒"] +- "≖": [t: "⠀⠶⠴"] +- "≗": [t: "⠀⠶⠴"] +- "≛": [t: "⠀⠶⠆"] +- "≟": [t: "⠶⠢"] +- "≠": [t: "⠀⠾"] +- "≡": [t: "⠀⠰⠶"] +- "≢": [t: "⠀⠰⠾"] +- "≤": [t: "⠀⠪⠶"] +- "≥": [t: "⠀⠕⠶"] +- "≪": [t: "⠀⠪⠪⠀"] +- "≫": [t: "⠀⠕⠕⠀"] +- "≺": [t: "⠀⠒⠪⠀"] +- "≻": [t: "⠀⠕⠒⠀"] +- "≼": [t: "⠀⠒⠪⠶"] +- "≽": [t: "⠀⠕⠒⠶"] +- "⊂": [t: "⠀⠯⠀"] +- "⊃": [t: "⠀⠹⠀"] +- "⊄": [t: "⠈⠯"] +- "⊅": [t: "⠈⠹"] +- "⊆": [t: "⠀⠯⠶"] +- "⊇": [t: "⠀⠹⠶"] +- "⊕": [t: "⠀⠰⠖"] +- "⊥": [t: "⠼⠄"] +- "⊨": [t: "⠼⠎"] +- "⊼": [t: "⠰⠌"] +- "⊽": [t: "⠘⠡"] +- "⋅": [t: "⠄"] +- "⋆": [t: "⠔"] +- "⋮": [t: "⠠⠲⠲⠲"] +- "⋯": [t: "⠠⠲⠲⠲"] +- "⋰": [t: "⠠⠲⠲⠲"] +- "⋱": [t: "⠠⠲⠲⠲"] +- "△": [t: "⠸⠙"] +- "→": [t: "⠀⠒⠕"] +- "⟶": [t: "⠀⠒⠕"] +- "←": [t: "⠀⠦⠶"] +- "⟵": [t: "⠀⠦⠶"] +- "⇒": [t: "⠀⠶⠜"] +- "⇐": [t: "⠀⠦⠶"] +- "⇔": [t: "⠀⠦⠶⠜"] +- "◻": [t: "⠶"] +- "♮": [t: "⠻⠨⠝⠻"] + +# Latin letters and digits used for mathematical identifiers. +- "a": [t: "l⠁"] +- "A": [t: "u⠁"] +- "b": [t: "l⠃"] +- "B": [t: "u⠃"] +- "c": [t: "l⠉"] +- "C": [t: "u⠉"] +- "d": [t: "l⠙"] +- "D": [t: "u⠙"] +- "e": [t: "l⠑"] +- "E": [t: "u⠑"] +- "f": [t: "l⠋"] +- "F": [t: "u⠋"] +- "g": [t: "l⠛"] +- "G": [t: "u⠛"] +- "h": [t: "l⠓"] +- "H": [t: "u⠓"] +- "i": [t: "l⠊"] +- "I": [t: "u⠊"] +- "j": [t: "l⠚"] +- "J": [t: "u⠚"] +- "k": [t: "l⠅"] +- "K": [t: "u⠅"] +- "l": [t: "l⠇"] +- "L": [t: "u⠇"] +- "m": [t: "l⠍"] +- "M": [t: "u⠍"] +- "n": [t: "l⠝"] +- "N": [t: "u⠝"] +- "o": [t: "l⠕"] +- "O": [t: "u⠕"] +- "p": [t: "l⠏"] +- "P": [t: "u⠏"] +- "q": [t: "l⠟"] +- "Q": [t: "u⠟"] +- "r": [t: "l⠗"] +- "R": [t: "u⠗"] +- "s": [t: "l⠎"] +- "S": [t: "u⠎"] +- "t": [t: "l⠞"] +- "T": [t: "u⠞"] +- "u": [t: "l⠥"] +- "U": [t: "u⠥"] +- "v": [t: "l⠧"] +- "V": [t: "u⠧"] +- "w": [t: "l⠺"] +- "W": [t: "u⠺"] +- "x": [t: "l⠭"] +- "X": [t: "u⠭"] +- "y": [t: "l⠽"] +- "Y": [t: "u⠽"] +- "z": [t: "l⠵"] +- "Z": [t: "u⠵"] +- "0": [t: "N⠚"] +- "1": [t: "N⠁"] +- "2": [t: "N⠃"] +- "3": [t: "N⠉"] +- "4": [t: "N⠙"] +- "5": [t: "N⠑"] +- "6": [t: "N⠋"] +- "7": [t: "N⠛"] +- "8": [t: "N⠓"] +- "9": [t: "N⠊"] + +# Lowered digits used in denominators and integer scripts. +- "\ue000": [t: "⠴"] +- "\ue001": [t: "⠂"] +- "\ue002": [t: "⠆"] +- "\ue003": [t: "⠒"] +- "\ue004": [t: "⠲"] +- "\ue005": [t: "⠢"] +- "\ue006": [t: "⠖"] +- "\ue007": [t: "⠶"] +- "\ue008": [t: "⠦"] +- "\ue009": [t: "⠔"] + +# Russian literary braille letters for mtext and Cyrillic identifiers. +- "а": [t: "⠁"] +- "А": [t: "C⠁"] +- "б": [t: "⠃"] +- "Б": [t: "C⠃"] +- "в": [t: "⠺"] +- "В": [t: "C⠺"] +- "г": [t: "⠛"] +- "Г": [t: "C⠛"] +- "д": [t: "⠙"] +- "Д": [t: "C⠙"] +- "е": [t: "⠑"] +- "Е": [t: "C⠑"] +- "ё": [t: "⠡"] +- "Ё": [t: "C⠡"] +- "ж": [t: "⠚"] +- "Ж": [t: "C⠚"] +- "з": [t: "⠵"] +- "З": [t: "C⠵"] +- "и": [t: "⠊"] +- "И": [t: "C⠊"] +- "й": [t: "⠯"] +- "Й": [t: "C⠯"] +- "к": [t: "⠅"] +- "К": [t: "C⠅"] +- "л": [t: "⠇"] +- "Л": [t: "C⠇"] +- "м": [t: "⠍"] +- "М": [t: "C⠍"] +- "н": [t: "⠝"] +- "Н": [t: "C⠝"] +- "о": [t: "⠕"] +- "О": [t: "C⠕"] +- "п": [t: "⠏"] +- "П": [t: "C⠏"] +- "р": [t: "⠗"] +- "Р": [t: "C⠗"] +- "с": [t: "⠎"] +- "С": [t: "C⠎"] +- "т": [t: "⠞"] +- "Т": [t: "C⠞"] +- "у": [t: "⠥"] +- "У": [t: "C⠥"] +- "ф": [t: "⠋"] +- "Ф": [t: "C⠋"] +- "х": [t: "⠓"] +- "Х": [t: "C⠓"] +- "ц": [t: "⠉"] +- "Ц": [t: "C⠉"] +- "ч": [t: "⠟"] +- "Ч": [t: "C⠟"] +- "ш": [t: "⠱"] +- "Ш": [t: "C⠱"] +- "щ": [t: "⠭"] +- "Щ": [t: "C⠭"] +- "ъ": [t: "⠷"] +- "Ъ": [t: "C⠷"] +- "ы": [t: "⠮"] +- "Ы": [t: "C⠮"] +- "ь": [t: "⠾"] +- "Ь": [t: "C⠾"] +- "э": [t: "⠪"] +- "Э": [t: "C⠪"] +- "ю": [t: "⠳"] +- "Ю": [t: "C⠳"] +- "я": [t: "⠫"] +- "Я": [t: "C⠫"] diff --git a/Rules/Braille/Swedish/Swedish_Rules.yaml b/Rules/Braille/Swedish/Swedish_Rules.yaml index 028574914..7a8504574 100644 --- a/Rules/Braille/Swedish/Swedish_Rules.yaml +++ b/Rules/Braille/Swedish/Swedish_Rules.yaml @@ -348,7 +348,7 @@ - name: single-char-exceptions # RUEB 3.11 -- ° and various prime/minute/seconds aren't treated as if superscripts tag: msup - match: "*[2][translate(., \"'*`ª°²³´¹º‘’“”‟′″‴‵‶‷⁗\",'')='']" + match: "*[2][translate(., \"'*`´°‘’“”‟′″‴‵‶‷⁗\",'')='']" replace: - test: if: "NeedsToBeGrouped(*[1], 'Swedish', true())" diff --git a/Rules/Braille/UEB/UEB_Rules.yaml b/Rules/Braille/UEB/UEB_Rules.yaml index b9e9acb79..8e3491c80 100644 --- a/Rules/Braille/UEB/UEB_Rules.yaml +++ b/Rules/Braille/UEB/UEB_Rules.yaml @@ -340,7 +340,7 @@ - name: single-char-exceptions # RUEB 3.11 -- ° and various prime/minute/seconds aren't treated as if superscripts tag: [msup] - match: "*[2][translate(., \"'*`ª°²³´¹º‘’“”‟′″‴‵‶‷⁗\",'')='']" + match: "*[2][translate(., \"'*`´°‘’“”‟′″‴‵‶‷⁗\",'')='']" replace: - test: if: "NeedsToBeGrouped(*[1], 'UEB', true())" diff --git a/Rules/Braille/UEB/unicode-full.yaml b/Rules/Braille/UEB/unicode-full.yaml index df7bf2274..9114b4de6 100644 --- a/Rules/Braille/UEB/unicode-full.yaml +++ b/Rules/Braille/UEB/unicode-full.yaml @@ -1,308 +1,450 @@ ---- - - - " ": [t: "W"] # 0x2000 - - " ": [t: "W"] # 0x2001 - - " ": [t: "W"] # 0x2002 - - " ": [t: "W"] # 0x2003 - - " ": [t: "W"] # 0x2004 - - " ": [t: "W"] # 0x2005 - - " ": [t: "W"] # 0x2006 - - " ": [t: "W"] # 0x2007 - - " ": [t: "W"] # 0x2008 - - " ": [t: "W"] # 0x2009 - - " ": [t: "W"] # 0x200a - - "​": [t: "W"] # 0x200b - - "
": [t: "W"] # 0x2028 - - "
": [t: "W"] # 0x2029 - - " ": [t: "W"] # 0x202f - - " ": [t: "W"] # 0x205f - - "": [t: "W"] # 0xfeff - - - - "ℏ": [tc: "⠈⠒⠓"] # t: "B"F (reduced Plank's constant) - - "ⅆ": [tc: "⠙"] # 0x2146 - - "ⅇ": [tc: "⠑"] # 0x2147 - - "ⅈ": [tc: "⠊"] # 0x2148 - - "⨯": [tc: "⠐⠦"] # U+2A2F(VECTOR OR CROSS PRODUCT) -- make the same as 0x00D7 (Multiplication sign) - - - - "¼": [tc: "#N⠁N⠌N⠙"] # 0x00BC (Vulgar Fraction One Quarter) - - "½": [tc: "#N⠁N⠌N⠃"] # 0x00BD (Vulgar Fraction One Half) - - "¾": [tc: "#N⠉N⠌N⠙"] # 0x00BE (Vulgar Fraction Three Quarters) - - "⅐": [tc: "#N⠁N⠌N⠛"] # 0x2150 (Vulgar Fraction One Seventh) - - "⅑": [tc: "#N⠁N⠌N⠊"] # 0x2151 (Vulgar Fraction One Ninth) - - "⅒": [tc: "#N⠁N⠌N⠁N⠚"] # 0x2152 (Vulgar Fraction One Tenth) - - "⅓": [tc: "#N⠁N⠌N⠉"] # 0x2153 (Vulgar Fraction One Third) - - "⅔": [tc: "#N⠃N⠌N⠉"] # 0x2154 (Vulgar Fraction Two Thirds) - - "⅕": [tc: "#N⠁N⠌N⠑"] # 0x2155 (Vulgar Fraction One Fifth) - - "⅖": [tc: "#N⠃N⠌N⠑"] # 0x2156 (Vulgar Fraction Two Fifths) - - "⅗": [tc: "#N⠉N⠌N⠑"] # 0x2157 (Vulgar Fraction Three Fifths) - - "⅘": [tc: "#N⠙N⠌N⠑"] # 0x2158 (Vulgar Fraction Four Fifths) - - "⅙": [tc: "#N⠁N⠌N⠋"] # 0x2159 (Vulgar Fraction One Sixth) - - "⅚": [tc: "#N⠑N⠌N⠋"] # 0x215A (Vulgar Fraction Five Sixths) - - "⅛": [tc: "#N⠁N⠌N⠓"] # 0x215B (Vulgar Fraction One Eighth) - - "⅜": [tc: "#N⠉N⠌N⠓"] # 0x215C (Vulgar Fraction Three Eighths) - - "⅝": [tc: "#N⠑N⠌N⠓"] # 0x215D (Vulgar Fraction Five Eighths) - - "⅞": [tc: "#N⠛N⠌N⠓"] # 0x215E (Vulgar Fraction Seven Eighths) - - "↉": [tc: "#N⠚N⠌N⠑"] # 0x2189 (Vulgar Fraction Zero Thirds) - - - - "ℊ": [tc: "TL⠛⠁"] # 0x210a (Script Small G) - - "ℋ": [tc: "TCL⠓⠁"] # 0x210b (Script Capital H) - - "ℒ": [tc: "TCL⠇"] # 0x2113 (Script Capital L) - - "ℓ": [tc: "TL⠇"] # 0x2113 (Script Small L) - - "℘": [tc: "TCL⠏"] # 0x2118 (Script Capital P) - - "ℛ": [tc: "TCL⠗"] # 0x211B (Script Capital R) - - "ℯ": [tc: "TL⠑"] # 0x212F (Script Small E) - - "ℰ": [tc: "TCL⠑"] # 0x2130 (Script Capital E) - - "ℱ": [tc: "TCL⠋"] # 0x2131 (Script Capital F) - - "ℳ": [tc: "TCL⠍"] # 0x2133 (Script Capital M) - - "ℴ": [tc: "TL⠕"] # 0x21334 (Script Small O) - - "ℌ": [tc: "DCL⠓"] # 0x210C (Fraktur Capital H) - - "ℑ": [tc: "DCL⠊"] # 0x2111 (Fraktur Capital I) - - "ℜ": [tc: "DCL⠗"] # 0x211C (Fraktur Capital R) - - "ℨ": [tc: "DCL⠵"] # 0x2128 (Fraktur Capital Z) - - "ℭ": [tc: "DCL⠉"] # 0x22DC (Fraktur Capital C) - - - "ℂ": [tc: "𝔹CL⠉"] # 0x2102 - - "ℍ": [tc: "𝔹CL⠓"] # 0x210d - - "ℕ": [tc: "𝔹CL⠝"] # 0x2115 - - "ℙ": [tc: "𝔹CL⠏"] # 0x2119 - - "ℚ": [tc: "𝔹CL⠟"] # 0x211a - - "ℝ": [tc: "𝔹CL⠗"] # 0x211d - - "ℤ": [tc: "𝔹CL⠵"] # 0x2124 - - - - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) - - tc: "DC" - - spell: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝔞-𝔷": # 0x1d51e - 0x1d537 - - tc: "D" - - spell: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝕬-𝖅": # 0x1D56C - 0x1D585 - - tc: "BDC" - - spell: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝖆-𝖟": # 0x1d586 - 0x1d59f - - tc: "D" - - spell: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" - - # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area - # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display - - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) - - tc: "DC" - - spell: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝕒-𝕫": # 0x1d552 - 0x1d56b - - tc: "D" - - spell: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝟘-𝟡": # 0x1d7d8 - 0x1d7e1 - - tc: "D" - - spell: "translate('.', '𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡', '0123456789')" - - # script chars in math alphabetic block and also MathType private use area - - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 - - tc: "TsC" - - spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf - - tc: "Ts" - - spell: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" - - # bold script chars in math alphabetic block - - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 - - tc: "BTs" - - spell: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝓪-𝔃": # 0x1d4ea - 0x1d503 - - tc: "BTs" - - spell: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝐀-𝐙": # 0x1d400 - 0x1d419 - - tc: "B" - - spell: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝐚-𝐳": # 0x1d41a - 0x1d433 - - tc: "B" - - spell: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝐴-𝑍": # 0x1d434 - 0x1d44d - # don't include italics - - tc: "C" - - spell: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝑎-𝑧": # 0x1d44e - 0x1d467 - # don't include italics - - spell: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝑨-𝒁": # 0x1d468 - 0x1d481 - - tc: "BIC" - - spell: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝒂-𝒛": # 0x1d482 - 0x1d49b - - spell: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 - - spell: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 - - spell: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed - - test: - if: "not($IgnoreBold)" - then: [tc: "B"] - - spell: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝗮-𝘇": # 0x1d5ee - 0x1d607 - - test: - if: "not($IgnoreBold)" - then: [tc: "B"] - - spell: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝘈-𝘡": # 0x1d608 - 0x1d621 - # - tc: "italic" - - spell: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝘢-𝘻": # 0x1d622 - 0x1d63b - # - tc: "italic" - - spell: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝘼-𝙕": # 0x1d63c - 0x1d655 - # - tc: "bold italic" - - test: - if: "$IgnoreBold" - then: [tc: I] - else: [tc: "BI"] - - spell: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝙖-𝙯": # 0x1d656 - 0x1d66f - # - tc: "bold italic" - - test: - if: "$IgnoreBold" - then: [tc: I] - else: [tc: "BI"] - - spell: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝙰-𝚉": # 0x1d670 - 0x1d689 - - tc: "C" - - spell: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 - - spell: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝚤𝚥": # 0x1d6a4, 0x1d6a5 - - spell: "translate('.', '𝚤𝚥', 'ij')" # not sure what else these should be - - - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 - - test: - if: "not($IgnoreBold)" - then: [tc: "B"] - - spell: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da - - test: - if: "not($IgnoreBold)" - then: [tc: "B"] - - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝛁": # 0x1d6c1 - - test: - if: "not($IgnoreBold)" - then: [tc: "B"] - - spell: "translate('.', '𝜵', '∇')" - - - "𝛛𝛜𝛝𝛞𝛟𝛠𝛡": # 0x1D6DB - 0x1D6E1 - - test: - if: "not($IgnoreBold)" - then: [tc: "B"] - - spell: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠𝛡', '∂εθκφρπ')" - - - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa - - tc: "IC" - - spell: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝛼-𝜔": # 0x1d6fc - 0x1d714 - - spell: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - - "𝛻": # 0x1d6fb - - spell: "translate('.', '𝜵', '∇')" - - - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b - # - tc: "italic" - - spell: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" - - - "𝜜-𝜴": # 0x1d71c - 0x1d734 - # - tc: "bold italic" - - tc: 'BIC⠁' - - spell: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝜶-𝝎": # 0x1d736 - 0x1d74e - - tc: "BI" - - spell: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝝏𝝐𝝑𝝒𝝓𝝔𝝕": # 0x1d74f - 0x1d755 - - tc: "BI" - - spell: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔𝝕', '∂εκθφρπ')" - - - "𝜵": # 0x1d735 - - tc: "BI" - - spell: "translate('.', '𝜵', '∇')" - - - "𝝖-𝝮": # 0x1d756 - 0x1d76e - - tc: "BSC" - - spell: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝝰-𝞈": # 0x1d770 - 0x1d788 - - tc: "BS" - - spell: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝞉𝞊𝞋𝞌𝞍𝞎𝞏": # 0x1d789 - 0x1d78f - - tc: "B" - - spell: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎𝞏', '∂εθκφρπ')" - - - "𝝯": # 0x1d76f - - tc: "B" - - spell: "translate('.', '𝜵', '∇')" - - - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 - # - tc: "bold italic" - - test: - if: "$IgnoreBold" - then: [tc: I] - else: [tc: "BI"] - - spell: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 - # - tc: "bold italic" - - test: - if: "$IgnoreBold" - then: [tc: I] - else: [tc: "BI"] - - spell: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝟃𝟄𝟅𝟆𝟇𝟈𝟉": # 0x1d7c3 - 0x1d7c9 - - tc: "B" - - spell: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈𝟉', '∂εθκφρπ')" - - - "𝞩": [tc: "B"] # 0x1d7a9 - - - "𝟎-𝟗": # 0x1d7ce - 0x1d7d7 - - tc: "B" - - spell: "translate('.', '𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗', '0123456789')" - - - "𝟬-𝟵": # 0x1D7EC - 0x1D7F5 - - tc: "BS" - - spell: "translate('.', '𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵', '0123456789')" - - - "𝟢-𝟫": # 0x1d7e2 - 0x1d7eb - - tc: "S" - - spell: "translate('.', '𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫', '0123456789')" - - - "𝟶-𝟿": # 0x1d7f6 - 0x1d7ff - - spell: "translate('.', '𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿', '0123456789')" - +--- + + - " ": [t: "W"] # 0x2000 + - " ": [t: "W"] # 0x2001 + - " ": [t: "W"] # 0x2002 + - " ": [t: "W"] # 0x2003 + - " ": [t: "W"] # 0x2004 + - " ": [t: "W"] # 0x2005 + - " ": [t: "W"] # 0x2006 + - " ": [t: "W"] # 0x2007 + - " ": [t: "W"] # 0x2008 + - " ": [t: "W"] # 0x2009 + - " ": [t: "W"] # 0x200a + - "​": [t: "W"] # 0x200b + - "
": [t: "W"] # 0x2028 + - "
": [t: "W"] # 0x2029 + - " ": [t: "W"] # 0x202f + - " ": [t: "W"] # 0x205f + - "": [t: "W"] # 0xfeff + + + - "ℏ": [tc: "⠈⠒⠓"] # t: "B"F (reduced Plank's constant) + - "ⅆ": [tc: "⠙"] # 0x2146 + - "ⅇ": [tc: "⠑"] # 0x2147 + - "ⅈ": [tc: "⠊"] # 0x2148 + - "⨯": [tc: "⠐⠦"] # U+2A2F(VECTOR OR CROSS PRODUCT) -- make the same as 0x00D7 (Multiplication sign) + + + - "¼": [tc: "#N⠁N⠌N⠙"] # 0x00BC (Vulgar Fraction One Quarter) + - "½": [tc: "#N⠁N⠌N⠃"] # 0x00BD (Vulgar Fraction One Half) + - "¾": [tc: "#N⠉N⠌N⠙"] # 0x00BE (Vulgar Fraction Three Quarters) + - "⅐": [tc: "#N⠁N⠌N⠛"] # 0x2150 (Vulgar Fraction One Seventh) + - "⅑": [tc: "#N⠁N⠌N⠊"] # 0x2151 (Vulgar Fraction One Ninth) + - "⅒": [tc: "#N⠁N⠌N⠁N⠚"] # 0x2152 (Vulgar Fraction One Tenth) + - "⅓": [tc: "#N⠁N⠌N⠉"] # 0x2153 (Vulgar Fraction One Third) + - "⅔": [tc: "#N⠃N⠌N⠉"] # 0x2154 (Vulgar Fraction Two Thirds) + - "⅕": [tc: "#N⠁N⠌N⠑"] # 0x2155 (Vulgar Fraction One Fifth) + - "⅖": [tc: "#N⠃N⠌N⠑"] # 0x2156 (Vulgar Fraction Two Fifths) + - "⅗": [tc: "#N⠉N⠌N⠑"] # 0x2157 (Vulgar Fraction Three Fifths) + - "⅘": [tc: "#N⠙N⠌N⠑"] # 0x2158 (Vulgar Fraction Four Fifths) + - "⅙": [tc: "#N⠁N⠌N⠋"] # 0x2159 (Vulgar Fraction One Sixth) + - "⅚": [tc: "#N⠑N⠌N⠋"] # 0x215A (Vulgar Fraction Five Sixths) + - "⅛": [tc: "#N⠁N⠌N⠓"] # 0x215B (Vulgar Fraction One Eighth) + - "⅜": [tc: "#N⠉N⠌N⠓"] # 0x215C (Vulgar Fraction Three Eighths) + - "⅝": [tc: "#N⠑N⠌N⠓"] # 0x215D (Vulgar Fraction Five Eighths) + - "⅞": [tc: "#N⠛N⠌N⠓"] # 0x215E (Vulgar Fraction Seven Eighths) + - "↉": [tc: "#N⠚N⠌N⠉"] # 0x2189 (Vulgar Fraction Zero Thirds) + + # --- UEB_Additions1 (ordered by Unicode; Å/–/≣ remain in unicode.yaml) --- + - "`": [t: "⠨⠡"] # 0x0060 + - "¡": [t: "⠘⠰⠖"] # 0x00A1 + - "§": [t: "⠘⠎"] # 0x00A7 + - "­": [t: "⠤"] # 0x00AD (soft hyphen) + - "®": [t: "⠘⠗"] # 0x00AE + - "¯": [t: "⠱"] # 0x00AF + - "²": # 0x00B2 + - test: + if: "(parent::m:msup or parent::m:msubsup) and not(following-sibling::*)" + then: [t: "⠼⠃"] + else: [t: "1⠔⠼⠃"] + - "³": # 0x00B3 + - test: + if: "(parent::m:msup or parent::m:msubsup) and not(following-sibling::*)" + then: [t: "⠼⠉"] + else: [t: "1⠔⠼⠉"] + - "¶": [t: "⠘⠏"] # 0x00B6 + - "¹": # 0x00B9 + - test: + if: "(parent::m:msup or parent::m:msubsup) and not(following-sibling::*)" + then: [t: "⠼⠁"] + else: [t: "1⠔⠼⠁"] + - "¿": [t: "⠘⠰⠦"] # 0x00BF + - "À": [t: "CA⠘⠡L⠁"] # 0x00C0 + - "Á": [t: "CA⠘⠌L⠁"] # 0x00C1 + - "Â": [t: "CA⠘⠩L⠁"] # 0x00C2 + - "Ã": [t: "CA⠘⠻L⠁"] # 0x00C3 + - "Ä": [t: "CA⠘⠒L⠁"] # 0x00C4 + - "Æ": [t: "C⠁⠠⠘⠖⠑"] # 0x00C6 + - "Ç": [t: "CA⠘⠯L⠉"] # 0x00C7 + - "È": [t: "CA⠘⠡L⠑"] # 0x00C8 + - "É": [t: "CA⠘⠌L⠑"] # 0x00C9 + - "Ê": [t: "CA⠘⠩L⠑"] # 0x00CA + - "Ë": [t: "CA⠘⠒L⠑"] # 0x00CB + - "Ì": [t: "CA⠘⠡L⠊"] # 0x00CC + - "Í": [t: "CA⠘⠌L⠊"] # 0x00CD + - "Î": [t: "CA⠘⠩L⠊"] # 0x00CE + - "Ï": [t: "CA⠘⠒L⠊"] # 0x00CF + - "Ð": [t: "C⠼⠫"] # 0x00D0 + - "Ñ": [t: "CA⠘⠻L⠝"] # 0x00D1 + - "Ò": [t: "CA⠘⠡L⠕"] # 0x00D2 + - "Ó": [t: "CA⠘⠌L⠕"] # 0x00D3 + - "Ô": [t: "CA⠘⠩L⠕"] # 0x00D4 + - "Õ": [t: "CA⠘⠻L⠕"] # 0x00D5 + - "Ö": [t: "CA⠘⠒L⠕"] # 0x00D6 + - "Ø": [t: "CA⠈⠡L⠕"] # 0x00D8 + - "Ù": [t: "CA⠘⠡L⠥"] # 0x00D9 + - "Ú": [t: "CA⠘⠌L⠥"] # 0x00DA + - "Û": [t: "CA⠘⠩L⠥"] # 0x00DB + - "Ü": [t: "CA⠘⠒L⠥"] # 0x00DC + - "Ý": [t: "CA⠘⠌L⠽"] # 0x00DD + - "Þ": [t: "C⠼⠮"] # 0x00DE + - "ß": [t: "⠨⠮"] # 0x00DF + - "à": [t: "A⠘⠡L⠁"] # 0x00E0 + - "á": [t: "A⠘⠌L⠁"] # 0x00E1 + - "â": [t: "A⠘⠩L⠁"] # 0x00E2 + - "ã": [t: "A⠘⠻L⠁"] # 0x00E3 + - "ä": [t: "A⠘⠒L⠁"] # 0x00E4 + - "å": [t: "A⠘⠫L⠁"] # 0x00E5 + - "æ": [t: "⠁⠘⠖⠑"] # 0x00E6 + - "ç": [t: "A⠘⠯L⠉"] # 0x00E7 + - "è": [t: "A⠘⠡L⠑"] # 0x00E8 + - "é": [t: "A⠘⠌L⠑"] # 0x00E9 + - "ê": [t: "A⠘⠩L⠑"] # 0x00EA + - "ë": [t: "A⠘⠒L⠑"] # 0x00EB + - "ì": [t: "A⠘⠡L⠊"] # 0x00EC + - "í": [t: "A⠘⠌L⠊"] # 0x00ED + - "î": [t: "A⠘⠩L⠊"] # 0x00EE + - "ï": [t: "A⠘⠒L⠊"] # 0x00EF + - "ð": [t: "⠼⠫"] # 0x00F0 + - "ñ": [t: "A⠘⠻L⠝"] # 0x00F1 + - "ò": [t: "A⠘⠡L⠕"] # 0x00F2 + - "ó": [t: "A⠘⠌L⠕"] # 0x00F3 + - "ô": [t: "A⠘⠩L⠕"] # 0x00F4 + - "õ": [t: "A⠘⠻L⠕"] # 0x00F5 + - "ö": [t: "A⠘⠒L⠕"] # 0x00F6 + - "ø": [t: "A⠈⠡L⠕"] # 0x00F8 + - "ù": [t: "A⠘⠡L⠥"] # 0x00F9 + - "ú": [t: "A⠘⠌L⠥"] # 0x00FA + - "û": [t: "A⠘⠩L⠥"] # 0x00FB + - "ü": [t: "A⠘⠒L⠥"] # 0x00FC + - "ý": [t: "A⠘⠌L⠽"] # 0x00FD + - "þ": [t: "⠼⠮"] # 0x00FE + - "ÿ": [t: "A⠘⠒L⠽"] # 0x00FF + - "Ÿ": [t: "CA⠘⠒L⠽"] # 0x0178 + - "ʹ": [t: "⠶"] # 0x02B9 + - "ʺ": [t: "⠶⠶"] # 0x02BA + - "˜": [t: "⠈⠔"] # 0x02DC + - "ẞ": [t: "C⠨⠮"] # 0x1E9E + - "‑": [t: "⠤"] # 0x2011 (non-breaking hyphen) + - "‒": [t: "⠤"] # 0x2012 (figure dash) + - "—": [t: "P⠠⠤"] # 0x2014 (em dash) + - "•": [t: "⠸⠲"] # 0x2022 + - "․": [t: "⠲"] # 0x2024 + - "‥": [t: "⠲⠲"] # 0x2025 + - "‼": [t: "⠖⠖"] # 0x203C + - "‾": [t: "⠱"] # 0x203E + - "⁇": [t: "⠦⠦"] # 0x2047 + - "⁈": [t: "⠦⠖"] # 0x2048 + - "⁉": [t: "⠖⠦"] # 0x2049 + - "⁗": [t: "⠶⠶⠶⠶"] # 0x2057 + - "⁰": # 0x2070 + - test: + if: "(parent::m:msup or parent::m:msubsup) and not(following-sibling::*)" + then: [t: "⠼⠚"] + else: [t: "1⠔⠼⠚"] + - "ⁱ": # 0x2071 + - test: + if: "(parent::m:msup or parent::m:msubsup) and not(following-sibling::*)" + then: [t: "⠊"] + else: [t: "1⠔⠊"] + - "⁴-⁹": # 0x2074 - 0x2079 + - test: + if: "(parent::m:msup or parent::m:msubsup) and not(following-sibling::*)" + then: [t: "⠼"] + else: [t: "1⠔⠼"] + - spell: "translate('.', '⁴⁵⁶⁷⁸⁹', '⠙⠑⠋⠛⠓⠊')" + - "⁺-⁾": # 0x207A - 0x207E + - test: + if: "(parent::m:msup or parent::m:msubsup) and not(following-sibling::*)" + then: [t: "⠐"] + else: [t: "1⠔⠐"] + - spell: "translate('.', '⁺⁻⁼⁽⁾', '⠖⠤⠶⠣⠜')" + - "ⁿ": # 0x207F + - test: + if: "(parent::m:msup or parent::m:msubsup) and not(following-sibling::*)" + then: [t: "⠝"] + else: [t: "1⠔⠝"] + - "₀-₉": # 0x2080 - 0x2089 + - test: + if: "(parent::m:msub or parent::m:msubsup) and count(preceding-sibling::*) = 1" + then: [t: "⠼"] + else: [t: "1⠢⠼"] + - spell: "translate('.', '₀₁₂₃₄₅₆₇₈₉', '⠚⠁⠃⠉⠙⠑⠋⠛⠓⠊')" + - "₊-₎": # 0x208A - 0x208E + - test: + if: "(parent::m:msub or parent::m:msubsup) and count(preceding-sibling::*) = 1" + then: [t: "⠐"] + else: [t: "1⠢⠐"] + - spell: "translate('.', '₊₋₌₍₎', '⠖⠤⠶⠣⠜')" + - "™": [t: "⠘⠞"] # 0x2122 + + - "ℊ": [tc: "TL⠛⠁"] # 0x210a (Script Small G) + - "ℋ": [tc: "TCL⠓⠁"] # 0x210b (Script Capital H) + - "ℒ": [tc: "TCL⠇"] # 0x2113 (Script Capital L) + - "ℓ": [tc: "TL⠇"] # 0x2113 (Script Small L) + - "℘": [tc: "TCL⠏"] # 0x2118 (Script Capital P) + - "ℛ": [tc: "TCL⠗"] # 0x211B (Script Capital R) + - "ℯ": [tc: "TL⠑"] # 0x212F (Script Small E) + - "ℰ": [tc: "TCL⠑"] # 0x2130 (Script Capital E) + - "ℱ": [tc: "TCL⠋"] # 0x2131 (Script Capital F) + - "ℳ": [tc: "TCL⠍"] # 0x2133 (Script Capital M) + - "ℴ": [tc: "TL⠕"] # 0x21334 (Script Small O) + - "ℌ": [tc: "DCL⠓"] # 0x210C (Fraktur Capital H) + - "ℑ": [tc: "DCL⠊"] # 0x2111 (Fraktur Capital I) + - "ℜ": [tc: "DCL⠗"] # 0x211C (Fraktur Capital R) + - "ℨ": [tc: "DCL⠵"] # 0x2128 (Fraktur Capital Z) + - "ℭ": [tc: "DCL⠉"] # 0x22DC (Fraktur Capital C) + + - "ℂ": [tc: "𝔹CL⠉"] # 0x2102 + - "ℍ": [tc: "𝔹CL⠓"] # 0x210d + - "ℕ": [tc: "𝔹CL⠝"] # 0x2115 + - "ℙ": [tc: "𝔹CL⠏"] # 0x2119 + - "ℚ": [tc: "𝔹CL⠟"] # 0x211a + - "ℝ": [tc: "𝔹CL⠗"] # 0x211d + - "ℤ": [tc: "𝔹CL⠵"] # 0x2124 + + + - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) + - tc: "DC" + - spell: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝔞-𝔷": # 0x1d51e - 0x1d537 + - tc: "D" + - spell: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝕬-𝖅": # 0x1D56C - 0x1D585 + - tc: "BDC" + - spell: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝖆-𝖟": # 0x1d586 - 0x1d59f + - tc: "D" + - spell: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" + + # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area + # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display + - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) + - tc: "DC" + - spell: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝕒-𝕫": # 0x1d552 - 0x1d56b + - tc: "D" + - spell: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝟘-𝟡": # 0x1d7d8 - 0x1d7e1 + - tc: "D" + - spell: "translate('.', '𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡', '0123456789')" + + # script chars in math alphabetic block and also MathType private use area + - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 + - tc: "TsC" + - spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf + - tc: "Ts" + - spell: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" + + # bold script chars in math alphabetic block + - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 + - tc: "BTs" + - spell: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝓪-𝔃": # 0x1d4ea - 0x1d503 + - tc: "BTs" + - spell: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝐀-𝐙": # 0x1d400 - 0x1d419 + - tc: "B" + - spell: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝐚-𝐳": # 0x1d41a - 0x1d433 + - tc: "B" + - spell: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝐴-𝑍": # 0x1d434 - 0x1d44d + # don't include italics + - tc: "C" + - spell: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝑎-𝑧": # 0x1d44e - 0x1d467 + # don't include italics + - spell: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝑨-𝒁": # 0x1d468 - 0x1d481 + - tc: "BIC" + - spell: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝒂-𝒛": # 0x1d482 - 0x1d49b + - spell: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 + - spell: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 + - spell: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝗮-𝘇": # 0x1d5ee - 0x1d607 + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝘈-𝘡": # 0x1d608 - 0x1d621 + # - tc: "italic" + - spell: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝘢-𝘻": # 0x1d622 - 0x1d63b + # - tc: "italic" + - spell: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝘼-𝙕": # 0x1d63c - 0x1d655 + # - tc: "bold italic" + - test: + if: "$IgnoreBold" + then: [tc: I] + else: [tc: "BI"] + - spell: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝙖-𝙯": # 0x1d656 - 0x1d66f + # - tc: "bold italic" + - test: + if: "$IgnoreBold" + then: [tc: I] + else: [tc: "BI"] + - spell: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝙰-𝚉": # 0x1d670 - 0x1d689 + - tc: "C" + - spell: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 + - spell: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝚤𝚥": # 0x1d6a4, 0x1d6a5 + - spell: "translate('.', '𝚤𝚥', 'ij')" # not sure what else these should be + + - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝛁": # 0x1d6c1 + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝜵', '∇')" + + - "𝛛𝛜𝛝𝛞𝛟𝛠𝛡": # 0x1D6DB - 0x1D6E1 + - test: + if: "not($IgnoreBold)" + then: [tc: "B"] + - spell: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠𝛡', '∂εθκφρπ')" + + - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa + - tc: "IC" + - spell: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝛼-𝜔": # 0x1d6fc - 0x1d714 + - spell: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + + - "𝛻": # 0x1d6fb + - spell: "translate('.', '𝜵', '∇')" + + - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b + # - tc: "italic" + - spell: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" + + - "𝜜-𝜴": # 0x1d71c - 0x1d734 + # - tc: "bold italic" + - tc: 'BIC⠁' + - spell: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝜶-𝝎": # 0x1d736 - 0x1d74e + - tc: "BI" + - spell: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝝏𝝐𝝑𝝒𝝓𝝔𝝕": # 0x1d74f - 0x1d755 + - tc: "BI" + - spell: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔𝝕', '∂εκθφρπ')" + + - "𝜵": # 0x1d735 + - tc: "BI" + - spell: "translate('.', '𝜵', '∇')" + + - "𝝖-𝝮": # 0x1d756 - 0x1d76e + - tc: "BSC" + - spell: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝝰-𝞈": # 0x1d770 - 0x1d788 + - tc: "BS" + - spell: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝞉𝞊𝞋𝞌𝞍𝞎𝞏": # 0x1d789 - 0x1d78f + - tc: "B" + - spell: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎𝞏', '∂εθκφρπ')" + + - "𝝯": # 0x1d76f + - tc: "B" + - spell: "translate('.', '𝜵', '∇')" + + - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 + # - tc: "bold italic" + - test: + if: "$IgnoreBold" + then: [tc: I] + else: [tc: "BI"] + - spell: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 + # - tc: "bold italic" + - test: + if: "$IgnoreBold" + then: [tc: I] + else: [tc: "BI"] + - spell: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝟃𝟄𝟅𝟆𝟇𝟈𝟉": # 0x1d7c3 - 0x1d7c9 + - tc: "B" + - spell: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈𝟉', '∂εθκφρπ')" + + - "𝞩": [tc: "B"] # 0x1d7a9 + + - "𝟎-𝟗": # 0x1d7ce - 0x1d7d7 + - tc: "B" + - spell: "translate('.', '𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗', '0123456789')" + + - "𝟬-𝟵": # 0x1D7EC - 0x1D7F5 + - tc: "BS" + - spell: "translate('.', '𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵', '0123456789')" + + - "𝟢-𝟫": # 0x1d7e2 - 0x1d7eb + - tc: "S" + - spell: "translate('.', '𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫', '0123456789')" + + - "𝟶-𝟿": # 0x1d7f6 - 0x1d7ff + - spell: "translate('.', '𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿', '0123456789')" + diff --git a/Rules/Braille/UEB/unicode.yaml b/Rules/Braille/UEB/unicode.yaml index 3256d59c5..e1b513bc8 100644 --- a/Rules/Braille/UEB/unicode.yaml +++ b/Rules/Braille/UEB/unicode.yaml @@ -103,7 +103,7 @@ - "~": [t: "⠈⠔"] # 0x007E (Tilde (swung dash)) - "¢": [t: "⠈⠉"] # 0x00A2 (Cents sign) - "‐": [t: "⠤"] # 0x2010 (Hyphen) - - "–": [t: "⠠⠤"] # 0x2013 (En Dash) + - "–": [t: "P⠠⠤"] # 0x2013 (En Dash) - "―": [t: "⠐⠠⠤"] # 0x2015 (Horizontal Bar) - "‖": [t: "⠸⠳"] # 0x2016 - "€": [t: "⠈⠑"] # 0x20AC (Euro sign) @@ -123,8 +123,8 @@ - "‴": [t: "1⠶⠶⠶"] # 0x2034 (Triple prime sign) - "℃": [t: "⠘⠚⠠⠉"] # 0x2103 (Degrees Celsius) - "℉": [t: "⠘⠚⠠⠋"] # 0x2109 (Degrees Fahrenheit) - - "Å": [t: "⠠⠘⠫⠁"] # 0x212B (Angstrom symbol) - - "Å": [t: "⠠⠘⠫⠁"] # 0x00C5 (WIRIS uses this for Angstrom) + - "Å": [t: "CA⠘⠫L⠁"] # 0x212B (Angstrom symbol) + - "Å": [t: "CA⠘⠫L⠁"] # 0x00C5 (WIRIS uses this for Angstrom) - "∀": [t: "⠘⠁"] # 0x2200 (For all) - "∂": [t: "⠈⠙"] # 0x2202 (Partial differential) - "∃": [t: "⠘⠢"] # 0x2203 (There exists) diff --git a/Rules/Braille/Vietnam/Vietnam_Rules.yaml b/Rules/Braille/Vietnam/Vietnam_Rules.yaml index 88947d646..2b43067be 100644 --- a/Rules/Braille/Vietnam/Vietnam_Rules.yaml +++ b/Rules/Braille/Vietnam/Vietnam_Rules.yaml @@ -437,7 +437,7 @@ - name: single-char-exceptions # RUEB 3.11 -- ° and various prime/minute/seconds aren't treated as if superscripts tag: msup - match: "*[2][translate(., \"'*`ª°²³´¹º‘’“”‟′″‴‵‶‷⁗\",'')='']" + match: "*[2][translate(., \"'*`´°‘’“”‟′″‴‵‶‷⁗\",'')='']" replace: [x: "*"] - diff --git a/Rules/Languages/de/ClearSpeak_Rules.yaml b/Rules/Languages/de/ClearSpeak_Rules.yaml index ce0f1c3c4..a4953b958 100644 --- a/Rules/Languages/de/ClearSpeak_Rules.yaml +++ b/Rules/Languages/de/ClearSpeak_Rules.yaml @@ -476,7 +476,7 @@ if: "$ClearSpeak_AbsoluteValue = 'AbsEnd'" then: - pause: short - - T: "end" + - T: "ende" - x: "$WordToSay" - pause: short @@ -501,7 +501,7 @@ - T: "Menge" - test: if: $ClearSpeak_Sets != 'woAll' - then: [T: "alle"] + then: [T: "aller"] - x: "*[1]/*[1]" - T: "so dass" - x: "*[1]/*[3]" diff --git a/Rules/Languages/de/SharedRules/general.yaml b/Rules/Languages/de/SharedRules/general.yaml index c64b9e27d..a5792c745 100644 --- a/Rules/Languages/de/SharedRules/general.yaml +++ b/Rules/Languages/de/SharedRules/general.yaml @@ -55,17 +55,21 @@ match: "count(*)=0" replace: - bookmark: "@id" + - test: + - if: "$SpeechStyle = 'ClearSpeak' and ($ClearSpeak_SetMemberSymbol = 'In' or ($ClearSpeak_SetMemberSymbol = 'Auto' and ancestor::m:set)) and preceding::m:mo[1][.='∈' or .='∊' or .='∉']" + then: [T: "den"] + else: [T: "die"] - test: - if: ".='ℂ'" - then: [T: "die komplexen zahlen"] # phrase('the complex numbers' include 2 parts) + then: [T: "komplexen zahlen"] # phrase('the complex numbers' include 2 parts) - else_if: ".='ℕ'" - then: [T: "die natürlichen zahlen"] # phrase('the natural numbers' begin at 1) + then: [T: "natürlichen zahlen"] # phrase('the natural numbers' begin at 1) - else_if: ".='ℚ'" - then: [T: "die rationalen zahlen"] # phrase('the rational numbers' are the fraction of 2 integers) + then: [T: "rationalen zahlen"] # phrase('the rational numbers' are the fraction of 2 integers) - else_if: ".='ℝ'" - then: [T: "die reellen zahlen"] # phrase('the real numbers' can be both positive and negative) + then: [T: "reellen zahlen"] # phrase('the real numbers' can be both positive and negative) - else_if: ".='ℤ'" - then: [T: "die ganzen zahlen"] # phrase('the integers' are natural numbers above 0) + then: [T: "ganzen zahlen"] # phrase('the integers' are natural numbers above 0) else: [x: "text()"] # shouldn't happen - name: real-part @@ -300,7 +304,7 @@ # HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets the prefix concatenated to the base then: [x: "$Word"] - else_if: "DefinitionValue($Word, 'Speech', 'PluralForms') != ''" - then: [x: "DefinitionValue($Word, 'Speech', 'PluralForms')"] + then: [x: "DefinitionValue($Word, 'Speech', 'PluralForms')", ct: " "] else: [x: "$Word", ct: "s"] else: - x: "$Prefix" @@ -310,7 +314,7 @@ # HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets the prefix concatenated to the base then: [x: "concat('\uF8FE', $Word)"] - else_if: "DefinitionValue($Word, 'Speech', 'PluralForms') != ''" - then: [x: "concat('\uF8FE', DefinitionValue($Word, 'Speech', 'PluralForms'))"] + then: [x: "concat('\uF8FE', DefinitionValue($Word, 'Speech', 'PluralForms'))", ct: " "] else: [x: "concat('\uF8FE', $Word)", ct: "s"] diff --git a/Rules/Languages/de/definitions.yaml b/Rules/Languages/de/definitions.yaml index 4e5ccf041..0783d9462 100644 --- a/Rules/Languages/de/definitions.yaml +++ b/Rules/Languages/de/definitions.yaml @@ -107,7 +107,7 @@ "in": "zoll", "ft": "fuß", "mi": "meile", - "rd": "ruthe", + "rd": "rute", "li": "glied", "ch": "kette", @@ -159,16 +159,46 @@ } - PluralForms: { - "inch": "zoll", "square inch": "quadratzoll", "cubic inch": "kubikzoll", - "foot": "füße", "square foot": "quadratfuß", "cubic foot": "kubikfuß", - "board foot": "brettfuß", - "degree celsius": "grad celsius", - "degree fahrenheit": "grad fahrenheit", - "hertz": "hertz", - "siemens": "siemens", - "revolution per minute": "umdrehungen pro minute", - "mile per hour": "meilen pro stunde", - "mile per gallon": "meilen pro gallone" + "ampere": "ampere", "candela": "candela", "kelvin": "kelvin", + "gramm": "gramm", "meter": "meter", "mol": "mol", "sekunde": "sekunden", + "becquerel": "becquerel", "coulomb": "coulomb", "grad celsius": "grad celsius", + "farad": "farad", "gray": "gray", "henry": "henry", "hertz": "hertz", + "joule": "joule", "katal": "katal", "lumen": "lumen", "lux": "lux", + "newton": "newton", "ohm": "ohm", "pascal": "pascal", "siemens": "siemens", + "sievert": "sievert", "tesla": "tesla", "volt": "volt", "watt": "watt", "weber": "weber", + "liter": "liter", "tonne": "tonnen", "dalton": "dalton", "neper": "neper", + "atommasse-einheit": "atommasse-einheiten", "elektronenvolt": "elektronenvolt", + "radiant": "radianten", "steradiant": "steradianten", "jahr": "jahre", + "bogenminute": "bogenminuten", "bogensekunde": "bogensekunden", "bit": "bit", + "byte": "byte", "baud": "baud", + "zoll": "zoll", "fuß": "füße", "meile": "meilen", "rute": "ruten", + "glied": "glieder", "kette": "ketten", "fass": "fässer", "gallone": "gallonen", + "quadratzoll": "quadratzoll", "quadratfuß": "quadratfüße", "quadratyard": "quadratyards", + "quadratmeile": "quadratmeilen", "morgen": "morgen", "brettfuß": "brettfüße", + "kubikzoll": "kubikzoll", "kubikfuß": "kubikfüße", "kubikyard": "kubikyards", + "buschelmaß": "buschelmaße", "buschel": "buschel", "teelöffel": "teelöffel", + "esslöffel": "esslöffel", "flüssige dram": "flüssige drams", "gill": "gills", + "tasse": "tassen", "pint": "pints", "quart": "quarts", "korn": "körner", + "dram": "drams", "unze": "unzen", "pfund": "pfund", "zentner": "zentner", + "feingewicht": "feingewichte", "troy-unze": "troy-unzen", "troy-pfund": "troy-pfund", + "ps": "ps", "britische wärmeeinheit": "britische wärmeeinheiten", + "grad fahrenheit": "grad fahrenheit", + "meile pro stunde": "meilen pro stunde", "meile pro gallone": "meilen pro gallone", + + "minute": "minuten", "stunde": "stunden", "tag": "tage", "woche": "wochen", + "grad": "grade", "astronomische einheit": "astronomische einheiten", + "lichtjahr": "lichtjahre", "parsec": "parsec", "ångström": "ångström", + "fermi": "fermis", "hektar": "hektar", "dezibel": "dezibel", + "atmosphäre": "atmosphären", "bar": "bar", "kalorie": "kalorien", "curie": "curie", + "gon": "gon", "mol/liter": "mol/liter", "röntgen": "röntgen", "mho": "mho", + "dyn": "dyn", "erg": "erg", + "kibi-bit": "kibi-bit", "mebi-bit": "mebi-bit", "gibi-bit": "gibi-bit", + "tebi-bit": "tebi-bit", "pebi-bit": "pebi-bit", "exbi-bit": "exbi-bit", + "zebi-bit": "zebi-bit", "yobi-bit": "yobi-bit", + "kibi-byte": "kibi-byte", "mebi-byte": "mebi-byte", "gibi-byte": "gibi-byte", + "tebi-byte": "tebi-byte", "pebi-byte": "pebi-byte", "exbi-byte": "exbi-byte", + "zebi-byte": "zebi-byte", "yobi-byte": "yobi-byte", + "umdrehungen pro minute": "umdrehungen pro minute" } diff --git a/Rules/Languages/de/unicode-full.yaml b/Rules/Languages/de/unicode-full.yaml index 6e41bf9c5..4c9b4db35 100644 --- a/Rules/Languages/de/unicode-full.yaml +++ b/Rules/Languages/de/unicode-full.yaml @@ -1,3517 +1,3517 @@ ---- - - - - "¢": [T: "Cent"] # 0xa2 (en: 'cents') - - "£": [T: "Pfund"] # 0xa3 (en: 'pounds') - - "¤": [T: "währungszeichen"] # 0xa4 (en: 'currency sign') - - "¥": [T: "yen"] # 0xa5 - - "¦": [T: "gebrochene Linie"] # 0xa6 (en: 'broken bar') - - "§": [T: "Abschnitt"] # 0xa7 (en: 'section') - - "¨": [T: "diaeresis"] # 0xa8 (en: 'double dot') - - "©": [T: "Copyright"] # 0xa9 (en: 'copyright') - - "ª": [T: "weibliches Ordnungszeichen"] # 0xaa (en: 'feminine ordinal indicator') - - "«": [T: "Nach links zeigendes doppeltes spitzes Anführungszeichen"] # 0xab (en: 'left-pointing double angle quote mark', MathPlayer: 'left-pointing double angle quote mark', google: 'links zeigende doppelwinkel-zitatmarke') - - "¯": # 0xaf - - test: - if: "ancestor::m:modified-variable and preceding-sibling::*[1][self::m:mi]" - then: [T: "bar"] # (google translation) - else: [T: "Überstrich"] # (en: 'line', MathPlayer: 'macron', google: 'linie') - - "²": [T: "Quadrat"] # 0xb2 (en: 'two', MathPlayer: 'zum Quadrat', google: 'zwei') - - "³": [T: "Kubik"] # 0xb3 (en: 'three', MathPlayer: 'hoch drei', google: 'drei') - - "µ": [T: "Mikrozeichen"] # 0xb5 (en: 'micro', MathPlayer: 'micro sign', google: 'mikro') - - "¹": [T: "hoch eins"] # 0xb9 (en: 'one', google: 'eins') - - "º": [T: "Männliches Ordnungszeichen"] # 0xb9 (en: 'masculine ordinal indicator') - - "¡": [T: "umgekehrtes ausrufezeichen"] # 0xa1 (en: 'inverted exclamation mark') - - "¶": [T: "absatzzeichen"] # 0xb6 (en: 'paragraph mark') - - "¿": [T: "umgekehrtes fragezeichen"] # 0xbf (en: 'inverted question mark') - - - "ʰ": [T: "modifikator kleines h"] # 0x2b0 (en: 'modifier small h', google translation) - - "ʱ": [T: "modifikator kleines h mit haken"] # 0x2b1 (en: 'modifier small h with hook', google translation) - - "ʲ": [T: "modifikator kleines j"] # 0x2b2 (en: 'modifier small j', google translation) - - "ʳ": [T: "modifikator kleines r"] # 0x2b3 (en: 'modifier small r', google translation) - - "ʴ": [T: "modifikator gedrehtes kleines r"] # 0x2b4 (en: 'modifier small turned r', google translation) - - "ʵ": [T: "modifikator gedrehtes kleines r mit haken"] # 0x2b5 (en: 'modifier small turned r with hook', google translation) - - "ʶ": # 0x2b6 - - T: "modifikator umgekehrtes kleines r" # (en: 'modifier small inverted', google translation) - - spell: "translate('R', 'R', 'R')" - - - "ʷ": [T: "modifikator kleines w"] # 0x2b7 (en: 'modifier small w', google translation) - - "ʸ": [T: "modifikator kleines y"] # 0x2b8 (en: 'modifier small y', google translation) - - "ʹ": [T: "Strich"] # 0x2b9 (en: 'modifier prime', google: 'modifikator prime') - - "ʺ": [T: "zwei Striche"] # 0x2ba (en: 'modifier double prime', google: 'modifikator double prime') - - "ʻ": [T: "modifikator gedrehtes komma"] # 0x2bb (en: 'modifier turned comma', google translation) - - "ʼ": [T: "modifikator apostroph"] # 0x2bc (en: 'modifier apostrophe', google translation) - - "ʽ": [T: "modifikator umgekehrtes komma"] # 0x2bd (en: 'modifier reversed comma', google translation) - - "ʾ": [T: "modifikator rechter halbring"] # 0x2be (en: 'modifier right half ring', google: 'modifikator rechts halbe ring') - - "ʿ": [T: "modifikator linker halbring"] # 0x2bf (en: 'modifier left half ring', google: 'modifikator verließ den halben ring') - - "ˀ": [T: "modifikator Knacklaut"] # 0x2c0 (en: 'modifier glottal stop', google translation) - - "ˁ": [T: "modifikator umgekehrter Knacklaut"] # 0x2c1 (en: 'modifier reversed glottal stop', google translation) - - "˂": [T: "modifikator pfeilspitze nach links"] # 0x2c2 (en: 'modifier left arrowhead', google translation) - - "˃": [T: "modifikator pfeilspitze nach rechts"] # 0x2c3 (en: 'modifier right arrowhead', google translation) - - "˄": [T: "modifikator pfeilspitze nach oben"] # 0x2c4 (en: 'modifier up arrowhead', google translation) - - "˅": [T: "modifikator pfeilspitze nach unten"] # 0x2c5 (en: 'modifier down arrowhead', google translation) - - "ˆ": [T: "modifikator zirkumflexakzent"] # 0x2c6 (en: 'modifier circumflex accent', google: 'modifikator circumflex akzent') - - "ˇ": [T: "caron"] # 0x2c7 - - "ˈ": [T: "modifikator vertikaler strich"] # 0x2c8 (en: 'modifier vertical line', google translation) - - "ˉ": [T: "modifikator makron"] # 0x2c9 (en: 'modifier macron', google translation) - - "ˊ": [T: "modifikator akutakzent"] # 0x2ca (en: 'modifier acute accent', google translation) - - "ˋ": [T: "modifikator gravisakzent"] # 0x2cb (en: 'modifier grave accent', google translation) - - "ˌ": [T: "modifikator tiefer vertikaler strich"] # 0x2cc (en: 'modifier low vertical line', google translation) - - "ˍ": [T: "modifikator tiefes makron"] # 0x2cd (en: 'modifier low macron', google translation) - - "ˎ": [T: "modifikator tiefer gravisakzent"] # 0x2ce (en: 'modifier low grave accent', google translation) - - "ˏ": [T: "modifikator tiefer akutakzent"] # 0x2cf (en: 'modifier low acute accent', google translation) - - "ː": [T: "modifikator dreieckiger doppelpunkt"] # 0x2d0 (en: 'modifier triangular colon', google translation) - - "ˑ": [T: "modifikator halb dreieckiger doppelpunkt"] # 0x2d1 (en: 'modifier half triangular colon', google translation) - - "˒": [T: "modifikator zentrierter rechter halbring"] # 0x2d2 (en: 'modifier centered right half ring', google translation) - - "˓": [T: "modifikator zentrierter linker halbring"] # 0x2d3 (en: 'modifier centered left half ring', google translation) - - "˔": [T: "modifikator nach oben gerichteter strich"] # 0x2d4 (en: 'modifier up tadck', google translation) - - "˕": [T: "modifikator nach unten gerichteter strich"] # 0x2d5 (en: 'modifier down tack', google translation) - - "˖": [T: "modifikator pluszeichen"] # 0x2d6 (en: 'modifier plus sign', google translation) - - "˗": [T: "modifikator minuszeichen"] # 0x2d7 (en: 'modifier minus sign', google translation) - - "˘": [T: "kurz"] # 0x2d8 (SRE: 'Breve') - - "˙": [T: "Punkt oberhalb"] # 0x2d9 (en: 'dot', MathPlayer: 'Punkt darüber', google: 'punkt') - - "˚": [T: "Ring oberhalb"] # 0x2da (en: 'ring above', MathPlayer: 'Ring darüber', google: 'oben läuten') - - "˛": [T: "ogonek"] # 0x2db (SRE: 'Ogonek') - - "˜": [T: "Tilde"] # 0x2dc (en: 'small tilde') - - "˝": [T: "Doppelakutakzent"] # 0x2dd (en: 'double acute accent', MathPlayer: 'double acute accent', google: 'doppelter akuter akzent') - - "˞": [T: "modifikator rhotischer haken"] # 0x2de (en: 'modifier rhotic hook', google translation) - - "˟": [T: "modifikator kreuzakzent"] # 0x2df (en: 'modifier cross accent', google translation) - - "ˠ": [T: "modifikator kleines gamma"] # 0x2e0 (en: 'modifier small gamma', google translation) - - "ˡ": [T: "modifikator kleines l"] # 0x2e1 (en: 'modifier small l', google translation) - - "ˢ": [T: "modifikator kleines s"] # 0x2e2 (en: 'modifier small s', google translation) - - "ˣ": [T: "modifikator kleines x"] # 0x2e3 (en: 'modifier small x', google translation) - - "ˤ": [T: "modifikator kleiner umgekehrter glottalverschluss"] # 0x2e4 (en: 'modifier small reversed glottal stop', google translation) - - "˥": [T: "modifikator extra hoher tonbalken"] # 0x2e5 (en: 'modifier extra-high tone bar', google translation) - - "˦": [T: "modifikator hoher tonbalken"] # 0x2e6 (en: 'modifier high tone bar', google translation) - - "˧": [T: "modifikator mittlerer tonbalken"] # 0x2e7 (en: 'modifier mid tone bar', google translation) - - "˨": [T: "modifikator niedrige tonbalken"] # 0x2e8 (en: 'modifier low tone bar', google translation) - - "˩": [T: "modifikator extra niedrige tonbalken"] # 0x2e9 (en: 'modifier extra-low tone bar', google translation) - - "˪": [T: "modifikator yin-abgangstonmarke"] # 0x2ea (en: 'modifier yin departing tone mark', google translation) - - "˫": [T: "modifikator yang-abgangstonmarke"] # 0x2eb (en: 'modifier yang departing tone mark', google translation) - - "ˬ": [T: "modifikator stimmgebung"] # 0x2ec (en: 'modifier voicing', google translation) - - "˭": [T: "modifikator nicht-aspiriert"] # 0x2ed (en: 'modifier unaspirated', google translation) - - "ˮ": [T: "modifikator doppelapostroph"] # 0x2ee (en: 'modifier double apostrophe', google translation) - - "˯": [T: "modifikator niedrige pfeilspitze nach unten gerichtet"] # 0x2ef (en: 'modifier low down arrowhead', google translation) - - "˰": [T: "modifikator niedrige pfeilspitze aufwärts gerichtet"] # 0x2f0 (en: 'modifier low up arrowhead', google translation) - - "˱": [T: "modifikator niedrige pfeilspitze nach links gerichtet"] # 0x2f1 (en: 'modifier low left arrowhead', google translation) - - "˲": [T: "modifikator niedrige pfeilspitze nach rechts gerichtet"] # 0x2f2 (en: 'modifier low right arrowhead', google translation) - - "˳": [T: "modifikator niedriger ring"] # 0x2f3 (en: 'modifier low ring', google translation) - - "˴": [T: "modifikator mittlerer gravisakzent"] # 0x2f4 (en: 'modifier middle grave accent', google translation) - - "˵": [T: "modifikator mittlerer doppelter gravisakzent"] # 0x2f5 (en: 'modifier middle double grave accent', google translation) - - "˶": [T: "modifikator mittlerer doppelter akutakzent"] # 0x2f6 (en: 'modifier middle double acute accent', google translation) - - "˷": [T: "modifikator niedrige tilde"] # 0x2f7 (en: 'modifier low tilde', google translation) - - "˸": [T: "modifikator hoch gestellter Doppelpunkt"] # 0x2f8 (en: 'modifier raised colon', google translation) - - "˹": [T: "modifikator beginn hoher ton"] # 0x2f9 (en: 'modifier begin high tone', google translation) - - "˺": [T: "modifikator endet mit hohem ton"] # 0x2fa (en: 'modifier end high tone', google translation) - - "˻": [T: "modifikator beginn tiefer ton"] # 0x2fb (en: 'modifier begin low tone', google translation) - - "˼": [T: "modifikator ende tiefer ton"] # 0x2fc (en: 'modifier end low tone', google translation) - - "˽": [T: "modifikatorregal"] # 0x2fd (en: 'modifier shelf', google translation) - - "˾": [T: "modifikator offenes regal"] # 0x2fe (en: 'modifier open shelf', google translation) - - "˿": [T: "modifikator niedriger links pfeil"] # 0x2ff (en: 'modifier low left arrow', google translation) - - "̈": [T: "zwei Punkte oberhalb"] # 0x308 (en: 'diaeresis embellishment', google: 'diaeresis -verzierung') - - "̉": [T: "haken über verzierung"] # 0x309 (en: 'hook above embellishment', google translation) - - "̊": [T: "ring über verzierung"] # 0x30a (en: 'ring above embellishment', google: 'ring über verzierung') - - "̋": [T: "doppelte akutakzentverzierung"] # 0x30b (en: 'double acute accent embellishment', google translation) - - "̌": [T: "kombinierendes Caron"] # 0x30c (en: 'check', google: 'überprüfen') - - "̍": [T: "vertikale linie über verzierung"] # 0x30d (en: 'vertical line above embellishment', google translation) - - "̎": [T: "doppelte vertikale linie über verzierung"] # 0x30e (en: 'double vertical line above embellishment', google translation) - - "̏": [T: "doppelgravisakzentverzierung"] # 0x30f (en: 'double grave accent embellishment', google translation) - - "̐": [T: "candrabindu-verzierung"] # 0x310 (en: 'candrabindu embellishment', google translation) - - "̑": [T: "umgekehrtes breve-verzierung"] # 0x311 (en: 'inverted breve embellishment', google: 'umgekehrte breve -verzierung') - - "̒": [T: "gedrehtes komma über verzierung"] # 0x312 (en: 'turned comma above embellishment', google translation) - - "̓": [T: "komma über verzierung"] # 0x313 (en: 'comma above embellishment', google translation) - - "̔": [T: "umgekehrtes komma über verzierung"] # 0x314 (en: 'reversed comma above embellishment', google translation) - - "̕": [T: "komma über der rechten verzierung"] # 0x315 (en: 'comma above right embellishment', google translation) - - "̖": [T: "gravisakzent unter der verzierung"] # 0x316 (en: 'grave accent below embellishment', google translation) - - "̗": [T: "akutakzent unter der verzierung"] # 0x317 (en: 'acute accent below embellishment', google translation) - - "̘": [T: "linke klammer unter verzierung"] # 0x318 (en: 'left tack below embellishment', google translation) - - "̙": [T: "rechte klammer unter verzierung"] # 0x319 (en: 'right tack below embellishment', google translation) - - "̚": [T: "linker winkel über verzierung"] # 0x31a (en: 'left angle above embellishment', google translation) - - "̛": [T: "hornverzierung"] # 0x31b (en: 'horn embellishment', google translation) - - "̜": [T: "halber ring links unter der verzierung"] # 0x31c (en: 'left half ring below embellishment', google translation) - - "̝": [T: "aufwärtsklammer unter verzierung"] # 0x31d (en: 'up tack below embellishment', google translation) - - "̞": [T: "abwärtsklammer unter der verzierung"] # 0x31e (en: 'down tack below embellishment', google translation) - - "̟": [T: "pluszeichen unter der verzierung"] # 0x31f (en: 'plus sign below embellishment', google translation) - - "̠": [T: "minuszeichen unter der verzierung"] # 0x320 (en: 'minus sign below embellishment', google translation) - - "̡": [T: "palatalisierter haken unter der verzierung"] # 0x321 (en: 'palatalized hook below embellishment', google translation) - - "̢": [T: "retroflex-haken unter der verzierung"] # 0x322 (en: 'retroflex hook below embellishment', google translation) - - "̣": [T: "punkt unter der verzierung"] # 0x323 (google: 'punkt unter der verzierung') - - "̤": [T: "zwei punkte unter der verzierung"] # 0x324 (en: 'diaeresis below embellishment', google: 'diaerese unter der verzierung') - - "̥": [T: "ring unter der verzierung"] # 0x325 (en: 'ring below embellishment', google translation) - - "̦": [T: "komma unter der verzierung"] # 0x326 (en: 'comma below embellishment', google translation) - - "̧": [T: "cedillaverzierung"] # 0x327 (google: 'cedilla -verzierung') - - "̨": [T: "ogonek-verzierung"] # 0x328 (en: 'ogonek embellishment', google translation) - - "̩": [T: "vertikale linie unter der verzierung"] # 0x329 (en: 'vertical line below embellishment', google translation) - - "̪": [T: "brücke unterhalb der verzierung"] # 0x32a (en: 'bridge below embellishment', google translation) - - "̫": [T: "umgekehrter doppelbogen unter der verzierung"] # 0x32b (en: 'inverted double arch below embellishment', google translation) - - "̬": [T: "caron unter der verzierung"] # 0x32c (en: 'caron below embellishment', google translation) - - "̭": [T: "zirkumflexakzent unter der verzierung"] # 0x32d (en: 'circumflex accent below embellishment', google translation) - - "̮": [T: "breve unter der verzierung"] # 0x32e (en: 'breve below embellishment', google: 'breve unter der verzierung') - - "̯": [T: "umgekehrtes breve unter der verzierung"] # 0x32f (en: 'inverted breve below embellishment', google translation) - - "̰": [T: "tilde unter der verzierung"] # 0x330 (google: 'tilde unter der verzierung') - - "̱": [T: "makron unter der verzierung"] # 0x331 (google: 'macron unter der verzierung') - - "̲": [T: "unterlinie"] # 0x332 (en: 'low line embellishment', google: 'niedriglinienverzerrung') - - "̳": [T: "doppelte unterlinie"] # 0x333 (en: 'double low line embellishment', google translation) - - "̴": [T: "tilde-überlagerungsverzierung"] # 0x334 (en: 'tilde overlay embellishment', google translation) - - "̵": [T: "kurzstrich-überlagerungsverzierung"] # 0x335 (en: 'short stroke overlay embellishment', google translation) - - "̶": [T: "langstrich-überlagerungsverzierung"] # 0x336 (en: 'long stroke overlay embellishment', google translation) - - "̷": [T: "kurzer solidus-überlagerungsverzierung"] # 0x337 (en: 'short solidus overlay embellishment', google translation) - - "̸": [T: "langer solidus-überlagerungsverzierung"] # 0x338 (en: 'long solidus overlay embellishment', google: 'long solidus overlay -verzierung') - - "̹": [T: "halber ring rechts unter der verzierung"] # 0x339 (en: 'right half ring below embellishment', google translation) - - "̺": [T: "umgekehrte brücke unter der verzierung"] # 0x33a (en: 'inverted bridge below embellishment', google translation) - - "̻": [T: "quadrat unter der verzierung"] # 0x33b (en: 'square below embellishment', google translation) - - "̼": [T: "möwe unter der verzierung"] # 0x33c (en: 'seagull below embellishment', google translation) - - "̽": [T: "x über verzierung"] # 0x33d (en: 'x above embellishment', google translation) - - "̾": [T: "vertikale tilde verzierung"] # 0x33e (en: 'vertical tilde embellishment', google translation) - - "̿": [T: "doppelte überstrichverzierung"] # 0x33f (en: 'double overline embellishment', google translation) - - "̀": [T: "gravistonmarkenverzierung"] # 0x340 (en: 'grave tone mark embellishment', google translation) - - "́": [T: "akute tonmarkenverzierung"] # 0x341 (en: 'acute tone mark embellishment', google translation) - - "͆": [T: "brücke oben"] # 0x346 (en: 'bridge above') - - - "ΪΫϏ": # 0x3aa, 0x3ab, 0x3cf - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "großbuchstaben"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [spell: "translate('.', 'ΪΫϏ', 'ιυϗ')"] - - T: "mit dialytika" # (en: 'with dialytika', google translation) - - "ϊ": [T: "iota mit dialytika"] # 0x3ca (en: 'iota with dialytika', google translation) - - "ϋ": [T: "upsilon mit dialytika"] # 0x3cb (en: 'upsilon with dialytika', google translation) - - "ό": [T: "omicron mit tonos"] # 0x3cc (en: 'omicron with tonos', google translation) - - "ύ": [T: "upsilon mit tonos"] # 0x3cd (en: 'upsilon with tonos', google translation) - - "ώ": [T: "omega mit tonos"] # 0x3ce (en: 'omega with tonos', google translation) - - "ϐ": [T: "beta"] # 0x3d0 (MathPlayer: 'greek beta') - - "ϑ": [T: "Variante Theta"] # 0x3d1 (en: 'theta', google: 'theta') - - "ϒ": [T: "Variante Upsilon mit Haken"] # 0x3d2 (en: 'upsilon with hook', google: 'upsilon mit haken') - - "ϓ": [T: "Upsilon mit Akutakzent und Haken"] # 0x3d3 (en: 'upsilon with acute and hook', google translation) - - "ϔ": [T: "Upsilon mit Diaeresis und Haken"] # 0x3d4 (en: 'upsilon with diaeresis and hook', google translation) - - "ϗ": [T: "kai"] # 0x3d7 (MathPlayer: 'variant kai') - - "Ϙ": [T: "großes archaisches koppa"] # 0x3d8 (en: 'cap archaic koppa') - - "ϙ": [T: "archaisches koppa"] # 0x3d9 (en: 'archaic koppa') - - "А-Я": # 0x410 - 0x42f - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "großbuchstaben"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [spell: "translate('.', 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ', 'абвгдежзийклмнопрстуфхцчшщъыьэюя')"] - - "а": [T: "a"] # 0x430 (google: 'а') - - "б": [T: "be"] # 0x431 (google: 'sei') - - "в": [T: "ve"] # 0x432 - - "г": [T: "ghe"] # 0x433 - - "д": [T: "de"] # 0x434 - - "е": [T: "ie"] # 0x435 (google: 'dh') - - "ж": [T: "zhe"] # 0x436 - - "з": [T: "ze"] # 0x437 - - "и": [T: "i"] # 0x438 (google: 'и') - - "й": [T: "kurzes i"] # 0x439 (google: 'kurz ich') - - "к": [T: "ka"] # 0x43a - - "л": [T: "el"] # 0x43b - - "м": [T: "em"] # 0x43c - - "н": [T: "en"] # 0x43d - - "о": [T: "o"] # 0x43e (google: 'о') - - "п": [T: "pe"] # 0x43f (google: 'sport') - - "р": [T: "er"] # 0x440 (google: 'ähm') - - "с": [T: "es"] # 0x441 - - "т": [T: "te"] # 0x442 - - "у": [T: "u"] # 0x443 (google: 'у') - - "ф": [T: "ef"] # 0x444 - - "х": [T: "ha"] # 0x445 - - "ц": [T: "tse"] # 0x446 - - "ч": [T: "che"] # 0x447 - - "ш": [T: "sha"] # 0x448 - - "щ": [T: "shcha"] # 0x449 - - "ъ": [T: "hartes Zeichen"] # 0x44a (google: 'hartes zeichen') - - "ы": [T: "yeru"] # 0x44b - - "ь": [T: "weiches Zeichen"] # 0x44c (google: 'weiches zeichen') - - "э": [T: "e"] # 0x44d (google: 'э') - - "ю": [T: "yu"] # 0x44e - - "я": [T: "ya"] # 0x44f - - "؆": [T: "arabisch-indische kubikwurzel"] # 0x606 (en: 'Arabic-Indic cube root') - - "؇": [T: "arabisch-indische vierte wurzel"] # 0x607 (en: 'Arabic-Indic fourth root') - - "؈": [T: "arabischer strahl"] # 0x608 (en: 'Arabic ray') - - "‐": [T: "Bindestrich"] # 0x2010 (en: 'hyphen', MathPlayer: 'minus', google: 'bindestrich') - - "‑": [T: "nicht-trennender Bindestrich"] # 0x2011 (en: 'hyphen', google: 'bindestrich') - - "‒": [T: "Figurenstrich"] # 0x2012 (en: 'figure dash', google: 'figur dash') - - "†": [T: "Dolch"] # 0x2020 (en: 'dagger', MathPlayer: 'dagger', google: 'dolch') - - "‡": [T: "Doppelter Dolch"] # 0x2021 (en: 'double dagger', MathPlayer: 'double dagger', google: 'doppeldolch') - - - " - ": [T: " "] # 0x2000 - 0x2007 - - - "•": # 0x2022 - - test: - if: "@data-chem-formula-op" - then: [T: "punkt"] # (en: 'dot', google translation) - else: [T: "Kugel"] # (en: 'bullet', MathPlayer: 'bullet', google: 'kugel') - - - "‰": [T: "promille"] # 0x2030 (en: 'per mille', MathPlayer: 'per mille sign', google: 'pro mille') - - "‱": [T: "pro Zehntausend"] # 0x2031 (en: 'per ten thousand', MathPlayer: 'per ten thousand sign', google: 'pro zehntausend') - - "‵": [T: "umgekehrter Strich"] # 0x2035 (en: 'reversed prime', MathPlayer: 'reversed prime', google: 'umgekehrt prime') - - "‶": [T: "zwei umgekehrte Striche"] # 0x2036 (en: 'reversed double prime', MathPlayer: 'reversed double prime', google: 'umgekehrt doppelte prime') - - "‷": [T: "drei umgekehrte Striche"] # 0x2037 (en: 'reversed triple prime', google: 'triple prime umgekehrt') - - "‸": [T: "Caret"] # 0x2038 (en: 'to the', google: 'zum') - - "‹": [T: "einfaches linkes Anführungszeichen"] # 0x2039 (en: 'single left pointing angle quote mark', MathPlayer: 'single left pointing angle quote mark', google: 'single linke zitat angle -zitat marke') - - "›": [T: "einfaches rechtes Anführungszeichen"] # 0x203a (en: 'single right pointing angle quote mark', MathPlayer: 'single right pointing angle quote mark', google: 'single rechts zeigewinkel zitatmarke') - - "‼": [T: "Doppelausrufezeichen"] # 0x203c (en: 'double factorial', google: 'doppelfaktor') - - "⁄": [T: "Schrägstrich"] # 0x2044 (en: 'divided by', MathPlayer: 'slash', google: 'geteilt durch') - - "⁅": [T: "Linke eckige Klammer mit Feder"] # 0x2045 (en: 'left square bracket with quill', google: 'linksquadratische klammer mit feder') - - "⁆": [T: "Rechte eckige Klammer mit Feder"] # 0x2046 (en: 'right square bracket with quill', google: 'rechte quadratische halterung mit feder') - - "※": [T: "referenzzeichen"] # 0x203b (en: 'reference mark') - - "‿": [T: "verbindungsbogen unten"] # 0x203f (en: 'under tie') - - "⁀": [T: "verbindungsbogen"] # 0x2040 (en: 'tie') - - "⁎": [T: "tiefer asterisk"] # 0x204e (en: 'low asterisk') - - "⁏": [T: "umgekehrtes semikolon"] # 0x204f (en: 'reversed semicolon') - - "⁐": [T: "schließen"] # 0x2050 (en: 'close up') - - "⁑": [T: "zwei vertikale asterisken"] # 0x2051 (en: 'two vertical asterisks') - - "⁒": [T: "kommerzielles minuszeichen"] # 0x2052 (en: 'commercial minus sign') - - "⁗": [T: "vier Striche"] # 0x2057 (en: 'quadruple prime', MathPlayer: 'quadruple prime', google: 'vierfache prime') - - "⁠": [T: ""] # 0x2060 - - "‵": [T: "umgekehrter Strich"] # 0x2035 (en: 'reversed prime', MathPlayer: 'reversed prime', google: 'umgekehrt prime') - - "‶": [T: "zwei umgekehrte Striche"] # 0x2036 (en: 'reversed double prime', MathPlayer: 'reversed double prime', google: 'umgekehrt doppelte prime') - - "‷": [T: "drei umgekehrte Striche"] # 0x2037 (en: 'reversed triple prime', google: 'triple prime umgekehrt') - - "⁰": [T: "zur nullten Potenz"] # 0x2070 (en: 'to the zeroth power', google translation) - - "ⁱ": [T: "zur i-ten Potenz"] # 0x2071 (en: 'to the ith power', google: 'zur eihth -macht') - - "⁴": [T: "zur vierten Potenz"] # 0x2074 (en: 'to the fourth power', google translation) - - "⁵": [T: "zur fünften Potenz"] # 0x2075 (en: 'to the fifth power', google translation) - - "⁶": [T: "zur sechsten Potenz"] # 0x2076 (en: 'to the sixth power', google translation) - - "⁷": [T: "zur siebten Potenz"] # 0x2077 (en: 'to the seventh power', google translation) - - "⁸": [T: "zur achten Potenz"] # 0x2078 (en: 'to the eighth power', google translation) - - "⁹": [T: "zur neunten Potenz"] # 0x2079 (en: 'to the ninth power', google translation) - - "⁺": [T: "Hochgestelltes Pluszeichen"] # 0x207a (en: 'superscript plus sign', google: 'superscript plus zeichen') - - "⁻": [T: "Hochgestelltes Minus"] # 0x207b (en: 'superscript minus', google: 'superscript minus') - - "⁼": [T: "Hochgestelltes Gleichheitszeichen"] # 0x207c (en: 'superscript equals sign', google: 'superscript ist gleichzeichen') - - "⁽": [T: "Hochgestellte linke Klammer"] # 0x207d (en: 'superscript left parenthesis', google: 'superscript links klammern') - - "⁾": [T: "Hochgestellte rechte Klammer"] # 0x207e (en: 'superscript right parenthesis', google: 'superscript right parenthesisthese') - - "ⁿ": [T: "hochgestelltes n"] # 0x207f (en: 'to the ennth power', google: 'zur ahnten kraft') - - "₀": [T: "tiefgestellte null"] # 0x2080 (en: 'sub zero', google translation) - - "₁": [T: "tiefgestellte eins"] # 0x2081 (en: 'sub one', google translation) - - "₂": [T: "tiefgestellte zwei"] # 0x2082 (en: 'sub two', google translation) - - "₃": [T: "tiefgestellte drei"] # 0x2083 (en: 'sub three', google translation) - - "₄": [T: "tiefgestellte vier"] # 0x2084 (en: 'sub four', google translation) - - "₅": [T: "tiefgestellte fünf"] # 0x2085 (en: 'sub five', google translation) - - "₆": [T: "tiefgestellte sechs"] # 0x2086 (en: 'sub six', google translation) - - "₇": [T: "tiefgestellte sieben"] # 0x2087 (en: 'sub seven', google translation) - - "₈": [T: "tiefgestellte acht"] # 0x2088 (en: 'sub eight', google translation) - - "₉": [T: "tiefgestellte neun"] # 0x2089 (google translation) - - "₊": [T: "Tiefgestelltes Pluszeichen"] # 0x208a (en: 'subscript plus sign', google: 'index plus -zeichen') - - "₋": [T: "Tiefgestelltes Minuszeichen"] # 0x208b (en: 'subscript minus sign', google: 'index minuszeichen') - - "₌": [T: "Tiefgestelltes Gleichheitszeichen"] # 0x208c (en: 'subscript equals sign', google: 'index gleicher bestandteil des zeichens') - - "₍": [T: "Tiefgestellte linke Klammer"] # 0x208d (en: 'subscript left parenthesis', google: 'untergangsklammern von klammern') - - "₎": [T: "Tiefgestellte rechte Klammer"] # 0x208e (en: 'subscript right parenthesis', google: 'index right parenthesisthese') - - "ₐ": [T: "tiefgestelltes a"] # 0x2090 (en: 'sub A', google: 'sub a') - - "ₑ": [T: "tiefgestelltes e"] # 0x2091 (en: 'sub E', google: 'sub e') - - "ₒ": [T: "tiefgestelltes o"] # 0x2092 (en: 'sub O', google: 'sub o') - - "ₓ": [T: "tiefgestelltes x"] # 0x2093 (en: 'sub X', google: 'sub x') - - "ₕ": [T: "tiefgestelltes h"] # 0x2095 (en: 'sub H', google: 'sub h') - - "ₖ": [T: "tiefgestelltes k"] # 0x2096 (en: 'sub K', google: 'subk') - - "ₗ": [T: "tiefgestelltes l"] # 0x2097 (en: 'sub L', google: 'sub l') - - "ₘ": [T: "tiefgestelltes m"] # 0x2098 (en: 'sub M', google: 'sub m') - - "ₙ": [T: "tiefgestelltes n"] # 0x2099 (en: 'sub N', google: 'sub n') - - "ₚ": [T: "tiefgestelltes p"] # 0x209a (en: 'sub P', google: 'sub p') - - "ₛ": [T: "tiefgestelltes s"] # 0x209b (en: 'sub S', google: 'sub s') - - "ₜ": [T: "tiefgestelltes t"] # 0x209c (en: 'sub T', google: 'sub t') - - "₠": [T: "europäische Währungseinheiten"] # 0x20a0 (en: 'european currenty units', google translation) - - "₡": [T: "Colón"] # 0x20a1 (google: 'kolons') - - "₢": [T: "cruzeiro"] # 0x20a2 - - "₣": [T: "franc"] # 0x20a3 - - "₤": [T: "lira"] # 0x20a4 - - "₥": [T: "mills"] # 0x20a5 (google: 'mühlen') - - "₦": [T: "naira"] # 0x20a6 - - "₧": [T: "peseta"] # 0x20a7 - - "₨": [T: "Rupien"] # 0x20a8 (google: 'rupien') - - "₩": [T: "won"] # 0x20a9 (google: 'gewonnen') - - "₪": [T: "neue Schekel"] # 0x20aa (google: 'neue sheqels') - - "₫": [T: "dong"] # 0x20ab - - "€": [T: "euros"] # 0x20ac (google: 'euro') - - "₭": [T: "kip"] # 0x20ad (google: 'pennen') - - "₮": [T: "tugrik"] # 0x20ae - - "₯": [T: "drachma"] # 0x20af (google: 'drachme') - - "₰": [T: "Deutscher Pfennig"] # 0x20b0 (google: 'deutsche pennys') - - "₱": [T: "pesos"] # 0x20b1 - - "₲": [T: "guaranis"] # 0x20b2 - - "₳": [T: "australs"] # 0x20b3 (google: 'österrale') - - "₴": [T: "hryvnias"] # 0x20b4 - - "₵": [T: "cedis"] # 0x20b5 - - "₶": [T: "livre tournois"] # 0x20b6 (google translation) - - "₷": [T: "spesmilos"] # 0x20b7 (google translation) - - "₸": [T: "tenges"] # 0x20b8 (google translation) - - "₹": [T: "indische rupien"] # 0x20b9 (en: 'indian rupees', google translation) - - "₺": [T: "türkische liras"] # 0x20ba (en: 'turkish liras', google translation) - - "⃐": [T: "linke Harpune über Verzierung"] # 0x20d0 (en: 'left harpoon above embellishment', google: 'links harpoon über verzierung') - - "⃑": [T: "rechte Harpune über Verzierung"] # 0x20d1 (en: 'right harpoon above embellishment', google: 'rechte harpoon über verzierung') - - "⃒": [T: "Verzierung mit langer vertikaler Linie"] # 0x20d2 (en: 'long vertical line overlay embellishment', google translation) - - "⃓": [T: "Verzierung mit kurzer vertikaler Linie"] # 0x20d3 (en: 'short vertical line overlay embellishment', google translation) - - "⃔": [T: "Pfeil gegen den Uhrzeigersinn über Verzierung"] # 0x20d4 (en: 'anticlockwise arrow above embellishment', google translation) - - "⃕": [T: "Pfeil im Uhrzeigersinn über Verzierung"] # 0x20d5 (en: 'clockwise arrow above embellishment', google translation) - - "⃖": [T: "Pfeil nach links über Verzierung"] # 0x20d6 (en: 'left arrow above embellishment', google: 'links pfeil über die verzierung') - - "⃗": [T: "Pfeil nach rechts über Verzierung"] # 0x20d7 (en: 'right arrow above embellishment', google: 'richtiger pfeil über die verzierung') - - "⃘": [T: "Ringüberlagerung als Verzierung"] # 0x20d8 (en: 'ring overlay embellishment', google translation) - - "⃙": [T: "ringüberlagerung im uhrzeigersinn"] # 0x20d9 (en: 'clockwise ring overlay embellishment', google translation) - - "⃚": [T: "ringüberlagerung gegen den uhrzeigersinn"] # 0x20da (en: 'anticlockwise ring overlay embellishment', google translation) - - "⃛": [T: "dreifacher punkt"] # 0x20db (en: 'triple dot', google: 'dreifacher punkt') - - "⃜": [T: "vierfacher punkt"] # 0x20dc (en: 'quadruple dot', google: 'vierfachpunkt punkt') - - "⃝": [T: "umschließender Kreis als Verzierung"] # 0x20dd (en: 'enclosing circle embellishment', google translation) - - "⃞": [T: "umschließendes Quadrat als Verzierung"] # 0x20de (en: 'enclosing square embellishment', google translation) - - "⃟": [T: "umschließender Diamant als Verzierung"] # 0x20df (en: 'enclosing diamond embellishment', google translation) - - "⃠": [T: "einschließender Kreis mit Schrägstrich als Verzierung"] # 0x20e0 (en: 'enclosing circle backslash embellishment', google translation) - - "⃡": [T: "Pfeil links-rechts über Verzierung"] # 0x20e1 (en: 'left right arrow above embellishment', google: 'links rechts pfeil über verzierung') - - "⃢": [T: "einschließende bildschirmverzierung"] # 0x20e2 (en: 'enclosing screen embellishment', google translation) - - "⃣": [T: "Umschließende Tastenkappenverzierung"] # 0x20e3 (en: 'enclosing keycap embellishment', google translation) - - "⃤": [T: "umschließende, nach oben zeigende Dreiecksverzierung"] # 0x20e4 (en: 'enclosing upward pointing triangle embellishment', google translation) - - "⃥": [T: "Umgekehrte Solidus-Überlagerung als Verzierung"] # 0x20e5 (en: 'reverse solidus overlay embellishment', google translation) - - "⃦": [T: "Doppelte vertikale Strichverzierung"] # 0x20e6 (en: 'double verticle stroke embellishment', google translation) - - "⃧": [T: "Annuitätensymbol-Verzierung"] # 0x20e7 (en: 'Verzierung mit Annuitätensymbol', google translation) - - "⃨": [T: "Dreifach-Unterpunkt"] # 0x20e8 (en: 'triple underdot', google translation) - - "⃩": [T: "breite brücke über verzierung"] # 0x20e9 (en: 'wide bridge above embellishment', google translation) - - "⃪": [T: "Verzierung mit nach links zeigendem Pfeil"] # 0x20ea (en: 'leftwards arrow overlay embellishment', google translation) - - "⃫": [T: "Verzierung mit langem, doppeltem Strichüberzug"] # 0x20eb (en: 'long double solidus overlay embellishment', google translation) - - "⃬": [T: "Rechtshaken mit Widerhaken nach unten verziert"] # 0x20ec (en: 'rightwards harpoon with barb downwards embellishment', google translation) - - "⃭": [T: "Linkshaken mit Widerhaken nach unten verziert"] # 0x20ed (en: 'leftwards harpoon with barb downwards embellishment', google translation) - - "⃮": [T: "Pfeil nach links unter Verzierung"] # 0x20ee (en: 'left arrow below embellishment', google translation) - - "⃯": [T: "Pfeil nach rechts unter Verzierung"] # 0x20ef (en: 'right arrow below embellishment', google translation) - - "⃰": [T: "sternchen über verzierung"] # 0x20f0 (en: 'asterisk above embellishment', google translation) - - "℄": [T: "mittelliniensymbol"] # 0x2104 (en: 'center line symbol', google translation) - - "℅": [T: "im Auftrag von"] # 0x2105 (google: 'pflege von') - - "℆": [T: "cada una"] # 0x2106 (google translation) - - "ℇ": [T: "Euler-Konstante"] # 0x2107 (en: 'euler's constant', google: 'eulers konstante') - - "℈": [T: "skrupel"] # 0x2108 (en: 'scruples', google translation) - - "ℊ": [T: "Skript G"] # 0x210a (google: 'skript g') - - "ℌℑℨℭ": # 0x210c, 0x2111, 0x2128, 0x212d - - T: "Fraktur" # (en: 'fraktur', google: 'fraktur') - - spell: "translate('.', 'ℌℑℨℭ', 'HIZC')" - - - "ℍℙℾℿ": # 0x210d, 0x2119, 0x213e, 0x213f - - test: - if: "$Verbosity!='Terse'" - then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) - - spell: "translate('.', 'ℍℙℾℿ', 'HPΓΠ')" - - - "ℏ": # 0x210f - - test: - if: "($Verbosity='Terse')" - then: [T: "h bar"] # (google translation) - else: [T: "Planck-Konstante über zwei Pi"] # (en: 'reduced planck constant', MathPlayer: 'h bar', google: 'reduzierte planckkonstante') - - - "ℐℒ℘ℬℰℱℳ": # 0x2110, 0x2112, 0x2118, 0x2130, 0x2131, 0x2133 - - T: "Skript" # (en: 'script', MathPlayer: 'h bar', google: 'skript') - - spell: "translate('.', 'ℐℒ℘ℬℰℱℳ', 'ILPBEFM')" - - - "℔": [T: "L B Balkensymbol"] # 0x2114 (en: 'pounds', google: 'pfund') - - "№": [T: "Numero-Zeichen"] # 0x2116 (en: 'number', MathPlayer: 'numero sign', google: 'nummer') - - "℥": [T: "Unze-Zeichen"] # 0x2125 (en: 'ounces', MathPlayer: 'ounce sign', google: 'unzen') - - "℧": [T: "Umgekehrtes Ohm-Zeichen"] # 0x2127 (en: 'mhos', MathPlayer: 'inverted ohm', google: 'mhos') - - "℩": [T: "gedrehtes Iota"] # 0x2129 (google: 'drehte iota') - - "ℯ": [T: "Skript E"] # 0x212f (google: 'skript e') - - # coalesced some chars that use cap letters - - "Ⅎ℺⅁⅂⅃⅄": # 0x2132, 0x213a, 0x2141, 0x2142, 0x2143, 0x2144 - - test: - - if: "'.' = '℺'" - then: [T: "gedreht"] # (en: 'rotated', google translation) - - else_if: "'.' = 'Ⅎ'" - then: [T: "gedreht"] # (en: 'turned', google translation) - - else_if: "'.' = '⅃'" - then: [T: "umgekehrt ohne serif"] # (en: 'reversed sans-serif', google translation) - else: [T: "script e"] # (en: 'turned sans-serif', google: 'drehte ohne serif') - - spell: "translate('.', 'Ⅎ℺⅁⅂⅃⅄', 'FQGLLY')" - - - "ℴ": [T: "Skript O"] # 0x2134 (google: 'skript o') - - "ℵ": [T: "Alef-Symbol"] # 0x2135 (en: 'first transfinite cardinal', MathPlayer: 'alef', google: 'erster transfinite kardinal') - - "ℶ": [T: "Bet-Symbol"] # 0x2136 (en: 'second transfinite cardinal', MathPlayer: 'bet', google: 'zweiter transfinite kardinal') - - "ℷ": [T: "Gimel-Symbol"] # 0x2137 (en: 'third transfinite cardinal', MathPlayer: 'gimel', google: 'dritter transfinite kardinal') - - "ℸ": [T: "Dalet-Symbol"] # 0x2138 (en: 'fourth transfinite cardinal', MathPlayer: 'dalet', google: 'viertes transfinite kardinal') - - "ℼ": [T: "pi mit Doppelstrich"] # 0x213c (en: 'double struck pi', google: 'doppelt geschlagen pi') - - "ℽ": [T: "gamma mit Doppelstrich"] # 0x213d (en: 'double struck gamma', google: 'doppelt geschlagen gamma') - - "⅀": [T: "Summenzeichen mit Doppelstrich"] # 0x2140 (en: 'double struck n-ary summation', google: 'doppelte n-ary-summierung') - - "⅋": [T: "Ampersand gedreht"] # 0x214b (en: 'turned ampersand', google: 'ampers umgedreht') - - "⅌": [T: "Pro Zeichen"] # 0x214c (en: 'per', google: 'pro') - - "ⅎ": [T: "Gedreht klein F"] # 0x214e (en: 'turned F', google: 'drehte f') - - "¼": [T: "ein Viertel"] # 0x00bc (en: 'one quarter') - - "½": [T: "ein Halb"] # 0x00bd (en: 'one half') - - "¾": [T: "drei Viertel"] # 0x00be (en: 'three quarters') - - "⅐": [T: "ein Siebtel"] # 0x2150 (en: 'one seventh') - - "⅑": [T: "ein Neuntel"] # 0x2151 (en: 'one ninth', google: 'ein neunter') - - "⅒": [T: "ein Zehntel"] # 0x2152 (en: 'one tenth') - - "⅓": [T: "ein Drittel"] # 0x2153 (en: 'one third', MathPlayer: 'vulgar fraction one third') - - "⅔": [T: "zwei Drittel"] # 0x2154 (en: 'two thirds', MathPlayer: 'vulgar fraction two thirds') - - "⅕": [T: "ein Fünftel"] # 0x2155 (en: 'one fifth', MathPlayer: 'vulgar fraction one fifth') - - "⅖": [T: "zwei Fünftel"] # 0x2156 (en: 'two fifths', MathPlayer: 'vulgar fraction two fifths') - - "⅗": [T: "drei Fünftel"] # 0x2157 (en: 'three fifths', MathPlayer: 'vulgar fraction three fifths') - - "⅘": [T: "vier Fünftel"] # 0x2158 (en: 'four fifths', MathPlayer: 'vulgar fraction four fifths') - - "⅙": [T: "ein Sechstel"] # 0x2159 (en: 'one sixth', MathPlayer: 'vulgar fraction one sixth') - - "⅚": [T: "fünf Sechstel"] # 0x215a (en: 'five sixths', MathPlayer: 'vulgar fraction five sixths') - - "⅛": [T: "ein Achtel"] # 0x215b (en: 'one eighth', MathPlayer: 'vulgar fraction one eighth', google: 'ein ath') - - "⅜": [T: "drei Achtel"] # 0x215c (en: 'three eighths', MathPlayer: 'vulgar fraction three eighths', google: 'drei aths') - - "⅝": [T: "fünf Achtel"] # 0x215d (en: 'five eighths', MathPlayer: 'vulgar fraction five eighths', google: 'fünf aths') - - "⅞": [T: "sieben Achtel"] # 0x215e (en: 'seven eighths', MathPlayer: 'vulgar fraction seven eighths', google: 'sieben aths') - - "⅟": [T: "Bruchzähler eins"] # 0x215f (en: 'one over', google: 'eins vorbei') - - "Ⅰ": [T: "Ⅰ"] # 0x2160 (en: 'I', google translation) - - "Ⅱ": [T: "i i"] # 0x2161 (en: 'I I', google translation) - - "Ⅲ": [T: "i i i"] # 0x2162 (en: 'I I I', google translation) - - "Ⅳ": [T: "i v"] # 0x2163 (en: 'I V', google translation) - - "Ⅴ": [T: "Ⅴ"] # 0x2164 (en: 'V', google translation) - - "Ⅵ": [T: "v i"] # 0x2165 (en: 'V I', google translation) - - "Ⅶ": [T: "v i i"] # 0x2166 (en: 'V I I', google translation) - - "Ⅷ": [T: "v i i i"] # 0x2167 (en: 'V I I I', google translation) - - "Ⅸ": [T: "i x"] # 0x2168 (en: 'I X', google translation) - - "Ⅹ": [T: "Ⅹ"] # 0x2169 (en: 'X', google translation) - - "Ⅺ": [T: "x i"] # 0x216a (en: 'X I', google translation) - - "Ⅻ": [T: "x i i"] # 0x216b (en: 'X I I', google translation) - - "Ⅼ": [T: "Ⅼ"] # 0x216c (en: 'L', google translation) - - "Ⅽ": [T: "Ⅽ"] # 0x216d (en: 'C', google translation) - - "Ⅾ": [T: "Ⅾ"] # 0x216e (en: 'D', google translation) - - "Ⅿ": [T: "Ⅿ"] # 0x216f (en: 'M', google translation) - - "ⅰ": [T: "ⅰ"] # 0x2170 (en: 'I', google translation) - - "ⅱ": [T: "i i"] # 0x2171 (en: 'I I', google translation) - - "ⅲ": [T: "i i i"] # 0x2172 (en: 'I I I', google translation) - - "ⅳ": [T: "i v"] # 0x2173 (en: 'I V', google translation) - - "ⅴ": [T: "ⅴ"] # 0x2174 (en: 'V', google translation) - - "ⅵ": [T: "v i"] # 0x2175 (en: 'V I', google translation) - - "ⅶ": [T: "v i i"] # 0x2176 (en: 'V I I', google translation) - - "ⅷ": [T: "v i i i"] # 0x2177 (en: 'V I I I', google translation) - - "ⅸ": [T: "i x"] # 0x2178 (en: 'I X', google translation) - - "ⅹ": [T: "ⅹ"] # 0x2179 (en: 'X', google translation) - - "ⅺ": [T: "x i"] # 0x217a (en: 'X I', google translation) - - "ⅻ": [T: "x i i"] # 0x217b (en: 'X I I', google translation) - - "ⅼ": [T: "ⅼ"] # 0x217c (en: 'L', google translation) - - "ⅽ": [T: "ⅽ"] # 0x217d (en: 'C', google translation) - - "ⅾ": [T: "ⅾ"] # 0x217e (en: 'D', google translation) - - "ⅿ": [T: "ⅿ"] # 0x217f (en: 'M', google translation) - - "↉": [T: "null drittel"] # 0x2189 (en: 'zero thirds') - - "↔": [T: "Pfeil nach links und rechts"] # 0x2194 (en: 'left right arrow', MathPlayer: 'left right arrow', google: 'links rechts pfeil') - - "↕": [T: "Pfeil nach oben und unten"] # 0x2195 (en: 'up down arrow', MathPlayer: 'up down arrow', google: 'auf pfeil runter') - - "↖": [T: "Nordwestpfeil"] # 0x2196 (en: 'north west arrow', MathPlayer: 'north west arrow', google: 'nordwestpfeil') - - "↗": # 0x2197 - - test: - if: "ancestor::*[2][self::m:limit]" - then: [T: "annähernd von unten"] # (en: 'approaches from below', google translation) - else: [T: "Nordostpfeil"] # (en: 'north east arrow', MathPlayer: 'north east arrow', google: 'nordostpfeil') - - - "↘": # 0x2198 - - test: - if: "ancestor::*[2][self::m:limit]" - then: [T: "nähert sich von oben"] # (en: 'approaches from above', google translation) - else: [T: "Südostpfeil"] # (en: 'south east arrow', MathPlayer: 'south east arrow', google: 'south east pfeil') - - - "↙": [T: "Südwestpfeil"] # 0x2199 (en: 'south west arrow', MathPlayer: 'south west arrow', google: 'südwestpfeil') - - "↚": [T: "Pfeil nach links mit Strich"] # 0x219a (en: 'leftwards arrow with stroke', MathPlayer: 'leftwards arrow with stroke', google: 'links pfeil mit schlaganfall') - - "↛": [T: "Pfeil nach rechts mit Strich"] # 0x219b (en: 'rightwards arrow with stroke', MathPlayer: 'rightwards arrow with stroke', google: 'richtiger pfeil mit schlaganfall') - - "↜": [T: "Wellenpfeil nach links"] # 0x219c (en: 'leftwards wave arrow', MathPlayer: 'leftwards wave arrow', google: 'linkswellenpfeil') - - "↝": [T: "Wellenpfeil nach rechts"] # 0x219d (en: 'rightwards wave arrow', MathPlayer: 'rightwards wave arrow', google: 'rightwards wave pfeil') - - "↞": [T: "Pfeil mit zwei Spitzen nach links "] # 0x219e (en: 'leftwards two headed arrow', MathPlayer: 'leftwards two headed arrow', google: 'links zwei köpfe pfeil') - - "↟": [T: "Aufwärts gerichteter Doppelpfeil"] # 0x219f (en: 'upwards two headed arrow', MathPlayer: 'upwards two headed arrow', google: 'auf zwei köpfe pfeil') - - "↠": [T: "Pfeil mit zwei Spitzen nach rechts"] # 0x21a0 (en: 'rightwards two headed arrow', MathPlayer: 'rightwards two headed arrow', google: 'richtig zwei köpfe pfeil') - - "↡": [T: "Abwärts gerichteter Doppelpfeil"] # 0x21a1 (en: 'downwards two headed arrow', MathPlayer: 'downwards two headed arrow', google: 'nach unten zwei köpfe pfeil') - - "↢": [T: "Pfeil nach links mit Schwanz"] # 0x21a2 (en: 'leftwards arrow with tail', MathPlayer: 'leftwards arrow with tail', google: 'linkspfeil mit schwanz') - - "↣": [T: "Pfeil nach rechts mit Schwanz"] # 0x21a3 (en: 'rightwards arrow with tail', MathPlayer: 'rightwards arrow with tail', google: 'richtiger pfeil mit schwanz') - - "↤": [T: "Pfeil nach links von der Leiste"] # 0x21a4 (en: 'leftwards arrow from bar', MathPlayer: 'leftwards arrow from bar', google: 'links pfeil aus der bar') - - "↥": [T: "Aufwärtspfeil von der Leiste"] # 0x21a5 (en: 'upwards arrow from bar', MathPlayer: 'upwards arrow from bar', google: 'aufwärter pfeil aus der bar') - - "↦": [T: "Pfeil nach rechts von der Leiste"] # 0x21a6 (en: 'rightwards arrow from bar', MathPlayer: 'rightwards arrow from bar', google: 'richtiger pfeil aus der bar') - - "↧": [T: "Abwärtspfeil von der Leiste"] # 0x21a7 (en: 'downwards arrow from bar', MathPlayer: 'downwards arrow from bar', google: 'nach unten pfeil aus der bar') - - "↨": [T: "Aufwärts-/Abwärtspfeil mit Sockel"] # 0x21a8 (en: 'up down arrow with base', MathPlayer: 'up down arrow with base', google: 'mit der basis auf pfeil runter') - - "↩": [T: "Pfeil nach links mit Haken"] # 0x21a9 (en: 'leftwards arrow with hook', MathPlayer: 'leftwards arrow with hook', google: 'links pfeil mit haken') - - "↪": [T: "Pfeil nach rechts mit Haken"] # 0x21aa (en: 'rightwards arrow with hook', MathPlayer: 'rightwards arrow with hook', google: 'richtiger pfeil mit haken') - - "↫": [T: "Pfeil nach links mit Schleife"] # 0x21ab (en: 'leftwards arrow with loop', MathPlayer: 'leftwards arrow with loop', google: 'linkspfeil mit schleife') - - "↬": [T: "Pfeil nach rechts mit Schleife"] # 0x21ac (en: 'rightwards arrow with loop', MathPlayer: 'rightwards arrow with loop', google: 'richtiger pfeil mit schleife') - - "↭": [T: "Linker rechter Wellenpfeil"] # 0x21ad (en: 'left right wave arrow', MathPlayer: 'left right wave arrow', google: 'linke rechte wellenpfeil') - - "↮": [T: "Pfeil nach links und rechts durchgesctrichen"] # 0x21ae (en: 'left right arrow with stroke', MathPlayer: 'left right arrow with stroke', google: 'links rechts pfeil mit schlaganfall') - - "↯": [T: "Zickzack-Pfeil nach unten"] # 0x21af (en: 'downwards zigzag arrow', MathPlayer: 'downwards zigzag arrow', google: 'nach unten zickzack pfeil') - - "↰": [T: "Aufwärtspfeil mit Spitze nach links"] # 0x21b0 (en: 'upwards arrow with tip leftwards', MathPlayer: 'upwards arrow with tip leftwards', google: 'aufwärts mit tipp links nach oben') - - "↱": [T: "Aufwärtspfeil mit Spitze nach rechts"] # 0x21b1 (en: 'upwards arrow with tip rightwards', MathPlayer: 'upwards arrow with tip rightwards', google: 'aufwärts mit tipp nach oben nach oben') - - "↲": [T: "Abwärtspfeil mit Spitze nach links"] # 0x21b2 (en: 'downwards arrow with tip leftwards', MathPlayer: 'downwards arrow with tip leftwards', google: 'nach links nach unten pfeil nach unten') - - "↳": [T: "Abwärtspfeil mit Spitze nach rechts"] # 0x21b3 (en: 'downwards arrow with tip rightwards', MathPlayer: 'downwards arrow with tip rightwards', google: 'nach unten pfeil mit tipp nach rechts') - - "↴": [T: "Pfeil nach rechts mit nach unten gerichteter Ecke"] # 0x21b4 (en: 'rightwards arrow with corner downwards', MathPlayer: 'rightwards arrow with corner downwards', google: 'richtiger pfeil mit ecke nach unten') - - "↵": [T: "Pfeil nach unten mit Ecke nach links"] # 0x21b5 (en: 'downwards arrow with corner leftwards', MathPlayer: 'downwards arrow with corner leftwards', google: 'nach links von ecke nach unten pfeil nach unten') - - "↶": [T: "oberer halbkreisförmiger Pfeil gegen den Uhrzeigersinn "] # 0x21b6 (en: 'anticlockwise top semicircle arrow', MathPlayer: 'anticlockwise top semicircle arrow', google: 'top -semicircle -pfeil gegen den uhrzeigersinn') - - "↷": [T: "oberer halbkreisförmiger Pfeil im Uhrzeigersinn"] # 0x21b7 (en: 'clockwise top semicircle arrow', MathPlayer: 'clockwise top semicircle arrow', google: 'im uhrzeigersinn oberen halbkreispfeil') - - "↸": [T: "Nordwestpfeil zu langem Sockel"] # 0x21b8 (en: 'north west arrow to long bar', MathPlayer: 'north west arrow to long bar', google: 'nordwestpfeil in die lange bar') - - "↹": [T: "Pfeil nach links über Pfeil nach rechts"] # 0x21b9 (en: 'leftwards arrow to bar over rightwards arrow to bar', MathPlayer: 'leftwards arrow to bar over rightwards arrow to bar', google: 'der pfeil nach links, um über den pfeil nach rechts in die bar zu barken') - - "↺": [T: "Offener Kreispfeil gegen den Uhrzeigersinn"] # 0x21ba (en: 'anticlockwise open circle arrow', MathPlayer: 'anticlockwise open circle arrow', google: 'open circle arrow gegen den uhrzeigersinn') - - "↻": [T: "Offener Kreispfeil im Uhrzeigersinn"] # 0x21bb (en: 'clockwise open circle arrow', MathPlayer: 'clockwise open circle arrow', google: 'pfeil im uhrzeigersinn') - - "↼": [T: "Linke Harpune oben"] # 0x21bc (en: 'left harpoon up', MathPlayer: 'left harpoon up', google: 'ließ harpoon hoch') - - "↽": [T: "Linke Harpune unten"] # 0x21bd (en: 'left harpoon down', MathPlayer: 'left harpoon down', google: 'ließ harpoon nieder') - - "↾": [T: "Harpune rechts oben"] # 0x21be (en: 'up harpoon right', MathPlayer: 'up harpoon right', google: 'harpoon rechts') - - "↿": [T: "Harpune links oben"] # 0x21bf (en: 'up harpoon left', MathPlayer: 'up harpoon left', google: 'harpune nach oben') - - "⇀": [T: "Rechte Harpune oben"] # 0x21c0 (en: 'right harpoon up', MathPlayer: 'right harpoon up', google: 'richtige harpoon hoch') - - "⇁": [T: "Rechte Harpune unten"] # 0x21c1 (en: 'right harpoon down', MathPlayer: 'right harpoon down', google: 'richtige harpune unten') - - "⇂": [T: "Harpune rechts unten"] # 0x21c2 (en: 'down harpoon right', MathPlayer: 'down harpoon right', google: 'harpoon rechts') - - "⇃": [T: "Harpune links unten"] # 0x21c3 (en: 'down harpoon left', MathPlayer: 'down harpoon left', google: 'harpoon nach unten') - - "⇄": [T: "Pfeil nach rechts über Pfeil nach links"] # 0x21c4 (en: 'rightwards arrow over leftwards arrow', MathPlayer: 'rightwards arrow over leftwards arrow', google: 'rechten pfeil über den linken pfeil') - - "⇅": [T: "Pfeil nach oben links neben Pfeil nach unten"] # 0x21c5 (en: 'upwards arrow leftwards of downwards arrow', MathPlayer: 'upwards arrow leftwards of downwards arrow', google: 'aufwärts links vom abwärtsspfeil nach oben') - - "⇆": [T: "Pfeil nach links über Pfeil nach rechts"] # 0x21c6 (en: 'leftwards arrow over rightwards arrow', MathPlayer: 'leftwards arrow over rightwards arrow', google: 'links pfeil über rechts pfeil') - - "⇇": [T: "Links gepaarte Pfeile"] # 0x21c7 (en: 'leftwards paired arrows', MathPlayer: 'leftwards paired arrows', google: 'links gepaarte pfeile') - - "⇈": [T: "Aufwärts gepaarte Pfeile"] # 0x21c8 (en: 'upwards paired arrows', MathPlayer: 'upwards paired arrows', google: 'nach oben gepaarte pfeile') - - "⇉": [T: "Rechts gepaarte Pfeile"] # 0x21c9 (en: 'rightwards paired arrows', MathPlayer: 'rightwards paired arrows', google: 'rechtspaare pfeile') - - "⇊": [T: "Abwärts gepaarte Pfeile"] # 0x21ca (en: 'downwards paired arrows', MathPlayer: 'downwards paired arrows', google: 'abwärts gepaarte pfeile') - - "⇋": [T: "Harpune nach links über Harpune nach rechts"] # 0x21cb (en: 'left harpoon over right harpoon', MathPlayer: 'left harpoon over right harpoon', google: 'linke harpoon über die rechte harpune') - - "⇌": [T: "Harpune nach rechts über Harpune nach links"] # 0x21cc (en: 'right harpoon over left harpoon', MathPlayer: 'right harpoon over left harpoon', google: 'rechte harpune über die linke harpune') - - "⇍": [T: "Doppelpfeil nach links mit Strich"] # 0x21cd (en: 'leftwards double arrow with stroke', MathPlayer: 'leftwards double arrow with stroke', google: 'links -doppelpfeil mit schlaganfall') - - "⇎": [T: "Links Rechts Doppelpfeil mit Strich"] # 0x21ce (en: 'left right double arrow with stroke', MathPlayer: 'left right double arrow with stroke', google: 'links rechts doppelpfeil mit schlaganfall') - - "⇏": [T: "Doppelpfeil nach rechts mit Strich"] # 0x21cf (en: 'rightwards double arrow with stroke', MathPlayer: 'rightwards double arrow with stroke', google: 'richtiger doppelpfeil mit schlaganfall') - - "⇐": [T: "Doppelpfeil nach links"] # 0x21d0 (en: 'leftwards double arrow', MathPlayer: 'leftwards double arrow', google: 'links doppelpfeil') - - "⇑": [T: "Doppelpfeil nach oben"] # 0x21d1 (en: 'upwards double arrow', MathPlayer: 'upwards double arrow', google: 'double -pfeil nach oben') - - "⇓": [T: "Doppelpfeil nach unten"] # 0x21d3 (en: 'downwards double arrow', MathPlayer: 'downwards double arrow', google: 'downwards doppelpfeil') - - "⇔": [T: "Linker rechter Doppelpfeil"] # 0x21d4 (en: 'left right double arrow', MathPlayer: 'left right double arrow', google: 'links rechts doppelpfeil') - - "⇕": [T: "Doppelpfeil nach oben und unten"] # 0x21d5 (en: 'up down double arrow', MathPlayer: 'up down double arrow', google: 'doppelpfeil nach oben') - - "⇖": [T: "Nordwest-Doppelpfeil"] # 0x21d6 (en: 'north west double arrow', MathPlayer: 'north west double arrow', google: 'nordwesten doppelpfeil') - - "⇗": [T: "Nordost-Doppelpfeil"] # 0x21d7 (en: 'north east double arrow', MathPlayer: 'north east double arrow', google: 'nordost -doppelpfeil') - - "⇘": [T: "Südost Doppelpfeil"] # 0x21d8 (en: 'south east double arrow', MathPlayer: 'south east double arrow', google: 'south east doppelpfeil') - - "⇙": [T: "Südwest-Doppelpfeil"] # 0x21d9 (en: 'south west double arrow', MathPlayer: 'south west double arrow', google: 'south west doppelpfeil') - - "⇚": [T: "Dreifacher Pfeil nach links"] # 0x21da (en: 'leftwards triple arrow', MathPlayer: 'leftwards triple arrow', google: 'links dreifach pfeil') - - "⇛": [T: "Dreifacher Pfeil nach rechts"] # 0x21db (SRE: 'Dreifacher Pfeil nach rechts') - - "⇜": [T: "Nach links gekrümmter Pfeil"] # 0x21dc (en: 'leftwards squiggle arrow', MathPlayer: 'leftwards squiggle arrow', google: 'linkskundgier pfeil') - - "⇝": [T: "Nach rechts gekrümmter Pfeil"] # 0x21dd (en: 'rightwards squiggle arrow', MathPlayer: 'rightwards squiggle arrow', google: 'rightwards squiggle pfeil') - - "⇞": [T: "Aufwärtspfeil mit Doppelstrich"] # 0x21de (en: 'upwards arrow with double stroke', MathPlayer: 'upwards arrow with double stroke', google: 'aufwärts mit doppelhub') - - "⇟": [T: "Abwärtspfeil mit Doppelstrich"] # 0x21df (en: 'downwards arrow with double stroke', MathPlayer: 'downwards arrow with double stroke', google: 'nach unten pfeil mit doppelhub') - - "⇠": [T: "Gestrichelter Pfeil nach links"] # 0x21e0 (en: 'leftwards dashed arrow', MathPlayer: 'leftwards dashed arrow', google: 'links gestrichelten pfeil') - - "⇡": [T: "Gestrichelter Pfeil nach oben"] # 0x21e1 (en: 'upwards dashed arrow', MathPlayer: 'upwards dashed arrow', google: 'nach oben gestrichelter pfeil') - - "⇢": [T: "Gestrichelter Pfeil nach rechts"] # 0x21e2 (en: 'rightwards dashed arrow', MathPlayer: 'rightwards dashed arrow', google: 'rightwards gestrichelten pfeil') - - "⇣": [T: "Gestrichelter Pfeil nach unten"] # 0x21e3 (en: 'downwards dashed arrow', MathPlayer: 'downwards dashed arrow', google: 'abwärts gestrichelten pfeil') - - "⇤": [T: "Pfeil nach links zum Sockel"] # 0x21e4 (en: 'leftwards arrow to bar', MathPlayer: 'leftwards arrow to bar', google: 'links pfeil in die bar') - - "⇥": [T: "Pfeil nach rechts zum Sockel"] # 0x21e5 (en: 'rightwards arrow to bar', MathPlayer: 'rightwards arrow to bar', google: 'rightwards pfeil in die bar') - - "⇦": [T: "Weißer Pfeil nach links"] # 0x21e6 (en: 'leftwards white arrow', MathPlayer: 'leftwards white arrow', google: 'links weißer pfeil') - - "⇧": [T: "Weißer Pfeil nach oben"] # 0x21e7 (en: 'upwards white arrow', MathPlayer: 'upwards white arrow', google: 'nach oben weißer pfeil') - - "⇨": [T: "Weißer Pfeil nach rechts"] # 0x21e8 (en: 'rightwards white arrow', MathPlayer: 'rightwards white arrow', google: 'richtiger weißer pfeil') - - "⇩": [T: "Weißer Pfeil nach unten"] # 0x21e9 (en: 'downwards white arrow', MathPlayer: 'downwards white arrow', google: 'nach unten weißer pfeil') - - "⇪": [T: "Weißer Pfeil nach oben von der Leiste"] # 0x21ea (en: 'upwards white arrow from bar', MathPlayer: 'upwards white arrow from bar', google: 'nach oben weißer pfeil aus der bar') - - "⇫": [T: "Aufwärts weißer Pfeil auf Sockel"] # 0x21eb (en: 'upwards white arrow on pedestal', google: 'nach oben weißer pfeil auf sockel') - - "⇬": [T: "Aufwärts weißer Pfeil auf Sockel mit horizontaler Leiste"] # 0x21ec (en: 'upwards white arrow on pedestal with horizontal bar', google: 'nach oben weißer pfeil auf sockel mit horizontaler balken') - - "⇭": [T: "Aufwärts weißer Pfeil auf Sockel mit vertikaler Leiste"] # 0x21ed (en: 'upwards white arrow on pedestal with vertical bar', google: 'nach oben weißer pfeil auf sockel mit vertikaler balken') - - "⇮": [T: "Aufwärts weißer Doppelpfeil"] # 0x21ee (en: 'upwards white double arrow', google: 'nach oben weißer doppelpfeil') - - "⇯": [T: "Weißer Doppelpfeil nach oben auf Sockel"] # 0x21ef (en: 'upwards white double arrow on pedestal', google: 'nach oben weißer doppelpfeil auf sockel') - - "⇰": [T: "Weißer Pfeil nach rechts von der Wand"] # 0x21f0 (en: 'rightwards white arrow from wall', google: 'richtiger weißer pfeil von der wand') - - "⇱": [T: "Nordwestpfeil zur Ecke"] # 0x21f1 (en: 'north west arrow to corner', google: 'nordwestpfeil zur ecke') - - "⇲": [T: "Südostpfeil zur Ecke"] # 0x21f2 (en: 'south east arrow to corner', google: 'south east pfeil zur ecke') - - "⇳": [T: "Weißer Pfeil nach unten und oben"] # 0x21f3 (en: 'up down white arrow', google: 'runter weißer pfeil') - - "⇴": [T: "rechter Pfeil mit kleinem Kreis"] # 0x21f4 (en: 'right arrow with small circle', google: 'rechts pfeil mit kleinem kreis') - - "⇵": [T: "Abwärtspfeil links von Aufwärtspfeil"] # 0x21f5 (en: 'downwards arrow leftwards of upwards arrow', MathPlayer: 'upwards arrow to the right of downwards arrow', google: 'abwärts links nach oben auf pfeil') - - "⇶": [T: "Drei nach rechts gerichtete Pfeile"] # 0x21f6 (en: 'three rightwards arrows', google: 'drei rechts pfeile') - - "⇷": [T: "Pfeil nach links mit vertikalem Strich"] # 0x21f7 (en: 'leftwards arrow with vertical stroke', google: 'linkspfeil mit vertikalem schlaganfall') - - "⇸": [T: "Pfeil nach rechts mit vertikalem Strich"] # 0x21f8 (en: 'rightwards arrow with vertical stroke', google: 'richtiger pfeil mit vertikalem schlaganfall') - - "⇹": [T: "Pfeil nach links und rechts mit vertikalem Strich"] # 0x21f9 (en: 'left right arrow with vertical stroke', google: 'links rechts pfeil mit vertikalem schlaganfall') - - "⇺": [T: "Pfeil nach links mit doppeltem vertikalem Strich"] # 0x21fa (en: 'leftwards arrow with double vertical stroke', google: 'linkspfeil mit doppelter vertikaler hub') - - "⇻": [T: "Pfeil nach rechts mit doppeltem vertikalem Strich"] # 0x21fb (en: 'rightwards arrow with double vertical stroke', google: 'richtiger pfeil mit doppelter vertikaler schlaganfall') - - "⇼": [T: "Pfeil nach links und rechts mit doppeltem vertikalem Strich"] # 0x21fc (en: 'left right arrow with double vertical stroke', google: 'links rechts pfeil mit doppelter vertikaler hub') - - "⇽": [T: "Pfeil nach links mit offenem Kopf"] # 0x21fd (en: 'leftwards open headed arrow', MathPlayer: 'leftwards open headed arrow', google: 'links offene köpfe pfeil') - - "⇾": [T: "Pfeil nach rechts mit offenem Kopf"] # 0x21fe (en: 'rightwards open headed arrow', MathPlayer: 'rightwards open headed arrow', google: 'rightwards open headed pfeil') - - "⇿": [T: "Pfeil nach links und rechts mit offenem Kopf"] # 0x21ff (en: 'left right open headed arrow', MathPlayer: 'left right open headed arrow', google: 'links rechts geöffneter köpfe') - - "∀": [T: "für alle"] # 0x2200 (en: 'for all') - - "∁": # 0x2201 - - test: - if: "$Verbosity!='Terse'" - then: [T: "die"] # (en: 'the', google translation) - - T: "Komplement" # (en: 'complement of') - - "∃": [T: "es gibt"] # 0x2203 (en: 'there exists') - - "∄": [T: "es gibt nicht"] # 0x2204 (en: 'there does not exist') - - "∅": [T: "leere Menge"] # 0x2205 (en: 'empty set') - - "∋": [T: "hat als Element"] # 0x220b (en: 'contains the member') - - "∌": [T: "hat nicht als Element"] # 0x220c (en: 'does not contain the member') - - "∍": [T: "hat als Element"] # 0x220d (en: 'contains the member') - - "∎": [T: "Ende Beweis"] # 0x220e (en: 'end of proof') - - "−": [T: "minus"] # 0x2212 - - "∓": [T: "minus plus"] # 0x2213 (en: 'minus or plus') - - "∔": [T: "Plus mit Punkt"] # 0x2214 (en: 'dot plus', MathPlayer: 'dot plus', google: 'punkt plus') - - "∕": [T: "Division"] # 0x2215 (en: 'divided by', MathPlayer: 'Schrägstrich (Division)', google: 'geteilt durch') - - "∖": [T: "Mengendifferenz"] # 0x2216 (en: 'set minus', MathPlayer: 'Mengen-Minus', google: 'minus einstellen') - - "∘": [T: "verknüpft mit"] # 0x2218 (en: 'composed with') - - "∙": # 0x2219 - - test: - if: "@data-chem-formula-op" - then: [T: "punkt"] # (en: 'dot', google translation) - else: [T: "Kreisoperator"] # (en: 'times', MathPlayer: 'bullet operator', google: 'mal') - - - "∛": # 0x221b - - test: - if: "$Verbosity!='Terse'" - then: [T: "die"] # (en: 'the', google translation) - - T: "Kubikwurzel" # (en: 'cube root of', MathPlayer: 'dritte Wurzel', google: 'würfelwurzel von') - - "∜": # 0x221c - - test: - if: "$Verbosity!='Terse'" - then: [T: "die"] # (en: 'the', google translation) - - T: "vierte Wurzel" # (en: 'fourth root of') - - "∞": [T: "unendlich"] # 0x221e (en: 'infinity') - - "∢": [T: "Raumwinkel"] # 0x2222 (en: 'spherical angle', MathPlayer: 'spherical angle', google: 'sphärischer winkel') - - "∣": [T: "teilt"] # 0x2223 (en: 'divides') - - "∤": [T: "teilt nicht"] # 0x2224 (en: 'does not divide') - - "∧": [T: "und"] # 0x2227 (en: 'and') - - "∨": [T: "oder"] # 0x2228 (en: 'or') - - "∯": [T: "Oberflächenintegral"] # 0x222f (en: 'surface integral', MathPlayer: 'Flächenintegral', google: 'oberflächenintegral') - - "∰": [T: "Volumenintegral"] # 0x2230 (en: 'volume integral', MathPlayer: 'Volumsintegral', google: 'volumenintegral') - - "∱": [T: "Integral im Uhrzeigersinn"] # 0x2231 (en: 'clockwise integral') - - "∲": [T: "Kurvenintegral im Uhrzeigersinn"] # 0x2232 (en: 'clockwise contour integral', MathPlayer: 'Kontur-Integral im Uhrzeigersinn', google: 'konturintegral im uhrzeigersinn') - - "∳": [T: "Kurvenintegral im Gegenuhrzeigersinn"] # 0x2233 (en: 'anticlockwise contour integral', MathPlayer: 'Kontur-Integral im Gegenuhrzeigersinn', google: 'konturintegral gegen den gegenwart') - - "∴": [T: "folglich"] # 0x2234 (en: 'therefore', MathPlayer: 'deshalb', google: 'daher') - - "∵": [T: "weil"] # 0x2235 (en: 'because') - - "∸": [T: "Minus mit Punkt"] # 0x2238 (en: 'dot minus', MathPlayer: 'dot minus', google: 'punkt minus') - - "∹": [T: "Überschuss"] # 0x2239 (en: 'has excess compared to', MathPlayer: 'excess', google: 'hat überschüssig im vergleich zu') - - "∺": # 0x223a - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "geometrisch proportional" # (en: 'geometrically proportional to') - - "∻": # 0x223b - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "homothetisch" # (en: 'homothetic to', MathPlayer: 'homothetic', google: 'homothetisch zu') - - "≀": [T: "Kranzprodukt"] # 0x2240 (en: 'wreath product', MathPlayer: 'wreath product', google: 'kranzprodukt') - - "≁": [T: "durchgestrichene Tilde"] # 0x2241 (en: 'not tilde', MathPlayer: 'not tilde', google: 'nicht tilde') - - "≂": [T: "minus tilde"] # 0x2242 (SRE: 'Minus über Tilde') - - "≃": # 0x2243 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "asymptotisch gleich" # (en: 'asymptotically equal to') - - "≄": # 0x2244 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "nicht asymptotisch gleich" # (en: 'not asymptotically equal to') - - "≅": # 0x2245 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "ungefähr gleich" # (en: 'approximately equal to') - - "≆": # 0x2246 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "ungefähr, aber nicht ganz gleich" # (en: 'approximately but not actually equal to') - - "≇": # 0x2247 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "weder ungefähr noch ganz gleich" # (en: 'neither approximately nor actually equal to') - - "≈": # 0x2248 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "beinahe gleich" # (en: 'almost equal to') - - "≉": # 0x2249 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "nicht beinahe gleich" # (en: 'not almost equal to') - - "≊": # 0x224a - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "beinahe gleich oder gleich" # (en: 'almost equal or equal to', MathPlayer: 'beinahe oder ganz gleich', google: 'fast gleich oder gleich') - - "≋": [T: "dreifache Tilde"] # 0x224b (en: 'triple tilde', MathPlayer: 'triple tilde', google: 'dreifach tilde') - - "≌": [T: "alles gleich"] # 0x224c (en: 'are all equal to', MathPlayer: 'all equal to', google: 'sind alle gleich') - - "≍": # 0x224d - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "äquivalent zu" # (en: 'equivalent to') - - "≎": # 0x224e - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "geometrisch äquivalent zu" # (en: 'geometrically equivalent to') - - "≏": # 0x224f - - test: - if: "$Verbosity!='Terse'" - then: [T: "die"] # (en: 'the', google translation) - - T: "Differenz zwischen" # (en: 'difference between') - - "≐": [T: "nähert sich der Grenze"] # 0x2250 (en: 'approaches the limit') - - "≑": # 0x2251 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "geometrisch gleich" # (en: 'geometrically equal to') - - "≒": # 0x2252 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "Ungefähr gleich oder das Bild von" # (en: 'approximately equal to or the image of', MathPlayer: 'approximately equal to or the image of', google: 'ungefähr gleich oder das bild von') - - "≓": # 0x2253 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist der"] # (en: 'is the', google translation) - - T: "Bild von oder ungefähr gleich" # (en: 'image of or approximately equal to', MathPlayer: 'image of or approximately equal to', google: 'bild von oder ungefähr gleich') - - "≔": [T: "definiert als"] # 0x2254 (en: 'colon equals') - - "≕": [T: "definiert als von rechts"] # 0x2255 (en: 'equals colon', MathPlayer: 'equals colon', google: 'gleich') - - "≖": [T: "ungefähr gleich"] # 0x2256 (en: 'ring in equal to', MathPlayer: 'ring in equal to', google: 'in gleich rufen') - - "≗": # 0x2257 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "ungefähr gleich" # (en: 'approximately equal to', MathPlayer: 'ring equal to') - - "≘": [T: "entspricht"] # 0x2258 (en: 'corresponds to') - - "≙": [T: "entspricht"] # 0x2259 (en: 'estimates', MathPlayer: 'estimates', google: 'schätzungen') - - "≚": # 0x225a - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "gleichwinklig zu" # (en: 'equiangular to', MathPlayer: 'equiangular to', google: 'gleiche zu') - - "≛": [T: "gleich mit Stern"] # 0x225b (en: 'star equals', MathPlayer: 'star equals', google: 'stern ist gleich') - - "≜": [T: "gleich mit Delta"] # 0x225c (en: 'delta equals', MathPlayer: 'delta equal to', google: 'delta gleich') - - "≝": [T: "definitionsgemäß gleich"] # 0x225d (en: 'is defined to be') - - "≞": # 0x225e - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "gemessen mit" # (en: 'measured by', MathPlayer: 'measured by') - - "≟": [T: "vielleicht gleich"] # 0x225f (en: 'has an unknown relationship with', MathPlayer: 'questioned equal to', google: 'hat eine unbekannte beziehung zu') - - "≢": # 0x2262 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "nicht identisch mit" # (en: 'not identical to', SRE: 'nicht kongruent mit') - - "≣": # 0x2263 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "genau äquivalent mit" # (en: 'strictly equivalent to', MathPlayer: 'streng äquivalent mit', google: 'streng äquivalent zu') - - "≦": [T: "kleiner als über gleich"] # 0x2266 (en: 'less than over equal to', MathPlayer: 'less than over equal to', google: 'weniger als überweg') - - "≧": [T: "größer als über gleich"] # 0x2267 (en: 'greater than over equal to', MathPlayer: 'greater than over equal to', google: 'größer als überweg') - - "≨": # 0x2268 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "kleiner als, aber nicht gleich" # (en: 'less than but not equal to') - - "≩": # 0x2269 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "größer als, aber nicht gleich" # (en: 'greater than but not equal to') - - "≪": # 0x226a - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "viel kleiner als" # (en: 'much less than') - - "≫": # 0x226b - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "viel größer als" # (en: 'much greater than') - - "≬": # 0x226c - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "zwischen" # (en: 'between') - - "≭": # 0x226d - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "nicht äquivalent mit" # (en: 'not equivalent to') - - "≮": # 0x226e - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "nicht kleiner als" # (en: 'not less than') - - "≯": # 0x226f - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "nicht größer als" # (en: 'not greater than') - - "≰": # 0x2270 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "weder kleiner als noch gleich" # (en: 'neither less than nor equal to') - - "≱": # 0x2271 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "weder größer als noch gleich" # (en: 'neither greater than nor equal to') - - "≲": # 0x2272 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "kleiner als oder äquivalent zu" # (en: 'less than or equivalent to') - - "≳": # 0x2273 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "größer als oder äquivalent zu" # (en: 'greater than or equivalent to') - - "≴": # 0x2274 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "weder kleiner als noch äquivalent" # (en: 'neither less than nor equivalent to') - - "≵": # 0x2275 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "weder größer als noch äquivalent" # (en: 'neither greater than nor equivalent to') - - "≶": # 0x2276 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "kleiner oder größer als" # (en: 'less than or greater than') - - "≷": # 0x2277 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "größer oder kleiner als" # (en: 'greater than or less than') - - "≸": # 0x2278 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "weder kleiner noch größer als" # (en: 'neither less than nor greater than') - - "≹": # 0x2279 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "weder größer noch kleiner als" # (en: 'neither greater than nor less than') - - "≺": [T: "vorangehend"] # 0x227a (en: 'precedes', MathPlayer: 'precedes', google: 'voraus') - - "≻": [T: "nachfolgend"] # 0x227b (en: 'succeeds', MathPlayer: 'succeeds', google: 'gelingt es') - - "≼": [T: "vorangehend oder gleich"] # 0x227c (en: 'precedes or is equal to', MathPlayer: 'precedes or equal to', google: 'vorausgeht oder ist gleich') - - "≽": [T: "nachfolgend oder gleich"] # 0x227d (en: 'succeeds or is equal to', MathPlayer: 'succeeds or equal to', google: 'erfolg oder ist gleich') - - "≾": [T: "vorangehend oder äquivalent"] # 0x227e (en: 'precedes or is equivalent to', MathPlayer: 'precedes or equivalent to', google: 'vorausgeht oder ist gleichbedeutend mit') - - "≿": [T: "nachfolgend oder äquivalent"] # 0x227f (en: 'succeeds or is equivalent to', MathPlayer: 'succeeds or equivalent to', google: 'erfolg oder ist gleichbedeutend mit') - - "⊀": [T: "nicht vorangehend"] # 0x2280 (en: 'does not precede', MathPlayer: 'does not precede', google: 'vorausgegangen nicht voraus') - - "⊁": [T: "nicht nachfolgend"] # 0x2281 (en: 'does not succeed', MathPlayer: 'does not succeed', google: 'gelingt es nicht') - - "⊈": # 0x2288 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "weder Teilmenge noch gleich" # (en: 'neither a subset of nor equal to', MathPlayer: 'weder Teilmenge von noch gleich', google: 'weder eine untergruppe von noch gleich') - - "⊉": # 0x2289 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "weder Obermenge noch gleich" # (en: 'neither a superset of nor equal to', MathPlayer: 'weder Obermenge von noch gleich', google: 'weder ein superset von noch gleich') - - "⊊": [T: "Teilmenge aber nicht gleich"] # 0x228a (en: 'subset of with not equal to', MathPlayer: 'Teilmenge von, aber nicht gleich', google: 'teilmenge von mit nicht gleich') - - "⊋": [T: "Obermenge aber nicht gleich"] # 0x228b (en: 'superset of with not equal to', MathPlayer: 'Obermenge von, aber nicht gleich', google: 'superset von mit nicht gleich') - - "⊌": [T: "Multimenge"] # 0x228c (SRE: 'Multimenge') - - "⊍": [T: "Multimengenmultiplikation"] # 0x228d (en: 'multiset multiplication', MathPlayer: 'multiset multiplication', google: 'multiset -multiplikation') - - "⊎": [T: "Multimengenvereinigung"] # 0x228e (SRE: 'Multimengenvereinigung') - - "⊏": [T: "quadratisches Bild von"] # 0x228f (en: 'square image of', MathPlayer: 'square image of', google: 'square bild von') - - "⊐": [T: "quadratisches Original von"] # 0x2290 (en: 'square original of', MathPlayer: 'square original of', google: 'square original von') - - "⊑": [T: "quadratisches Bild oder gleich"] # 0x2291 (en: 'square image of or equal to', MathPlayer: 'square image of or equal to', google: 'quadratisches bild von oder gleich') - - "⊒": [T: "quadratisches Original oder gleich"] # 0x2292 (en: 'square original of or equal to', MathPlayer: 'square original of or equal to', google: 'square original von oder gleich') - - "⊓": [T: "quadratische Schnittmenge"] # 0x2293 (en: 'square cap', MathPlayer: 'square cap', google: 'quadratische großbuchstaben') - - "⊔": [T: "quadratische Vereinigungsmenge"] # 0x2294 (en: 'square cup', MathPlayer: 'square cup', google: 'quadratbecher') - - "⊕": [T: "eingekreistes Pluszeichen"] # 0x2295 (en: 'circled plus', MathPlayer: 'circle plus', google: 'umgekreist plus') - - "⊖": [T: "eingekreistes Minuszeichen"] # 0x2296 (en: 'circled minus', MathPlayer: 'circle minus', google: 'eingekreist minus') - - "⊗": [T: "eingekreiste Multiplikation"] # 0x2297 (en: 'circled times', MathPlayer: 'circle times', google: 'kreiste zeiten') - - "⊘": [T: "eingekreiste Division"] # 0x2298 (en: 'circled slash', MathPlayer: 'circle slash', google: 'eingekreist') - - "⊙": [T: "eingekreister Punktoperator"] # 0x2299 (en: 'circled dot operator', MathPlayer: 'circle dot', google: 'eingekreister punktbetreiber') - - "⊚": [T: "eingekreister Ringoperator"] # 0x229a (en: 'circled ring', MathPlayer: 'circle ring', google: 'eingekreister ring') - - "⊛": [T: "eingekreister Sternoperator"] # 0x229b (en: 'circled asterisk', MathPlayer: 'circle asterisk', google: 'eingekreistes sternchen') - - "⊜": [T: "eingekreistes Gleich"] # 0x229c (en: 'circled equals', MathPlayer: 'circle equals', google: 'kreist gleich') - - "⊝": [T: "eingekreister Gedankenstrich"] # 0x229d (en: 'circled dash', MathPlayer: 'circle dash', google: 'kreislauf') - - "⊞": [T: "eingerahmtes Plus"] # 0x229e (en: 'squared plus', MathPlayer: 'square plus', google: 'quadrat plus') - - "⊟": [T: "eingerahmtes Minus"] # 0x229f (en: 'squared minus', MathPlayer: 'square minus', google: 'quadratisch minus') - - "⊠": [T: "eingerahmte Multiplikation"] # 0x22a0 (en: 'squared times', MathPlayer: 'square times', google: 'quadratische zeiten') - - "⊡": [T: "eingerahmter Punktoperator"] # 0x22a1 (en: 'squared dot operator', MathPlayer: 'square dot', google: 'quadratischer punktbetreiber') - - "⊢": [T: "ergibt"] # 0x22a2 (en: 'proves', MathPlayer: 'right tack', google: 'beweist') - - "⊣": [T: "ergibt nicht"] # 0x22a3 (en: 'does not yield', MathPlayer: 'left tack', google: 'ergeben nicht') - - "⊤": [T: "senkrecht von"] # 0x22a4 (en: 'top', MathPlayer: 'down tack', google: 'spitze') - - "⊥": # 0x22a5 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "senkrecht auf" # (en: 'bottom', MathPlayer: 'up tack', google: 'unten') - - "⊦": [T: "Behauptung"] # 0x22a6 (en: 'reduces to', MathPlayer: 'assertion', google: 'reduziert zu') - - "⊧": [T: "Modell"] # 0x22a7 (en: 'models', MathPlayer: 'models', google: 'modelle') - - "⊨": # 0x22a8 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "wahr" # (en: 'true', MathPlayer: 'true') - - "⊩": [T: "erzwingt"] # 0x22a9 (en: 'forces', MathPlayer: 'forces', google: 'kräfte') - - "⊪": [T: "dreifache vertikale Leiste mit rechtem Drehkreuz"] # 0x22aa (en: 'triple vertical bar right turnstile', MathPlayer: 'triple vertical bar right turnstile', google: 'triple vertikale bar rechtsummens') - - "⊫": [T: "doppelte vertikale Leiste mit doppeltem rechtem Drehkreuz"] # 0x22ab (en: 'double vertical bar double right turnstile', MathPlayer: 'double vertical bar double right turnstile', google: 'doppelte vertikale balken doppelte rechte kurve') - - "⊬": [T: "beweist nicht"] # 0x22ac (en: 'does not prove', MathPlayer: 'does not prove') - - "⊭": # 0x22ad - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "nicht wahr" # (en: 'not true', MathPlayer: 'not true') - - "⊮": [T: "erzwingt nicht"] # 0x22ae (en: 'does not force', MathPlayer: 'does not force', google: 'zwingt nicht') - - "⊯": [T: "negierte doppelte vertikale Leiste mit doppeltem rechten Drehkreuz"] # 0x22af (en: 'negated double vertical bar double right turnstile', MathPlayer: 'negated double vertical bar double right turnstile', google: 'negierter doppelter vertikaler balken doppelte rechte kurve') - - "⊰": [T: "vorangehend in Relation"] # 0x22b0 (en: 'precedes under relation', MathPlayer: 'precedes under relation', google: 'vorausgegangen in beziehung') - - "⊱": [T: "nachfolgend in Relation"] # 0x22b1 (en: 'succeeds under relation', MathPlayer: 'succeeds under relation', google: 'erfolgreich in beziehung') - - "⊲": # 0x22b2 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "normale Untergruppe" # (en: 'a normal subgroup of', MathPlayer: 'normal subgroup of', google: 'eine normale untergruppe von') - - "⊳": [T: "enthält normale Untergruppe"] # 0x22b3 (en: 'contains as a normal subgroup', MathPlayer: 'contains as normal subgroup', google: 'enthält als normale untergruppe') - - "⊴": # 0x22b4 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "normale Untergruppe von oder gleich" # (en: 'a normal subgroup of or equal to', MathPlayer: 'normal subgroup of or equal to', google: 'eine normale untergruppe von oder gleich') - - "⊵": [T: "enthält normale Untergruppe oder gleich"] # 0x22b5 (en: 'contains as a normal subgroup or equal to', MathPlayer: 'contains as normal subgroup or equal to', google: 'enthält als normale untergruppe oder gleich') - - "⊶": # 0x22b6 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "Original von" # (en: 'the original of', MathPlayer: 'original of', google: 'das original von') - - "⊷": # 0x22b7 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "Bild von" # (en: 'an image of', MathPlayer: 'image of', google: 'ein bild von') - - "⊸": [T: "multimap"] # 0x22b8 (SRE: 'Mehrfachzuordnung') - - "⊹": [T: "hermitesch konjugierte Matrix"] # 0x22b9 (en: 'hermitian conjugate matrix', MathPlayer: 'hermitian conjugate matrix', google: 'hermitische konjugierte matrix') - - "⊺": [T: "einschalten"] # 0x22ba (en: 'intercalate', MathPlayer: 'intercalate', google: 'interkalieren') - - "⊻": [T: "Ausschließendes Oder"] # 0x22bb (SRE: 'Ausschließendes Oder') - - "⊼": [T: "nand"] # 0x22bc (SRE: 'Nand verknüpft mit') - - "⊽": [T: "Nor verknüpft mit"] # 0x22bd (en: 'nor', MathPlayer: 'nor', google: 'noch') - - "⊾": [T: "rechter Winkel mit Bogen"] # 0x22be (en: 'right angle with arc', MathPlayer: 'right angle with arc', google: 'rechtwinkel mit bogen') - - "⊿": [T: "rechtwinkliges Dreieck"] # 0x22bf (en: 'right triangle', MathPlayer: 'right triangle', google: 'rechtwinkliges dreieck') - - "⋀": [T: "logisch und"] # 0x22c0 (en: 'logical and', SRE: 'N-stufiges logisches Und') - - "⋁": [T: "logisch oder"] # 0x22c1 (en: 'logical or', SRE: 'N-stufiges logisches Oder') - - "⋂": [T: "N-stufiger Durchschnitt"] # 0x22c2 (en: 'intersection', MathPlayer: 'Durchschnitt', google: 'überschneidung') - - "⋃": [T: "N-stufige Vereinigung"] # 0x22c3 (en: 'union', MathPlayer: 'Vereinigung', google: 'union') - - "⋄": [T: "Rautenoperator"] # 0x22c4 (en: 'diamond operator', MathPlayer: 'diamond operator', google: 'diamantbetreiber') - - "⋅": # 0x22c5 - - test: - if: "@data-chem-formula-op" - then: [T: "punkt"] # (en: 'dot', google translation) - else: [T: "mal"] # (en: 'times', MathPlayer: 'dot') - - - "⋆": [T: "Sternoperator"] # 0x22c6 (en: 'times', MathPlayer: 'star', google: 'mal') - - "⋇": [T: "Divisionsanzahl"] # 0x22c7 (en: 'division times', MathPlayer: 'division times', google: 'divisionszeiten') - - "⋈": [T: "Schleife"] # 0x22c8 (en: 'bowtie', MathPlayer: 'bowtie', google: 'krawatte') - - "⋉": # 0x22c9 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "linkes halbdirektes Produkt" # (en: 'the left normal factor semidirect product of', MathPlayer: 'left normal factor semidirect product', google: 'das linke normale faktor semidirekte produkt von') - - "⋊": # 0x22ca - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "rechtes halbdirektes Produkt" # (en: 'the right normal factor semidirect product of', MathPlayer: 'right normal factor semidirect product', google: 'der richtige normale faktor semidirect -produkt von') - - "⋋": # 0x22cb - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "linkes halbdirektes Produkt" # (en: 'the left semidirect product of', MathPlayer: 'left semidirect product', google: 'das linke semidirect -produkt von') - - "⋌": # 0x22cc - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "rechtes halbdirektes Produkt" # (en: 'the right semidirect product of', MathPlayer: 'right semidirect product', google: 'das richtige semidirect -produkt von') - - "⋍": [T: "umgekehrte Tilde gleich"] # 0x22cd (en: 'reversed tilde equals', MathPlayer: 'reversed tilde equals', google: 'umgekehrte tilde gleich') - - "⋎": [T: "geschweiftes logisches Oder"] # 0x22ce (en: 'curly logical or', MathPlayer: 'curly logical or', google: 'lockiges logisch oder') - - "⋏": [T: "geschweiftes logisches Und"] # 0x22cf (en: 'curly logical and', MathPlayer: 'curly logical and', google: 'lockiges logisch und') - - "⋐": # 0x22d0 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "doppelte Teilmenge" # (en: 'a double subset of', MathPlayer: 'double subset', google: 'eine doppelte untergruppe von') - - "⋑": # 0x22d1 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "doppelte Obermenge" # (en: 'a double superset of', MathPlayer: 'double superset', google: 'ein doppeltes superset von') - - "⋒": # 0x22d2 - - test: - if: "$Verbosity!='Terse'" - then: [T: "die"] # (en: 'the', google translation) - - T: "doppelter Durchschnitt" # (en: 'double intersection of', MathPlayer: 'double intersection', google: 'doppelte kreuzung von') - - "⋓": # 0x22d3 - - test: - if: "$Verbosity!='Terse'" - then: [T: "die"] # (en: 'the', google translation) - - T: "doppelte Vereinigung" # (en: 'double union of', MathPlayer: 'double union', google: 'doppelte vereinigung von') - - "⋔": # 0x22d4 - - test: - if: "$Verbosity!='Terse'" - then: [T: "die"] # (en: 'the', google translation) - - T: "echter Durchschnitt" # (en: 'proper intersection of', MathPlayer: 'pitchfork', google: 'richtige schnittpunkt von') - - "⋕": # 0x22d5 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "gleich und parallel" # (en: 'equal to and parallel to', MathPlayer: 'equal and parallel to', google: 'gleich und parallel zu') - - "⋖": [T: "kleiner als mit Punkt"] # 0x22d6 (en: 'less than with dot', MathPlayer: 'less than with dot', google: 'weniger als mit punkt') - - "⋗": [T: "größer als mit Punkt"] # 0x22d7 (en: 'greater than with dot', MathPlayer: 'greater than with dot', google: 'größer als mit punkt') - - "⋘": # 0x22d8 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "sehr viel kleiner als" # (en: 'very much less than', MathPlayer: 'very much less than', google: 'sehr viel weniger als') - - "⋙": # 0x22d9 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "sehr viel größer als" # (en: 'very much greater than', MathPlayer: 'very much greater than') - - "⋚": # 0x22da - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "kleiner als, gleich oder größer als" # (en: 'less than equal to or greater than', MathPlayer: 'less than equal to or greater than', google: 'weniger als gleich oder größer als') - - "⋛": # 0x22db - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "größer als, gleich oder kleiner als" # (en: 'greater than equal to or less than', MathPlayer: 'greater than equal to or less than', google: 'größer als gleich oder weniger als') - - "⋜": # 0x22dc - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "gleich oder kleiner als" # (en: 'equal to or less than', MathPlayer: 'equal to or less than', google: 'gleich oder weniger als') - - "⋝": # 0x22dd - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "gleich oder größer als" # (en: 'equal to or greater than', MathPlayer: 'equal to or greater than') - - "⋞": # 0x22de - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "gleich oder vorangehend" # (en: 'equal to or precedes', MathPlayer: 'equal to or precedes', google: 'gleich oder voraus') - - "⋟": # 0x22df - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "gleich oder nachfolgend" # (en: 'equal to or succeeds', MathPlayer: 'equal to or succeeds', google: 'gleich oder erfolgreich') - - "⋠": [T: "weder vorangehend noch gleich"] # 0x22e0 (en: 'does not precede nor is equal to', MathPlayer: 'does not precede or equal', google: 'geht nicht voraus und ist nicht gleich') - - "⋡": [T: "weder nachfolgend noch gleich"] # 0x22e1 (en: 'does not succeed nor is equal to', MathPlayer: 'does not succeed or equal', google: 'gelingt weder noch ist es gleich') - - "⋢": [T: "kein quadratisches Bild oder gleich"] # 0x22e2 (en: 'not square image of or equal to', MathPlayer: 'not square image of or equal to', google: 'kein quadratisches bild von oder gleich') - - "⋣": [T: "kein quadratisches Original oder gleich"] # 0x22e3 (en: 'not square original of or equal to', MathPlayer: 'not square original of or equal to', google: 'kein quadratisches original von oder gleich') - - "⋤": [T: "quadratisches Bild oder nicht gleich"] # 0x22e4 (en: 'square image of or not equal to', MathPlayer: 'square image of or not equal to', google: 'quadratisches bild von oder nicht gleich') - - "⋥": [T: "quadratisches Original oder nicht gleich"] # 0x22e5 (en: 'square original of or not equal to', MathPlayer: 'square original of or not equal to', google: 'square original von oder nicht gleich') - - "⋦": # 0x22e6 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "kleiner als, aber nicht äquivalent" # (en: 'less than but not equivalent to', MathPlayer: 'less than but not equivalent to', google: 'weniger als aber nicht gleichbedeutend mit') - - "⋧": # 0x22e7 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "größer als, aber nicht äquivalent" # (en: 'greater than but not equivalent to', MathPlayer: 'greater than but not equivalent to', google: 'größer als aber nicht gleichbedeutend mit') - - "⋨": [T: "vorangehend, aber nicht äquivalent"] # 0x22e8 (en: 'precedes but is not equivalent to', MathPlayer: 'precedes but not equivalent to', google: 'vorausgesetzt, ist aber nicht gleichwertig zu') - - "⋩": [T: "nachfolgend, aber nicht äquivalent"] # 0x22e9 (en: 'succeeds but is not equivalent to', MathPlayer: 'succeeds but not equivalent to', google: 'erfolg, ist aber nicht gleichwertig zu') - - "⋪": # 0x22ea - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "nicht normale Untergruppe von" # (en: 'not a normal subgroup of', MathPlayer: 'not normal subgroup of', google: 'keine normale untergruppe von') - - "⋫": [T: "enthält keine normale Untergruppe"] # 0x22eb (en: 'does not contain as a normal subgroup', MathPlayer: 'does not contain as normal subgroup', google: 'enthält nicht als normale untergruppe') - - "⋬": # 0x22ec - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "keine normale Untergruppe von oder gleich" # (en: 'not a normal subgroup of nor is equal to', MathPlayer: 'not normal subgroup of or equal to', google: 'keine normale untergruppe von und nicht gleich') - - "⋭": [T: "enthält nicht als normale Untergruppe oder gleich"] # 0x22ed (en: 'does not contain as a normal subgroup nor is equal to', MathPlayer: 'does not contain as normal subgroup or equal', google: 'enthält weder eine normale untergruppe noch') - - "⋮": [T: "Vertikale Ellipsis"] # 0x22ee (en: 'vertical ellipsis', MathPlayer: 'vertical ellipsis', google: 'vertikale ellipse') - - "⋯": [T: "Zentrierte horizontale Ellipse"] # 0x22ef (en: 'dot dot dot', MathPlayer: 'math axis ellipsis', google: 'punkt punkt punkt') - - "⋰": [T: "Diagonale Ellipse unten links nach oben rechts"] # 0x22f0 (en: 'upwards diagonal ellipsis', MathPlayer: 'up right diagonal ellipsis', google: 'aufwärts diagonale ellipsis') - - "⋱": [T: "Diagonale Ellipse, oben links nach unten rechts"] # 0x22f1 (en: 'diagonal ellipsis', MathPlayer: 'down right diagonal ellipsis', google: 'diagonale ellipsis') - - "⋲": [T: "Element mit langem horizontalen Strich"] # 0x22f2 (en: 'element of with long horizontal stroke', MathPlayer: 'element of with long horizontal stroke', google: 'element von mit langem horizontalem schlaganfall') - - "⋳": [T: "Element mit vertikalem Strich am Ende des horizontalen Strichs"] # 0x22f3 (en: 'element of with vertical bar at end of horizontal stroke', MathPlayer: 'element of with vertical bar at end of horizontal stroke', google: 'element von mit vertikalem balken am ende des horizontalen strich') - - "⋴": [T: "kleines Element mit vertikalem Strich am Ende des horizontalen Strichs"] # 0x22f4 (en: 'element of with vertical bar at end of horizontal stroke', MathPlayer: 'element of with vertical bar at end of horizontal stroke', google: 'element von mit vertikalem balken am ende des horizontalen strich') - - "⋵": [T: "Element mit Punkt"] # 0x22f5 (en: 'element of with dot above', MathPlayer: 'element of with dot above', google: 'element von mit punkt oben') - - "⋶": [T: "Element mit Überstrich"] # 0x22f6 (en: 'element of with overbar', MathPlayer: 'element of with overbar', google: 'element von overbar') - - "⋷": [T: "kleines Element mit Überstrich"] # 0x22f7 (en: 'element of with overbar', MathPlayer: 'element of or equal to', google: 'element von overbar') - - "⋸": [T: "Element mit Unterstrich"] # 0x22f8 (en: 'element of with underbar', MathPlayer: 'element of with underbar', google: 'element von mit unterbar') - - "⋹": [T: "Element mit 2 horizontalen Strichen"] # 0x22f9 (en: 'element of with two horizontal strokes', MathPlayer: 'element of with two horizontal strokes', google: 'element von mit zwei horizontalen strichen') - - "⋺": [T: "umgekehrtes Elementzeichen mit langem horizontalen Strich"] # 0x22fa (en: 'contains with long horizontal stroke', MathPlayer: 'contains with long horizontal stroke', google: 'enthält mit langem horizontalem schlaganfall') - - "⋻": [T: "umgekehrtes Elementzeichen mit vertikalem Strich am Ende des horizontalen Strichs"] # 0x22fb (en: 'contains with vertical bar at end of horizontal stroke', MathPlayer: 'contains with vertical bar at end of horizontal stroke', google: 'enthält mit vertikaler balken am ende des horizontalen schlaganfalls') - - "⋼": [T: "kleines umgekehrtes Elementzeichen mit vertikalem Strich am Ende des horizontalen Strichs"] # 0x22fc (en: 'contains with vertical bar at end of horizontal stroke', MathPlayer: 'contains with vertical bar at end of horizontal stroke', google: 'enthält mit vertikaler balken am ende des horizontalen schlaganfalls') - - "⋽": [T: "umgekehrtes Elementzeichen mit Überstrich"] # 0x22fd (en: 'contains with overbar', MathPlayer: 'contains or equal to', google: 'enthält mit überbar') - - "⋾": [T: "kleines umgekehrtes Elementzeichen mit Überstrich"] # 0x22fe (en: 'contains with overbar', MathPlayer: 'small contains with overbar', google: 'enthält mit überbar') - - "⋿": [T: "Z-Notation-Bag-Mitgliedschaft"] # 0x22ff (en: 'z notation bag membership', MathPlayer: 'z notation bag membership', google: 'z notation bag mitgliedschaft') - - "⌀": [T: "Durchmesser-Zeichen"] # 0x2300 (en: 'diameter', MathPlayer: 'diameter', google: 'durchmesser') - - "⌁": [T: "Elektrischer Pfeil"] # 0x2301 (en: 'electric arrow', google: 'elektrischer pfeil') - - "⌂": [T: "Haus"] # 0x2302 (en: 'house', MathPlayer: 'house', google: 'haus') - - "⌃": [T: "Pfeilkopf nach oben"] # 0x2303 (en: 'up arrowhead', google: 'auf pfeilspitze') - - "⌄": [T: "Pfeilkopf nach unten"] # 0x2304 (en: 'down arrowhead', google: 'pfeilspitze') - - "⌅": [T: "Projektiv"] # 0x2305 (en: 'projective', MathPlayer: 'projective', google: 'projektiv') - - "⌆": [T: "Perspektive"] # 0x2306 (en: 'perspective', MathPlayer: 'perspective', google: 'perspektive') - - "⌇": [T: "Schlangenlinie"] # 0x2307 (en: 'wavy line', google: 'schlangenlinie') - - "⌈": [T: "linke Aufrundungsklammer"] # 0x2308 (en: 'left ceiling', MathPlayer: 'left ceiling', google: 'linke decke') - - "⌉": [T: "rechte Aufrundungsklammer"] # 0x2309 (en: 'right ceiling', MathPlayer: 'right ceiling', google: 'rechte decke') - - "⌊": [T: "linke Abrundungsklammer"] # 0x230a (en: 'left floor', MathPlayer: 'left floor', google: 'linker boden') - - "⌋": [T: "rechter Abrundungsklammer"] # 0x230b (en: 'right floor', MathPlayer: 'right floor', google: 'rechts boden') - - "⌌": [T: "unterer rechter Abschnitt"] # 0x230c (en: 'bottom right crop', MathPlayer: 'bottom right crop', google: 'unten rechts ernte') - - "⌍": [T: "Unterer linker Abschnitt"] # 0x230d (en: 'bottom left crop', MathPlayer: 'bottom left crop', google: 'unten linke ernte') - - "⌎": [T: "Oberer rechter Abschnitt"] # 0x230e (en: 'top right crop', MathPlayer: 'top right crop', google: 'oben rechts ernte') - - "⌏": [T: "Oberer linker Abschnitt"] # 0x230f (en: 'top left crop', MathPlayer: 'top left crop', google: 'oben linke ernte') - - "⌐": [T: "Umgekehrtes Nichtzeichen"] # 0x2310 (en: 'reversed not sign', MathPlayer: 'reversed not', google: 'umgekehrt nicht unterschreiben') - - "⌑": [T: "Quadratische Raute"] # 0x2311 (en: 'square lozenge', google: 'square rautege') - - "⌒": [T: "Bogen"] # 0x2312 (en: 'arc', MathPlayer: 'arc', google: 'bogen') - - "⌓": [T: "segment"] # 0x2313 (SRE: 'Segment') - - "⌔": [T: "Sektor"] # 0x2314 (en: 'sector', google: 'sektor') - - "⌕": [T: "telephone recorder"] # 0x2315 (google: 'telefonrekorder') - - "⌖": [T: "position indicator; crosshairs"] # 0x2316 (en: 'position indicator crosshairs', google: 'positionsindikator crosshairs') - - "⌗": [T: "Datenanzeigefeld"] # 0x2317 (google translation) - - "⌘": [T: "Sehenswürdigkeitszeichen"] # 0x2318 (google: 'spole von interschlage') - - "⌙": [T: "nicht gedrehtes zeichen"] # 0x2319 (en: 'turned not sign', google translation) - - "⌚": [T: "Uhr"] # 0x231a (google: 'betrachten') - - "⌛": [T: "sanduhr"] # 0x231b (en: 'hourglass', google translation) - - "⌜": [T: "Obere linke Ecke"] # 0x231c (en: 'top left corner', MathPlayer: 'top left corner', google: 'obere linke ecke') - - "⌝": [T: "Obere rechte Ecke"] # 0x231d (en: 'top right corner', MathPlayer: 'top right corner', google: 'obere rechte ecke') - - "⌞": [T: "Untere linke Ecke"] # 0x231e (en: 'bottom left corner', MathPlayer: 'bottom left corner', google: 'untere linke ecke') - - "⌟": [T: "Rechte untere Ecke"] # 0x231f (en: 'bottom right corner', MathPlayer: 'bottom right corner', google: 'rechte untere ecke') - - "⌠": [T: "Obere Hälfte eines Integrals"] # 0x2320 (en: 'top half integral', MathPlayer: 'top half integral', google: 'top -hälfte integral') - - "⌡": [T: "Untere Hälfte eines Integrals"] # 0x2321 (en: 'bottom half integral', MathPlayer: 'bottom half integral', google: 'untere hälfte integral') - - "⌢": [T: "Stirnrunzeln"] # 0x2322 (google: 'stirnrunzeln') - - "⌣": [T: "Lächeln"] # 0x2323 (google: 'lächeln') - - "⌤": [T: "Pfeilspitze zwischen zwei horizontalen Balken"] # 0x2324 (en: 'up arrowhead between two horizontal bars', google: 'auf der pfeilspitze zwischen zwei horizontalen balken') - - "⌥": [T: "optionschlüssel"] # 0x2325 (en: 'option key', google translation) - - "⌦": [T: "nach rechts löschen"] # 0x2326 (en: 'erase to the right', google translation) - - "⌧": [T: "x in einer rechteckbox"] # 0x2327 (en: 'x in a rectangle box', google translation) - - "⌨": [T: "tastatur"] # 0x2328 (en: 'keyboard', google translation) - - "〈": [T: "Linke spitze Klammer"] # 0x2329 (en: 'left pointing angle bracket', MathPlayer: 'left pointing angle bracket', google: 'links zeigewinkelhalterung') - - "〉": [T: "Rechte spitze Klammer"] # 0x232a (en: 'right pointing angle bracket', MathPlayer: 'right pointing angle bracket', google: 'rechte zeigewinkelhalterung') - - "⌫": [T: "links löschen"] # 0x232b (en: 'erase to the left', google translation) - - "⌬": [T: "benzolring"] # 0x232c (en: 'benzene ring', google translation) - - "⌭": [T: "Zylindrizität"] # 0x232d (google: 'zylinderheit') - - "⌮": [T: "Runsumpfeil"] # 0x232e (google: 'rund um das profil') - - "⌯": [T: "symmetrie"] # 0x232f (en: 'symmetry', google translation) - - "⌰": [T: "totaler Auslauf"] # 0x2330 (en: 'total runout', google translation) - - "⌱": [T: "Dimensionsursprung"] # 0x2331 (en: 'dimension origin', google translation) - - "⌲": [T: "konische Verjüngung"] # 0x2332 (en: 'conical taper', google translation) - - "⌳": [T: "Neigung"] # 0x2333 (en: 'slope', google translation) - - "⌴": [T: "Gegenbohrung"] # 0x2334 (en: 'counterbore', google translation) - - "⌵": [T: "Versenkung"] # 0x2335 (en: 'countersink', google translation) - - "⌶": [T: "APL I-Träger"] # 0x2336 (en: 'apl i beam') - - "⌽": [T: "APL-Kreisstütze"] # 0x233d (en: 'apl circle stile') - - "⌿": [T: "APL-Schrägstrichbalken"] # 0x233f (en: 'apl slash bar') - - "⍰": [T: "eingerahmtes Fragezeichen"] # 0x2370 (en: 'unknown box', google: 'unbekannte box') - - "⍼": [T: "rechter winkel mit abwärts-zickzackpfeil"] # 0x237c (en: 'right angle with downwards zigzag arrow') - - "⎔": [T: "sechseck"] # 0x2394 (en: 'hexagon') - - "⎕": [T: "kasten"] # 0x2395 (en: 'box', google translation) - - "⎶": [T: "untere eckige klammer über oberer eckiger klammer"] # 0x23b6 (en: 'bottom square bracket over top square bracket') - - "⏜": [T: "obere klammer"] # 0x23dc (en: 'top paren') - - "⏝": [T: "untere klammer"] # 0x23dd (en: 'bottom paren') - - "⏞": [T: "Obere geschweifte Klammer"] # 0x23DE (en: 'top brace', MathPlayer: 'top curly bracket', google: 'spitzenklammer') - - "⏟": [T: "Untere geschweifte Klammer"] # 0x23DF (en: 'bottom brace', MathPlayer: 'bottom curly bracket', google: 'bottom -klammer') - - "⏠": [T: "obere schildkröten-klammer"] # 0x23e0 (en: 'top tortoise shell bracket') - - "⏡": [T: "untere schildkröten-klammer"] # 0x23e1 (en: 'bottom tortoise shell bracket') - - "⏢": [T: "weißes trapez"] # 0x23e2 (en: 'white trapezium') - - "⏣": [T: "benzol rechts mit kreis"] # 0x23e3 (en: 'benzene right with circle') - - "⏤": [T: "geradheit"] # 0x23e4 (en: 'straightness') - - "⏥": [T: "ebenheit"] # 0x23e5 (en: 'flatness') - - "⏦": # 0x23e6 - - spell: "ac" - - T: "strom" - - "⏧": [T: "elektrische kreuzung"] # 0x23e7 (en: 'electrical intersection') - - "①-⑨": # 0x2460 - 0x2469 - - T: "umkreiste" # (en: 'circled', MathPlayer: 'bottom curly bracket', google: 'eingekreist') - - spell: "translate('.', '①②③④⑤⑥⑦⑧⑨', '123456789')" - - "⑩": [T: "zehn umkreist"] # 0x2469 (en: 'circled ten', google translation) - - "⑪": [T: "elf umkreist"] # 0x246a (en: 'circled eleven', google translation) - - "⑫": [T: "zwölf umkreist"] # 0x246b (en: 'circled twelve', google translation) - - "⑬": [T: "dreizehn umkreist"] # 0x246c (en: 'circled thirteen', google translation) - - "⑭": [T: "vierzehn umkreist"] # 0x246d (en: 'circled fourteen', google translation) - - "⑮": [T: "fünfzehn umkreist"] # 0x246e (en: 'circled fifteen', google translation) - - "⑯": [T: "umkreiste sechzehn"] # 0x246f (en: 'circled sixteen', google translation) - - "⑰": [T: "siebzehn umkreist"] # 0x2470 (en: 'circled seventeen', google translation) - - "⑱": [T: "eingekreist"] # 0x2471 (en: 'circled eighteen', google translation) - - "⑳": [T: "zwanzig umkreist"] # 0x2473 (en: 'circled twenty', google translation) - - "⑴-⑼": # 0x2474 - 0x247d - - T: "klammern" # (en: 'parenthesized', google translation) - - spell: "translate('.', '⑴⑵⑶⑷⑸⑹⑺⑻⑼', '123456789')" - - "⑽": [T: "klammern zehn"] # 0x247d (en: 'parenthesized ten', google translation) - - "⑾": [T: "klammern elf"] # 0x247e (en: 'parenthesized eleven', google translation) - - "⑿": [T: "klammern zwölf"] # 0x247f (en: 'parenthesized twelve', google translation) - - "⒀": [T: "klammern dreizehn"] # 0x2480 (en: 'parenthesized thirteen', google translation) - - "⒁": [T: "klammern vierzehn"] # 0x2481 (en: 'parenthesized fourteen', google translation) - - "⒂": [T: "klammern fünfzehn"] # 0x2482 (en: 'parenthesized fifteen', google translation) - - "⒃": [T: "klammern sechzehn"] # 0x2483 (en: 'parenthesized sixteen', google translation) - - "⒄": [T: "klammern siebzehn"] # 0x2484 (en: 'parenthesized seventeen', google translation) - - "⒅": [T: "klammern"] # 0x2485 (en: 'parenthesized eighteen', google translation) - - "⒆": [T: "klammern neunzehn"] # 0x2486 (en: 'parenthesized nineteen', google translation) - - "⒇": [T: "klammern von zwanzig"] # 0x2487 (en: 'parenthesized twenty', google translation) - - "⒈-⒐": # 0x2488 - 0x2491 - - spell: "translate('.', '⒈⒉⒊⒋⒌⒍⒎⒏⒐', '123456789')" - - T: "mit periode" # (en: 'with period', google translation) - - "⒑": [T: "zehn mit periode"] # 0x2491 (en: 'ten with period', google translation) - - "⒒": [T: "elf mit periode"] # 0x2492 (en: 'eleven with period', google translation) - - "⒓": [T: "zwölf mit periode"] # 0x2493 (en: 'twelve with period', google translation) - - "⒔": [T: "dreizehn mit periode"] # 0x2494 (en: 'thirteen with period', google translation) - - "⒕": [T: "vierzehn mit periode"] # 0x2495 (en: 'fourteen with period', google translation) - - "⒖": [T: "fünfzehn mit periode"] # 0x2496 (en: 'fifteen with period', google translation) - - "⒗": [T: "16 mit periode"] # 0x2497 (en: 'sixteen with period', google translation) - - "⒘": [T: "siebzehn mit periode"] # 0x2498 (en: 'seventeen with period', google translation) - - "⒙": [T: "mit periode gefressen"] # 0x2499 (en: 'eighteen with period', google translation) - - "⒚": [T: "neunzehn mit periode"] # 0x249a (en: 'nineteen with period', google translation) - - "⒛": [T: "zwanzig mit periode"] # 0x249b (en: 'twenty with period', google translation) - - "⒜-⒵": # 0x249c - 0x24b5 - - T: "klammern" # (en: 'parenthesized', google translation) - - spell: "translate('.', '⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵', 'abcdefghijklmnopqrstuvwxyz')" - - - "Ⓐ-Ⓩ": - - T: "eingekreist" # (en: 'circled', google translation) - - spell: "translate('.', 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "🅐-🅩": # 0x1f150 - 0x1f169 - - T: "schwarz eingekreist" # (en: 'black circled', google translation) - - spell: "translate('.', '🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "ⓐ-ⓩ": # 0x24d0 - 0x24e9 - - T: "eingekreist" # (en: 'circled', google translation) - - spell: "translate('.', 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ', 'abcdefghijklmnopqrstuvwxyz')" - - "⓪": [T: "eingekreist null"] # 0x24ea (en: 'circled zero', google translation) - - "⓫": [T: "schwarz eingekreiste elf"] # 0x24eb (en: 'black circled eleven', google translation) - - "⓬": [T: "schwarz eingekreiste zwölf"] # 0x24ec (en: 'black circled twelve', google translation) - - "⓭": [T: "schwarz eingekreiste dreizehn"] # 0x24ed (en: 'black circled thirteen', google translation) - - "⓮": [T: "schwarz eingekreiste vierzehn"] # 0x24ee (en: 'black circled fourteen', google translation) - - "⓯": [T: "schwarz eingekreiste fünfzehn"] # 0x24ef (en: 'black circled fifteen', google translation) - - "⓰": [T: "schwarz eingekreiste sechzehn"] # 0x24f0 (en: 'black circled sixteen', google translation) - - "⓱": [T: "schwarz eingekreiste siebzehn"] # 0x24f1 (en: 'black circled seventeen', google translation) - - "⓲": [T: "schwarz eingekreiste achtzehn"] # 0x24f2 (en: 'black circled eighteen', google translation) - - "⓳": [T: "schwarz eingekreiste neunzehn"] # 0x24f3 (en: 'black circled nineteen', google translation) - - "⓴": [T: "schwarz eingekreiste zwanzig"] # 0x24f4 (en: 'black circled twenty', google translation) - - "⓵-⓽": # 0x24f5 - 0x24fe - - T: "doppelt umkreist" # (en: 'double circled', google translation) - - spell: "translate('.', '⓵⓶⓷⓸⓹⓺⓻⓼⓽', '123456789')" - - "⓾": [T: "doppelt umgekreiste zehn"] # 0x24fe (en: 'double circled ten', google translation) - - "⓿": [T: "schwarz eingekreiste null"] # 0x24ff (en: 'black circled zero', google translation) - - "■": [T: "Schwarzes Quadrat"] # 0x25a0 (en: 'black square', MathPlayer: 'black square', google: 'schwarzes quadrat') - - "□": [T: "Weißes Quadrat"] # 0x25a1 (en: 'white square', MathPlayer: 'white square', google: 'weißes quadrat') - - "▢": [T: "Weißes Quadrat mit abgerundeten Ecken"] # 0x25a2 (en: 'white square with rounded corners', google: 'weißes quadrat mit abgerundeten ecken') - - "▣": [T: "Weißes Quadrat, das schwarzes kleines Quadrat enthält"] # 0x25a3 (en: 'white square containing small black square', google: 'weißes quadrat mit kleinem schwarzem quadrat') - - "▤": [T: "Quadrat mit horizontaler Füllung"] # 0x25a4 (en: 'square with horizontal fill', google: 'quadrat mit horizontaler füllung') - - "▥": [T: "Quadrat mit vertikaler Füllung"] # 0x25a5 (en: 'square with vertical fill', google: 'quadrat mit vertikaler füllung') - - "▦": [T: "Quadrat mit orthogonaler Schraffurfüllung"] # 0x25a6 (en: 'square with orthogonal crosshatch fill', google: 'quadrat mit orthogonaler kreuzungsfüllung') - - "▧": [T: "Quadrat mit Füllung von oben links nach rechts unten"] # 0x25a7 (en: 'square with upper left to lower right fill', google: 'quadratisch mit oberen links nach unten rechts füllung') - - "▨": [T: "Quadrat mit Füllung von oben recht nach links unten"] # 0x25a8 (en: 'square with upper right to lower left fill', google: 'quadrat mit der oberen rechten linken füllung') - - "▩": [T: "Quadrat mit diagonaler Schraffurfüllung"] # 0x25a9 (en: 'square with diagonal crosshatch fill', google: 'quadrat mit diagonaler kreuzungsfüllung') - - "▪": [T: "Schwarzes kleines Quadrat"] # 0x25aa (en: 'black small square', MathPlayer: 'black square', google: 'schwarzes kleines quadrat') - - "▫": [T: "Weißes kleines Quadrat"] # 0x25ab (en: 'white small square', MathPlayer: 'white square', google: 'weißes kleines quadrat') - - "▬": [T: "Schwarzes Rechteck"] # 0x25ac (en: 'black rectangle', google: 'schwarzes rechteck') - - "▭": [T: "Weißes Rechteck"] # 0x25ad (en: 'white rectangle', MathPlayer: 'white rectangle', google: 'weißes rechteck') - - "▮": [T: "Schwarzes vertikales Rechteck"] # 0x25ae (en: 'black vertical rectangle', MathPlayer: 'black vertical rectangle', google: 'schwarzes vertikales rechteck') - - "▯": [T: "Weißes vertikales Rechteck"] # 0x25af (en: 'white vertical rectangle', MathPlayer: 'white vertical rectangle', google: 'weißes vertikales rechteck') - - "▰": [T: "Schwarzes Parallelogramm"] # 0x25b0 (en: 'black parallelogram', google: 'schwarzes parallelogramm') - - "▱": [T: "Weißes Parallelogramm"] # 0x25b1 (en: 'white parallelogram', MathPlayer: 'white parallelogram', google: 'weißes parallelogramm') - - "▲": [T: "Schwarzes nach oben zeigendes Dreieck"] # 0x25b2 (en: 'black up pointing triangle', MathPlayer: 'black up pointing triangle', google: 'schwarz nach oben zeigt dreieck') - - "△": [T: "Weißes nach oben zeigendes Dreieck"] # 0x25b3 (en: 'white up pointing triangle', MathPlayer: 'white up pointing triangle', google: 'weiß nach oben zeigendreieck') - - "▴": [T: "Schwarzes nach oben zeigendes kleines Dreieck"] # 0x25b4 (en: 'black up pointing small triangle', MathPlayer: 'black up pointing triangle', google: 'schwarz nach oben zeigt ein kleines dreieck') - - "▵": [T: "Weißes nach oben zeigendes kleines Dreieck"] # 0x25b5 (en: 'white up pointing small triangle', MathPlayer: 'white up pointing triangle', google: 'weiß nach oben zeigt ein kleines dreieck') - - "▶": [T: "Schwarzes nach rechts zeigendes Dreieck"] # 0x25b6 (en: 'black right pointing triangle', MathPlayer: 'black right pointing triangle', google: 'schwarzes rechte dreieck') - - "▷": [T: "Weißes nach rechts zeigendes Dreieck"] # 0x25b7 (en: 'white right pointing triangle', MathPlayer: 'white right pointing triangle', google: 'weißes rechtes dreieck') - - "▸": [T: "Schwarzes nach rechts zeigendes kleines Dreieck"] # 0x25b8 (en: 'black right pointing small triangle', MathPlayer: 'black right pointing triangle', google: 'schwarzer rechts kleines dreieck') - - "▹": [T: "Weißes nach rechts zeigendes kleines Dreieck"] # 0x25b9 (en: 'white right pointing small triangle', MathPlayer: 'right pointing triangle', google: 'weißer rechts kleines dreieck') - - "►": [T: "Schwarzer nach rechts zeigender Zeiger"] # 0x25ba (en: 'black right pointing pointer', google: 'schwarzer rechter zeiger') - - "▻": [T: "Weißer nach rechts zeigender Zeiger"] # 0x25bb (en: 'white right pointing pointer', google: 'weißer rechts zeiger') - - "▼": [T: "Schwarzes Abwärtsdreieck"] # 0x25bc (en: 'black down pointing triangle', MathPlayer: 'black down pointing triangle', google: 'schwarzes down -dreieck') - - "▽": [T: "Weißes Abwärtsdreieck"] # 0x25bd (en: 'white down pointing triangle', MathPlayer: 'white down pointing triangle', google: 'weiß down dreieck') - - "▾": [T: "Schwarzes kleines Abwärtsdreieck"] # 0x25be (en: 'black down pointing small triangle', MathPlayer: 'black down pointing triangle', google: 'schwarz unten zeigt ein kleines dreieck') - - "▿": [T: "Weißes kleines Abwärtsdreieck"] # 0x25bf (en: 'white down pointing small triangle', MathPlayer: 'white down pointing triangle', google: 'weiß down zeigt kleines dreieck') - - "◀": [T: "Schwarzes nach links zeigendes Dreieck"] # 0x25c0 (en: 'black left pointing triangle', MathPlayer: 'black left pointing triangle', google: 'schwarzes linker dreieck') - - "◁": [T: "Weißes nach links zeigendes Dreieck"] # 0x25c1 (en: 'white left pointing triangle', MathPlayer: 'white left pointing triangle', google: 'weißes linker dreieck') - - "◂": [T: "Schwarzes nach links zeigendes kleines Dreieck"] # 0x25c2 (en: 'black left pointing small triangle', MathPlayer: 'black left pointing triangle', google: 'schwarz links zeigt ein kleines dreieck') - - "◃": [T: "Weißes nach links zeigendes kleines Dreieck"] # 0x25c3 (en: 'white left pointing small triangle', MathPlayer: 'white left pointing triangle', google: 'weiß links kleines dreieck') - - "◄": [T: "Schwarzer nach links zeigender Zeiger"] # 0x25c4 (en: 'black left pointing pointer', MathPlayer: 'black left pointing pointer', google: 'schwarzer links zeigter zeiger') - - "◅": [T: "Weißer nach links zeigender Zeiger"] # 0x25c5 (en: 'white left pointing pointer', MathPlayer: 'white left pointing pointer', google: 'weißer links zeiger zeiger') - - "◆": [T: "Schwarzer Diamant"] # 0x25c6 (en: 'black diamond', MathPlayer: 'black diamond', google: 'schwarzer diamant') - - "◇": [T: "Weißer Diamant"] # 0x25c7 (en: 'white diamond', MathPlayer: 'white diamond', google: 'weißer diamant') - - "◈": [T: "Weißer Diamant mit schwarzem kleinem Diamant"] # 0x25c8 (en: 'white diamond containing black small diamond', MathPlayer: 'white diamond containing black diamond', google: 'weißer diamant mit schwarzem kleinem diamanten') - - "◉": [T: "Fischauge"] # 0x25c9 (SRE: 'Fischauge') - - "◊": [T: "Raute"] # 0x25ca (en: 'lozenge', MathPlayer: 'lozenge', google: 'pastille') - - "○": [T: "Weißer Kreis"] # 0x25cb (en: 'white circle', MathPlayer: 'white circle', google: 'weißer kreis') - - "◌": [T: "Gepunkteter weißer Kreis"] # 0x25cc (en: 'dotted circle', MathPlayer: 'dotted circle', google: 'gepunkteter kreis') - - "◍": [T: "Kreis mit vertikaler Füllung"] # 0x25cd (en: 'circle with vertical fill', MathPlayer: 'circle with vertical fill', google: 'kreis mit vertikaler füllung') - - "◎": [T: "Volltreffer"] # 0x25ce (SRE: 'Bullseye') - - "●": [T: "Schwarzer Kreis"] # 0x25cf (en: 'black circle', MathPlayer: 'black circle', google: 'schwarzer kreis') - - "◐": [T: "Kreis mit linker Hälfte schwarz"] # 0x25d0 (en: 'circle with left half black', MathPlayer: 'circle with left half black', google: 'kreis mit dem linken halben schwarz') - - "◑": [T: "Kreis mit rechter Hälfte schwarz"] # 0x25d1 (en: 'circle with right half black', MathPlayer: 'circle with right half black', google: 'kreis mit dem rechten halb schwarz') - - "◒": [T: "Kreis mit unterer Hälfte schwarz"] # 0x25d2 (en: 'circle with lower half black', MathPlayer: 'circle with lower half black', google: 'kreis mit unterer halb schwarz') - - "◓": [T: "Kreis mit oberer Hälfte schwarz"] # 0x25d3 (en: 'circle with upper half black', MathPlayer: 'circle with upper half black', google: 'kreis mit der oberen hälfte schwarz') - - "◔": [T: "Kreis mit oberem rechten Quadranten schwarz"] # 0x25d4 (en: 'circle with upper right quadrant black', MathPlayer: 'circle with upper right quadrant black', google: 'kreis mit dem oberen rechten quadranten schwarz') - - "◕": [T: "Kreis mit ganzem oberen linken Quadranten schwarz"] # 0x25d5 (en: 'circle with all but upper left quadrant black', MathPlayer: 'circle with all but upper left quadrant black', google: 'kreisen sie mit allen außer oberen linken quadranten schwarz') - - "◖": [T: "Linker halber schwarzer Kreis"] # 0x25d6 (en: 'left half black circle', MathPlayer: 'left half black circle', google: 'links halb schwarzer kreis') - - "◗": [T: "rechter halber schwarzer Kreis"] # 0x25d7 (en: 'right half black circle', MathPlayer: 'right half black circle', google: 'rechte halbe schwarze kreis') - - "◘": [T: "Inverse Kugel"] # 0x25d8 (en: 'inverse bullet', MathPlayer: 'inverse bullet', google: 'inverse kugel') - - "◙": [T: "Inverser weißer Kreis"] # 0x25d9 (en: 'inverse white circle', MathPlayer: 'inverse white circle', google: 'inverser weißer kreis') - - "◚": [T: "Umgekehrter weißer Kreis der oberen Hälfte"] # 0x25da (en: 'upper half inverse white circle', MathPlayer: 'upper half inverse white circle', google: 'inverse weißer kreis der oberen hälfte') - - "◛": [T: "Umgekehrter weißer Kreis der unteren Hälfte"] # 0x25db (en: 'lower half inverse white circle', MathPlayer: 'lower half inverse white circle', google: 'untere hälfte inverser weißer kreis') - - "◜": [T: "Kreisbogen im oberen linken Quadranten"] # 0x25dc (en: 'upper left quadrant circular arc', MathPlayer: 'upper left quadrant circular arc', google: 'oberer linker quadrantenkreisbogen') - - "◝": [T: "Kreisbogen im oberen rechten Quadranten"] # 0x25dd (en: 'upper right quadrant circular arc', MathPlayer: 'upper right quadrant circular arc', google: 'oberer rechter quadrant kreisbogen') - - "◞": [T: "Kreisbogen im rechten unteren Quadranten"] # 0x25de (en: 'lower right quadrant circular arc', MathPlayer: 'lower right quadrant circular arc', google: 'unterer rechts quadrant zirkularbogen') - - "◟": [T: "Kreisbogen im unteren linken Quadranten"] # 0x25df (en: 'lower left quadrant circular arc', MathPlayer: 'lower left quadrant circular arc', google: 'unterer linker quadrantenkreisbogen') - - "◠": [T: "Oberer Halbkreis"] # 0x25e0 (en: 'upper half circle', MathPlayer: 'upper half circle', google: 'oberer halbkreis') - - "◡": [T: "Unterer Halbkreis"] # 0x25e1 (en: 'lower half circle', MathPlayer: 'lower half circle', google: 'unterer halbkreis') - - "◢": [T: "Schwarzes unteres rechtes Dreieck"] # 0x25e2 (en: 'black lower right triangle', MathPlayer: 'black lower right triangle', google: 'schwarz unten rechts dreieck') - - "◣": [T: "Schwarzes unteres linkes Dreieck"] # 0x25e3 (en: 'black lower left triangle', MathPlayer: 'black lower left triangle', google: 'schwarzes unteres linke dreieck') - - "◤": [T: "Schwarzes oberes linkes Dreieck"] # 0x25e4 (en: 'black upper left triangle', MathPlayer: 'black upper left triangle', google: 'schwarzes oberes linksdreieck') - - "◥": [T: "Schwarzes oberes rechtes Dreieck"] # 0x25e5 (en: 'black upper right triangle', MathPlayer: 'black upper right triangle', google: 'schwarzes oberes rechtes dreieck') - - "◦": [T: "Weiße Kugel"] # 0x25e6 (en: 'composition', MathPlayer: 'composition', google: 'komposition') - - "◧": [T: "Quadrat mit linker Hälfte schwarz"] # 0x25e7 (en: 'square with left half black', MathPlayer: 'square with left half black', google: 'quadrat mit linksem halb schwarz') - - "◨": [T: "Quadrat mit rechter Hälfte schwarz"] # 0x25e8 (en: 'square with right half black', MathPlayer: 'square with right half black', google: 'quadrat mit dem rechten halben schwarz') - - "◩": [T: "Quadrat mit der oberen linken Diagonalenhälfte schwarz"] # 0x25e9 (en: 'square with upper left half black', MathPlayer: 'square with upper left half black', google: 'quadrat mit oberen linken halben schwarz') - - "◪": [T: "Quadrat mit unterer rechter Diagonalhälfte schwarz"] # 0x25ea (en: 'square with lower right half black', MathPlayer: 'square with lower right half black', google: 'quadratisch mit unterer rechter halb schwarz') - - "◫": [T: "Weißes Quadrat mit senkrechter Linie"] # 0x25eb (en: 'white square with bisecting line', MathPlayer: 'white square with bisecting line', google: 'weißes quadrat mit halbierender linie') - - "◬": [T: "Weißes nach oben zeigendes Dreieck mit Punkt"] # 0x25ec (en: 'white up pointing triangle with dot', MathPlayer: 'white up pointing triangle with dot', google: 'weiß nach oben zeigte dreieck mit punkt') - - "◭": [T: "Aufwärtszeigendes Dreieck mit linker Hälfte schwarz"] # 0x25ed (en: 'up pointing triangle with left half black', MathPlayer: 'up pointing triangle with left half black', google: 'dreieck mit dem linken halben schwarz zeigen') - - "◮": [T: "Aufwärtszeigendes Dreieck mit rechter Hälfte schwarz"] # 0x25ee (en: 'up pointing triangle with right half black', MathPlayer: 'up pointing triangle with right half black', google: 'dreieck mit dem rechten halben schwarz zeigen') - - "◯": [T: "Großer Kreis"] # 0x25ef (en: 'large circle', MathPlayer: 'large circle', google: 'großer kreis') - - "◰": [T: "Weißes Quadrat mit kleinem Quadrat im oberem linken Quadranten"] # 0x25f0 (en: 'white square with upper left quadrant', google: 'weißes quadrat mit oberen linken quadrant') - - "◱": [T: "Weißes Quadrat mit kleinem Quadrat im unterem linken Quadranten"] # 0x25f1 (en: 'white square with lower left quadrant', google: 'weißes quadrat mit unteren linken quadranten') - - "◲": [T: "Weißes Quadrat mit kleinem Quadrat im unterem rechten Quadranten"] # 0x25f2 (en: 'white square with lower right quadrant', google: 'weißes quadrat mit unten rechts quadrant') - - "◳": [T: "Weißes Quadrat mit kleinem Quadrat im rechtem oberen Quadranten"] # 0x25f3 (en: 'white square with upper right quadrant', google: 'weißes quadrat mit oberen rechten quadrant') - - "◴": [T: "Weißer Kreis mit kleinem Kreis im oberem linkem Quadranten"] # 0x25f4 (en: 'white circle with upper left quadrant', google: 'weißer kreis mit oberen linken quadrant') - - "◵": [T: "Weißer Kreis mit kleinem Kreis im unterem linken Quadranten"] # 0x25f5 (en: 'white circle with lower left quadrant', google: 'weißer kreis mit unteren linken quadranten') - - "◶": [T: "Weißer Kreis mit kleinem Kreis im unterem rechten Quadranten"] # 0x25f6 (en: 'white circle with lower right quadrant', google: 'weißer kreis mit unten rechts quadrant') - - "◷": [T: "Weißer Kreis mit kleinem Kreis im rechtem oberen Quadranten"] # 0x25f7 (en: 'white circle with upper right quadrant', google: 'weißer kreis mit oben rechts quadrant') - - "◸": [T: "Oberes linkes Dreieck"] # 0x25f8 (en: 'upper left triangle', MathPlayer: 'upper left triangle', google: 'oberes linker dreieck') - - "◹": [T: "Oberes rechtes Dreieck"] # 0x25f9 (en: 'upper right triangle', MathPlayer: 'upper right triangle triangle', google: 'ober rechtes dreieck') - - "◺": [T: "Unteres linkes Dreieck"] # 0x25fa (en: 'lower left triangle', MathPlayer: 'lower left triangle', google: 'unteres linker dreieck') - - "◻": [T: "Weißes mittleres Quadrat"] # 0x25fb (en: 'white medium square', MathPlayer: 'white medium square', google: 'weißes mittleres quadrat') - - "◼": [T: "Schwarzes mittleres kleines Quadrat"] # 0x25fc (en: 'black medium square', MathPlayer: 'black medium square', google: 'schwarzes mittleres quadrat') - - "◽": [T: "Weißes mittleres Quadrat"] # 0x25fd (en: 'white medium small square', MathPlayer: 'white medium square', google: 'weißes mittleres kleines quadrat') - - "◾": [T: "Schwarzes mittleres Quadrat"] # 0x25fe (en: 'black medium small square', MathPlayer: 'black medium square', google: 'schwarzes mittel kleiner quadrat') - - "◿": [T: "Unteres rechtes Dreieck"] # 0x25ff (en: 'lower right triangle', MathPlayer: 'lower right triangle', google: 'unten rechts dreieck') - - "★": [T: "schwarzer stern"] # 0x2605 (en: 'black star') - - "☆": [T: "weißer stern"] # 0x2606 (en: 'white star') - - "☉": [T: "sonne"] # 0x2609 (en: 'sun') - - "☌": [T: "konjunktion"] # 0x260c (en: 'conjuction') - - "☒": [T: "wahlbox mit x"] # 0x2612 (en: 'ballot box with x') - - "☽": [T: "zunehmender mond"] # 0x263d (en: 'waxing moon') - - "☾": [T: "abnehmender mond"] # 0x263e (en: 'waning moon') - - "☿": [T: "merkur"] # 0x263f (en: 'mercury') - - "♀": [T: "weiblich"] # 0x2640 (en: 'female') - - "♁": [T: "erde"] # 0x2641 (en: 'earth') - - "♂": [T: "männlich"] # 0x2642 (en: 'male') - - "♃": [T: "jupiter"] # 0x2643 (en: 'jupiter') - - "♄": [T: "saturn"] # 0x2644 (en: 'saturn') - - "♅": [T: "uranus"] # 0x2645 (en: 'uranus') - - "♆": [T: "neptun"] # 0x2646 (en: 'neptune') - - "♇": [T: "pluto"] # 0x2647 (en: 'pluto') - - "♈": [T: "widder"] # 0x2648 (en: 'aries') - - "♉": [T: "stier"] # 0x2649 (en: 'taurus') - - "♩": [T: "viertelnote"] # 0x2669 (en: 'quarter note') - - "♭": [T: "b"] # 0x266d (en: 'flat') - - "♮": [T: "auflösungszeichen"] # 0x266e (en: 'natural') - - "♯": [T: "kreuz"] # 0x266f (en: 'sharp') - - "♠": [T: "schwarzes Piksymbol"] # 0x2660 (google: 'schwarzer spatenanzug') - - "♡": [T: "weißes Herz"] # 0x2661 (google: 'weißer herzanzug') - - "♢": [T: "weißes Karo"] # 0x2662 (google: 'weißer diamantanzug') - - "♣": [T: "schwarzes Kreuzsymbol"] # 0x2663 (google: 'schwarzer clubanzug') - - "♤": [T: "weißes Piksymbol"] # 0x2664 (google: 'weißer spatenanzug') - - "♥": [T: "schwarzes Herz"] # 0x2665 (google: 'schwarzer herzanzug') - - "♦": [T: "schwarzes Karo"] # 0x2666 (google: 'schwarzer diamantanzug') - - "♧": [T: "weißes Kreuzsymbol"] # 0x2667 (google: 'weißer clubanzug') - - "⚀": [T: "würfelseite 1"] # 0x2680 (en: 'die face 1') - - "⚁": [T: "würfelseite 2"] # 0x2681 (en: 'die face 2') - - "⚂": [T: "würfelseite 3"] # 0x2682 (en: 'die face 3') - - "⚃": [T: "würfelseite 4"] # 0x2683 (en: 'die face 4') - - "⚄": [T: "würfelseite 5"] # 0x2684 (en: 'die face 5') - - "⚅": [T: "würfelseite 6"] # 0x2685 (en: 'die face 6') - - "⚆": [T: "weißer kreis mit punkt rechts"] # 0x2686 (en: 'white circle with dot right') - - "⚇": [T: "weißer kreis mit zwei punkten"] # 0x2687 (en: 'white circle with two dots') - - "⚈": [T: "schwarzer kreis mit punkt rechts"] # 0x2688 (en: 'black circle with dot right') - - "⚉": [T: "schwarzer kreis mit zwei punkten"] # 0x2689 (en: 'black circle with two dots') - - "⚪": [T: "mittelgroßer weißer kreis"] # 0x26aa (en: 'medium white circle') - - "⚫": [T: "mittelgroßer schwarzer kreis"] # 0x26ab (en: 'medium black circle') - - "⚬": [T: "mittelkleiner weißer kreis"] # 0x26ac (en: 'medium small white circle') - - "⚲": [T: "neutrum"] # 0x26b2 (en: 'neuter') - - "✓": [T: "häkchen"] # 0x2713 (en: 'check mark') - - "✠": [T: "malteserkreuz"] # 0x2720 (en: 'maltese cross') - - "✪": [T: "eingekreister weißer stern"] # 0x272a (en: 'circled white star') - - "✶": [T: "sechszackiger schwarzer stern"] # 0x2736 (en: 'six pointed black star') - - "❨": [T: "Mittlere linke Klammerverzierung"] # 0x2768 (en: 'medium left parentheses ornament', google: 'mittel linke klammern') - - "❩": [T: "Mittlere rechte Klammerverzierung"] # 0x2769 (en: 'medium right parentheses ornament', google: 'mittel rechts klammernsthesis ornament') - - "❪": [T: "Mittlere abgeflachte linke Klammerverzierung"] # 0x276a (en: 'medium flattened left parentheses ornament', google: 'medium abgeflachtes linker klammern') - - "❫": [T: "Mittlere abgeflachte rechte Klammerverzierung"] # 0x276b (en: 'medium flattened right parentheses ornament', google: 'mittel abgeflacht rechte klammerthese -ornament') - - "❬": [T: "Mittlere nach links weisende Winkelhalterung"] # 0x276c (en: 'medium left-pointing angle bracket ornament', google: 'mittelgroße linkswinkel-klammerverzierung') - - "❭": [T: "Mittlere, rechtwinklige Winkelhalterung"] # 0x276d (en: 'medium right-pointing angle bracket ornament', google: 'mittel mit dem rechten zeigungswinkelhalterung') - - "❮": [T: "Dickes nach links weisendes Anführungszeichen"] # 0x276e (en: 'heavy left-pointing angle quotation mark ornament', google: 'schwerer zitat für den linken zeigungswinkel mark ornament') - - "❯": [T: "Dickes nach links weisendes Anführungszeichen"] # 0x276f (en: 'heavy right-pointing angle quotation mark ornament', google: 'schwerer rechts zeigter winkel zitat mark ornament') - - "❰": [T: "schweres, nach links zeigendes eckiges Klammerornament"] # 0x2770 (en: 'heavy left-pointing angle bracket ornament', google: 'schwere linkswinkel-halterung') - - "❱": [T: "schweres, nach rechts zeigendes eckiges Klammerornament"] # 0x2771 (en: 'heavy right-pointing angle bracket ornament', google: 'schwere rechtshalterung mit rechts zeigter winkel') - - "❲": [T: "Leichte Halterung aus Schildpatt, links"] # 0x2772 (en: 'light left tortoise shell bracket ornament', google: 'leichte linke schildkröte -hülle -halterung') - - "❳": [T: "Leichte Halterung aus Schildpatt, rechts"] # 0x2773 (en: 'light right tortoise shell bracket ornament', google: 'leichte rechte schildkröte -hülle -halterung') - - "❴": [T: "Mittlere linke geschweifte Klammerverzierung"] # 0x2774 (en: 'medium left brace ornament', google: 'medium linke klammerverzierung') - - "❵": [T: "Mittlere rechte geschweifte Klammerverzierung"] # 0x2775 (en: 'medium right brace ornament', google: 'mittlere rechte klammerverzierung') - - "❶": [T: "schwarz umkreiste eins"] # 0x2776 (en: 'black circled one', google translation) - - "❷": [T: "schwarz umkreiste zwei"] # 0x2777 (en: 'black circled two', google translation) - - "❸": [T: "schwarz umkreiste drei"] # 0x2778 (en: 'black circled three', google translation) - - "❹": [T: "schwarz umkreiste vier"] # 0x2779 (en: 'black circled four', google translation) - - "❺": [T: "schwarz umkreiste fünf"] # 0x277a (en: 'black circled five', google translation) - - "❻": [T: "schwarz umkreiste sechs"] # 0x277b (en: 'black circled six', google translation) - - "❼": [T: "schwarz umkreiste sieben"] # 0x277c (en: 'black circled seven', google translation) - - "❽": [T: "schwarz umumkreist nach"] # 0x277d (en: 'black circled eight', google translation) - - "❾": [T: "schwarz umreiste neun"] # 0x277e (en: 'black circled nine', google translation) - - "❿": [T: "schwarz umkreiste zehn"] # 0x277f (en: 'black circled ten', google translation) - - "➀": [T: "umkreiste eins ohne serife"] # 0x2780 (en: 'circled sans serif one', google translation) - - "➁": [T: "umkreiste zwei ohne serife"] # 0x2781 (en: 'circled sans serif two', google translation) - - "➂": [T: "umkreiste drei hne serife "] # 0x2782 (en: 'circled sans serif three', google translation) - - "➃": [T: "umkreiste vier ohne serife"] # 0x2783 (en: 'circled sans serif four', google translation) - - "➄": [T: "umkreite fünf ohne serife"] # 0x2784 (en: 'circled sans serif five', google translation) - - "➅": [T: "umkreiste sechs ohne serife"] # 0x2785 (en: 'circled sans serif six', google translation) - - "➆": [T: "umkreiste sieben ohne serife"] # 0x2786 (en: 'circled sans serif seven', google translation) - - "➇": [T: "umkreiste acht ohne serife"] # 0x2787 (en: 'circled sans serif eight', google translation) - - "➈": [T: "umkreiste neun ohne serife"] # 0x2788 (en: 'circled sans serif nine', google translation) - - "➉": [T: "umkreiste zehn ohne serife"] # 0x2789 (en: 'circled sans serif ten', google translation) - - "➊": [T: "schwarz umkreiste eins ohne serife"] # 0x278a (en: 'black circled sans serif one', google translation) - - "➋": [T: "schwarz umkreiste zwei ohne serife"] # 0x278b (en: 'black circled sans serif two', google translation) - - "➌": [T: "schwarz umkreiste drei ohne serife"] # 0x278c (en: 'black circled sans serif three', google translation) - - "➍": [T: "schwarz umkreiste vier ohne serife"] # 0x278d (en: 'black circled sans serif four', google translation) - - "➎": [T: "schwarz umkreiste fünf ohne serife"] # 0x278e (en: 'black circled sans serif five', google translation) - - "➏": [T: "schwarz umkreiste sechs ohne serife"] # 0x278f (en: 'black circled sans serif six', google translation) - - "➐": [T: "schwarz umkreiste sieben ohne serife"] # 0x2790 (en: 'black circled sans serif seven', google translation) - - "➑": [T: "schwarz umkreiste acht ohne serife "] # 0x2791 (en: 'black circled sans serif eight', google translation) - - "➒": [T: "schwarz umkreiste neun ohne serife"] # 0x2792 (en: 'black circled sans serif nine', google translation) - - "➓": [T: "schwarz umkreiste zehn ohne serife"] # 0x2793 (en: 'black circled sans serif ten', google translation) - - "➔": [T: "Schwerer, breitköpfiger nach rechts gerichteter Pfeil"] # 0x2794 (en: 'heavy wide-headed rightwards arrow', google: 'schwerer breiter arrow') - - "➕": [T: "dickes großes Pluszeichen"] # 0x2795 (en: 'heavy plus sign', google: 'schweres pluszeichen') - - "➖": [T: "dickes großes Minuszeichen"] # 0x2796 (en: 'heavy minus sign', google: 'schweres minuszeichen') - - "➗": [T: "dickes großes Divisionszeichen"] # 0x2797 (en: 'heavy division sign', google: 'schweres divisionszeichen') - - "➘": [T: "Starker Südostpfeil"] # 0x2798 (en: 'heavy south east arrow', google: 'schwerer südostpfeil') - - "➙": [T: "Starker Pfeil nach rechts"] # 0x2799 (en: 'heavy rightwards arrow', google: 'schwerer rechts pfeil') - - "➚": [T: "Starker Nordostpfeil"] # 0x279a (en: 'heavy north east arrow', google: 'schwerer nordostpfeil') - - "➛": [T: "Zeichnungszeichen Pfeil nach rechts"] # 0x279b (en: 'drafting point rightwards arrow', google: 'ausgangspunkt rechts von pfeil') - - "➜": [T: "Starker Pfeil mit runder Spitze nach rechts"] # 0x279c (en: 'heavy round-tipped rightwards arrow', google: 'schwerer pfeil nach rechts') - - "➝": [T: "Dreieckköpfiger Pfeil nach rechts"] # 0x279d (en: 'triangle-headed rightwards arrow', google: 'dreieck köpfig mit rechtsem pfeil') - - "➞": [T: "Schwerer Dreieckspfeil nach rechts"] # 0x279e (en: 'heavy triangle-headed rightwards arrow', google: 'schwerer pfeil mit dreieck-köpfen') - - "➟": [T: "Dicker Pfeil nach rechts"] # 0x279f (en: 'dashed triangle-headed rightwards arrow', google: 'dreieck köpfig nach rechtsem pfeil') - - "➠": [T: "Dicker, gestrichelter Dreieckspfeil nach rechts"] # 0x27a0 (en: 'heavy dashed triangle-headed rightwards arrow', google: 'schwerer, geschnittenes dreieck-köpfiger pfeil nach rechts') - - "➡": [T: "Dicker Pfeil nach rechts"] # 0x27a1 (en: 'black rightwards arrow', google: 'schwarzer pfeil nach rechts') - - "➢": [T: "Dreidimensionale, nach oben beleuchtete Pfeilspitze nach rechts"] # 0x27a2 (en: 'three d top lighted rightwards arrow', google: 'drei d top leuchtet nach rechts') - - "➣": [T: "Dreidimensionale, von unten beleuchtete Pfeilspitze nach rechts"] # 0x27a3 (en: 'three d bottom lighted rightwards arrow', google: 'drei d bottom beleuchtet nach rechts') - - "➤": [T: "Schwarze Pfeilspitze nach rechts"] # 0x27a4 (en: 'black rightwards arrowhead', google: 'schwarz rechts pfeilspitze') - - "➥": [T: "Schwerer schwarzer Pfeil nach unten und rechts gebogen"] # 0x27a5 (en: 'heavy black curved downwards and rightwards arrow', google: 'schwerer schwarz gebrüht nach unten und rechts pfeil') - - "➦": [T: "Schwerer schwarzer Pfeil nach oben und rechts gebogen"] # 0x27a6 (en: 'heavy black curved upwards and rightwards arrow', google: 'schwerer schwarz nach oben gebogen und rechts pfeil') - - "➧": [T: "Schwarzer kurzer nach rechts gerichteter Pfeil"] # 0x27a7 (en: 'squat black rightwards arrow', google: 'hocke black rightwards pfeil') - - "➨": [T: "Schwerer konkaver Spitze-Pfeil nach rechts"] # 0x27a8 (en: 'heavy concave-pointed black rightwards arrow', google: 'schwerer konkavspunkter schwarzer pfeil nach rechts') - - "➩": [T: "Rechts geschatteter weißer Pfeil nach rechts"] # 0x27a9 (en: 'right-shaded white rightwards arrow', google: 'right shaded white rightwards pfeil') - - "➪": [T: "Links schattierter weißer Pfeil nach rechts"] # 0x27aa (en: 'left-shaded white rightwards arrow', google: 'linksschattierte weiße pfeil nach rechts') - - "➫": [T: "Zurückgekippter, beschatteter weißer Pfeil nach rechts"] # 0x27ab (en: 'back-tilted shadowed white rightwards arrow', google: 'rückgedünnter weißer weißer pfeil nach rechts') - - "➬": [T: "Vorne geneigter, beschatteter weißer Pfeil nach rechts"] # 0x27ac (en: 'front-tilted shadowed white rightwards arrow', google: 'frontgeflodeltes weißer weißer pfeil nach rechts') - - "➭": [T: "Schwerer unterer rechter Schatten mit weißem Pfeil nach rechts"] # 0x27ad (en: 'heavy lower right-shadowed white rightwards arrow', google: 'schwere, rechte schatten mit weißem recht nach rechts') - - "➮": [T: "Schwerer oberer rechter Schatten mit weißem Pfeil nach rechts"] # 0x27ae (en: 'heavy upper right-shadowed white rightwards arrow', google: 'schwere obere rechte schattenhafte weiße rechts pfeil') - - "➯": [T: "Unten gekerbter Pfeil nach rechts"] # 0x27af (en: 'notched lower right-shadowed white rightwards arrow', google: 'gekerbte rechte rechten weißen pfeil nach rechts') - - "➱": [T: "Uben gekerbter Pfeil nach rechts"] # 0x27b1 (en: 'notched upper right-shadowed white rightwards arrow', google: 'gekerbte obere rechte schattenhafte weiße pfeil nach rechts') - - "➲": [T: "Eingekreister schwerer weißer Pfeil nach rechts"] # 0x27b2 (en: 'circled heavy white rightwards arrow', google: 'umgekreist schweren weißen pfeil nach rechts') - - "➳": [T: "Pfeil mit weißer Feder nach rechts"] # 0x27b3 (en: 'white-feathered rightwards arrow', google: 'weiß gefiederter pfeil nach rechts') - - "➴": [T: "Schwarz-gefiederter Südostpfeil"] # 0x27b4 (en: 'black-feathered south east arrow', google: 'schwarz gefiederter südöstlicher pfeil') - - "➵": [T: "chwarz-gefiederter Pfeil nach rechts"] # 0x27b5 (en: 'black-feathered rightwards arrow', google: 'schwarz gefiederter pfeil nach rechts') - - "➶": [T: "Schwarzgefiederter Nordostpfeil"] # 0x27b6 (en: 'black-feathered north east arrow', google: 'schwarz gefiederter nordostpfeil') - - "➷": [T: "Schwerer schwarzgefiederter Südostpfeil"] # 0x27b7 (en: 'heavy black-feathered south east arrow', google: 'schwerer schwarz gefiederter südostpfeil') - - "➸": [T: "Schwarzgefiederter Pfeil nach rechts"] # 0x27b8 (en: 'heavy black-feathered rightwards arrow', google: 'schwerer schwarz gefiederter pfeil nach rechts') - - "➹": [T: "Schwarzgefiederter Nordostpfeil"] # 0x27b9 (en: 'heavy black-feathered north east arrow', google: 'schwerer schwarz gefiederter nordostpfeil') - - "➺": [T: "Teradrop-Pfeil nach rechts mit Haken"] # 0x27ba (en: 'teradrop-barbed rightwards arrow', google: 'teradrop-barded mit rechtsem pfeil') - - "➻": [T: "Schwerer Pfeil mit tropfenförmigem Schaft, nach rechts gebogen"] # 0x27bb (en: 'heavy teardrop-shanked rightwards arrow', google: 'schwere tränenverschiebung nach rechts pfeil') - - "➼": [T: "Keilförmiger Pfeil nach rechts"] # 0x27bc (en: 'wedge-tailed rightwards arrow', google: 'keilschwanz rechts pfeil') - - "➽": [T: "Schwerer, nach rechts gekeilter Pfeil"] # 0x27bd (en: 'heavy wedge-tailed rightwards arrow', google: 'schwerer keilschwanz rechts pfeil') - - "➾": [T: "Offener Pfeil nach rechts"] # 0x27be (en: 'open-outlined rightwards arrow', google: 'open-out-line-rightwards-pfeil') - - "⟀": [T: "Dreidimensionaler Winkel"] # 0x27c0 (en: 'three dimensional angle', MathPlayer: 'three dimensional angle', google: 'dreidimensionaler winkel') - - "⟁": [T: "Weißes Dreieck, das ein kleines weißes Dreieck enthält"] # 0x27c1 (en: 'white triangle containing small white triangle', MathPlayer: 'white triangle containing small white triangle', google: 'weißes dreieck mit einem kleinen weißen dreieck') - - "⟂": # 0x27c2 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "rechtwinklig" # (en: 'perpendicular to', MathPlayer: 'perpendicular', google: 'senkrecht zu') - - "⟃": # 0x27c3 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "offene Teilmenge von" # (en: 'an open subset of', MathPlayer: 'open subset', google: 'eine offene teilmenge von') - - "⟄": # 0x27c4 - - test: - if: "$Verbosity!='Terse'" - then: [T: "ist"] # (en: 'is', google translation) - - T: "offene Obermenge von" # (en: 'an open superset of', MathPlayer: 'open superset', google: 'ein offenes superet von') - - "⟅": [T: "Linker S-förmiger Taschenbegrenzer"] # 0x27c5 (en: 'left s-shaped bag delimiter', MathPlayer: 'left s-shaped bag delimiter', google: 'links s-förmiger tasche gremiter') - - "⟆": [T: "rechter S-förmiger Taschenbegrenzer"] # 0x27c6 (en: 'right s-shaped bag delimiter', MathPlayer: 'right s-shaped bag delimiter', google: 'rechte s-förmige tasche grenzwerbung') - - "⟇": [T: "Oder mit innerem Punkt"] # 0x27c7 (en: 'or with dot inside', MathPlayer: 'or with dot inside', google: 'oder mit punkt im inneren') - - "⟈": [T: "Umgekehrter Schrägstrich Vorhergehender Teilsatz"] # 0x27c8 (en: 'reverse solidus preceding subset', MathPlayer: 'back slash preceeding subset', google: 'reverse solidus vor der untergruppe') - - "⟉": [T: "Superset Vorgänger Schrägstrich"] # 0x27c9 (en: 'superset preceding solidus', MathPlayer: 'superset preceeding slash', google: 'superset vor solidus') - - "⟊": [T: "Vertikaler Balken mit horizontalem Hub"] # 0x27ca (en: 'vertical bar with horizontal stroke', MathPlayer: 'vertical bar with horizontal stroke', google: 'vertikale balken mit horizontalem schlaganfall') - - "⟋": [T: "Mathematische aufsteigende Diagonale"] # 0x27cb (en: 'mathematical rising diagonal', google: 'mathematische steigende diagonale') - - "⟌": [T: "Lange Abteilung"] # 0x27cc (en: 'long division', MathPlayer: 'long division', google: 'lange division') - - "⟍": [T: "Mathematische fallende Diagonale"] # 0x27cd (en: 'mathematical falling diagonal', google: 'mathematische fallende diagonale') - - "⟎": [T: "quadratisches und"] # 0x27ce (en: 'squared logical and', google: 'quadratisch logisch und') - - "⟏": [T: "quadratisches oder"] # 0x27cf (en: 'squared logical or', google: 'quadratisch logisch oder') - - "⟐": [T: "Weißer Diamant mit zentriertem Punkt"] # 0x27d0 (en: 'white diamond with centered dot', google: 'weißer diamant mit zentriertem punkt') - - "⟑": [T: "Und mit Punkt"] # 0x27d1 (en: 'and with dot', MathPlayer: 'and with dot inside', google: 'und mit punkt') - - "⟒": [T: "Element der Öffnung nach oben"] # 0x27d2 (en: 'element of opening upwards', MathPlayer: 'element of openning upwards', google: 'element der öffnung nach oben') - - "⟓": [T: "Untere rechte Ecke mit Punkt"] # 0x27d3 (en: 'lower right corner with dot', MathPlayer: 'lower right corner with dot', google: 'untere rechte ecke mit punkt') - - "⟔": [T: "Obere linke Ecke mit Punkt"] # 0x27d4 (en: 'upper left corner with dot', MathPlayer: 'lower left corner with dot', google: 'obere linke ecke mit punkt') - - "⟕": [T: "Linke äußere Verbindung"] # 0x27d5 (en: 'left outer join', MathPlayer: 'left outer join', google: 'linke äußere verbindung') - - "⟖": [T: "Rechte äußere Verbindung"] # 0x27d6 (en: 'right outer join', MathPlayer: 'right outer join', google: 'rechts äußerer join') - - "⟗": [T: "Volle äußere Verbindung"] # 0x27d7 (en: 'full outer join', MathPlayer: 'full outer join', google: 'voller äußerer join') - - "⟘": [T: "Großer Aufwärtsstrich"] # 0x27d8 (en: 'large up tack', MathPlayer: 'large up tack', google: 'groß nach oben') - - "⟙": [T: "Großer Abwärtsstrich"] # 0x27d9 (en: 'large down tack', MathPlayer: 'large down tack', google: 'groß nach unten') - - "⟚": [T: "Linkes und rechtes doppeltes Drehkreuz"] # 0x27da (en: 'left and right double turnstile', MathPlayer: 'left and right double turnstile', google: 'linke und rechte doppeldrehung') - - "⟛": [T: "Linker und rechter Tack"] # 0x27db (en: 'left and right tack', MathPlayer: 'left and right tack', google: 'linker und rechter angriff') - - "⟜": [T: "Linke Multikarte"] # 0x27dc (en: 'left multimap', MathPlayer: 'left multimap', google: 'links multimap') - - "⟝": [T: "Langer rechter Strich"] # 0x27dd (en: 'long right tack', MathPlayer: 'long right tack', google: 'langer richtiger tack') - - "⟞": [T: "Langer linker Strich"] # 0x27de (en: 'long left tack', MathPlayer: 'long left tack', google: 'lange linke tack') - - "⟟": [T: "Aufwärtsstrich mit Kreis oben"] # 0x27df (en: 'up tack with circle above', MathPlayer: 'up tack with circle above', google: 'auf kreis oben') - - "⟠": [T: "Raute durch horizontale Regel geteilt"] # 0x27e0 (en: 'lozenge divided by horizontal rule', MathPlayer: 'lozenge divided by horizontal rule', google: 'rautengeschwindigkeit geteilt durch horizontale herrschaft') - - "⟡": [T: "Weißer konkavseitiger Diamant"] # 0x27e1 (en: 'white concave sided diamond', MathPlayer: 'white concave sided diamond', google: 'weißer konkaves diamant') - - "⟢": [T: "Weißer konkavseitiger Diamant mit Häkchen nach links"] # 0x27e2 (en: 'white concave sided diamond with leftwards tick', MathPlayer: 'white concave sided diamond with leftwards tick', google: 'weißer konkaves diamant mit linkser zecke') - - "⟣": [T: "Weißer konkavseitiger Diamant mit Häkchen nach rechts"] # 0x27e3 (en: 'white concave sided diamond with rightwards tick', MathPlayer: 'white concave sided diamond with rightwards tick', google: 'weißer konkaves diamant mit rightwards tick') - - "⟤": [T: "Weißes Quadrat mit Häkchen nach links"] # 0x27e4 (en: 'white square with leftwards tick', MathPlayer: 'white square with leftwards tick', google: 'weißes quadrat mit links. tick') - - "⟥": [T: "Weißes Quadrat mit Häkchen nach rechts"] # 0x27e5 (en: 'white square with rightwards tick', MathPlayer: 'white square with rightwards tick', google: 'weißes quadrat mit rechtsem häkchen') - - "⟦": [T: "Mathematische linke weiße eckige Klammer"] # 0x27e6 (en: 'left white square bracket', MathPlayer: 'left white square bracket', google: 'linke weiße quadratklammer') - - "⟧": [T: "Mathematische rechte weiße eckige Klammer"] # 0x27e7 (en: 'right white square bracket', MathPlayer: 'right white square bracket', google: 'rechte weiße quadratklasse') - - "⟨": [T: "Mathematische linke Winkelklammer"] # 0x27e8 (en: 'left angle bracket', MathPlayer: 'left angle bracket', google: 'linkswinkelhalter') - - "⟩": [T: "Mathematische rechtwinklige Klammer"] # 0x27e9 (en: 'right angle bracket', MathPlayer: 'right angle bracket', google: 'rechtswinkelhalterung') - - "⟪": [T: "Mathematische linke doppelte Winkelklammer"] # 0x27ea (en: 'left double angle bracket', MathPlayer: 'left double angle bracket', google: 'links zwei winkelhalterungen') - - "⟫": [T: "Mathematische rechtwinklige eckige Klammer"] # 0x27eb (en: 'right double angle bracket', MathPlayer: 'right double angle bracket', google: 'rechte doppelwinkelhalterung') - - "⟬": [T: "Mathematische linke weiße Schildpatt-Klammer"] # 0x27ec (en: 'left white tortoise shell bracket', MathPlayer: 'left white tortoise shell bracket', google: 'links weiße schildkröte') - - "⟭": [T: "Mathematische rechte weiße Schildpatt-Klammer"] # 0x27ed (en: 'right white tortoise shell bracket', MathPlayer: 'right white tortoise shell bracket', google: 'richtige weiße schildkrabbungshalterung') - - "⟮": [T: "Mathematische linke abgeflachte Klammer"] # 0x27ee (en: 'left flattened parenthesis', MathPlayer: 'left flattened parenthesis', google: 'links abgeflachte klammern') - - "⟯": [T: "Mathematische rechte abgeflachte Klammer"] # 0x27ef (en: 'right flattened parenthesis', MathPlayer: 'right flattened parenthesis', google: 'rechte abgeflachte klammern') - - "⟰": [T: "Vierfachpfeil nach oben"] # 0x27f0 (en: 'upwards quadruple arrow', google: 'vierfache pfeil nach oben') - - "⟱": [T: "Vierfacher Pfeil nach unten"] # 0x27f1 (en: 'downwards quadruple arrow', google: 'abwärtsvervierter pfeil') - - "⟲": [T: "Kreispfeil gegen den Uhrzeigersinn"] # 0x27f2 (en: 'anticlockwise gapped circle arrow', google: 'gezitterkreis pfeil gegen den gegen den lockzuseigersinn') - - "⟳": [T: "Kreispfeil im Uhrzeigersinn"] # 0x27f3 (en: 'clockwise gapped circle arrow', google: 'geteilte kreispfeil im uhrzeigersinn') - - "⟴": [T: "rechter Pfeil mit Circled Plus"] # 0x27f4 (en: 'right arrow with circled plus', google: 'richtiger pfeil mit eingekreistem plus') - - "⟵": [T: "Langer Pfeil nach links"] # 0x27f5 (en: 'long leftwards arrow', MathPlayer: 'long leftwards arrow', google: 'langer pfeil nach links') - - "⟶": [T: "Langer Pfeil nach rechts"] # 0x27f6 (en: 'long rightwards arrow', MathPlayer: 'long rightwards arrow', google: 'langer rechts pfeil') - - "⟷": [T: "Langer linker rechter Pfeil"] # 0x27f7 (en: 'long left right arrow', MathPlayer: 'long left right arrow', google: 'langer links rechts pfeil') - - "⟸": [T: "Langer Doppelpfeil nach links"] # 0x27f8 (en: 'long leftwards double arrow', MathPlayer: 'long leftwards double arrow', google: 'langer links doppelpfeil') - - "⟹": [T: "Langer Doppelpfeil nach rechts"] # 0x27f9 (en: 'long rightwards double arrow', MathPlayer: 'long rightwards double arrow', google: 'langer rechts doppelpfeil') - - "⟺": [T: "Langer linker rechter Doppelpfeil"] # 0x27fa (en: 'long left right double arrow', MathPlayer: 'long left right double arrow', google: 'langer links rechts doppelpfeil') - - "⟻": [T: "Langer Pfeil nach links mit Sockel"] # 0x27fb (en: 'long leftwards arrow from bar', google: 'langer links pfeil aus der bar') - - "⟼": [T: "Langer Pfeil nach rechts mit Sockel"] # 0x27fc (en: 'long rightwards arrow from bar', MathPlayer: 'long rightwards arrow from bar', google: 'langer rechts pfeil aus der bar') - - "⟽": [T: "Langer Doppelpfeil nach links mit Sockel"] # 0x27fd (en: 'long leftwards double arrow from bar', google: 'langer links doppelpfeil aus der bar') - - "⟾": [T: "Langer Doppelpfeil nach rechts mit Sockel"] # 0x27fe (en: 'long rightwards double arrow from bar', google: 'langer rechts doppelpfeil aus der bar') - - "⟿": [T: "Langer, nach rechts gekrümmter Pfeil"] # 0x27ff (en: 'long rightwards squiggle arrow', MathPlayer: 'long rightwards squiggle arrow', google: 'langer rechts squiggle -pfeil') - - "⤀": [T: "Nach rechts gerichteter Doppelpfeil mit vertikalem Strich"] # 0x2900 (en: 'rightwards two headed arrow with vertical stroke', google: 'rechten zweiköpfigen pfeil mit vertikalem schlaganfall') - - "⤁": [T: "Nach rechts gerichteter Doppelpfeil mit doppeltem vertikalem Strich"] # 0x2901 (en: 'rightwards two headed arrow with double vertical stroke', google: 'rechten zweiköpfigen pfeil mit doppelter vertikaler hub') - - "⤂": [T: "Doppelpfeil nach links mit vertikalem Strich"] # 0x2902 (en: 'leftwards double arrow with vertical stroke', google: 'links doppelpfeil mit vertikalem schlaganfall') - - "⤃": [T: "Doppelpfeil nach rechts mit vertikalem Strich"] # 0x2903 (en: 'rightwards double arrow with vertical stroke', google: 'richtiger doppelpfeil mit vertikalem schlaganfall') - - "⤄": [T: "Linker rechter Doppelpfeil mit vertikalem Strich"] # 0x2904 (en: 'left right double arrow with vertical stroke', google: 'links rechts doppelpfeil mit vertikalem schlaganfall') - - "⤅": [T: "Zwei Pfeile nach rechts mit Sockel "] # 0x2905 (en: 'rightwards two headed arrow from bar', MathPlayer: 'rightwards two headed arrow from bar', google: 'rightwards zwei köpfe pfeil aus der bar') - - "⤆": [T: "Doppelpfeil nach links mit Sockel"] # 0x2906 (en: 'leftwards double arrow from bar', google: 'links doppelpfeil aus der bar') - - "⤇": [T: "Doppelter Pfeil nach rechts mit Sockel"] # 0x2907 (en: 'rightwards double arrow from bar', google: 'richtiger doppelpfeil aus der bar') - - "⤈": [T: "Abwärtspfeil mit horizontalem Strich"] # 0x2908 (en: 'downwards arrow with horizontal stroke', google: 'nach unten pfeil mit horizontalem schlaganfall nach unten') - - "⤉": [T: "Aufwärtspfeil mit horizontalem Anschlag"] # 0x2909 (en: 'upwards arrow with horizontal stroke', google: 'aufwärter pfeil mit horizontalem schlaganfall') - - "⤊": [T: "Dreifachpfeil nach oben"] # 0x290a (en: 'upwards triple arrow', google: 'dreifach pfeil nach oben') - - "⤋": [T: "Dreifacher Pfeil nach unten"] # 0x290b (en: 'downwards triple arrow', google: 'dreifach pfeil nach unten') - - "⤌": [T: "Doppelpfeil nach links"] # 0x290c (en: 'leftwards double dash arrow', MathPlayer: 'leftwards double dash arrow', google: 'links -doppel -dash -pfeil') - - "⤍": [T: "Doppelpfeil nach rechts"] # 0x290d (en: 'rightwards double dash arrow', MathPlayer: 'rightwards double dash arrow', google: 'rightwards double dash -pfeil') - - "⤎": [T: "Dreifacher Strichpfeil nach links"] # 0x290e (en: 'leftwards triple dash arrow', MathPlayer: 'leftwards triple dash arrow', google: 'links dreifach dash -pfeil') - - "⤏": [T: "Dreifacher Strichpfeil nach rechts"] # 0x290f (en: 'rightwards triple dash arrow', MathPlayer: 'rightwards triple dash arrow', google: 'rightwards triple dash pfeil') - - "⤐": [T: "Dreipoliger Pfeil nach rechts"] # 0x2910 (en: 'rightwards two headed triple dash arrow', MathPlayer: 'rightwards two headed triple dash arrow', google: 'rightwards zwei köpfe triple dash -pfeil') - - "⤑": [T: "Pfeil nach rechts mit gepunktetem Stamm"] # 0x2911 (en: 'rightwards arrow with dotted stem', MathPlayer: 'rightwards arrow with dotted stem', google: 'richtiger pfeil mit gepunktetem stiel') - - "⤒": [T: "Aufwärtspfeil zur Sockel"] # 0x2912 (en: 'upwards arrow to bar', MathPlayer: 'upwards arrow to bar', google: 'aufwärter pfeil in die bar') - - "⤓": [T: "Abwärtspfeil zur Sockel"] # 0x2913 (en: 'downwards arrow to bar', MathPlayer: 'downwards arrow to bar', google: 'nach unten pfeil in die bar') - - "⤔": [T: "Pfeil nach rechts mit Schwanz mit vertikalem Strich"] # 0x2914 (en: 'rightwards arrow with tail and vertical stroke', google: 'rechten pfeil mit schwanz und vertikalem schlaganfall') - - "⤕": [T: "Pfeil nach rechts mit Schwanz mit doppeltem vertikalen Strich"] # 0x2915 (en: 'rightwards arrow with tail and double vertical stroke', google: 'rechten pfeil mit schwanz und doppelter vertikaler schlaganfall') - - "⤖": [T: "Nach rechts gerichteter zweiköpfiger Pfeil mit Schwanz"] # 0x2916 (en: 'rightwards two headed arrow with tail', MathPlayer: 'rightwards two headed arrow with tail', google: 'rechten zweiköpfigen pfeil mit schwanz') - - "⤗": [T: "Nach rechts gerichteter Doppelpfeil mit Schwanz mit senkrechtem Anschlag"] # 0x2917 (en: 'rightwards two headed arrow with tail with vertical stroke', google: 'rechten zweiköpfigen pfeil mit schwanz mit vertikalem schlaganfall') - - "⤘": [T: "Nach rechts gerichteter Doppelpfeil mit Schwanz mit doppeltem vertikalen Strich"] # 0x2918 (en: 'rightwards two headed arrow with tail with double vertical stroke', google: 'rechten zweiköpfigen pfeil mit schwanz mit doppelter vertikaler hub') - - "⤙": [T: "Pfeilspitze nach links"] # 0x2919 (en: 'leftwards arrow tail', MathPlayer: 'leftwards arrow tail', google: 'links pfeilschwanz') - - "⤚": [T: "Pfeilspitze nach rechts"] # 0x291a (en: 'rightwards arrow tail', google: 'richtiger pfeilschwanz') - - "⤛": [T: "Doppelter Pfeilschwanz nach links"] # 0x291b (en: 'leftwards double arrow tail', MathPlayer: 'leftwards double arrow tail', google: 'links doppelpfeilschwanz') - - "⤜": [T: "Doppelter Pfeilschwanz nach rechts"] # 0x291c (en: 'rightwards double arrow tail', MathPlayer: 'rightwards double arrow tail', google: 'rightwards double pfeilschwanz') - - "⤝": [T: "Pfeil nach links zu Black Diamond"] # 0x291d (en: 'leftwards arrow to filled diamond', MathPlayer: 'leftwards arrow to filled diamond', google: 'pfeil nach links zum gefüllten diamanten') - - "⤞": [T: "Pfeil nach rechts zu Black Diamond"] # 0x291e (en: 'rightwards arrow to filled diamond', MathPlayer: 'rightwards arrow to filled diamond', google: 'richtiger pfeil zum gefüllten diamanten') - - "⤟": [T: "Pfeil nach links von Bar zu Black Diamond"] # 0x291f (en: 'leftwards arrow from bar to filled diamond', MathPlayer: 'leftwards arrow from bar to filled diamond', google: 'pfeil von der bar zum gefüllten diamanten links') - - "⤠": [T: "Pfeil nach rechts von Bar zu Black Diamond"] # 0x2920 (en: 'rightwards arrow from bar to filled diamond', MathPlayer: 'rightwards arrow from bar to filled diamond', google: 'richtiger pfeil von bar zum gefüllten diamanten') - - "⤡": [T: "Nordwest- und Südostpfeil"] # 0x2921 (en: 'north west and south east arrow', google: 'nordwest- und südostpfeil') - - "⤢": [T: "Nordost- und Südwestpfeil"] # 0x2922 (en: 'north east and south west arrow', google: 'nordost- und südwestpfeil') - - "⤣": [T: "Nordwestpfeil mit Haken"] # 0x2923 (en: 'north west arrow with hook', MathPlayer: 'north west arrow with hook', google: 'nordwestpfeil mit haken') - - "⤤": [T: "Nordostpfeil mit Haken"] # 0x2924 (en: 'north east arrow with hook', MathPlayer: 'north east arrow with hook', google: 'nordostpfeil mit haken') - - "⤥": [T: "Südostpfeil mit Haken"] # 0x2925 (en: 'south east arrow with hook', MathPlayer: 'south east arrow with hook', google: 'südostpfeil mit haken') - - "⤦": [T: "Südwestpfeil mit Haken"] # 0x2926 (en: 'south west arrow with hook', MathPlayer: 'south west arrow with hook', google: 'südwestpfeil mit haken') - - "⤧": [T: "Nordwestpfeil und Nordostpfeil"] # 0x2927 (en: 'north west arrow and north east arrow', MathPlayer: 'north west arrow and north east arrow', google: 'north west arrow und north east pfeil') - - "⤨": [T: "Nordostpfeil und Südostpfeil"] # 0x2928 (en: 'north east arrow and south east arrow', MathPlayer: 'north east arrow and south east arrow', google: 'north east arrow und south east pfeil') - - "⤩": [T: "Südostpfeil und Südwestpfeil"] # 0x2929 (en: 'south east arrow and south west arrow', MathPlayer: 'south east arrow and south west arrow', google: 'south east arrow und south west arrow') - - "⤪": [T: "Südwestpfeil und Nordwestpfeil"] # 0x292a (en: 'south west arrow and north west arrow', MathPlayer: 'south west arrow and north west arrow', google: 'südwestpfeil und nordwestpfeil') - - "⤫": [T: "Steigende diagonale Kreuzung fallende Diagonale"] # 0x292b (en: 'rising diagonal crossing falling diagonal', google: 'steigende diagonale kreuzung fallende diagonale') - - "⤬": [T: "Fallende diagonale Kreuzung steigende Diagonale"] # 0x292c (en: 'falling diagonal crossing rising diagonal', google: 'fallende diagonale kreuzende diagonale diagonale kreuzung') - - "⤭": [T: "Südostpfeil Kreuzung Nordostpfeil"] # 0x292d (en: 'south east arrow crossing north east arrow', google: 'south east arrow crossed north east pfeil') - - "⤮": [T: "Nordostpfeil Kreuzung Südostpfeil"] # 0x292e (en: 'north east arrow crossing south east arrow', google: 'north east arrow crossed south east pfeil') - - "⤯": [T: "Fallende Diagonale, die Nordostpfeil kreuzt"] # 0x292f (en: 'falling diagonal crossing north east arrow', google: 'fallende diagonale kreuzung north east pfeil') - - "⤰": [T: "Steigende Diagonale, die Südostpfeil kreuzt"] # 0x2930 (en: 'rising diagonal crossing south east arrow', google: 'steigende diagonale kreuzung südostpfeil') - - "⤱": [T: "Nordostpfeilüberquerung Nordwestpfeil"] # 0x2931 (en: 'north east arrow crossing north west arrow', google: 'nordostpfeil der nordwestpfeil') - - "⤲": [T: "Nordwestpfeilüberquerung Nordostpfeil"] # 0x2932 (en: 'north west arrow crossing north east arrow', google: 'nordwest -pfeil überqueren north east pfeil') - - "⤳": [T: "Wellenpfeil, der nach rechts zeigt"] # 0x2933 (en: 'wave arrow pointing directly right', MathPlayer: 'wave arrow pointing directly to the right', google: 'wellenpfeil direkt nach rechts zeigen') - - "⤴": [T: "Pfeil nach rechts, dann nach oben gekrümmt"] # 0x2934 (en: 'arrow pointing rightwards then curving upwards', google: 'pfeil nach rechts zeigt und dann nach oben krümmt') - - "⤵": [T: "Pfeil nach rechts, dann nach unten gekrümmt"] # 0x2935 (en: 'arrow pointing rightwards then curving downwards', MathPlayer: 'arrow pointing rightwards then curving downwards', google: 'pfeil nach rechts zeigt und dann nach unten krümmt') - - "⤶": [T: "Pfeil nach unten, dann nach links gekrümmt"] # 0x2936 (en: 'arrow pointing downwards then curving leftwards', MathPlayer: 'arrow pointing downwards then curving leftwards', google: 'pfeil nach unten zeigt und dann nach links krümmt') - - "⤷": [T: "Pfeil nach unten, dann nach rechts gekrümmt"] # 0x2937 (en: 'arrow pointing downwards then curving rightwards', MathPlayer: 'arrow pointing downwards then curving rightwards', google: 'pfeil nach unten zeigt und dann nach rechts krümmt') - - "⤸": [T: "Rechtsseitiger Bogen im Uhrzeigersinn"] # 0x2938 (en: 'right side arc clockwise arrow', MathPlayer: 'clockwise right semicircle arrow', google: 'rechte seite arc im uhrzeigersinn') - - "⤹": [T: "Bogen von der linken Seite gegen den Uhrzeigersinn"] # 0x2939 (en: 'left side arc anticlockwise arrow', MathPlayer: 'anticlockwise left semicircle arrow', google: 'linker side arc arc gegen den pfeil gegen gesamtzusehen') - - "⤺": [T: "Pfeil von rechts oben gegen den Uhrzeigersinn"] # 0x293a (en: 'top arc anticlockwise arrow', google: 'top -arc -arc gegen den pfeil gegen den uhrzeigersinn') - - "⤻": [T: "Pfeil von links unten gegen den Uhrzeigersinn"] # 0x293b (en: 'bottom arc anticlockwise arrow', google: 'bogenzeigero -pfeil gegen den unteren lichtbogen') - - "⤼": [T: "Pfeil von links unten im Uhrzeigersinn mit Minuszeichen links"] # 0x293c (en: 'top arc clockwise arrow with minus', MathPlayer: 'clockwise top semicircle arrow with minus', google: 'bogenzusuell -pfeil mit minus') - - "⤽": [T: "Pfeil von rechts unten gegen den Uhrzeigersinn mit Pluszeichen rechts"] # 0x293d (en: 'top arc anticlockwise arrow with plus', MathPlayer: 'anticlockwise top semicircle arrow with plus', google: 'top -arc -arc gegen plus gegen den arrow') - - "⤾": [T: "Rechter halbkreisförmiger Pfeil im Uhrzeigersinn"] # 0x293e (en: 'lower right semicircular clockwise arrow', google: 'unterhalb des rechten halbkreisförmigen pfeils im uhrzeigersinn') - - "⤿": [T: "Linker halbkreisförmiger Pfeil gegen den Uhrzeigersinn"] # 0x293f (en: 'lower left semicircular anticlockwise arrow', google: 'unterer linker halbkreisförmiger arrow gegen den gegen den gegen den uhrzeigersinn') - - "⥀": [T: "Geschlossener Kreispfeil gegen den Uhrzeigersinn"] # 0x2940 (en: 'anticlockwise closed circle arrow', google: 'schleigender kirckeisprohl') - - "⥁": [T: "Geschlossener Kreispfeil im Uhrzeigersinn"] # 0x2941 (en: 'clockwise closed circle arrow', google: 'pfeil im uhrzeigersinn geschlossen') - - "⥂": [T: "Pfeil nach rechts über einem kurzen Pfeil nach links"] # 0x2942 (en: 'rightwards arrow above short leftwards arrow', google: 'rechten pfeil über dem kurzen linken pfeil') - - "⥃": [T: "Pfeil nach links über einem kurzen Pfeil nach rechts"] # 0x2943 (en: 'leftwards arrow above short rightwards arrow', google: 'links pfeil über kurzer rechts pfeil') - - "⥄": [T: "Kurzer Pfeil nach rechts Über Pfeil nach links"] # 0x2944 (en: 'short rightwards arrow above leftwards arrow', google: 'kurz nach rechts pfeil über links') - - "⥅": [T: "Pfeil nach rechts mit Pluszeichen unten"] # 0x2945 (en: 'rightwards arrow with plus below', MathPlayer: 'rightwards arrow with plus below', google: 'rightwards pfeil mit plus unten') - - "⥆": [T: "Pfeil nach links mit Pluszeichen unten"] # 0x2946 (en: 'leftwards arrow with plus below', google: 'links pfeil mit plus unten') - - "⥇": [T: "Pfeil nach rechts durch X"] # 0x2947 (en: 'rightwards arrow through x', google: 'richtiger pfeil durch x') - - "⥈": [T: "Pfeil nach links und rechts durch kleinen Kreis"] # 0x2948 (en: 'left right arrow through circle', MathPlayer: 'left right arrow through circle', google: 'links rechts pfeil durch den kreis') - - "⥉": [T: "Aufwärts zweiköpfiger Pfeil vom kleinen Kreis ausgehend"] # 0x2949 (en: 'upwards two headed arrow from circle', MathPlayer: 'upwards two headed arrow from circle', google: 'auf zwei köpfe pfeil aus dem kreis') - - "⥊": [T: "Linker Haken oben mit rechtem Haken unten"] # 0x294a (en: 'left barb up right barb down harpoon', MathPlayer: 'left barb up right barb down harpoon', google: 'links barb oben rechte barb down harpoon') - - "⥋": [T: "Linker Haken unten mit rechtem Haken oben"] # 0x294b (en: 'left barb down right barb up harpoon', MathPlayer: 'left barb down right barb up harpoon', google: 'linker barb unten rechte barb auf harpoon') - - "⥌": [T: "Aufwärtshaken rechts, Abwärtshaken links"] # 0x294c (en: 'up barb right down barb left harpoon', google: 'auf barb rechts runter barb links harpune') - - "⥍": [T: "Aufwärtshaken links, Abwärtshaken rechts"] # 0x294d (en: 'up barb left down barb right harpoon', google: 'auf barb nach links nach unten abharpoon') - - "⥎": [T: "Linker Haken oben mit rechtem Haken oben"] # 0x294e (en: 'left barb up right barb up harpoon', MathPlayer: 'left right harpoon up', google: 'links barby up up barb up harpoon') - - "⥏": [T: "Aufwärtshaken rechts, Abwärtshaken rechts"] # 0x294f (en: 'up barb right down barb right harpoon', MathPlayer: 'up down harpoon right', google: 'auf barb direkt nach barb rechts rechts harpune') - - "⥐": [T: "Linker Haken unten mit rechtem Haken unten"] # 0x2950 (en: 'left barb down right barb down harpoon', MathPlayer: 'left right harpoon down', google: 'linker barb unten rechte barb nach unten harpoon') - - "⥑": [T: "Aufwärtshaken links, Abwärtshaken links"] # 0x2951 (en: 'up barb left down barb left harpoon', MathPlayer: 'up down harpoon left', google: 'auf barb ließ barb nach barb ließ harpoon') - - "⥒": [T: "Linker Haken oben mit Sockel links"] # 0x2952 (en: 'leftwards harpoon with barb up to bar', MathPlayer: 'leftwards harpoon to bar with barb upwards', google: 'links harpoon mit barb bis zur bar') - - "⥓": [T: "rechter Haken oben mit Sockel rechts"] # 0x2953 (en: 'rightwards harpoon with barb up to bar', MathPlayer: 'rightwards harpoon to bar with barb upwards', google: 'rightwards harpoon mit barb bis zur bar') - - "⥔": [T: "Aufwärtshaken rechts mit Sockel oben"] # 0x2954 (en: 'upwards harpoon with barb right to bar', MathPlayer: 'upwards harpoon to bar with barb rightwards', google: 'harpune nach oben mit barb right to bar') - - "⥕": [T: "Abwärtshaken rechts mit Sockel unten"] # 0x2955 (en: 'downwards harpoon with barb right to bar', MathPlayer: 'downwards harpoon to bar with barb rightwards', google: 'nach unten harpoon mit barb right to bar') - - "⥖": [T: "Linker Haken unten mit Sockel links"] # 0x2956 (en: 'leftwards harpoon with barb down to bar', MathPlayer: 'leftwards harpoon to bar with barb downwards', google: 'links harpoon mit barb in die bar') - - "⥗": [T: "Rechter Haken unten mit Sockel rechts"] # 0x2957 (en: 'rightwards harpoon with barb down to bar', MathPlayer: 'rightwards harpoon to bar with barb downwards', google: 'rightwards harpoon mit barb nach unten in die bar') - - "⥘": [T: "Aufwärtshaken links mit Sockel oben"] # 0x2958 (en: 'upwards harpoon with barb left to bar', MathPlayer: 'upwards harpoon to bar with barb leftwards', google: 'harpoon mit barb in der bar nach oben') - - "⥙": [T: "Abwärtshaken links mit Sockel unten"] # 0x2959 (en: 'downwards harpoon with barb left to bar', MathPlayer: 'downwards harpoon to bar with barb leftwards', google: 'abwärtsharpune mit barb in der bar nach unten') - - "⥚": [T: "Linker Haken oben mit Sockel rechts"] # 0x295a (en: 'leftwards harpoon with barb up from bar', MathPlayer: 'leftwards harpoon from bar with barb upwards', google: 'links -harpoon mit barb aus der bar') - - "⥛": [T: "Rechter Haken oben mit Sockel links"] # 0x295b (en: 'rightwards harpoon with barb up from bar', MathPlayer: 'rightwards harpoon from bar with barb upwards', google: 'rightwards harpoon mit barb auf der bar') - - "⥜": [T: "Aufwärtshaken rechts mit Sockel unten"] # 0x295c (en: 'upwards harpoon with barb right from bar', MathPlayer: 'upwards harpoon from bar with barb rightwards', google: 'harpune nach oben mit barb direkt aus der bar') - - "⥝": [T: "Abwärtshaken rechts mit Sockel oben"] # 0x295d (en: 'downwards harpoon with barb right from bar', MathPlayer: 'downwards harpoon from bar with barb rightwards', google: 'harpunen nach unten mit barb direkt aus der bar') - - "⥞": [T: "Linker Haken unten mit Sockel rechts"] # 0x295e (en: 'leftwards harpoon with barb down from bar', MathPlayer: 'leftwards harpoon from bar with barb downwards', google: 'links harpoon mit barb von bar aus der bar') - - "⥟": [T: "Rechter Haken unten mit Sockel links"] # 0x295f (en: 'rightwards harpoon with barb down from bar', MathPlayer: 'rightwards harpoon from bar with barb downwards', google: 'rightwards harpoon mit barb von bar aus der bar') - - "⥠": [T: "Aufwärtshaken links mit Sockel unten"] # 0x2960 (en: 'upwards harpoon with barb left from bar', MathPlayer: 'upwards harpoon from bar with barb leftwards', google: 'harpoon mit barb aus der bar nach oben') - - "⥡": [T: "Abwärtshaken links mit Sockel oben"] # 0x2961 (en: 'downwards harpoon with barb left from bar', MathPlayer: 'downwards harpoon from bar with barb leftwards', google: 'abwärtsharpune mit barb aus der bar weg') - - "⥢": [T: "Harpune nach links mit Widerhaken nach oben Harpune nach links mit Widerhaken nach unten"] # 0x2962 (en: 'leftwards harpoon with barb up above leftwards harpoon with barb down', MathPlayer: 'leftwards harpoon with barb up above leftwards harpoon with barb down', google: 'links harpoon mit barb oben links harpoon mit barb nach unten') - - "⥣": [T: "Harpune nach oben mit Widerhaken links neben Harpune nach oben Widerhaken Barb rechts"] # 0x2963 (en: 'upwards harpoon with barb left beside upwards harpoon with barb right', MathPlayer: 'upwards harpoon with barb left beside upwards harpoon with barb right', google: 'harpoon nach oben mit barb neben harpoon nach oben mit barb rechts') - - "⥤": [T: "Harpune nach rechts mit Widerhaken nach oben Harpune nach rechts mit Widerhaken nach unten"] # 0x2964 (en: 'rightwards harpoon with barb up above rightwards harpoon with barb down', MathPlayer: 'rightwards harpoon with barb up above rightwards harpoon with barb down', google: 'rightwards harpoon mit barb oben rechts harpoon mit barb down') - - "⥥": [T: "Harpune nach unten mit Widerhaken nach unten Harpune nach unten mit Widerhaken nach rechts"] # 0x2965 (en: 'downwards harpoon with barb left beside downwards harpoon with barb right', MathPlayer: 'downwards harpoon with barb left beside downwards harpoon with barb right', google: 'harpoon nach unten mit barb neben der abwärtsharpoon mit barb rechts') - - "⥦": [T: "Harpune nach links mit Widerhaken nach oben Harpune nach rechts mit Widerhaken nach oben"] # 0x2966 (en: 'leftwards harpoon with barb up above rightwards harpoon with barb up', MathPlayer: 'leftwards harpoon with barb up above rightwards harpoon with barb up', google: 'links harpoon mit barb oben rechts harpoon mit barb hoch') - - "⥧": [T: "Linke Harpune mit Widerhaken nach unten rechts Harpune mit Widerhaken nach unten"] # 0x2967 (en: 'leftwards harpoon with barb down above rightwards harpoon with barb down', MathPlayer: 'leftwards harpoon with barb down above rightwards harpoon with barb down', google: 'links harpoon mit barb oben rechts harpoon mit barb nach unten') - - "⥨": [T: "Harpune nach rechts mit Widerhaken nach oben Harpune nach links mit Widerhaken nach oben"] # 0x2968 (en: 'rightwards harpoon with barb up above leftwards harpoon with barb up', MathPlayer: 'rightwards harpoon with barb up above leftwards harpoon with barb up', google: 'harpoon nach rechts mit barb oben links mit barb auf harpoon') - - "⥩": [T: "Harpune nach rechts mit Widerhaken nach unten Harpune nach links mit Widerhaken nach unten"] # 0x2969 (en: 'rightwards harpoon with barb down above leftwards harpoon with barb down', MathPlayer: 'rightwards harpoon with barb down above leftwards harpoon with barb down', google: 'harpoon nach rechts mit barb oben links mit barb mit barb') - - "⥪": [T: "nach links gerichtete Harpune mit Widerhaken über einem langen Strich"] # 0x296a (en: 'leftwards harpoon with barb up above long dash', MathPlayer: 'leftwards harpoon over bar', google: 'links -harpoon mit barb über langen schuss') - - "⥫": [T: "nach links gerichtete Harpune mit Widerhaken unten, lang gestrichelt"] # 0x296b (en: 'leftwards harpoon with barb down below long dash', MathPlayer: 'leftwards harpoon under bar', google: 'links -harpoon mit barb unter longem armaturenbrett') - - "⥬": [T: "Rechtshaken mit Widerhaken über langem Strich"] # 0x296c (en: 'rightwards harpoon with barb up above long dash', MathPlayer: 'rightwards harpoon over bar', google: 'rightwards harpoon mit barb über langen schuss') - - "⥭": [T: "Rechtshaken mit Widerhaken unten, lang"] # 0x296d (en: 'rightwards harpoon with barb down below long dash', MathPlayer: 'rightwards harpoon under bar', google: 'rightwards harpoon mit barb unter longem armaturenbrett') - - "⥮": [T: "aufwärts gerichtete Harpune mit Widerhaken links neben unten gerichteter Harpune mit Widerhaken rechts"] # 0x296e (en: 'upwards harpoon with barb left beside downwards harpoon with barb right', MathPlayer: 'upwards harpoon to the left of downwards harpoon', google: 'harpune nach oben mit barb, der neben der abwärtsharpoon mit barb rechts bleibt') - - "⥯": [T: "Abwärtsharpune mit Widerhaken links neben Abwärtsharpune mit Widerhaken rechts"] # 0x296f (en: 'downwards harpoon with barb left beside upwards harpoon with barb right', MathPlayer: 'upwards harpoon to the right of downwards harpoon', google: 'harpoon nach unten mit barb neben harpoon nach oben mit barb rechts') - - "⥰": [T: "Rechter Doppelpfeil mit abgerundeter Spitze"] # 0x2970 (en: 'right double arrow with rounded head') - - "⥱": [T: "Gleichheitszeichen über dem Pfeil nach rechts"] # 0x2971 (en: 'equals above rightwards arrow', MathPlayer: 'equals above rightwards arrow', google: 'entspricht dem rechten pfeil') - - "⥲": [T: "Tilde-Operator über dem Pfeil nach rechts"] # 0x2972 (en: 'tilde operator above rightwards arrow', MathPlayer: 'tilde operator above rightwards arrow', google: 'tilde -operator über rechtsem pfeil') - - "⥳": [T: "Pfeil nach links über Tilde-Operator"] # 0x2973 (en: 'leftwards arrow above tilde operator', MathPlayer: 'leftwards arrow over tilde', google: 'pfeil links über dem tilde -operator') - - "⥴": [T: "Pfeil nach rechts über Tilde-Operator"] # 0x2974 (en: 'rightwards arrow above tilde operator', MathPlayer: 'rightwards arrow over tilde', google: 'rightwards pfeil über dem tilde -operator') - - "⥵": [T: "Pfeil nach rechts über fast gleich"] # 0x2975 (en: 'rightwards arrow above almost equal to', MathPlayer: 'rightwards arrow above almost equal to', google: 'richtiger pfeil über fast gleich') - - "⥶": [T: "Weniger als über Pfeil nach links"] # 0x2976 (en: 'less than above leftwards arrow', MathPlayer: 'less than above leftwards arrow', google: 'weniger als links in pfeil') - - "⥷": [T: "Pfeil nach links durch weniger als"] # 0x2977 (en: 'leftwards arrow through less than', google: 'links pfeil durch weniger als') - - "⥸": [T: "Größer als über dem Pfeil nach rechts"] # 0x2978 (en: 'greater than above rightwards arrow', MathPlayer: 'greater than above rightwards arrow', google: 'größer als über rechts nach rechts') - - "⥹": [T: "Untersatz über dem Pfeil nach rechts"] # 0x2979 (en: 'subset above rightwards arrow', MathPlayer: 'subset above rightwards arrow', google: 'untergruppe über rechts nach rechts') - - "⥺": [T: "Pfeil nach links durch Teilmenge"] # 0x297a (en: 'leftwards arrow through subset', google: 'pfeil durch die teilmenge links') - - "⥻": [T: "Superset über dem Pfeil nach links"] # 0x297b (en: 'superset above leftwards arrow', MathPlayer: 'superset above leftwards arrow', google: 'superset über dem linken pfeil') - - "⥼": [T: "linker Fischschwanz"] # 0x297c (en: 'left fish tail', MathPlayer: 'left fish tail', google: 'links fischschwanz') - - "⥽": [T: "rechter Fischschwanz"] # 0x297d (en: 'right fish tail', MathPlayer: 'right fish tail', google: 'rechts fischschwanz') - - "⥾": [T: "Fischschwanz oben"] # 0x297e (en: 'up fish tail', MathPlayer: 'vertical bar with double hook', google: 'up fischschwanz') - - "⥿": [T: "Fischschwanz unten"] # 0x297f (en: 'down fish tail', MathPlayer: 'down fish tail', google: 'down fischschwanz') - - "⦀": [T: "Dreifacher vertikaler Balkenbegrenzer"] # 0x2980 (en: 'triple vertical bar delimiter', google: 'triple vertical bar gremiter') - - "⦁": [T: "Z Notationspunkt"] # 0x2981 (en: 'z notation spot', google: 'z notationspunkt') - - "⦂": [T: "Z Notationstyp Doppelpunkt"] # 0x2982 (en: 'z notation type colon', google: 'z notation typ dickdarm') - - "⦃": [T: "Linke weiße geschweifte Klammer"] # 0x2983 (en: 'left white brace', google: 'links weiße klammer') - - "⦄": [T: "Rechte weiße geschweifte Klammer"] # 0x2984 (en: 'right white brace', google: 'rechte weiße klammer') - - "⦅": [T: "Linke weiße Klammer"] # 0x2985 (en: 'left white parenthesis', MathPlayer: 'left white paren', google: 'linke weiße klammern') - - "⦆": [T: "Rechte weiße Klammer"] # 0x2986 (en: 'right white parenthesis', MathPlayer: 'right white paren', google: 'rechte weiße klammern') - - "⦇": [T: "Z-Notation linke Bildklammer"] # 0x2987 (en: 'z notation left image bracket', google: 'z notation linke bildklasse') - - "⦈": [T: "Z-Notation rechte Bildklammer"] # 0x2988 (en: 'z notation right image bracket', google: 'z notation rechtsbildklasse') - - "⦉": [T: "Z-Notation linke Klammer"] # 0x2989 (en: 'z notation left binding bracket', MathPlayer: 'z notation left binding bracket', google: 'z notation links bindungshalterung') - - "⦊": [T: "Z-Notation rechte Klammer"] # 0x298a (en: 'z notation right binding bracket', MathPlayer: 'z notation right binding bracket', google: 'z notation recht bindungshalterung') - - "⦋": [T: "Linke eckige Klammer mit Unterlenker"] # 0x298b (en: 'left square bracket with underbar', MathPlayer: 'left bracket with underbar', google: 'linksquadratische klammer mit unterbar') - - "⦌": [T: "Rechte eckige Klammer mit Unterlenker"] # 0x298c (en: 'right square bracket with underbar', MathPlayer: 'right bracket with underbar', google: 'rechte quadratische halterung mit unterbar') - - "⦍": [T: "Linke eckige Klammer mit Häkchen in der oberen Ecke"] # 0x298d (en: 'left square bracket with tick in top corner', MathPlayer: 'left bracket with tick in top corner', google: 'linksquadratische halterung mit zecke in der oberen ecke') - - "⦎": [T: "Rechte eckige Klammer mit Tick in der unteren Ecke"] # 0x298e (en: 'right square bracket with tick in bottom corner', MathPlayer: 'right bracket with tick in bottom corner', google: 'rechte quadratische halterung mit tick in der unteren ecke') - - "⦏": [T: "Linke eckige Klammer mit Tick in der unteren Ecke"] # 0x298f (en: 'left square bracket with tick in bottom corner', MathPlayer: 'left bracket with tick in bottom corner', google: 'links quadratische halterung mit tick in der unteren ecke') - - "⦐": [T: "Rechte eckige Klammer mit Tick in der oberen Ecke"] # 0x2990 (en: 'right square bracket with tick in top corner', MathPlayer: 'right bracket with tick in top corner', google: 'rechte quadratische halterung mit zecke in der oberen ecke') - - "⦑": [T: "Linke Winkelklammer mit Punkt"] # 0x2991 (en: 'left angle bracket with dot', MathPlayer: 'left angle bracket with dot', google: 'linkswinkelhalter mit punkt') - - "⦒": [T: "Rechtwinklige Klammer mit Punkt"] # 0x2992 (en: 'right angle bracket with dot', MathPlayer: 'right angle bracket with dot', google: 'rechtswinkelhalterung mit punkt') - - "⦓": [T: "Linker Bogen weniger als Halterung"] # 0x2993 (en: 'left arc less than bracket', MathPlayer: 'left arc less than bracket', google: 'links bogen weniger als klammer') - - "⦔": [T: "rechter Bogen größer als Halterung"] # 0x2994 (en: 'right arc greater than bracket', MathPlayer: 'right arc greater than bracket', google: 'richtiger bogen größer als die klammer') - - "⦕": [T: "Doppelter linker Bogen größer als Halterung"] # 0x2995 (en: 'double left arc greater than bracket', MathPlayer: 'double left arc greater than bracket', google: 'doppelter linker bogen größer als die klammer') - - "⦖": [T: "Doppelter rechter Bogen weniger als Halterung"] # 0x2996 (en: 'double right arc less than bracket', MathPlayer: 'double right arc less than bracket', google: 'doppeler rechts bogen weniger als klammer') - - "⦗": [T: "Linke schwarze Schildpatt-Klammer"] # 0x2997 (en: 'left black tortoise shell bracket', google: 'links black tortoise muschelhalterung') - - "⦘": [T: "Rechte schwarze Schildpatt-Klammer"] # 0x2998 (en: 'right black tortoise shell bracket', google: 'rechte schwarze schildkröte') - - "⦙": [T: "Gepunkteter Zaun"] # 0x2999 (en: 'dotted fence', google: 'gepunkteter zaun') - - "⦚": [T: "Vertikale Zickzacklinie"] # 0x299a (en: 'vertical zigzag line', MathPlayer: 'vertical zigzag line', google: 'vertikale zick -zack -linie') - - "⦛": [T: "Gemessene Winkelöffnung links"] # 0x299b (en: 'measured angle opening left', google: 'gemessene winkelöffnung links') - - "⦜": [T: "Rechtwinklige Variante mit Quadrat"] # 0x299c (en: 'right angle variant with square', google: 'rechtswinkelvariante mit quadrat') - - "⦝": [T: "rechter Winkel mit Punkt gemessen"] # 0x299d (en: 'measured right angle with dot', MathPlayer: 'measured right angle with dot', google: 'gemessener rechter winkel mit punkt') - - "⦞": [T: "Winkel mit S nach innen"] # 0x299e (en: 'angle with s inside', google: 'winkel mit s im inneren') - - "⦟": [T: "Spitzer Winkel"] # 0x299f (en: 'acute angle', google: 'spitzer winkel') - - "⦠": [T: "Sphärischer Öffnungswinkel nach links"] # 0x29a0 (en: 'spherical angle opening left', google: 'kugelwinkelöffnung nach links') - - "⦡": [T: "Sphärischer Öffnungswinkel nach unten"] # 0x29a1 (en: 'spherical angle opening up', google: 'kugelwinkel öffnen sich') - - "⦢": [T: "Gedrehter Winkel"] # 0x29a2 (en: 'turned angle', google: 'drehwinkel') - - "⦣": [T: "Umgekehrter Winkel"] # 0x29a3 (en: 'reversed angle', google: 'umgekehrter winkel') - - "⦤": [T: "Winkel mit Unterstrich"] # 0x29a4 (en: 'angle with underbar', MathPlayer: 'angle with underbar', google: 'winkel mit unterbar') - - "⦥": [T: "Umgekehrter Winkel mit Unterstrich"] # 0x29a5 (en: 'reversed angle with underbar', MathPlayer: 'reversed angle with underbar', google: 'umgekehrter winkel mit unterbar') - - "⦦": [T: "Schräger Winkel, der sich nach oben öffnet"] # 0x29a6 (en: 'oblique angle opening up', MathPlayer: 'oblique angle opening up', google: 'schräge winkelöffnung') - - "⦧": [T: "Schräger Winkel, der sich nach unten öffnet"] # 0x29a7 (en: 'oblique angle opening down', MathPlayer: 'oblique angle opening down', google: 'schräge winkel öffnet sich') - - "⦨": [T: "Gemessener Winkel mit offenem Arm endet im Pfeil nach oben und rechts"] # 0x29a8 (en: 'measured angle with open arm ending in arrow pointing up and to the right', MathPlayer: 'measured angle with open arm ending in arrow pointing up and to the right', google: 'der gemessene winkel mit offenem arm in pfeil und nach rechts') - - "⦩": [T: "Gemessener Winkel mit offenem Arm und Pfeil nach oben und links"] # 0x29a9 (en: 'measured angle with open arm ending in arrow pointing up and to the left', MathPlayer: 'measured angle with open arm ending in arrow pointing up and to the left', google: 'der gemessene winkel mit offenem arm in pfeil und nach links') - - "⦪": [T: "Gemessener Winkel mit offenem Arm endet im nach unten zeigenden Pfeil und rechts"] # 0x29aa (en: 'measured angle with open arm ending in arrow pointing down and to the right', MathPlayer: 'measured angle with open arm ending in arrow pointing down and to the right', google: 'der gemessene winkel mit offenem arm in pfeil nach unten und nach rechts') - - "⦫": [T: "Gemessener Winkel mit offenem Arm endet im nach unten zeigenden Pfeil"] # 0x29ab (en: 'measured angle with open arm ending in arrow pointing down and to the left', MathPlayer: 'measured angle with open arm ending in arrow pointing down and to the left', google: 'der gemessene winkel mit offenem arm in pfeil, der nach unten und nach links zeigt') - - "⦬": [T: "Gemessener Winkel mit offenem Arm endet im Pfeil nach rechts und oben"] # 0x29ac (en: 'measured angle with open arm ending in arrow pointing right and up', MathPlayer: 'measured angle with open arm ending in arrow pointing right and up', google: 'der gemessene winkel mit offenem arm in pfeil nach rechts und nach oben zeigt') - - "⦭": [T: "Gemessener Winkel mit offenem Arm endet im Pfeil nach links und oben"] # 0x29ad (en: 'measured angle with open arm ending in arrow pointing left and up', MathPlayer: 'measured angle with open arm ending in arrow pointing left and up', google: 'der gemessene winkel mit offenem arm in pfeil nach links und nach oben zeigt') - - "⦮": [T: "Gemessener Winkel mit offenem Arm endet im nach rechts und unten zeigenden Pfeil"] # 0x29ae (en: 'measured angle with open arm ending in arrow pointing right and down', MathPlayer: 'measured angle with open arm ending in arrow pointing right and down', google: 'der gemessene winkel mit offenem arm in pfeil nach rechts und unten zeigt') - - "⦯": [T: "Gemessener Winkel mit offenem Arm und Pfeil nach links und unten"] # 0x29af (en: 'measured angle with open arm ending in arrow pointing left and down', MathPlayer: 'measured angle with open arm ending in arrow pointing left and down', google: 'der gemessene winkel mit offenem arm in pfeil nach links und unten zeigt') - - "⦰": [T: "Umgekehrte leere Menge"] # 0x29b0 (en: 'reversed empty set', MathPlayer: 'reversed empty set', google: 'umgekehrter leerer satz') - - "⦱": [T: "Leere Menge mit Strich oberhalb"] # 0x29b1 (en: 'empty set with overbar', MathPlayer: 'empty set with overbar', google: 'leeres set mit überbar') - - "⦲": [T: "Leere Menge mit kleinem Kreis oben"] # 0x29b2 (en: 'empty set with small circle above', MathPlayer: 'empty set with circle above', google: 'leeres set mit kleinem kreis oben') - - "⦳": [T: "Leere Menge mit Pfeil rechts oben"] # 0x29b3 (en: 'empty set with right arrow above', MathPlayer: 'empty set with right arrow above', google: 'leer mit dem rechten pfeil oben') - - "⦴": [T: "Leere Menge mit linkem Pfeil oben"] # 0x29b4 (en: 'empty set with left arrow above', MathPlayer: 'empty set with left arrow above', google: 'leeres set mit dem linken pfeil oben') - - "⦵": [T: "Kreis mit horizontaler Leiste"] # 0x29b5 (en: 'circle with horizontal bar', MathPlayer: 'circle with horizontal bar', google: 'kreis mit horizontaler balken') - - "⦶": [T: "Kreis mit vertikaler Linie"] # 0x29b6 - - "⦷": [T: "eingekreiste Parallele"] # 0x29b7 (en: 'circled parallel', MathPlayer: 'circled parallel', google: 'parallel eingekreist') - - "⦸": [T: "eingekreister umgekehrter Schrägstrich"] # 0x29b8 (en: 'circled reverse solidus', google: 'umgekreist reverse solidus') - - "⦹": [T: "eingekreistes Senkrecht"] # 0x29b9 (en: 'circled perpendicular', MathPlayer: 'circled perpendicular', google: 'senkrecht umkreist') - - "⦺": [T: "Kreis geteilt durch horizontale Leiste und obere Hälfte geteilt durch vertikale Leiste"] # 0x29ba (en: 'circled divided by horizontal bar and top half divided by vertical bar', google: 'durch den horizontalen balken und die obere hälfte geteilt durch vertikale balken eingekreist') - - "⦻": [T: "Kreis mit überlagertem X"] # 0x29bb (en: 'circle with superimposed x', MathPlayer: 'circle with superimposed x', google: 'kreis mit überlagertem x') - - "⦼": [T: "eingekreistes, gegen den Uhrzeigersinn gedrehtes Divisionszeichen"] # 0x29bc (en: 'circled anticlockwise rotated division sign', MathPlayer: 'circled anticlockwise rotated division', google: 'umgedrehtes divisionszeichen gegen den uhrzeigersinn') - - "⦽": [T: "Pfeil nach oben durch Kreis"] # 0x29bd (en: 'up arrow through circle', google: 'pfeil durch den kreis') - - "⦾": [T: "eingekreiste weiße Kugel"] # 0x29be (en: 'circled white bullet', MathPlayer: 'circled white bullet', google: 'eingekreiste weiße kugel') - - "⦿": [T: "eingekreiste Kugel"] # 0x29bf (en: 'circled bullet', MathPlayer: 'circled bullet', google: 'eingekreist') - - "⧀": [T: "eingekreist weniger als"] # 0x29c0 (en: 'circled less than', MathPlayer: 'circled less than', google: 'kreiste weniger als') - - "⧁": [T: "eingekreist größer als"] # 0x29c1 (en: 'circled greater than', MathPlayer: 'circled greater than', google: 'umgekreist größer als') - - "⧂": [T: "Kreis mit kleinem Kreis nach rechts"] # 0x29c2 (en: 'circle with small circle to the right', MathPlayer: 'circle with circle to the right', google: 'kreis mit kleinem kreis nach rechts') - - "⧃": [T: "Kreis mit zwei horizontalen Strichen nach rechts"] # 0x29c3 (en: 'circle with two horizontal strokes to the right', MathPlayer: 'circle with two horizontal strokes to the right', google: 'kreisen sie mit zwei horizontalen strichen rechts') - - "⧄": [T: "Quadrat mit Diagonale links unten nach rechts oben"] # 0x29c4 (en: 'squared rising diagonal slash', MathPlayer: 'squared rising diagonal slash', google: 'quadratischer steigender diagonaler schrägstrich') - - "⧅": [T: "Quadrat mit Diagonale links oben nach rechts unten"] # 0x29c5 (en: 'squared falling diagonal slash', MathPlayer: 'squared falling diagonal slash', google: 'quadratische fallende diagonale schrägstriche') - - "⧆": [T: "Quadrat mit Sternchen"] # 0x29c6 (en: 'squared asterisk', google: 'quadratischer sternchen') - - "⧇": [T: "Quadrat mir kleinem Kreis"] # 0x29c7 (en: 'squared small circle', google: 'quadratischer kleiner kreis') - - "⧈": [T: "Doppelquadrat"] # 0x29c8 (en: 'squared square', google: 'quadratisch quadratisch') - - "⧉": [T: "Zwei verbundene Quadrate"] # 0x29c9 (en: 'two joined squares', MathPlayer: 'two joined squares', google: 'zwei traten quadrate an') - - "⧊": [T: "Dreieck mit Punkt oben"] # 0x29ca (en: 'triangle with dot above', google: 'dreieck mit punkt oben') - - "⧋": [T: "Dreieck mit Unterleiste"] # 0x29cb (en: 'triangle with underbar', google: 'dreieck mit underbar') - - "⧌": [T: "S im Dreieck"] # 0x29cc (en: 's in triangle', google: 's im dreieck') - - "⧍": [T: "Dreieck mit Serifen unten"] # 0x29cd (en: 'triangle with serifs at bottom', MathPlayer: 'triangle with serifs at bottom', google: 'dreieck mit serifen unten') - - "⧎": [T: "Rechtes Dreieck über linkem Dreieck"] # 0x29ce (en: 'right triangle above left triangle', MathPlayer: 'right triangle above left triangle', google: 'rechts dreieck über dem linken dreieck') - - "⧏": [T: "Linkes Dreieck neben vertikaler Leiste"] # 0x29cf (en: 'left triangle beside vertical bar', MathPlayer: 'normal subgroup of with bar', google: 'links dreieck neben vertikaler balken') - - "⧐": [T: "Vertikale Leiste neben rechtem Dreieck"] # 0x29d0 (en: 'vertical bar beside right triangle', MathPlayer: 'contains as normal subgroup with bar', google: 'vertikale bar neben dem rechten dreieck') - - "⧑": [T: "Fliege mit linker Hälfte schwarz"] # 0x29d1 (en: 'bowtie with left half black', google: 'bowtie mit linksem halb schwarz') - - "⧒": [T: "Fliege mit rechter Hälfte schwarz"] # 0x29d2 (en: 'bowtie with right half black', google: 'bowtie mit rechts halb schwarz') - - "⧓": [T: "Schwarze Fliege"] # 0x29d3 (en: 'black bowtie', google: 'schwarzer bowtie') - - "⧔": [T: "Zeiten mit linker Hälfte schwarz"] # 0x29d4 (en: 'times with left half black', google: 'mal mit links halb schwarz') - - "⧕": [T: "Mal mit rechter Hälfte Schwarz"] # 0x29d5 (en: 'times with right half black', google: 'mal mit dem rechten halb schwarz') - - "⧖": [T: "Weiße Sanduhr"] # 0x29d6 (en: 'white hourglass', google: 'weiße sanduhr') - - "⧗": [T: "Schwarze Sanduhr"] # 0x29d7 (en: 'black hourglass', google: 'schwarze sanduhr') - - "⧘": [T: "Linker wackeliger Zaun"] # 0x29d8 (en: 'left wiggly fence', google: 'links wackeliger zaun') - - "⧙": [T: "rechter wackeliger Zaun"] # 0x29d9 (en: 'right wiggly fence', google: 'rechts wackeliges zaun') - - "⧚": [T: "Linker doppelter wackeliger Zaun"] # 0x29da (en: 'left double wiggly fence', MathPlayer: 'left double wiggly fence', google: 'links doppelter wackeliger zaun') - - "⧛": [T: "rechter doppelter wackeliger Zaun"] # 0x29db (en: 'right double wiggly fence', MathPlayer: 'right double wiggly fence', google: 'rechts doppelter wackeliger zaun') - - "⧜": [T: "Unvollständige Unendlichkeit"] # 0x29dc (en: 'incomplete infinity', MathPlayer: 'incomplete infinity', google: 'unvollständige unendlichkeit') - - "⧝": [T: "Krawatte über Unendlichkeit"] # 0x29dd (en: 'tie over infinity', google: 'unendlich binden') - - "⧞": [T: "Unendlichkeit mit vertikaler Leiste negiert"] # 0x29de (en: 'infinity negated with vertical bar', MathPlayer: 'infinity negated with vertical bar', google: 'unendlich negiert mit vertikaler balken') - - "⧟": [T: "Doppelter Multimap"] # 0x29df (en: 'double-ended multimap', google: 'doppel-multimap') - - "⧠": [T: "Quadrat mit konturierter Kontur"] # 0x29e0 (en: 'square with contoured outline', google: 'quadrat mit konturierten umriss') - - "⧡": [T: "Erhöht als"] # 0x29e1 (en: 'increases as', google: 'erhöht sich als') - - "⧢": [T: "Produkt mischen"] # 0x29e2 (en: 'shuffle product', google: 'shuffle -produkt') - - "⧣": [T: "Gleichheitszeichen und geneigte Parallele"] # 0x29e3 (en: 'equals sign and slanted parallel', MathPlayer: 'equals sign and slanted parallel', google: 'gleicher zeichen und schräg parallel') - - "⧤": [T: "Gleichheitszeichen und schräge Parallele zu Tilde oben"] # 0x29e4 (en: 'equals sign and slanted parallel with tilde above', MathPlayer: 'equals sign and slanted parallel with tilde above', google: 'gleicher zeichen und schräg parallel zu tilde oben') - - "⧥": [T: "Identisch und schräg parallel"] # 0x29e5 (en: 'identical to and slanted parallel', MathPlayer: 'identical to with double slash', google: 'identisch mit und schräg parallel') - - "⧦": [T: "Gleich Stark"] # 0x29e6 (en: 'gleich stark', google: 'gleich stark') - - "⧧": [T: "Thermodynamisch"] # 0x29e7 (en: 'thermodynamic', google: 'thermodynamisch') - - "⧨": [T: "Abwärtszeigendes Dreieck mit linker Hälfte schwarz"] # 0x29e8 (en: 'down pointing triangle with left half black', google: 'down dreieck mit linksem halb schwarz') - - "⧩": [T: "Abwärtszeigendes Dreieck mit rechter Hälfte schwarz"] # 0x29e9 (en: 'down pointing triangle with right half black', google: 'down dreieck mit dem rechten halben schwarz') - - "⧪": [T: "Schwarzer Diamant mit Pfeil nach unten"] # 0x29ea (en: 'black diamond with down arrow', google: 'schwarzer diamant mit pfeil') - - "⧫": [T: "Schwarze Raute"] # 0x29eb (en: 'black lozenge', MathPlayer: 'filled lozenge', google: 'schwarze raute') - - "⧬": [T: "Weißer Kreis mit Pfeil nach unten"] # 0x29ec (en: 'white circle with down arrow', google: 'weißer kreis mit pfeil') - - "⧭": [T: "Schwarzer Kreis mit Pfeil nach unten"] # 0x29ed (en: 'black circle with down arrow', google: 'schwarzer kreis mit pfeil') - - "⧮": [T: "Fehlergesperrtes weißes Quadrat"] # 0x29ee (en: 'error-barred white square', google: 'irrtum mit dem irrtümlichen weißen quadrat') - - "⧯": [T: "Fehlerfreies schwarzes Quadrat"] # 0x29ef (en: 'error-barred black square', google: 'fehler mit dem schwarzen quadrat') - - "⧰": [T: "Fehlergesperrter weißer Diamant"] # 0x29f0 (en: 'error-barred white diamond', google: 'fehler mit dem fehler mit weißem diamanten') - - "⧱": [T: "Fehlergesperrter schwarzer Diamant"] # 0x29f1 (en: 'error-barred black diamond', google: 'fehlerfreier schwarzer diamant') - - "⧲": [T: "Fehlergesperrter weißer Kreis"] # 0x29f2 (en: 'error-barred white circle', google: 'fehlerer weißer weißer kreis') - - "⧳": [T: "Fehlergesperrter schwarzer Kreis"] # 0x29f3 (en: 'error-barred black circle', google: 'fehlerer schwarzer kreis') - - "⧴": [T: "regelverzögert"] # 0x29f4 (en: 'rule-delayed') - - "⧵": [T: "Umgekehrter Schrägstrich Operator"] # 0x29f5 (en: 'reverse solidus operator', google: 'umgekehrter solidus -operator') - - "⧶": [T: "Schrägstrich mit vertikaler Leiste oben"] # 0x29f6 (en: 'solidus with overbar', MathPlayer: 'solidus with overbar', google: 'solidus mit overbar') - - "⧷": [T: "Umgekehrter Schrägstrich mit horizontalem Hub"] # 0x29f7 (en: 'reverse solidus with horizontal stroke', google: 'mit horizontalem schlaganfall solidus umkehren') - - "⧸": [T: "Großer Schrägstrich"] # 0x29f8 (en: 'big solidus', google: 'big solidus') - - "⧹": [T: "Großer umgekehrter Schrägstrich"] # 0x29f9 (en: 'big reverse solidus', google: 'big reverse solidus') - - "⧺": [T: "Doppel plus"] # 0x29fa (en: 'double plus', google: 'doppelte plus') - - "⧻": [T: "Triple Plus"] # 0x29fb (en: 'triple plus', google: 'triple plus') - - "⧼": [T: "Nach links zeigender gebogener Winkelhalter"] # 0x29fc (en: 'left pointing curved angle bracket', google: 'links gezeigt, gekrümmte winkelhalterung') - - "⧽": [T: "Nach rechts zeigender gebogener Winkelhalter"] # 0x29fd (en: 'right pointing curved angle bracket', google: 'rechte spitze gekrümmte winkelhalterung') - - "⧾": [T: "Winzig"] # 0x29fe (en: 'tiny', google: 'winzig') - - "⧿": [T: "Miny"] # 0x29ff (en: 'miny', google: 'miny') - - "⨀": [T: "Operator mit eingekreistem Punkt"] # 0x2a00 (en: 'circled dot operator', google: 'eingekreister punktbetreiber') - - "⨁": [T: "Operator mit eingekreistem Plus"] # 0x2a01 (en: 'circled plus operator', google: 'kreis plus operator') - - "⨂": [T: "Operator mit eingekreistem Kreuz"] # 0x2a02 (en: 'circled times operator', google: 'eingekreistes times operator') - - "⨃": [T: "Vereinigungs-Operator mit Punkt"] # 0x2a03 (en: 'union operator with dot', google: 'gewerkschaftsbetreiber mit punkt') - - "⨄": [T: "Vereinigungs-Operator mit Plus"] # 0x2a04 (en: 'union operator with plus', google: 'gewerkschaftsbetreiber mit plus') - - "⨅": [T: "quadratischer Schnittmengen-Operator"] # 0x2a05 (en: 'square intersection operator', google: 'square intersection operator') - - "⨆": [T: "quadratischer Vereinigungs-Operator"] # 0x2a06 (en: 'square union operator', google: 'square union operator') - - "⨇": [T: "Zwei logische Und-Operator"] # 0x2a07 (en: 'two logical and operator', google: 'zwei logische und operator') - - "⨈": [T: "Zwei logische Oder-Operator"] # 0x2a08 (en: 'two logical or operator', google: 'zwei logische oder operator') - - "⨉": [T: "Kreuz-Operator"] # 0x2a09 (en: 'times operator', google: 'times operator') - - "⨊": [T: "Modulo Zwei Summe"] # 0x2a0a (en: 'modulo two sum', google: 'modulo zwei summe') - - "⨋": [T: "Summation mit Integral"] # 0x2a0b (en: 'summation with integral', google: 'summierung mit integral') - - "⨌": [T: "Vierfach-Integral-Operator"] # 0x2a0c (SRE: 'Vierfach-Integral-Operator') - - "⨍": [T: "endliches Teilintegral"] # 0x2a0d (en: 'finite part integral', MathPlayer: 'finite part integral', google: 'finite -teil -integral') - - "⨎": [T: "Integral mit Doppelhub"] # 0x2a0e (en: 'integral with double stroke', google: 'integral mit doppelter hub') - - "⨏": [T: "Integraler Durchschnitt mit Schrägstrich"] # 0x2a0f (en: 'integral average with slash', google: 'integraler durchschnitt mit schrägstrich') - - "⨐": [T: "Zirkulationsfunktion"] # 0x2a10 (en: 'circulation function', MathPlayer: 'circulation function', google: 'zirkulationsfunktion') - - "⨑": [T: "Integration gegen den Uhrzeigersinn"] # 0x2a11 (en: 'anticlockwise integration', MathPlayer: 'anticlockwise integration', google: 'integration gegen den uhrzeigersinn') - - "⨒": [T: "Linienintegration mit rechteckigem Pfad um die Pole"] # 0x2a12 (en: 'line integration with rectangular path around pole', MathPlayer: 'line integration with rectangular path around pole', google: 'linienintegration mit einem rechteckigen pfad um pol') - - "⨓": [T: "Linienintegration mit halbkreisförmigem Pfad um den Pol"] # 0x2a13 (en: 'line integration with semicircular path around pole', MathPlayer: 'line integration with semicircular path around pole', google: 'linienintegration mit halbkreisförmigem pfad um pol') - - "⨔": [T: "Leitungsintegration ohne Pole"] # 0x2a14 (en: 'line integration not including the pole', MathPlayer: 'line integration not including the pole', google: 'linienintegration ohne stange') - - "⨕": [T: "Integral um einen Punktoperator"] # 0x2a15 (en: 'integral around a point operator', MathPlayer: 'integral around a point operator', google: 'integral um einen punktbetreiber') - - "⨖": [T: "quaternion Integral-Operator"] # 0x2a16 (SRE: 'Quaternion Integral Operator') - - "⨗": [T: "Integral mit Pfeil nach links mit Haken"] # 0x2a17 (en: 'integral with leftwards arrow with hook', MathPlayer: 'integral with leftwards arrow with hook', google: 'integraler mit linksem pfeil mit haken') - - "⨘": [T: "Integral mit Kreuzproduktzeichen"] # 0x2a18 (en: 'integral with times sign', google: 'integral mit times sign') - - "⨙": [T: "Integral mit Schnittmenge-Zeichen"] # 0x2a19 (en: 'integral with intersection', google: 'integral mit der kreuzung') - - "⨚": [T: "Integral mit Vereinigungs-Zeichen"] # 0x2a1a (en: 'integral with union', google: 'integral mit union') - - "⨛": [T: "Integral mit Overbar"] # 0x2a1b (en: 'integral with overbar', google: 'integral mit overbar') - - "⨜": [T: "Integral mit Underbar"] # 0x2a1c (en: 'integral with underbar', google: 'integral mit underbar') - - "⨝": [T: "Beitreten"] # 0x2a1d (en: 'join', google: 'verbinden') - - "⨞": [T: "Großes linkes Dreieckbediener"] # 0x2a1e (en: 'large left triangle operator', google: 'großer linker dreieck operator') - - "⨟": [T: "Z-Notationsschema-Zusammensetzung"] # 0x2a1f (en: 'z notation schema composition', google: 'z notationschema -zusammensetzung') - - "⨠": [T: "Z-Notationsschema-Piping"] # 0x2a20 (en: 'z notation schema piping', google: 'z notationschema -rohrleitungen') - - "⨡": [T: "Z-Notationsschema-Projektion"] # 0x2a21 (en: 'z notation schema projection', google: 'z notationschemaprojektion') - - "⨢": [T: "Pluszeichen mit kleinem Kreis oben"] # 0x2a22 (en: 'plus sign with circle above', MathPlayer: 'plus sign with circle above', google: 'plus zeichen mit kreis oben') - - "⨣": [T: "Pluszeichen mit Zirkumflex-Akzent oben"] # 0x2a23 (en: 'plus sign with circumflex accent above', MathPlayer: 'plus sign with circumflex accent above', google: 'plus -zeichen mit dem obigen zirkelakzent') - - "⨤": [T: "Pluszeichen mit Tilde oben"] # 0x2a24 (en: 'plus sign with tilde above', MathPlayer: 'tilde with plus below', google: 'plus zeichen mit tilde oben') - - "⨥": [T: "Pluszeichen mit Punkt unten"] # 0x2a25 (en: 'plus sign with dot below', MathPlayer: 'plus sign with dot below', google: 'plus zeichen mit punkt unten') - - "⨦": [T: "Pluszeichen mit Tilde unter"] # 0x2a26 (en: 'plus sign with tilde below', MathPlayer: 'tilde with plus above', google: 'plus zeichen mit tilde unten') - - "⨧": [T: "Pluszeichen mit Index Zwei"] # 0x2a27 (en: 'plus sign with subscript two', MathPlayer: 'plus sign with subscript two', google: 'plus sign sign mit dem index two') - - "⨨": [T: "Pluszeichen mit schwarzem Dreieck"] # 0x2a28 (en: 'plus sign with black triangle', google: 'plus zeichen mit schwarzem dreieck') - - "⨩": [T: "Minuszeichen mit Komma oben"] # 0x2a29 (en: 'minus sign with comma above', MathPlayer: 'minus sign with comma above', google: 'minus zeichen mit komma oben') - - "⨪": [T: "Minuszeichen mit Punkt unten"] # 0x2a2a (en: 'minus sign with dot below', MathPlayer: 'minus sign with dot below', google: 'minus zeichen mit punkt unten') - - "⨫": [T: "Minuszeichen mit fallenden Punkten"] # 0x2a2b (en: 'minus sign with falling dots', google: 'minus zeichen mit fallenden punkten') - - "⨬": [T: "Minuszeichen mit steigenden Punkten"] # 0x2a2c (en: 'minus sign with rising dots', google: 'minus zeichen mit steigenden punkten') - - "⨭": [T: "Pluszeichen Im linken Halbkreis"] # 0x2a2d (en: 'plus sign in left half circle', MathPlayer: 'plus sign in left half circle', google: 'plus melden sie sich im linken halbkreis an') - - "⨮": [T: "Pluszeichen Im rechten Halbkreis"] # 0x2a2e (en: 'plus sign in right half circle', MathPlayer: 'plus sign in right half circle', google: 'plus im rechten halbkreis anzeigen') - - "⨯": [T: "Vektor- oder Kreuzprodukt"] # 0x2a2f (en: 'cross product', MathPlayer: 'vector or cross product', google: 'kreuzprodukt') - - "⨰": [T: "Multiplikationszeichen mit Punkt oben"] # 0x2a30 (en: 'multiplication sign with dot above', MathPlayer: 'multiplication sign with dot above', google: 'multiplikationszeichen mit punkt oben') - - "⨱": [T: "Multiplikationszeichen mit Unterleiste"] # 0x2a31 (en: 'multiplication sign with underbar', MathPlayer: 'multiplication sign with underbar', google: 'multiplikationszeichen mit underbar') - - "⨲": [T: "Semidirektprodukt mit geschlossenem Boden"] # 0x2a32 (en: 'semidirect product with bottom closed', google: 'semidirect -produkt mit unten geschlossen') - - "⨳": [T: "smash product"] # 0x2a33 - - "⨴": [T: "Multiplikationszeichen im linken Halbkreis"] # 0x2a34 (en: 'multiplication sign in left half circle', MathPlayer: 'multiplication sign in left half circle', google: 'multiplikationszeichen im linken halbkreis') - - "⨵": [T: "Multiplikationszeichen im rechten Halbkreis"] # 0x2a35 (en: 'multiplication sign in right half circle', MathPlayer: 'multiplication sign in right half circle', google: 'multiplikationszeichen im rechten halbkreis') - - "⨶": [T: "eingekreistes Multiplikationszeichen mit Circumflex-Akzent"] # 0x2a36 (en: 'circled multiplication sign with circumflex accent', MathPlayer: 'circled multiplication sign with circumflex accent', google: 'umkreistes multiplikationszeichen mit circumflex -akzent') - - "⨷": [T: "Multiplikationszeichen im doppelten Kreis"] # 0x2a37 (en: 'multiplication sign in double circle', MathPlayer: 'multiplication sign in double circle', google: 'multiplikationszeichen im doppelkreis') - - "⨸": [T: "circled division sign"] # 0x2a38 - - "⨹": [T: "Pluszeichen im Dreieck"] # 0x2a39 (en: 'plus sign in triangle', MathPlayer: 'plus sign in triangle', google: 'plus melden sie sich im dreieck an') - - "⨺": [T: "Minuszeichen im Dreieck"] # 0x2a3a (en: 'minus sign in triangle', MathPlayer: 'minus sign in triangle', google: 'minus zeichen im dreieck') - - "⨻": [T: "Multiplikationszeichen im Dreieck"] # 0x2a3b (en: 'multiplication sign in triangle', MathPlayer: 'multiplication sign in triangle', google: 'multiplikationszeichen im dreieck') - - "⨼": [T: "Innenprodukt"] # 0x2a3c (en: 'interior product', MathPlayer: 'interior product', google: 'innenprodukt') - - "⨽": [T: "Produkt für den rechten Innenraum"] # 0x2a3d (en: 'righthand interior product', google: 'righthand innenprodukt') - - "⨾": [T: "relationale komposition"] # 0x2a3e (en: 'z notation relational composition') - - "⨿": [T: "Verschmelzung oder Koprodukt"] # 0x2a3f (en: 'amalgamation or coproduct', MathPlayer: 'amalgamation or coproduct', google: 'verschmelzung oder koprodukt') - - "⩀": [T: "Schnittpunkt mit Punkt"] # 0x2a40 (en: 'intersection with dot', MathPlayer: 'intersection with dot', google: 'kreuzung mit punkt') - - "⩁": [T: "Union mit Minuszeichen"] # 0x2a41 (en: 'union with minus sign', google: 'gewerkschaft mit minus zeichen') - - "⩂": [T: "Union mit Overbar"] # 0x2a42 (en: 'union with overbar', MathPlayer: 'union with overbar', google: 'gewerkschaft mit overbar') - - "⩃": [T: "Kreuzung mit Overbar"] # 0x2a43 (en: 'intersection with overbar', MathPlayer: 'intersection with overbar', google: 'kreuzung mit überbär') - - "⩄": [T: "Überschneidung mit logischem und"] # 0x2a44 (en: 'intersection with logical and', MathPlayer: 'intersection with logical and', google: 'schnittpunkt mit logisch und') - - "⩅": [T: "Vereinigung mit logischem Or"] # 0x2a45 (en: 'union with logical or', MathPlayer: 'union with logical or', google: 'vereinigung mit logisch oder') - - "⩆": [T: "Vereinigung über dem Schnittpunkt"] # 0x2a46 (en: 'union above intersection', MathPlayer: 'union above intersection', google: 'union über der kreuzung') - - "⩇": [T: "Schnittpunkt über Union"] # 0x2a47 (en: 'intersection above union', MathPlayer: 'intersection above union', google: 'kreuzung über union') - - "⩈": [T: "Vereinigung über Stab über Kreuzung"] # 0x2a48 (en: 'union above bar above intersection', MathPlayer: 'union above bar above intersection', google: 'gewerkschaft über der bar über der kreuzung') - - "⩉": [T: "Schnittpunkt oberhalb der Stange oberhalb der Union"] # 0x2a49 (en: 'intersection above bar above union', MathPlayer: 'intersection above bar above union', google: 'kreuzung über bar über union') - - "⩊": [T: "Union daneben und mit Union verbunden"] # 0x2a4a (en: 'union beside and joined with union', MathPlayer: 'union beside and joined with union', google: 'gewerkschaft neben der union') - - "⩋": [T: "Kreuzung neben und mit Kreuzung verbunden"] # 0x2a4b (en: 'intersection beside and joined with intersection', MathPlayer: 'intersection beside and joined with intersection', google: 'kreuzung neben und zusammen mit der kreuzung') - - "⩌": [T: "Geschlossene Vereinigung mit Serifen"] # 0x2a4c (en: 'closed union with serifs', MathPlayer: 'closed union with serifs', google: 'geschlossene vereinigung mit serifen') - - "⩍": [T: "Geschlossener Schnittpunkt mit Serifen"] # 0x2a4d (en: 'closed intersection with serifs', MathPlayer: 'closed intersection with serifs', google: 'geschlossener kreuzung mit serifen') - - "⩎": [T: "Doppelter Quadratschnitt"] # 0x2a4e (en: 'double square intersection', google: 'doppelquadratische kreuzung') - - "⩏": [T: "Double Square Union"] # 0x2a4f (en: 'double square union', google: 'doppelquadratische gewerkschaft') - - "⩐": [T: "Closed Union mit Serifen und Smash-Produkten"] # 0x2a50 (en: 'closed union with serifs and smash product', MathPlayer: 'closed union with serifs and smash product', google: 'geschlossene vereinigung mit serifen und smash -produkt') - - "⩑": [T: "Logisch und mit Punkt oben"] # 0x2a51 (en: 'logical and with dot above', google: 'logisch und mit punkt oben') - - "⩒": [T: "Logisch oder mit Punkt oben"] # 0x2a52 (en: 'logical or with dot above', google: 'logisch oder mit punkt oben') - - "⩓": [T: "double logical and"] # 0x2a53 - - "⩔": [T: "double logical or"] # 0x2a54 - - "⩕": [T: "Zwei durchschneiden logisch und"] # 0x2a55 (en: 'two intersecting logical and', MathPlayer: 'two intersecting logical and', google: 'zwei kreuzende logische und') - - "⩖": [T: "Zwei sich überschneidende logische Oder"] # 0x2a56 (en: 'two intersecting logical or', MathPlayer: 'two intersecting logical or', google: 'zwei kreuzende logische oder') - - "⩗": [T: "Abfallend großes oder"] # 0x2a57 (en: 'sloping large or', MathPlayer: 'sloping large or', google: 'groß oder') - - "⩘": [T: "Abfallend großes und"] # 0x2a58 (en: 'sloping large and', MathPlayer: 'sloping large and', google: 'groß und') - - "⩙": [T: "Logisch oder Überlappend Logisch Und"] # 0x2a59 (en: 'logical or overlapping logical and', google: 'logisch oder überlappend logisch und') - - "⩚": [T: "Logisch und mit Middle Stem"] # 0x2a5a (en: 'logical and with middle stem', MathPlayer: 'logical and with middle stem', google: 'logisch und mit mittlerem stiel') - - "⩛": [T: "Logisch oder mit Middle Stem"] # 0x2a5b (en: 'logical or with middle stem', MathPlayer: 'logical or with middle stem', google: 'logisch oder mit mittlerem stiel') - - "⩜": [T: "Logisch und mit Horizontalstrich"] # 0x2a5c (en: 'logical and with horizontal dash', MathPlayer: 'logical and with horizontal dash', google: 'logisch und mit horizontalem armaturenbrett') - - "⩝": [T: "Logisch oder mit Horizontalstrich"] # 0x2a5d (en: 'logical or with horizontal dash', MathPlayer: 'logical or with horizontal dash', google: 'logisch oder mit horizontalem strich') - - "⩞": [T: "Logisch und mit Double Overbar"] # 0x2a5e (en: 'logical and with double overbar', google: 'logisch und mit doppelter überbärung') - - "⩟": [T: "Logisch und mit Underbar"] # 0x2a5f (en: 'logical and with underbar', MathPlayer: 'logical and with underbar', google: 'logisch und mit unterbar') - - "⩠": [T: "Logisch und mit Double Underbar"] # 0x2a60 (en: 'logical and with double underbar', google: 'logisch und mit doppelter unterbarung') - - "⩡": [T: "kleines Vee mit Underbar"] # 0x2a61 (en: 'small vee with underbar', google: 'kleiner vee mit unterbar') - - "⩢": [T: "Logisch oder mit Double Overbar"] # 0x2a62 (en: 'logical or with double overbar', google: 'logisch oder mit doppelter überbärung') - - "⩣": [T: "Logisch oder mit doppelter Unterleiste"] # 0x2a63 (en: 'logical or with double underbar', google: 'logisch oder mit doppelter unterbarung') - - "⩤": [T: "Z-Notation Domain Antirestriction"] # 0x2a64 (en: 'z notation domain antirestriction', google: 'z notation domain antirestriktion') - - "⩥": [T: "Z Notationsbereich Antirestriction"] # 0x2a65 (en: 'z notation range antirestriction', google: 'z notation range antirestriktion') - - "⩦": [T: "Gleichheitszeichen mit Punkt unten"] # 0x2a66 (en: 'equals sign with dot below', MathPlayer: 'equal with dot below', google: 'gleiches zeichen mit punkt unten') - - "⩧": [T: "Identisch mit dem obigen Punkt"] # 0x2a67 (en: 'identical with dot above', google: 'identisch mit punkt oben') - - "⩨": [T: "Dreifacher Horizontalbalken mit doppeltem vertikalem Hub"] # 0x2a68 (en: 'triple horizontal bar with double vertical stroke', google: 'dreifache horizontale balken mit doppelter vertikaler hub') - - "⩩": [T: "Dreifacher Horizontalbalken mit dreifachem vertikalem Hub"] # 0x2a69 (en: 'triple horizontal bar with triple vertical stroke', google: 'dreifache horizontale stange mit dreifachem vertikalem schlaganfall') - - "⩪": [T: "Tilde-Operator mit Punkt oben"] # 0x2a6a (en: 'tilde operator with dot above', MathPlayer: 'tilde with dot', google: 'tilde -operator mit punkt oben') - - "⩫": [T: "Tilde-Operator mit steigenden Punkten"] # 0x2a6b (en: 'tilde operator with rising dots', google: 'tilde -operator mit steigenden punkten') - - "⩬": [T: "Ähnlich Minus Ähnlich"] # 0x2a6c (en: 'similar minus similar', google: 'ähnlich minus ähnlich') - - "⩭": [T: "Kongruent mit Punkt oben"] # 0x2a6d (en: 'congruent with dot above', MathPlayer: 'congruent with dot above', google: 'kongruent mit punkten oben') - - "⩮": [T: "Entspricht Asterisk"] # 0x2a6e (en: 'equals with asterisk', google: 'entspricht mit sternchen') - - "⩯": [T: "Fast gleichwertig mit dem Circumflex Accent"] # 0x2a6f (en: 'almost equal to with circumflex accent', MathPlayer: 'almost equal to with circumflex accent', google: 'fast gleich mit dem zirkumflexakzent') - - "⩰": [T: "Ungefähr gleich oder gleich zu"] # 0x2a70 (en: 'approximately equal to or equal to', google: 'ungefähr gleich oder gleich') - - "⩱": [T: "Gleichheitszeichen über Pluszeichen"] # 0x2a71 (en: 'equals sign above plus sign', MathPlayer: 'equals with plus below', google: 'gleiches zeichen oben plus zeichen') - - "⩲": [T: "Pluszeichen über Gleichheitszeichen"] # 0x2a72 (en: 'plus sign above equals sign', MathPlayer: 'equals with plus above', google: 'plus -zeichen oben gleiches zeichen') - - "⩳": [T: "Gleichheitszeichen über Tilde-Operator"] # 0x2a73 (en: 'equals sign above tilde operator', MathPlayer: 'equals sign above tilde operator', google: 'gleicher vorzeichen über dem tilde -operator') - - "⩴": [T: "Doppelpunkt gleich"] # 0x2a74 (en: 'double colon equal', MathPlayer: 'double colon equal', google: 'doppelter dickdarm gleich') - - "⩵": [T: "double equal"] # 0x2a75 (en: 'two consecutive equals signs') - - "⩶": [T: "Drei aufeinander folgende Gleichheitszeichen"] # 0x2a76 (en: 'three consecutive equals signs', google: 'drei aufeinanderfolgende anzeichen') - - "⩷": [T: "Gleichheitszeichen mit zwei Punkten oben und zwei Punkten unten"] # 0x2a77 (en: 'equals sign with two dots above and two dots below', MathPlayer: 'equals sign with two dots above and two dots below', google: 'gleiches zeichen mit zwei punkten oben und zwei punkten unten') - - "⩸": [T: "Gleichwertig mit vier Punkten oben"] # 0x2a78 (en: 'equivalent with four dots above', MathPlayer: 'equivalent with four dots above', google: 'äquivalent mit vier punkten oben') - - "⩹": [T: "Weniger als mit Circle Inside"] # 0x2a79 (en: 'less than with circle inside', MathPlayer: 'less than with circle inside', google: 'weniger als mit kreis im inneren') - - "⩺": [T: "Größer als mit Kreis nach innen"] # 0x2a7a (en: 'greater than with circle inside', MathPlayer: 'greater than with circle inside', google: 'größer als mit kreis im inneren') - - "⩻": [T: "Weniger als mit Fragezeichen oben"] # 0x2a7b (en: 'less than with question mark above', MathPlayer: 'less than with question mark above', google: 'weniger als mit fragezeichen oben') - - "⩼": [T: "Größer als mit Fragezeichen oben"] # 0x2a7c (en: 'greater than with question mark above', MathPlayer: 'greater than with question mark above', google: 'größer als mit dem obigen fragezeichen') - - "⩽": [T: "Weniger als oder schräg gleich"] # 0x2a7d (en: 'less than or slanted equal to', MathPlayer: 'less than or slanted equal to', google: 'weniger als oder schräg gleich') - - "⩾": [T: "Größer als oder schräg gleich"] # 0x2a7e (en: 'greater than or slanted equal to', MathPlayer: 'greater than or slanted equal', google: 'größer als oder schräg gleich') - - "⩿": [T: "Weniger als oder schräg gleich mit Punkt nach innen"] # 0x2a7f (en: 'less than or slanted equal to with dot inside', MathPlayer: 'less than or slanted equal to with dot inside', google: 'weniger als oder schräg gleich mit punkt im inneren') - - "⪀": [T: "Größer als oder schräg gleich mit Punkt nach innen"] # 0x2a80 (en: 'greater than or slanted equal to with dot inside', MathPlayer: 'greater than or slanted equal to with dot inside', google: 'größer als oder schräg gleich mit punkt im inneren') - - "⪁": [T: "Weniger als oder schräg gleich mit Punkt oben"] # 0x2a81 (en: 'less than or slanted equal to with dot above', MathPlayer: 'less than or slanted equal to with dot above', google: 'weniger als oder schräg gleich mit punkt oben') - - "⪂": [T: "Größer als oder schräg gleich mit Punkt oben"] # 0x2a82 (en: 'greater than or slanted equal to with dot above', MathPlayer: 'greater than or slanted equal to with dot above', google: 'größer als oder schräg gleich mit punkt oben') - - "⪃": [T: "Weniger als oder schräg gleich mit Punkt oben rechts"] # 0x2a83 (en: 'less than or slanted equal to with dot above right', MathPlayer: 'less than or slanted equal to with dot above right', google: 'weniger oder schräg gleich mit dem punkt oben rechts') - - "⪄": [T: "Größer als oder schräg gleich mit Punkt oben links"] # 0x2a84 (en: 'greater than or slanted equal to with dot above left', MathPlayer: 'greater than or slanted equal to with dot above left', google: 'größer als oder schräg gleich mit punkt oben links') - - "⪅": [T: "Weniger als oder ungefähr"] # 0x2a85 (en: 'less than or approximate', google: 'weniger als oder ungefähr') - - "⪆": [T: "Größer als oder ungefähr"] # 0x2a86 (en: 'greater than or approximate', google: 'größer als oder ungefähr') - - "⪇": [T: "Kleiner als aber nicht gleich"] # 0x2a87 (en: 'less than and single line not equal to', google: 'weniger als und eine einzelne linie nicht gleich') - - "⪈": [T: "Größer als aber nicht gleich"] # 0x2a88 (en: 'greater than and single line not equal to', google: 'größer als und eine einzelne linie nicht gleich') - - "⪉": [T: "Kleiner als aber nicht ungefähr gleich"] # 0x2a89 (en: 'less than and not approximate', MathPlayer: 'less than but not approximately equal to', google: 'weniger als und nicht ungefähr') - - "⪊": [T: "Größer als aber nicht ungefähr gleich"] # 0x2a8a (en: 'greater than and not approximate', MathPlayer: 'greater than but not approximately equal to', google: 'größer als und nicht ungefähr') - - "⪋": [T: "Weniger als aber größer als oben"] # 0x2a8b (en: 'less than above double line equal above greater than', google: 'weniger als über der doppelten linie gleich über größer als höher als') - - "⪌": [T: "Größer als aber weniger als unten und größer als oben"] # 0x2a8c (en: 'greater than above double line equal above less than', google: 'größer als über der doppelten linie, die über weniger als über weniger als übertroffen werden') - - "⪍": [T: "Weniger als oben ähnlich oder gleich"] # 0x2a8d (en: 'less than above similar or equal', MathPlayer: 'less than above similar or equal', google: 'weniger als über ähnlich oder gleich') - - "⪎": [T: "Größer als oben ähnlich oder gleich"] # 0x2a8e (en: 'greater than above similar or equal', MathPlayer: 'greater than above similar or equal', google: 'größer als über ähnlich oder gleich') - - "⪏": [T: "Weniger als oben ähnlich oben größer als"] # 0x2a8f (en: 'less than above similar above greater than', MathPlayer: 'less than above similar above greater than', google: 'weniger als über ähnlich oben höher als größer als') - - "⪐": [T: "Größer als oben Ähnlich oben"] # 0x2a90 (en: 'greater than above similar above less than', MathPlayer: 'greater than above similar above less than', google: 'größer als über ähnlich über ähnlichem') - - "⪑": [T: "less than greater than or equal to"] # 0x2a91 (en: 'less than above greater than above double line equal') - - "⪒": [T: "greater than less than or equal to"] # 0x2a92 (en: 'greater than above less than above double line equal') - - "⪓": [T: "Weniger als oben schräg gleich oben Größer als oben schräg gleich"] # 0x2a93 (en: 'less than above slanted equal above greater than above slanted equal', MathPlayer: 'less than above slanted equal above greater than above slanted equal', google: 'weniger als über dem überdurchschnittlich überdurchschnittlich überdurchschnittlich ist es gleich') - - "⪔": [T: "Größer als oben schräg gleich oben kleiner als oben schräg gleich groß"] # 0x2a94 (en: 'greater than above slanted equal above less than above slanted equal', MathPlayer: 'greater than above slanted equal above less than above slanted equal', google: 'größer als über dem schrägen gleich über dem gleichen schrägen gleich') - - "⪕": [T: "Schräg gleich oder kleiner als"] # 0x2a95 (en: 'slanted equal to or less than', google: 'schräg gleich oder weniger als') - - "⪖": [T: "Schräg gleich oder größer als"] # 0x2a96 (en: 'slanted equal to or greater than', google: 'schräg gleich oder größer als') - - "⪗": [T: "Schräg gleich oder kleiner als mit innenliegendem Punkt"] # 0x2a97 (en: 'slanted equal to or less than with dot inside', MathPlayer: 'slanted equal to or less than with dot inside', google: 'schräg gleich oder weniger als mit punkt im inneren') - - "⪘": [T: "Schräg gleich oder größer als mit Punkt nach innen"] # 0x2a98 (en: 'slanted equal to or greater than with dot inside', MathPlayer: 'slanted equal to or greater than with dot inside', google: 'schräg gleich oder größer als mit punkt im inneren') - - "⪙": [T: "Gleich oder kleiner als"] # 0x2a99 (en: 'double line equal to or less than', MathPlayer: 'equal (double) over less than', google: 'doppellinie gleich oder weniger als') - - "⪚": [T: "Gleich oder größer als"] # 0x2a9a (en: 'double line equal to or greater than', MathPlayer: 'equal to or greater than', google: 'doppellinie gleich oder größer als') - - "⪛": [T: "Doppelte Linie schräg gleich oder kleiner als"] # 0x2a9b (en: 'double line slanted equal to or less than', google: 'doppelzeile, die gleich oder weniger als weniger als') - - "⪜": [T: "Doppelte Linie schräg gleich oder größer als"] # 0x2a9c (en: 'double line slanted equal to or greater than', google: 'doppelte linie schräg gleich oder größer als') - - "⪝": [T: "Äquivalent oder kleiner als"] # 0x2a9d (en: 'similar or less than', MathPlayer: 'equivalent to or less than', google: 'ähnlich oder weniger als') - - "⪞": [T: "Ähnlich oder größer als"] # 0x2a9e (en: 'similar or greater than', MathPlayer: 'similar or greater than', google: 'ähnlich oder größer als') - - "⪟": [T: "Ähnlich oben Weniger als Gleiches Gleichheitszeichen"] # 0x2a9f (en: 'similar above less than above equals sign', MathPlayer: 'similar above less than above equals sign', google: 'ähnlich oben weniger als über oben gleiches zeichen') - - "⪠": [T: "Ähnlich oben größer als oben Gleichheitszeichen"] # 0x2aa0 (en: 'similar above greater than above equals sign', MathPlayer: 'similar above greater than above equals sign', google: 'ähnlich oben größer als über oben gleiches zeichen') - - "⪡": [T: "Verschachteltes kleiner als"] # 0x2aa1 (en: 'double nested less than', MathPlayer: 'nested less than', google: 'doppelt weniger verschachtelt als') - - "⪢": [T: "Verschachteltes größer als"] # 0x2aa2 (en: 'double nested greater than', MathPlayer: 'nested greater than', google: 'doppelt verschachtelt größer als') - - "⪣": [T: "Doppelt verschachtelt, weniger als mit Unterleiste"] # 0x2aa3 (en: 'double nested less than with underbar', google: 'doppelte verschachtel weniger als mit underbar') - - "⪤": [T: "less than greater than overlay"] # 0x2aa4 (en: 'greater than overlapping less than') - - "⪥": [T: "Größer als weniger als"] # 0x2aa5 (en: 'greater than beside less than', MathPlayer: 'greater than beside less than', google: 'größer als weniger als weniger als') - - "⪦": [T: "Weniger als durch Kurve geschlossen"] # 0x2aa6 (en: 'less than closed by curve', MathPlayer: 'less than closed by curve', google: 'weniger als durch kurve geschlossen') - - "⪧": [T: "Größer als durch Kurve geschlossen"] # 0x2aa7 (en: 'greater than closed by curve', MathPlayer: 'greater than closed by curve', google: 'größer als durch kurve geschlossen') - - "⪨": [T: "Weniger als dann geschlossen durch Kurve oberhalb der gleichen Neigung"] # 0x2aa8 (en: 'less than closed by curve above slanted equal', MathPlayer: 'less than closed by curve above slanted equal', google: 'weniger als geschlossen durch kurve über schräg gleich') - - "⪩": [T: "Größer als geschlossen durch Kurve oberhalb der gleichen Neigung"] # 0x2aa9 (en: 'greater than closed by curve above slanted equal', MathPlayer: 'greater than closed by curve above slanted equal', google: 'größer als durch kurve über schräg gleich geschlossen') - - "⪪": [T: "kleiner als"] # 0x2aaa (en: 'smaller than', MathPlayer: 'smaller than') - - "⪫": [T: "Größer als"] # 0x2aab (en: 'larger than', MathPlayer: 'larger than', google: 'größer als') - - "⪬": [T: "kleiner als oder gleich"] # 0x2aac (en: 'smaller than or equal to', MathPlayer: 'smaller than or equal to') - - "⪭": [T: "Größer als oder gleich"] # 0x2aad (en: 'larger than or equal to', MathPlayer: 'larger than or equal to', google: 'größer als oder gleich') - - "⪮": [T: "difference between (variant"] # 0x2aae (en: 'equals sign with bumpy above', MathPlayer: 'difference between (variant)', google: 'gleiches zeichen mit holprigem oben') - - "⪯": [T: "Stellt über dem einzeiligen Gleichheitszeichen ein"] # 0x2aaf (en: 'precedes above single line equals sign', MathPlayer: 'precedes above single line equals sign', google: 'vorausgesetzt über ein einzelner zeile ist gleich ein zeichen') - - "⪰": [T: "Erfolg über dem einzeiligen Gleichheitszeichen"] # 0x2ab0 (en: 'succeeds above single line equals sign', google: 'nachfolger über eine einzelne zeile gleich zeichen') - - "⪱": [T: "Vorangehende Single-Line ist nicht gleich"] # 0x2ab1 (en: 'precedes above single line not equal to', google: 'vor voraussichtlich nicht gleich einzelner linie gleich') - - "⪲": [T: "Erfolg über Single-Line nicht gleich"] # 0x2ab2 (en: 'succeeds above single line not equal to', google: 'nachfolger über eine einzelne linie nicht gleich') - - "⪳": [T: "Vorangegangenes Gleichheitszeichen"] # 0x2ab3 (en: 'precedes above equals sign', google: 'vor dem gleichen vorzeichen voraus') - - "⪴": [T: "Erfolgreich über Gleichheitszeichen"] # 0x2ab4 (en: 'succeeds above equals sign', google: 'nachfolger über gleiches zeichen') - - "⪵": [T: "vorangehend, aber nicht gleich"] # 0x2ab5 (en: 'precedes above not equal to') - - "⪶": [T: "nachfolgend, aber nicht gleich"] # 0x2ab6 (en: 'succeeds above not equal to') - - "⪷": [T: "Vorangegangenes fast gleich zu"] # 0x2ab7 (en: 'precedes above almost equal to', google: 'vor voraussichtlich fast gleich gleich') - - "⪸": [T: "Erreicht über fast gleich viel"] # 0x2ab8 (en: 'succeeds above almost equal to', google: 'erfolgreich ist über fast gleich') - - "⪹": [T: "Vorangegangene nicht annähernd gleich"] # 0x2ab9 (en: 'precedes above not almost equal to', google: 'vorkommen oben nicht annähernd gleich') - - "⪺": [T: "Erreicht oben nicht annähernd gleich"] # 0x2aba (en: 'succeeds above not almost equal to', google: 'es ist nicht annähernd gleich') - - "⪻": [T: "Doppelter Vorgänger"] # 0x2abb (en: 'double precedes', MathPlayer: 'double precedes', google: 'double geht vor') - - "⪼": [T: "Doppelter Erfolg"] # 0x2abc (en: 'double succeeds', MathPlayer: 'double succeeds', google: 'doppelt erfolgreich') - - "⪽": [T: "Teilmenge mit Punkt"] # 0x2abd (en: 'subset with dot', MathPlayer: 'subset of with dot; is included in as sub relation', google: 'untergruppe mit punkt') - - "⪾": [T: "Superset mit Punkt"] # 0x2abe (en: 'superset with dot', MathPlayer: 'superset of with dot; includes as sub relation', google: 'superset mit punkt') - - "⪿": [T: "Teilmenge mit Pluszeichen unten"] # 0x2abf (en: 'subset with plus sign below', MathPlayer: 'subset with plus sign below', google: 'untergruppe mit pluszeichen unten') - - "⫀": [T: "Superset mit Pluszeichen unten"] # 0x2ac0 (en: 'superset with plus sign below', MathPlayer: 'superset with plus sign below', google: 'superset mit plus -zeichen unten') - - "⫁": [T: "Teilmenge mit Multiplikationszeichen unten"] # 0x2ac1 (en: 'subset with multiplication sign below', MathPlayer: 'subset with multiplication sign below', google: 'untergruppe mit multiplikationszeichen unten') - - "⫂": [T: "Superset mit Multiplikationszeichen unten"] # 0x2ac2 (en: 'superset with multiplication sign below', MathPlayer: 'superset with multiplication sign below', google: 'superset mit multiplikationszeichen unten') - - "⫃": [T: "Teilmenge oder gleich mit dem obigen Punkt"] # 0x2ac3 (en: 'subset of or equal to with dot above', MathPlayer: 'subset of or equal to with dot above', google: 'teilmenge von oder gleich mit punkt oben') - - "⫄": [T: "Superset von oder gleich mit Punkt oben"] # 0x2ac4 (en: 'superset of or equal to with dot above', MathPlayer: 'superset of or equal to with dot above', google: 'superset von oder gleich mit punkt oben') - - "⫅": [T: "Teilmenge des obigen Gleichheitszeichens"] # 0x2ac5 (en: 'subset of above equals sign', google: 'teilmenge von oben gleichen vorzeichen') - - "⫆": [T: "Superset des obigen Gleichheitszeichens"] # 0x2ac6 (en: 'superset of above equals sign', google: 'superset von oben gleichen vorzeichen') - - "⫇": [T: "approximate subset of"] # 0x2ac7 (en: 'subset of above tilde operator') - - "⫈": [T: "approximate superset of"] # 0x2ac8 (en: 'superset of above tilde operator') - - "⫉": [T: "Teilmenge von oben fast gleich"] # 0x2ac9 (en: 'subset of above almost equal to', google: 'untergruppe von oben fast gleich') - - "⫊": [T: "Superset von oben fast gleichwertig"] # 0x2aca (en: 'superset of above almost equal to', google: 'superset von oben fast gleich') - - "⫋": [T: "Teilmenge von oben nicht gleich"] # 0x2acb (en: 'subset above not equal to', google: 'untergruppe oben nicht gleich') - - "⫌": [T: "Superset von oben nicht gleich"] # 0x2acc (en: 'superset of above not equal to', google: 'superset von oben nicht gleich') - - "⫍": [T: "Platz links Feldbetreiber geöffnet"] # 0x2acd (en: 'square left open box operator', google: 'quadratische linke offene box -bediener') - - "⫎": [T: "Rechteckige Box mit offener Box"] # 0x2ace (en: 'square right open box operator', google: 'square right open box operator') - - "⫏": [T: "Geschlossener Teilsatz"] # 0x2acf (en: 'closed subset', MathPlayer: 'closed subset', google: 'geschlossene untergruppe') - - "⫐": [T: "Superset geschlossen"] # 0x2ad0 (en: 'closed superset', MathPlayer: 'closed superset', google: 'geschlossener superset') - - "⫑": [T: "Geschlossene Untermenge oder gleich"] # 0x2ad1 (en: 'closed subset or equal to', MathPlayer: 'closed subset or equal to', google: 'geschlossene untergruppe oder gleich') - - "⫒": [T: "Superset geschlossen oder gleich"] # 0x2ad2 (en: 'closed superset or equal to', MathPlayer: 'closed superset or equal to', google: 'geschlossene superset oder gleich') - - "⫓": [T: "subset over superset"] # 0x2ad3 (en: 'subset above superset') - - "⫔": [T: "superset over subset"] # 0x2ad4 (en: 'superset above subset') - - "⫕": [T: "subset over subset"] # 0x2ad5 (en: 'subset above subset') - - "⫖": [T: "superset over superset"] # 0x2ad6 (en: 'superset above superset') - - "⫗": [T: "Superset neben dem Subset"] # 0x2ad7 (en: 'superset beside subset', MathPlayer: 'superset beside subset', google: 'superset neben untergruppe') - - "⫘": [T: "Superset Neben und Joined von Dash mit Subset"] # 0x2ad8 (en: 'superset beside and joined by dash with subset', MathPlayer: 'superset beside and joined by dash with subset', google: 'superset neben dem dash mit der untergruppe') - - "⫙": [T: "Element der Öffnung nach unten"] # 0x2ad9 (en: 'element of opening downwards', MathPlayer: 'element of opening downwards', google: 'element der abwärts öffnen') - - "⫚": [T: "Heugabel mit T-Stück"] # 0x2ada (en: 'pitchfork with tee top', MathPlayer: 'pitchfork with tee top', google: 'pitchfork mit t -shirt top') - - "⫛": [T: "Transversalschnitt"] # 0x2adb (en: 'transversal intersection', MathPlayer: 'transversal intersection', google: 'transversal -kreuzung') - - "⫝̸": [T: "Gabelung"] # 0x2adc (en: 'forking', google: 'gabel') - - "⫝": [T: "Nicht Gabeln"] # 0x2add (en: 'nonforking', google: 'nicht -forking') - - "⫞": [T: "Kurzer Linker Tack"] # 0x2ade (en: 'short left tack', google: 'kurzer linker tack') - - "⫟": [T: "Kurzer Down Tack"] # 0x2adf (en: 'short down tack', google: 'kurzer tack') - - "⫠": [T: "Short Up Tack"] # 0x2ae0 (en: 'short up tack', google: 'kurzer tack') - - "⫡": [T: "Rechtwinklig zu S"] # 0x2ae1 (en: 'perpendicular with s', google: 'senkrecht mit s') - - "⫢": [T: "Vertikales Dreifach-Drehkreuz"] # 0x2ae2 (en: 'vertical bar triple right turnstile', google: 'vertikale bar dreifache rechte drehstil') - - "⫣": [T: "Doppelter vertikaler Balken linkes Drehkreuz"] # 0x2ae3 (en: 'double vertical bar left turnstile', google: 'doppelte vertikale balken linke drehkreuze') - - "⫤": [T: "double left turnstile vertical bar"] # 0x2ae4 (en: 'vertical bar double left turnstile') - - "⫥": [T: "Doppelter vertikaler Balken Doppelter linker Drehkreuz"] # 0x2ae5 (en: 'double vertical bar double left turnstile', google: 'doppelte vertikale balken doppelte linke drehkreuze') - - "⫦": [T: "Long Dash von Left Member von Double Vertical"] # 0x2ae6 (en: 'long dash from left member of double vertical', MathPlayer: 'long dash from left member of double vertical', google: 'langer dash vom linken mitglied des doppel vertikalen') - - "⫧": [T: "Short Down Tack mit Overbar"] # 0x2ae7 (en: 'short down tack with overbar', MathPlayer: 'short down tack with overbar', google: 'kurzer tack mit overbar') - - "⫨": [T: "perpendicular over bar"] # 0x2ae8 (en: 'short up tack with underbar') - - "⫩": [T: "Short Up Tack Über Short Down Tack"] # 0x2ae9 (en: 'short up tack above short down tack', MathPlayer: 'short up tack above short down tack', google: 'kurzschluss über kurzer tack') - - "⫪": [T: "Double Down Tack"] # 0x2aea (en: 'double down tack', google: 'double down tack') - - "⫫": [T: "Verdoppeln Sie Tack"] # 0x2aeb (en: 'double up tack', MathPlayer: 'double up tack', google: 'doppelte tack') - - "⫬": [T: "Doppelstrich nicht unterschreiben"] # 0x2aec (en: 'double stroke not sign', MathPlayer: 'double stroke not sign', google: 'doppelhub nicht unterschreiben') - - "⫭": [T: "Umgekehrter Doppelstrich nicht unterschrieben"] # 0x2aed (en: 'reversed double stroke not sign', MathPlayer: 'reversed double stroke not sign', google: 'umgekehrter doppelstrich nicht unterschreiben') - - "⫮": [T: "Teilt sich nicht mit umgekehrten Negationsschrägstrich"] # 0x2aee (en: 'does not divide with reversed negation slash', MathPlayer: 'does not divide with reversed negation slash', google: 'teilt sich nicht mit umgekehrter negationsschrägung') - - "⫯": [T: "Vertikale Linie mit Kreis oben"] # 0x2aef (en: 'vertical line with circle above', MathPlayer: 'vertical line with circle above', google: 'vertikale linie mit dem obigen kreis') - - "⫰": [T: "Vertikale Linie mit Kreis unten"] # 0x2af0 (en: 'vertical line with circle below', MathPlayer: 'vertical line with circle below', google: 'vertikale linie mit kreis unten') - - "⫱": [T: "Down Tack mit Kreis unten"] # 0x2af1 (en: 'down tack with circle below', MathPlayer: 'down tack with circle below', google: 'down tack mit kreis unten') - - "⫲": [T: "Parallel zum horizontalen Anschlag"] # 0x2af2 (en: 'parallel with horizontal stroke', MathPlayer: 'parallel with horizontal stroke', google: 'parallel zu horizontalem schlaganfall') - - "⫳": [T: "Parallel zu Tilde Operator"] # 0x2af3 (en: 'parallel with tilde operator', MathPlayer: 'parallel with tilde operator', google: 'parallel zum tilde -operator') - - "⫴": [T: "Dreifache vertikale Balken-Binärbeziehung"] # 0x2af4 (en: 'triple vertical bar binary relation', google: 'triple vertical bar binärbeziehung') - - "⫵": [T: "Dreifacher vertikaler Strich mit horizontalem Hub"] # 0x2af5 (en: 'triple vertical bar with horizontal stroke', google: 'dreifache vertikale balken mit horizontalem schlaganfall') - - "⫶": [T: "dreifacher doppelpunkt-operator"] # 0x2af6 (en: 'triple colon operator', google: 'dreifacher dickdarmbetreiber') - - "⫷": [T: "Dreifach verschachtelt weniger als"] # 0x2af7 (en: 'triple nested less than', google: 'dreifach verschachtelte weniger als') - - "⫸": [T: "Dreifach verschachteltes Größeres als"] # 0x2af8 (en: 'triple nested greater than', google: 'dreifach verschachteltes als') - - "⫹": [T: "Doppellinie schräg, weniger als oder gleich"] # 0x2af9 (en: 'double line slanted less than or equal to', google: 'doppelzeile, die weniger oder gleich sind') - - "⫺": [T: "Doppelte Linie schräg größer als oder gleich"] # 0x2afa (en: 'double line slanted greater than or equal to', google: 'doppelte linie schräg größer als oder gleich') - - "⫻": [T: "Dreifache Schrägstrich-Binärbeziehung"] # 0x2afb (en: 'triple solidus binary relation', google: 'triple solidus binärbeziehung') - - "⫼": [T: "Großer dreifacher vertikaler Barbediener"] # 0x2afc (en: 'large triple vertical bar operator', google: 'großer dreifacher vertikaler barbetreiber') - - "⫽": [T: "Doppelter Schrägstrich-Operator"] # 0x2afd (en: 'double solidus operator', google: 'doppeler solidus -operator') - - "⫾": [T: "Weiße vertikale Leiste"] # 0x2afe (en: 'white vertical bar', google: 'weiße vertikale balken') - - "⫿": [T: "n-ary weiße vertikale leiste"] # 0x2aff (en: 'white vertical bar', google: 'weiße vertikale balken') - - "⬀": [T: "weißer Nordostpfeil"] # 0x2b00 (en: 'north east white arrow', google: 'north east white arrow') - - "⬁": [T: "Nordwestlicher weißer Pfeil"] # 0x2b01 (en: 'north west white arrow', google: 'north west white arrow') - - "⬂": [T: "Südostweißer Pfeil"] # 0x2b02 (en: 'south east white arrow', google: 'südostweißer pfeil') - - "⬃": [T: "Südwestweißer Pfeil"] # 0x2b03 (en: 'south west white arrow', google: 'south west white arrow') - - "⬄": [T: "Linker rechter weißer Pfeil"] # 0x2b04 (en: 'left right white arrow', google: 'links rechts weißer pfeil') - - "⬅": [T: "Schwarzer Pfeil nach links"] # 0x2b05 (en: 'leftwards black arrow', google: 'links schwarzer pfeil') - - "⬆": [T: "Aufwärts schwarzer Pfeil"] # 0x2b06 (en: 'upwards black arrow', google: 'aufwärts schwarze pfeil') - - "⬇": [T: "Abwärts schwarzer Pfeil"] # 0x2b07 (en: 'downwards black arrow', google: 'nach unten schwarzen pfeil') - - "⬈": [T: "Schwarzer Nordostpfeil"] # 0x2b08 (en: 'north east black arrow', google: 'nordostschwarzer pfeil') - - "⬉": [T: "Nordwestlicher schwarzer Pfeil"] # 0x2b09 (en: 'north west black arrow', google: 'nordwesten schwarzer pfeil') - - "⬊": [T: "Schwarzer Südostpfeil"] # 0x2b0a (en: 'south east black arrow', google: 'südostschwarzer pfeil') - - "⬋": [T: "Südwestlicher schwarzer Pfeil"] # 0x2b0b (en: 'south west black arrow', google: 'südwesten schwarzer pfeil') - - "⬌": [T: "Linker rechter schwarzer Pfeil"] # 0x2b0c (en: 'left right black arrow', google: 'links rechts schwarzer pfeil') - - "⬍": [T: "Schwarzer Pfeil nach unten"] # 0x2b0d (en: 'up down black arrow', google: 'runter schwarze pfeil') - - "⬎": [T: "Pfeil nach rechts mit Spitze nach unten"] # 0x2b0e (en: 'rightwards arrow with tip downwards', google: 'richtiger pfeil mit tipp nach unten') - - "⬏": [T: "Pfeil nach rechts mit Spitze nach oben"] # 0x2b0f (en: 'rightwards arrow with tip upwards', google: 'richtiger pfeil mit tipp nach oben') - - "⬐": [T: "Pfeil nach links mit Spitze nach unten"] # 0x2b10 (en: 'leftwards arrow with tip downwards', google: 'links pfeil mit tipp nach unten') - - "⬑": [T: "Pfeil nach links mit Spitze nach oben"] # 0x2b11 (en: 'leftwards arrow with tip upwards', google: 'linkspfeil mit tipp nach oben') - - "⬒": [T: "Quadrat mit oberer Hälfte schwarz"] # 0x2b12 (en: 'square with top half black', google: 'quadrat mit der oberen halbzeit') - - "⬓": [T: "Quadrat mit unterer Hälfte schwarz"] # 0x2b13 (en: 'square with bottom half black', google: 'quadrat mit unterer halb schwarz') - - "⬔": [T: "Quadrat mit oberer rechter diagonaler Hälfte schwarz"] # 0x2b14 (en: 'square with upper right diagonal half black', google: 'quadrat mit der oberen rechten diagonalen halbschwarz') - - "⬕": [T: "Quadrat mit unterer linker diagonaler Hälfte schwarz"] # 0x2b15 (en: 'square with lower left diagonal half black', google: 'quadrat mit der unteren linken diagonalen halbschwarz') - - "⬖": [T: "Diamant mit linker Hälfte schwarz"] # 0x2b16 (en: 'diamond with left half black', google: 'diamant mit linksem halb schwarz') - - "⬗": [T: "Diamant mit rechter Hälfte schwarz"] # 0x2b17 (en: 'diamond with right half black', google: 'diamant mit rechter halb schwarz') - - "⬘": [T: "Diamant mit oberer Hälfte schwarz"] # 0x2b18 (en: 'diamond with top half black', google: 'diamant mit oberem halben schwarz') - - "⬙": [T: "Diamant mit unterer Hälfte schwarz"] # 0x2b19 (en: 'diamond with bottom half black', google: 'diamant mit unterer halb schwarz') - - "⬚": [T: "Gepunktetes Quadrat"] # 0x2b1a (en: 'box', google: 'kasten') - - "⬛": [T: "Schwarzes großes Quadrat"] # 0x2b1b (en: 'black large square', google: 'schwarzes großes quadrat') - - "⬜": [T: "Weißes großes Quadrat"] # 0x2b1c (en: 'white large square', google: 'weiß großes quadrat') - - "⬝": [T: "Schwarzes sehr kleines Quadrat"] # 0x2b1d (en: 'black very small square', google: 'schwarz, sehr kleines quadrat') - - "⬞": [T: "Weißes sehr kleines Quadrat"] # 0x2b1e (en: 'white very small square', google: 'weiß sehr kleines quadrat') - - "⬟": [T: "Schwarzes Pentagon"] # 0x2b1f (en: 'black pentagon', google: 'schwarzes pentagon') - - "⬠": [T: "Weißes Pentagon"] # 0x2b20 (en: 'white pentagon', google: 'weißes pentagon') - - "⬡": [T: "Weißes Sechseck"] # 0x2b21 (en: 'white hexagon', google: 'weißes sechseck') - - "⬢": [T: "Schwarzes Sechseck"] # 0x2b22 (en: 'black hexagon', google: 'schwarzes sechseck') - - "⬣": [T: "Horizontales schwarzes Sechseck"] # 0x2b23 (en: 'horizontal black hexagon', google: 'horizontales schwarzes sechseck') - - "⬤": [T: "Schwarzer großer Kreis"] # 0x2b24 (en: 'black large circle', google: 'schwarzer großer kreis') - - "⬥": [T: "Schwarzer mittlerer Diamant"] # 0x2b25 (en: 'black medium diamond', google: 'schwarzer medium diamond') - - "⬦": [T: "Weißer mittlerer Diamant"] # 0x2b26 (en: 'white medium diamond', google: 'weißer medium diamant') - - "⬧": [T: "Schwarze mittlere Raute"] # 0x2b27 (en: 'black medium lozenge', google: 'schwarze mittelgroße rauten') - - "⬨": [T: "Weiße mittlere Raute"] # 0x2b28 (en: 'white medium lozenge', google: 'weiße mittelgroße rauten') - - "⬩": [T: "Schwarzer kleiner Diamant"] # 0x2b29 (en: 'black small diamond', google: 'schwarzer kleiner diamant') - - "⬪": [T: "Schwarze kleine Raute"] # 0x2b2a (en: 'black small lozenge', google: 'schwarze kleine rauten') - - "⬫": [T: "Weiße kleine Raute"] # 0x2b2b (en: 'white small lozenge', google: 'weiße kleine raute') - - "⬬": [T: "Schwarze horizontale Ellipse"] # 0x2b2c (en: 'black horizontal ellipse', google: 'schwarze horizontale ellipse') - - "⬭": [T: "Weiße horizontale Ellipse"] # 0x2b2d (en: 'white horizontal ellipse', google: 'weiße horizontale ellipse') - - "⬮": [T: "Schwarze vertikale Ellipse"] # 0x2b2e (en: 'black vertical ellipse', google: 'schwarze vertikale ellipse') - - "⬯": [T: "Weiße vertikale Ellipse"] # 0x2b2f (en: 'white vertical ellipse', google: 'weiße vertikale ellipse') - - "⬰": [T: "Linker Pfeil mit kleinem Kreis"] # 0x2b30 (en: 'left arrow with small circle', google: 'links pfeil mit kleinem kreis') - - "⬱": [T: "Drei nach links gerichtete Pfeile"] # 0x2b31 (en: 'three leftwards arrows', google: 'drei linke pfeile') - - "⬲": [T: "Linker Pfeil mit Circled Plus"] # 0x2b32 (en: 'left arrow with circled plus', google: 'links pfeil mit eingekreistem plus') - - "⬳": [T: "Langer nach links gerichteter Squiggle-Pfeil"] # 0x2b33 (en: 'long leftwards squiggle arrow', google: 'langer linkskundiger pfeil') - - "⬴": [T: "Pfeil nach links mit senkrechtem Strich"] # 0x2b34 (en: 'leftwards two headed arrow with vertical stroke', google: 'links zwei köpfe pfeil mit vertikalem schlaganfall') - - "⬵": [T: "Doppelpfeil nach links mit doppeltem vertikalem Strich"] # 0x2b35 (en: 'leftwards two headed arrow with double vertical stroke', google: 'links zwei köpfe pfeil mit doppelter vertikaler hub') - - "⬶": [T: "Doppelpfeil nach links von der Bar"] # 0x2b36 (en: 'leftwards two headed arrow from bar', google: 'links zwei köpfe pfeil aus der bar') - - "⬷": [T: "Pfeil nach links mit zwei Köpfen"] # 0x2b37 (en: 'leftwards two headed triple dash arrow', google: 'links zwei köpfe triple dash pfeil') - - "⬸": [T: "Pfeil nach links mit gepunktetem Stamm"] # 0x2b38 (en: 'leftwards arrow with dotted stem', google: 'links pfeil mit gepunktetem stiel') - - "⬹": [T: "Pfeil nach links mit Schwanz mit vertikalem Strich"] # 0x2b39 (en: 'leftwards arrow with tail with vertical stroke', google: 'linkspfeil mit schwanz mit vertikalem schlaganfall') - - "⬺": [T: "Pfeil nach links mit Schwanz mit doppeltem vertikalem Strich"] # 0x2b3a (en: 'leftwards arrow with tail with double vertical stroke', google: 'linkspfeil mit schwanz mit doppelter vertikaler hub') - - "⬻": [T: "Nach links gerichteter zweiköpfiger Pfeil mit Schwanz"] # 0x2b3b (en: 'leftwards two headed arrow with tail', google: 'links zwei köpfe pfeil mit schwanz') - - "⬼": [T: "Nach links gerichteter zweiköpfiger Pfeil mit Schwanz mit vertikalem Strich"] # 0x2b3c (en: 'leftwards two headed arrow with tail with vertical stroke', google: 'links zwei köpfe pfeil mit schwanz mit vertikalem schlaganfall') - - "⬽": [T: "Nach links gerichteter zweiköpfiger Pfeil mit Schwanz mit doppeltem vertikalem Strich"] # 0x2b3d (en: 'leftwards two headed arrow with tail with double vertical stroke', google: 'links zwei köpfe pfeil mit schwanz mit doppelter vertikaler hub') - - "⬾": [T: "Pfeil nach links durch X"] # 0x2b3e (en: 'leftwards arrow through x', google: 'links pfeil durch x') - - "⬿": [T: "Wellenpfeil, der direkt nach links zeigt"] # 0x2b3f (en: 'wave arrow pointing directly left', google: 'wellenpfeil direkt nach links zeigen') - - "⭀": [T: "Gleichheitszeichen über dem Pfeil nach links"] # 0x2b40 (en: 'equals sign above leftwards arrow', google: 'gleiches zeichen über dem linken pfeil') - - "⭁": [T: "Reverse-Tilde-Operator Über Linkspfeil"] # 0x2b41 (en: 'reverse tilde operator above leftwards arrow', google: 'operator umgekehrter tilde über dem linken pfeil') - - "⭂": [T: "Pfeil nach links über der Rückseite fast gleich"] # 0x2b42 (en: 'leftwards arrow above reverse almost equal to', google: 'linksspfeil über der rückseite fast gleich') - - "⭃": [T: "Pfeil nach rechts durch mehr als"] # 0x2b43 (en: 'rightwards arrow through greater than', google: 'richtiger pfeil durch größer als') - - "⭄": [T: "Pfeil nach rechts durch Superset"] # 0x2b44 (en: 'rightwards arrow through superset', google: 'richtiger pfeil durch superset') - - "⭅": [T: "Vierfachpfeil nach links"] # 0x2b45 (en: 'leftwards quadruple arrow', google: 'linksvierter pfeil') - - "⭆": [T: "Vierfachpfeil nach rechts"] # 0x2b46 (en: 'rightwards quadruple arrow', google: 'richtiger vierfachpfeil') - - "⭇": [T: "Reverse-Tilde-Operator über dem Pfeil nach rechts"] # 0x2b47 (en: 'reverse tilde operator above rightwards arrow', google: 'operator umgekehrter tilde oberhalb rechts pfeil') - - "⭈": [T: "Pfeil nach rechts oben fast gleich"] # 0x2b48 (en: 'rightwards arrow above reverse almost equal to', google: 'rightwards pfeil über der rückseite fast gleich') - - "⭉": [T: "Tilde-Operator über dem Pfeil nach links"] # 0x2b49 (en: 'tilde operator above leftwards arrow', google: 'tilde -operator über linksem pfeil') - - "⭊": [T: "Pfeil nach links oben fast gleich"] # 0x2b4a (en: 'leftwards arrow above almost equal to', google: 'links über den pfeil über fast gleich') - - "⭋": [T: "Pfeil nach links über Reverse-Tilde-Operator"] # 0x2b4b (en: 'leftwards arrow above reverse tilde operator', google: 'links -pfeil über dem operator des umgekehrten tilde') - - "⭌": [T: "Pfeil nach rechts über Reverse-Tilde-Operator"] # 0x2b4c (en: 'rightwards arrow above reverse tilde operator', google: 'rightwards pfeil über dem operator des umgekehrten tilde') - - "⭐": [T: "Weißer mittlerer Stern"] # 0x2b50 (en: 'white medium star', MathPlayer: 'white medium star', google: 'weißer mittelstern') - - "⭑": [T: "Schwarzer kleiner Stern"] # 0x2b51 (en: 'black small star', MathPlayer: 'black small star', google: 'schwarzer kleiner stern') - - "⭒": [T: "Weißer kleiner Stern"] # 0x2b52 (en: 'white small star', MathPlayer: 'white small star', google: 'weißer kleiner stern') - - "⭓": [T: "Schwarzes nach rechts zeigendes Pentagon"] # 0x2b53 (en: 'black right pointing pentagon', google: 'schwarzer rechter pentagon') - - "⭔": [T: "Weißes nach rechts zeigendes Pentagon"] # 0x2b54 (en: 'white right pointing pentagon', google: 'weißer rechts pentagon') - - "⭕": [T: "Schwerer großer Kreis"] # 0x2b55 (en: 'heavy large circle', google: 'schwerer großer kreis') - - "⭖": [T: "Schweres Oval mit innenliegendem Oval"] # 0x2b56 (en: 'heavy oval with oval inside', google: 'schweres oval mit oval im inneren') - - "⭗": [T: "Schwerer Kreis mit Kreis nach innen"] # 0x2b57 (en: 'heavy circle with circle inside', google: 'schwerer kreis mit kreis im inneren') - - "⭘": [T: "Schwerer Kreis"] # 0x2b58 (en: 'heavy circle', google: 'schwerer kreis') - - "⭙": [T: "Schwerer eingekreister Saltire"] # 0x2b59 (en: 'heavy circled saltire', google: 'schwer umgekreistes salzire') - - "⸀": [T: "Rechtwinkel-Substitutionsmarker"] # 0x2e00 (en: 'right angle substitution marker', google translation) - - "⸁": [T: "rechtswinkel gepunkteter substitutionsmarker"] # 0x2e01 (en: 'right angle dotted substitution marker', google translation) - - "⸂": [T: "links -substitution -halterung"] # 0x2e02 (en: 'left substitution bracket', google translation) - - "⸃": [T: "rechte Substitutionsklammer"] # 0x2e03 (en: 'right substitution bracket', google translation) - - "⸄": [T: "links gepunktete substitutionshalterung"] # 0x2e04 (en: 'left dotted substitution bracket', google translation) - - "⸅": [T: "richtig gepunktete substitutionshalterung"] # 0x2e05 (en: 'right dotted substitution bracket', google translation) - - "⸆": [T: "erhöhter interpolationsmarker"] # 0x2e06 (en: 'raised interpolation marker', google translation) - - "⸇": [T: "erhöhter gepunkteter interpolationsmarker"] # 0x2e07 (en: 'raised dotted interpolation marker', google translation) - - "⸈": [T: "gepunkteter Transpositionsmarker"] # 0x2e08 (en: 'dotted transposition marker marker', google translation) - - "⸉": [T: "linke transpositionshalterung"] # 0x2e09 (en: 'left transposition bracket', google translation) - - "⸊": [T: "rechte transpositionsklasse"] # 0x2e0a (en: 'right transposition bracket', google translation) - - "⸋": [T: "erhöhter quadrat"] # 0x2e0b (en: 'raised square', google translation) - - "⸌": [T: "links erhöhte unterlassungshalterung"] # 0x2e0c (en: 'left raised omission bracket', google translation) - - "⸍": [T: "rechte auslassungshalterung"] # 0x2e0d (en: 'right raised omission bracket', google translation) - - "⸎": [T: "redaktionelle coronis"] # 0x2e0e (en: 'editorial coronis', google translation) - - "⸏": [T: "absatz"] # 0x2e0f (en: 'paragraphos', google translation) - - "⸐": [T: "gabel absätze"] # 0x2e10 (en: 'forked paragraphos', google translation) - - "⸑": [T: "umgekehrte gabel absätze"] # 0x2e11 (en: 'reversed forked paragraphos', google translation) - - "⸒": [T: "hypodiastole"] # 0x2e12 (google translation) - - "⸓": [T: "gepunktete obelos"] # 0x2e13 (en: 'dotted obelos', google translation) - - "⸔": [T: "abwärts ancora"] # 0x2e14 (en: 'downwards ancora', google translation) - - "⸕": [T: "nach oben ancora"] # 0x2e15 (en: 'upwards ancora', google translation) - - "⸖": [T: "gepunktete rechte zeigewinkel"] # 0x2e16 (en: 'dotted right pointing angle', google translation) - - "⸗": [T: "doppelter schräger bindestrich"] # 0x2e17 (en: 'double oblique hyphen', google translation) - - "⸘": [T: "umgekehrter interrobang"] # 0x2e18 (en: 'inverted interrobang', google translation) - - "⸙": [T: "palmenzweig"] # 0x2e19 (en: 'palm branch', google translation) - - "⸚": [T: "bindestrich mit diaerese"] # 0x2e1a (en: 'hyphen with diaeresis', google translation) - - "⸛": [T: "tilde mit ring oben"] # 0x2e1b (en: 'tilde with ring above', google translation) - - "⸜": [T: "linke niedrige Paraphraseklammer"] # 0x2e1c (en: 'left low paraphrase bracket', google translation) - - "⸝": [T: "rechte niedrige paraphrase -klammer"] # 0x2e1d (en: 'right low paraphrase bracket', google translation) - - "⸞": [T: "tilde mit punkt oben"] # 0x2e1e (en: 'tilde with dot above', google translation) - - "⸟": [T: "tilde mit punkt unten"] # 0x2e1f (en: 'tilde with dot below', google translation) - - "⸠": [T: "links vertikale balken mit feder"] # 0x2e20 (en: 'left vertical bar with quill', google translation) - - "⸡": [T: "rechte vertikale balken mit feder"] # 0x2e21 (en: 'right vertical bar with quill', google translation) - - "⸢": [T: "Obere linke halbe Halterung"] # 0x2e22 (en: 'top left half bracket', google: 'oben links halbe halterung') - - "⸣": [T: "Obere rechte halbe Klammer"] # 0x2e23 (en: 'top right half bracket', google: 'oben rechts halbhalterung') - - "⸤": [T: "Linke halbe halterung unten"] # 0x2e24 (en: 'bottom left half bracket', google: 'unten linke halbe klammer') - - "⸥": [T: "Untere rechte halbe Halterung"] # 0x2e25 (en: 'bottom right half bracket', google: 'unten rechts halbe klammer') - - "⸦": [T: "linksseitige U-Klammer"] # 0x2e26 (en: 'left sideways u bracket', google: 'links seitwärts u klammer') - - "⸧": [T: "rechtsseitige U-Klammer"] # 0x2e27 (en: 'right sideways u bracket', google: 'rechte seitwärtshalterung') - - "⸨": [T: "Linke doppelte Klammer"] # 0x2e28 (en: 'left double parentheses', google: 'links doppelte klammern') - - "⸩": [T: "Rechte doppelte Klammer"] # 0x2e29 (en: 'right double parentheses', google: 'rechte doppelte klammern') - - "⸪": [T: "zwei punkte über eine punktzahl"] # 0x2e2a (en: 'two dots over one dot punctuation', google translation) - - "⸫": [T: "ein punkt über zwei punkte"] # 0x2e2b (en: 'one dot over two dots punctuation', google translation) - - "⸬": [T: "quadratische vier punkt -interpunktion"] # 0x2e2c (en: 'squared four dot punctuation', google translation) - - "⸭": [T: "fünf punkt mark"] # 0x2e2d (en: 'five dot mark', google translation) - - "⸮": [T: "umgekehrter fragezeichen"] # 0x2e2e (en: 'reversed question mark', google translation) - - "ⸯ": [T: "vertikale tilde"] # 0x2e2f (en: 'vertical tilde', google translation) - - "⸰": [T: "ringpunkt"] # 0x2e30 (en: 'ring point', google translation) - - "⸱": [T: "wortseparator mittlerer punkt"] # 0x2e31 (en: 'word separator middle dot', google translation) - - "⸲": [T: "gedrehtes Komma"] # 0x2e32 (en: 'turned comma', google translation) - - "⸳": [T: "erhöhter punkt"] # 0x2e33 (en: 'raised dot', google translation) - - "⸴": [T: "erhöhter komma"] # 0x2e34 (en: 'raised comma', google translation) - - "⸵": [T: "gedrehtes Semikolon"] # 0x2e35 (en: 'turned semicolon', google translation) - - "⸶": [T: "dolch mit der linken wache"] # 0x2e36 (en: 'dagger with left guard', google translation) - - "⸷": [T: "dolch mit der rechten wache"] # 0x2e37 (en: 'dagger with right guard', google translation) - - "⸸": [T: "drehte dolch"] # 0x2e38 (en: 'turned dagger', google translation) - - "⸹": [T: "oberes Halb-Abschnittszeichen"] # 0x2e39 (en: 'top half section sign', google translation) - - "⸺": [T: "zwei Em-Striche"] # 0x2e3a (en: 'two em dash', google translation) - - "⸻": [T: "drei Em-Striche"] # 0x2e3b (en: 'three em dash', google translation) - - "〃": [T: "Dittomarke"] # 0x3003 (en: 'ditto mark', google translation) - - "〈": [T: "Linke Winkelklammer"] # 0x3008 (en: 'left angle bracket', google: 'linkswinkelhalter') - - "〉": [T: "Rechtwinklige Halterung"] # 0x3009 (en: 'right angle bracket', google: 'rechtswinkelhalterung') - - "《": [T: "Linke Doppelwinkelhalterung"] # 0x300a (en: 'left double angle bracket', MathPlayer: 'left double angle bracket', google: 'links zwei winkelhalterungen') - - "》": [T: "Rechte Doppelwinkelhalterung"] # 0x300b (en: 'right double angle bracket', MathPlayer: 'right double angle bracket', google: 'rechte doppelwinkelhalterung') - - "「": [T: "Linke Eckklammer"] # 0x300c (en: 'left corner bracket', google: 'linke eckhalterung') - - "」": [T: "Rechte Eckhalterung"] # 0x300d (en: 'right corner bracket', google: 'rechte eckhalterung') - - "『": [T: "Linke weiße Eckhalterung"] # 0x300e (en: 'left white corner bracket', google: 'links weiße eckhalterung') - - "』": [T: "Rechte weiße Eckhalterung"] # 0x300f (en: 'right white corner bracket', google: 'rechte weiße eckhalterung') - - "【": [T: "Linke schwarze linsenförmige Halterung"] # 0x3010 (en: 'left black lenticular bracket', google: 'links schwarze linsenhalterung') - - "】": [T: "Rechte schwarze linsenförmige Halterung"] # 0x3011 (en: 'right black lenticular bracket', google: 'rechte schwarze linsenhalterung') - - "〔": [T: "linke Schildpatt-Klammer"] # 0x3014 (en: 'left tortoise shell bracket', MathPlayer: 'left tortoise shell bracket', google: 'links schildkrötenhalterung') - - "〕": [T: "rechte Schildpatt-Klammer"] # 0x3015 (en: 'right tortoise shell bracket', MathPlayer: 'right tortoise shell bracket', google: 'rechte schildkrötenhalterung') - - "〖": [T: "Linke weiße linsenförmige Halterung"] # 0x3016 (en: 'left white lenticular bracket', google: 'links weiße linsenhalterung') - - "〗": [T: "Rechte weiße linsenförmige Halterung"] # 0x3017 (en: 'right white lenticular bracket', google: 'rechte weiße linsenhalterung') - - "〘": [T: "Linke weiße Schildpatt-Klammer"] # 0x3018 (en: 'left white tortoise shell bracket', google: 'links weiße schildkröte') - - "〙": [T: "Rechte weiße Schildpatt-Klammer"] # 0x3019 (en: 'right white tortoise shell bracket', google: 'richtige weiße schildkrabbungshalterung') - - "〚": [T: "Linke weiße eckige Klammer"] # 0x301a (en: 'left white square bracket', MathPlayer: 'left white square bracket', google: 'linke weiße quadratklammer') - - "〛": [T: "Rechte weiße eckige Klammer"] # 0x301b (en: 'right white square bracket', MathPlayer: 'right white square bracket', google: 'rechte weiße quadratklasse') - - "〜": [T: "Wave Dash"] # 0x301c (en: 'wave dash', google: 'wave dash') - - "〰": [T: "zigzag"] # 0x3030 (en: 'wavy dash', google: 'welliger armaturenbrett') - - "㉈": [T: "eingekreiste Zehn auf schwarzem Quadrat"] # 0x3248 (en: 'circled number ten on black square', google: 'kreiste nummer zehn auf black square') - - "㉉": [T: "eingekreiste Zwanzig auf schwarzem Quadrat"] # 0x3249 (en: 'circled number twenty on black square', google: 'kreiste nummer zwanzig auf dem schwarzen quadrat') - - "㉊": [T: "eingekreiste Dreißig auf schwarzem Quadrat"] # 0x324a (en: 'circled number thirty on black square', google: 'kreiste nummer dreißig auf dem schwarzen platz') - - "㉋": [T: "eingekreiste Vierzig auf schwarzem Quadrat"] # 0x324b (en: 'circled number forty on blacks square', google: 'kreiste nummer vierzig auf dem blacks square') - - "㉌": [T: "eingekreiste Fünfzig auf schwarzem Quadrat"] # 0x324c (en: 'circled number fifty on black square', google: 'auf dem schwarzen platz um fünfzig umkreiste') - - "㉍": [T: "eingekreiste Sechzig auf schwarzem Quadrat"] # 0x324d (en: 'circled number sixty on black square', google: 'kreiste nummer sechzig auf black square') - - "㉎": [T: "eingekreiste Siebzig auf schwarzem Quadrat"] # 0x324e (en: 'circled number seventy on black square', google: 'kreiste nummer siebzig auf dem schwarzen quadrat') - - "㉏": [T: "eingekreiste Achtzig auf schwarzem Quadrat"] # 0x324f (en: 'circled number eighty on black square', google: 'eingekreiste nummer auf dem black square') - - "㉑": [T: "umkreiste nummer einundzwanzig"] # 0x3251 (en: 'circled number twenty one', google translation) - - "㉒": [T: "umkreiste nummer zweiundzwanzig"] # 0x3252 (en: 'circled number twenty two', google translation) - - "㉓": [T: "umkreiste nummer dreiundzwanzig"] # 0x3253 (en: 'circled number twenty three', GPT-5.4 fixed translation) - - "㉔": [T: "umkreiste nummer vierundzwanzig"] # 0x3254 (en: 'circled number twenty four', GPT-5.4 fixed translation) - - "㉕": [T: "umkreiste nummer fünfundzwanzig"] # 0x3255 (en: 'circled number twenty five', GPT-5.4 fixed translation) - - "㉖": [T: "umkreiste nummer sechsundzwanzig"] # 0x3256 (en: 'circled number twenty six', GPT-5.4 fixed translation) - - "㉗": [T: "umkreiste nummer siebenundzwanzig"] # 0x3257 (en: 'circled number twenty seven', GPT-5.4 fixed translation) - - "㉘": [T: "umkreiste nummer achtundzwanzig"] # 0x3258 (en: 'circled number twenty eight', GPT-5.4 fixed translation) - - "㉙": [T: "umkreiste nummer neunundzwanzig"] # 0x3259 (en: 'circled number twenty nine', google translation) - - "㉚": [T: "umkreiste nummer dreißig"] # 0x325a (en: 'circled number thirty', google translation) - - "㉛": [T: "umkreiste nummer einunddreißig"] # 0x325b (en: 'circled number thirty one', google translation) - - "㉜": [T: "umkreiste nummer zweiunddreißig"] # 0x325c (en: 'circled number thirty two', GPT-5.4 fixed translation) - - "㉝": [T: "umkreiste nummer dreiunddreißig"] # 0x325d (en: 'circled number thirty three', google translation) - - "㉞": [T: "umkreiste nummer vierunddreißig"] # 0x325e (en: 'circled number thirty four', google translation) - - "㉟": [T: "umkreiste nummer fünfunddreißig"] # 0x325f (en: 'circled number thirty five', google translation) - - "㊱": [T: "umkreiste nummer sechsunddreißig"] # 0x32b1 (en: 'circled number thirty six', GPT-5.4 fixed translation) - - "㊲": [T: "umkreiste nummer siebenunddreißig"] # 0x32b2 (en: 'circled number thirty seven', GPT-5.4 translation) - - "㊳": [T: "umkreiste nummer achtunddreißig"] # 0x32b3 (en: 'circled number thirty eight', GPT-5.4 translation) - - "㊴": [T: "umkreiste nummer neununddreißig"] # 0x32b4 (en: 'circled number thirty nine', GPT-5.4 translation) - - "㊵": [T: "umkreiste nummer vierzig"] # 0x32b5 (en: 'circled number forty', GPT-5.4 translation) - - "㊶": [T: "umkreiste nummer einundvierzig"] # 0x32b6 (en: 'circled number forty one', GPT-5.4 translation) - - "㊷": [T: "umkreiste nummer zweiundvierzig"] # 0x32b7 (en: 'circled number forty two', GPT-5.4 translation) - - "㊸": [T: "umkreiste nummer dreiundvierzig"] # 0x32b8 (en: 'circled number forty three', GPT-5.4 translation) - - "㊹": [T: "umkreiste nummer vierundvierzig"] # 0x32b9 (en: 'circled number forty four', GPT-5.4 translation) - - "㊺": [T: "umkreiste nummer fünfundvierzig"] # 0x32ba (en: 'circled number forty five', GPT-5.4 translation) - - "㊻": [T: "umkreiste nummer sechsundvierzig"] # 0x32bb (en: 'circled number forty six', GPT-5.4 translation) - - "㊼": [T: "umkreiste nummer siebenundvierzig"] # 0x32bc (en: 'circled number forty seven', GPT-5.4 translation) - - "㊽": [T: "umkreiste nummer achtundvierzig"] # 0x32bd (en: 'circled number forty eight', GPT-5.4 translation) - - "㊾": [T: "umkreiste nummer neunundvierzig"] # 0x32be (en: 'circled number forty nine', GPT-5.4 translation) - - "㊿": [T: "umkreiste nummer fünfzig"] # 0x32bf (en: 'circled number fifty', GPT-5.4 translation) - - "㋌": [T: "quecksilber"] # 0x32cc (en: 'mercury', google translation) - - "㋍": [T: "ergs"] # 0x32cd (google translation) - - "㋎": [T: "elektronenvolt"] # 0x32ce (en: 'electron volts', google translation) - - "㋏": [T: "haftungsschild beschränkt"] # 0x32cf (en: 'limited liability sign', google translation) - - "㍱": [T: "hectopascals"] # 0x3371 (google translation) - - "㍲": [T: "daltons"] # 0x3372 (google translation) - - "㍳": [T: "astronomische einheiten"] # 0x3373 (en: 'astronomical units', google translation) - - "㍴": [T: "riegel"] # 0x3374 (en: 'bars', google translation) - - "㍵": [T: "o v"] # 0x3375 (google translation) - - "㍶": [T: "parsecs"] # 0x3376 (google translation) - - "㍷": [T: "dezimeter"] # 0x3377 (en: 'decimeters', google translation) - - "㍸": [T: "dezimeter quadratisch"] # 0x3378 (en: 'decimeters squared', google translation) - - "㍹": [T: "dezimeter gewonnen"] # 0x3379 (en: 'decimeters cubed', google translation) - - "㍺": [T: "instrumentaleinheiten"] # 0x337a (en: 'instrumental units', google translation) - - "㎀": [T: "picoamps"] # 0x3380 (google translation) - - "㎁": [T: "nanoamps"] # 0x3381 (google translation) - - "㎂": [T: "mikroamps"] # 0x3382 (en: 'microamps', google translation) - - "㎃": [T: "milliamps"] # 0x3383 (google translation) - - "㎄": [T: "kiloamps"] # 0x3384 (google translation) - - "㎅": [T: "kilobytes"] # 0x3385 (google translation) - - "㎆": [T: "megabyte"] # 0x3386 (en: 'megabytes', google translation) - - "㎇": [T: "gigabyte"] # 0x3387 (en: 'gigabytes', google translation) - - "㎈": [T: "kalorien"] # 0x3388 (en: 'calories', google translation) - - "㎉": [T: "kilokalorien"] # 0x3389 (en: 'kilocalories', google translation) - - "㎊": [T: "picofarads"] # 0x338a (google translation) - - "㎋": [T: "nanofarads"] # 0x338b (google translation) - - "㎌": [T: "mikrofaraden"] # 0x338c (en: 'microfarads', google translation) - - "㎍": [T: "mikrogramm"] # 0x338d (en: 'micrograms', google translation) - - "㎎": [T: "milligramm"] # 0x338e (en: 'milligrams', google translation) - - "㎏": [T: "kilogramm"] # 0x338f (en: 'kilograms', google translation) - - "㎐": [T: "hertz"] # 0x3390 (google translation) - - "㎑": [T: "kilohertz"] # 0x3391 (google translation) - - "㎒": [T: "megahertz"] # 0x3392 (google translation) - - "㎓": [T: "gigahertz"] # 0x3393 (google translation) - - "㎔": [T: "terahertz"] # 0x3394 (google translation) - - "㎕": [T: "mikroliter"] # 0x3395 (en: 'microliters', google translation) - - "㎖": [T: "milliliter"] # 0x3396 (en: 'milliliters', google translation) - - "㎗": [T: "dezilierer"] # 0x3397 (en: 'deciliters', google translation) - - "㎘": [T: "kiloliter"] # 0x3398 (en: 'kiloliters', google translation) - - "㎙": [T: "femtometer"] # 0x3399 (en: 'femtometers', google translation) - - "㎚": [T: "nanometer"] # 0x339a (en: 'nanometers', google translation) - - "㎛": [T: "mikrometer"] # 0x339b (en: 'micrometers', google translation) - - "㎜": [T: "millimeter"] # 0x339c (en: 'millimeters', google translation) - - "㎝": [T: "zentimeter"] # 0x339d (en: 'centimeters', google translation) - - "㎞": [T: "kilometer"] # 0x339e (en: 'kilometers', google translation) - - "㎟": [T: "millimeter quadratisch"] # 0x339f (en: 'millimeters squared', google translation) - - "㎠": [T: "zentimeter quadratisch"] # 0x33a0 (en: 'centimeters squared', google translation) - - "㎡": [T: "quadratmeter"] # 0x33a1 (en: 'meters squared', google translation) - - "㎢": [T: "kilometer quadratisch"] # 0x33a2 (en: 'kilometers squared', google translation) - - "㎣": [T: "millimeter gewonnen"] # 0x33a3 (en: 'millimeters cubed', google translation) - - "㎤": [T: "zentimeter gewonnen"] # 0x33a4 (en: 'centimeters cubed', google translation) - - "㎥": [T: "meter gewonnen"] # 0x33a5 (en: 'meters cubed', google translation) - - "㎦": [T: "kilometer gewonnen"] # 0x33a6 (en: 'kilometers cubed', google translation) - - "㎧": [T: "meter pro sekunde"] # 0x33a7 (en: 'meters per second', google translation) - - "㎨": [T: "meter pro sekunde quadrat"] # 0x33a8 (en: 'meters per second squared', google translation) - - "㎩": [T: "pascals"] # 0x33a9 (google translation) - - "㎪": [T: "kilopascals"] # 0x33aa (google translation) - - "㎫": [T: "megapascals"] # 0x33ab (google translation) - - "㎬": [T: "gigapascals"] # 0x33ac (google translation) - - "㎭": [T: "rads"] # 0x33ad (google translation) - - "㎮": [T: "rads pro sekunde"] # 0x33ae (en: 'rads per second', google translation) - - "㎯": [T: "rads pro sekunde quadrat"] # 0x33af (en: 'rads per second squared', google translation) - - "㎰": [T: "pikosekunden"] # 0x33b0 (en: 'picoseconds', google translation) - - "㎱": [T: "nanosekunden"] # 0x33b1 (en: 'nanoseconds', google translation) - - "㎲": [T: "mikrosekunde"] # 0x33b2 (en: 'microseconds', google translation) - - "㎳": [T: "millisekunden"] # 0x33b3 (en: 'milliseconds', google translation) - - "㎴": [T: "picovolts"] # 0x33b4 (google translation) - - "㎵": [T: "nanovolts"] # 0x33b5 (google translation) - - "㎶": [T: "mikrovolte"] # 0x33b6 (en: 'microvolts', google translation) - - "㎷": [T: "millivolts"] # 0x33b7 (google translation) - - "㎸": [T: "kilovolts"] # 0x33b8 (google translation) - - "㎹": [T: "megavolts"] # 0x33b9 (google translation) - - "㎺": [T: "picowatts"] # 0x33ba (google translation) - - "㎻": [T: "nanowatts"] # 0x33bb (google translation) - - "㎼": [T: "mikrowatt"] # 0x33bc (en: 'microwatts', google translation) - - "㎽": [T: "milliwatt"] # 0x33bd (en: 'milliwatts', google translation) - - "㎾": [T: "kilowatt"] # 0x33be (en: 'kilowatts', google translation) - - "㎿": [T: "megawatt"] # 0x33bf (en: 'megawatts', google translation) - - "㏀": [T: "kilo-ohm"] # 0x33c0 (en: 'kilo-ohms', google translation) - - "㏁": [T: "megaohm"] # 0x33c1 (en: 'megaohms', google translation) - - "㏂": [T: "attometer"] # 0x33c2 (en: 'attometers', google translation) - - "㏃": [T: "becquerels"] # 0x33c3 (google translation) - - "㏄": [T: "kubikzentimeter"] # 0x33c4 (en: 'cubic centimeters', google translation) - - "㏅": [T: "candelas"] # 0x33c5 (google translation) - - "㏆": [T: "coulombs pro kilogramm"] # 0x33c6 (en: 'coulombs per kilogram', google translation) - - "㏇": [T: "herzzeitvolumen"] # 0x33c7 (en: 'cardiac output', google translation) - - "㏈": [T: "dezibel"] # 0x33c8 (en: 'decibels', google translation) - - "㏉": [T: "grautöne"] # 0x33c9 (en: 'grays', google translation) - - "㏊": [T: "hektar"] # 0x33ca (en: 'hectares', google translation) - - "㏋": [T: "pferdestärke"] # 0x33cb (en: 'horsepower', google translation) - - "㏌": [T: "zoll"] # 0x33cc (en: 'inches', google translation) - - "㏍": [T: "kilokelvins"] # 0x33cd (google translation) - - "㏎": [T: "kilometer"] # 0x33ce (en: 'kilometers', google translation) - - "㏏": [T: "knoten"] # 0x33cf (en: 'knots', google translation) - - "㏐": [T: "lumen"] # 0x33d0 (en: 'lumens', google translation) - - "㏑": [T: "natural log"] # 0x33d1 (google translation) - - "㏒": [T: "logarithmus"] # 0x33d2 (en: 'logarithm', google translation) - - "㏓": [T: "lux"] # 0x33d3 (google translation) - - "㏔": [T: "millibarns"] # 0x33d4 (google translation) - - "㏕": [T: "mühlen"] # 0x33d5 (en: 'mills', google translation) - - "㏖": [T: "maulwürfe"] # 0x33d6 (en: 'moles', google translation) - - "㏗": [T: "p h"] # 0x33d7 (google translation) - - "㏘": [T: "picometer"] # 0x33d8 (en: 'picometers', google translation) - - "㏙": [T: "teile pro million"] # 0x33d9 (en: 'parts per million', google translation) - - "㏚": [T: "petaroentgens"] # 0x33da (google translation) - - "㏛": [T: "steradier"] # 0x33db (en: 'steradians', google translation) - - "㏜": [T: "sieverts"] # 0x33dc (google translation) - - "㏝": [T: "webers"] # 0x33dd (google translation) - - "㏞": [T: "volt pro meter"] # 0x33de (en: 'volts per meter', google translation) - - "㏟": [T: "verstärker pro meter"] # 0x33df (en: 'amps per meter', google translation) - - "㏿": [T: "gallonen"] # 0x33ff (en: 'gallons', google translation) - - "": [T: "entspricht mit hut unten"] # 0xe900 (en: 'equals with hat below', google translation) - - "": [T: "entspricht plus oben"] # 0xe901 (en: 'equals with plus above', google translation) - - "": [T: "entspricht plus unten"] # 0xe902 (en: 'equals with plus below', google translation) - - "": [T: "tilde mit plus oben"] # 0xe903 (en: 'tilde with plus above', google translation) - - "": [T: "tilde mit plus unten"] # 0xe904 (en: 'tilde with plus below', google translation) - - "": [T: "gleich doppelt doppelt über größer als"] # 0xe908 (en: 'equal double over greater than', google translation) - - "": [T: "gleich doppelt über weniger als"] # 0xe909 (en: 'equal double over less than', google translation) - - "": [T: "enthält oder gleich"] # 0xe90a (en: 'contains or equal to', google translation) - - "": [T: "superset von oder gleich"] # 0xe90b (en: 'superset of or equal to', google translation) - - "": [T: "teilmenge von oder gleich"] # 0xe90c (en: 'subset of or equal to', google translation) - - "": [T: "gleich über weniger als"] # 0xe90d (en: 'equal over less than', google translation) - - "": [T: "element von oder gleich"] # 0xe912 (en: 'element of or equal to', google translation) - - "": [T: "gleich oder größer als"] # 0xe913 (en: 'equal to or greater than', google translation) - - "": [T: "ungefähre superset von"] # 0xe914 (en: 'approximate superset of', google translation) - - "": [T: "ungefähre teilmenge von"] # 0xe915 (en: 'approximate subset of', google translation) - - "": [T: "superset von with dot enthält als unterbeziehung"] # 0xe916 (en: 'superset of with dot includes as sub relation', google translation) - - "": [T: "die teilmenge von mit punkt ist in als sub -relation enthalten"] # 0xe917 (en: 'subset of with dot is included in as sub relation', google translation) - - "": [T: "gleich mit punkt unten"] # 0xe918 (en: 'equal with dot below', google translation) - - "": [T: "links punkt über minus über den rechten punkt"] # 0xe919 (en: 'left dot over minus over right dot', google translation) - - "": [T: "rechter punkt über minus über den linken punkt"] # 0xe91a (en: 'right dot over minus over left dot', google translation) - - "": [T: "fast gleich minus"] # 0xe91f (en: 'almost equal to minus', google translation) - - "": [T: "doppelter quadratbecher"] # 0xe920 (en: 'double square cup', google translation) - - "": [T: "doppelter quadrat in großbuchstaben"] # 0xe921 (en: 'double square cap', google translation) - - "": [T: "weniger als gleich oder größer als"] # 0xe922 (en: 'less than equal to or greater than', google translation) - - "": [T: "tilde mit punkt"] # 0xe924 (en: 'tilde with dot', google translation) - - "": [T: "tilde mit zwei punkten"] # 0xe925 (en: 'tilde with two dots', google translation) - - "": [T: "weniger als größer als oder gleich"] # 0xe926 (en: 'less than greater than or equal to', google translation) - - "": [T: "größer als weniger als oder gleich"] # 0xe927 (en: 'greater than less than or equal to', google translation) - - "": [T: "äquivalent zu oder weniger als"] # 0xe928 (en: 'equivalent to or less than', google translation) - - "": [T: "äquivalent zu oder größer als"] # 0xe929 (en: 'equivalent to or greater than', google translation) - - "": [T: "links geöffneter box -bediener"] # 0xe92a (en: 'left open box operator', google translation) - - "": [T: "rechts öffnen sie den box -bediener"] # 0xe92b (en: 'right open box operator', google translation) - - "": [T: "identisch mit punkt"] # 0xe92c (en: 'identical to with dot', google translation) - - "": [T: "größer als gleich oder weniger als"] # 0xe92d (en: 'greater than equal to or less than', google translation) - - "": [T: "barbetreiber"] # 0xe92e (en: 'bar operator', google translation) - - "": [T: "doppelbalkenbetreiber"] # 0xe92f (en: 'double bar operator', google translation) - - "": [T: "dreifachbetreiber"] # 0xe930 (en: 'triple bar operator', google translation) - - "": [T: "weniger als oder ungefähr gleich"] # 0xe932 (en: 'less than or approximately equal to', google translation) - - "": [T: "größer als oder ungefähr gleich"] # 0xe933 (en: 'greater than or approximately equal to', google translation) - - "": [T: "weniger als"] # 0xe936 (en: 'nested less than', google translation) - - "": [T: "verschachtelt größer als"] # 0xe937 (en: 'nested greater than', google translation) - - "": [T: "vorausgeht oder gleichwertig zu"] # 0xe93a (en: 'precedes or equivalent to', google translation) - - "": [T: "erfolg oder gleichwertig zu"] # 0xe93b (en: 'succeeds or equivalent to', google translation) - - "": [T: "geht über gleich"] # 0xe940 (en: 'precedes over equal', google translation) - - "": [T: "erfolgreich über gleich"] # 0xe941 (en: 'succeeds over equal', google translation) - - "": [T: "weniger gleicher neigung größer"] # 0xe942 (en: 'less equal slanted greater', google translation) - - "": [T: "mehr gleicher neigung weniger"] # 0xe943 (en: 'greater equal slanted less', google translation) - - "": [T: "zufrieden von"] # 0xe948 (en: 'satisfied by', google translation) - - "": [T: "faul s"] # 0xe949 (en: 'lazy s', google translation) - - "": [T: "keine behauptung"] # 0xe94a (en: 'not assertion', google translation) - - "": [T: "doppelt gleich"] # 0xe94b (en: 'double equal', google translation) - - "": [T: "dreifach gleich"] # 0xe94c (en: 'triple equal', google translation) - - "": [T: "regel verzögert"] # 0xe94d (en: 'rule delayed', google translation) - - "": [T: "alias gremiter"] # 0xe94e (en: 'alias delimiter', google translation) - - "": [T: "normale untergruppe mit bar"] # 0xe950 (en: 'normal subgroup of with bar', google translation) - - "": [T: "enthält als normale untergruppe mit balken"] # 0xe951 (en: 'contains as normal subgroup with bar', google translation) - - "": [T: "runde impliziert"] # 0xe954 (en: 'round implies', google translation) - - "": [T: "lächeln unter der bar"] # 0xe955 (en: 'smile under bar', google translation) - - "": [T: "stirnrunzeln über die bar"] # 0xe956 (en: 'frown over bar', google translation) - - "": [T: "superset von oder fast gleich"] # 0xe957 (en: 'superset of or almost equal to', google translation) - - "": [T: "teilmenge von oder fast gleich"] # 0xe958 (en: 'subset of or almost equal to', google translation) - - "": [T: "größer als fast gleich oder weniger als"] # 0xe959 (en: 'greater than almost equal to or less than', google translation) - - "": [T: "weniger als fast gleich oder größer als"] # 0xe95a (en: 'less than almost equal or greater than', google translation) - - "": [T: "doppelt logisch oder"] # 0xe95c (en: 'double logical or', google translation) - - "": [T: "doppelt logisch und"] # 0xe95d (en: 'double logical and', google translation) - - "": [T: "logisch oder mit einer doppelten balken unten"] # 0xe95e (en: 'logical or with double bar below', google translation) - - "": [T: "logisch oder mit bar unten"] # 0xe95f (en: 'logical or with bar below', google translation) - - "": [T: "fast gleich über gleich"] # 0xe962 (en: 'almost equal over equal', google translation) - - "": [T: "links zeigter dreieck mit halbierender stange"] # 0xe964 (en: 'left pointing triangle with bisecting bar', google translation) - - "": [T: "rechte dreieck mit halbierender balken"] # 0xe965 (en: 'right pointing triangle with bisecting bar', google translation) - - "": [T: "entspricht mit gepunkteten top -linien"] # 0xe966 (en: 'equals with dotted top line', google translation) - - "": [T: "geht mit dickdarm voraus"] # 0xe967 (en: 'precedes with colon', google translation) - - "": [T: "erfolg mit colon"] # 0xe968 (en: 'succeeds with colon', google translation) - - "": [T: "kleiner als oder gleich schräg"] # 0xe969 (en: 'smaller than or equal slanted', google translation) - - "": [T: "größer oder gleich schräg"] # 0xe96a (en: 'larger than or equal slanted', google translation) - - "": [T: "sehr viel weniger verschachtelt als"] # 0xe96b (en: 'nested very much less than', google translation) - - "": [T: "sehr viel größer als"] # 0xe96c (en: 'nested very much greater than', google translation) - - "": [T: "unterschied zwischen variante"] # 0xe96d (en: 'difference between variant', google translation) - - "": [T: "weniger als größer als overlay"] # 0xe96e (en: 'less than greater than overlay', google translation) - - "": [T: "logisch oder logisch und overlay"] # 0xe96f (en: 'logical or logical and overlay', google translation) - - "": [T: "superset über superset"] # 0xe970 (en: 'superset over superset', google translation) - - "": [T: "untergruppe über teilmenge"] # 0xe971 (en: 'subset over subset', google translation) - - "": [T: "superset über untergruppe"] # 0xe972 (en: 'superset over subset', google translation) - - "": [T: "untergruppe über superset"] # 0xe973 (en: 'subset over superset', google translation) - - "": [T: "dreifache vertikale bar"] # 0xe979 (en: 'triple vertical bar', google translation) - - "": [T: "gekoppelte vierfache vertikale punkte"] # 0xe97a (en: 'paired quadruple vertical dots', google translation) - - "": [T: "senkrecht über bar"] # 0xe97b (en: 'perpendicular over bar', google translation) - - "": [T: "linke drehkreuze doppelte vertikale balken"] # 0xe97c (en: 'left turnstile double vertical bar', google translation) - - "": [T: "doppelte linke drehklemme doppelte vertikale balken"] # 0xe97d (en: 'double left turnstile double vertical bar', google translation) - - "": [T: "senkrecht über invertierte senkrechte"] # 0xe97e (en: 'perpendicular over inverted perpendicular', google translation) - - "": [T: "vertikale balken mit doppelter linke"] # 0xe97f (en: 'double left turnstile vertical bar', google translation) - - "": [T: "kugelwinkel öffnen sich"] # 0xe980 (en: 'spherical angle opening up', google translation) - - "": [T: "doppelter schrägstrich"] # 0xe981 (en: 'double slash', google translation) - - "": [T: "rechtwinkel mit ecke"] # 0xe982 (en: 'right angle with corner', google translation) - - "": [T: "vertikaler balken"] # 0xe984 (en: 'circled vertical bar', google translation) - - "": [T: "umkreiste divisionszeichen"] # 0xe985 (en: 'circled division sign', google translation) - - "": [T: "gestrichelten solidus"] # 0xe986 (en: 'dashed solidus', google translation) - - "": [T: "gestürztes backslash"] # 0xe987 (en: 'dashed backslash', google translation) - - "": [T: "mitten in der mitte"] # 0xe988 (en: 'dashed mid line', google translation) - - "": [T: "gestrichelte vertikale balken"] # 0xe989 (en: 'dashed vertical bar', google translation) - - "": [T: "senkrecht mit s"] # 0xe98a (en: 'perpendicular with s', google translation) - - "": [T: "winkel mit s"] # 0xe98b (en: 'angle with s', google translation) - - "": [T: "kugelwinkelöffnung nach links"] # 0xe98c (en: 'spherical angle opening left', google translation) - - "": [T: "winkelöffnung links"] # 0xe98d (en: 'angle opening left', google translation) - - "": [T: "vertikale balken mit doppelhaken"] # 0xe98e (en: 'vertical bar with double hook', google translation) - - "": [T: "mittlerer punktbetreiber freie radikal"] # 0xe98f (en: 'medium dot operator free radical', google translation) - - "": [T: "weiß nach oben zeigte dreieck über die bar"] # 0xe990 (en: 'white up pointing triangle above bar', google translation) - - "": [T: "identisch und parallel zu"] # 0xe991 (en: 'identical and parallel to', google translation) - - "": [T: "produkt zerschlagen"] # 0xe992 (en: 'smash product', google translation) - - "": [T: "triple bar operator mit horizontaler balken"] # 0xe993 (en: 'triple bar operator with horizontal bar', google translation) - - "": [T: "identisch mit doppelter schrägstrich"] # 0xe994 (en: 'identical to with double slash', google translation) - - "": [T: "dreifach gekreuzte riegel"] # 0xe995 (en: 'triple crossed bars', google translation) - - "": [T: "vertikaler balken über den kreis"] # 0xe996 (en: 'vertical bar over circle', google translation) - - "": [T: "vertikal proportional zu"] # 0xe997 (en: 'vertical proportional to', google translation) - - "": [T: "schwarz im letzten quartal mond"] # 0xe998 (en: 'black last quarter moon', google translation) - - "": [T: "schwarzer mond im ersten quartal"] # 0xe999 (en: 'black first quarter moon', google translation) - - "": [T: "negative sinuswelle"] # 0xe9a0 (en: 'negative sine wave', google translation) - - "": [T: "klammern"] # 0xe9a1 (en: 'parenthesized dot', google translation) - - "": [T: "klammern"] # 0xe9a2 (en: 'parens', google translation) - - "": [T: "weißes lächeln"] # 0xe9a3 (en: 'white smile', google translation) - - "": [T: "weißes stirnrunzeln"] # 0xe9a4 (en: 'white frown', google translation) - - "": [T: "hexagon"] # 0xe9a5 (google translation) - - "": [T: "entspricht über plus"] # 0xe9a6 (en: 'equivalent to over plus', google translation) - - "": [T: "plus über gleichwertig zu"] # 0xe9a7 (en: 'plus over equivalent to', google translation) - - "": [T: "kreuzungserife"] # 0xe9b0 (en: 'intersection serifs', google translation) - - "": [T: "union serife"] # 0xe9b1 (en: 'union serifs', google translation) - - "": [T: "square intersection serifen"] # 0xe9b2 (en: 'square intersection serifs', google translation) - - "": [T: "square union serifen"] # 0xe9b3 (en: 'square union serifs', google translation) - - "": [T: "vor voraussichtlich dem gleichwertigen oder erfolgreich"] # 0xe9e0 (en: 'precedes equivalent to or succeeds', google translation) - - "": [T: "erfolgreich ist äquivalent zu oder geht voraus"] # 0xe9e1 (en: 'succeeds equivalent to or precedes', google translation) - - "": [T: "vor voraussichtlich fast gleich oder erfolgreich"] # 0xe9e2 (en: 'precedes almost equal to or succeeds', google translation) - - "": [T: "ist fast gleich oder voraus"] # 0xe9e3 (en: 'succeeds almost equal to or precedes', google translation) - - "": [T: "weniger als äquivalent zu oder größer als"] # 0xe9f0 (en: 'less than equivalent to or greater than', google translation) - - "": [T: "größer als äquivalent zu oder weniger als"] # 0xe9f1 (en: 'greater than equivalent to or less than', google translation) - - "": [T: "nicht viel weniger als"] # 0xea00 (en: 'not vert much less than', google translation) - - "": [T: "nicht viel größer als"] # 0xea01 (en: 'not vert much greater than', google translation) - - "": [T: "nicht viel weniger als variante"] # 0xea02 (en: 'not much less than variant', google translation) - - "": [T: "nicht viel größer als variante"] # 0xea03 (en: 'not much greater than variant', google translation) - - "": [T: "weniger vert doppelt nicht gleich"] # 0xea04 (en: 'less vert not double equals', google translation) - - "": [T: "gt vert doppelt nicht gleich"] # 0xea05 (en: 'gt vert not double equals', google translation) - - "": [T: "nicht weniger als oder gleich"] # 0xea06 (en: 'not less than or equal to', google translation) - - "": [T: "nicht größer als oder gleich"] # 0xea07 (en: 'not greater than or equal to', google translation) - - "": [T: "weder gleich noch weniger als"] # 0xea09 (en: 'neither equal to nor less than', google translation) - - "": [T: "enthält nicht oder gleich"] # 0xea0a (en: 'does not contain or equal to', google translation) - - "": [T: "weder superset von noch gleich"] # 0xea0b (en: 'neither superset of nor equal to', google translation) - - "": [T: "weder teilmenge von noch gleich"] # 0xea0c (en: 'neither subset of nor equal to', google translation) - - "": [T: "umgekehrte solidus -untergruppe"] # 0xea0d (en: 'reverse solidus subset', google translation) - - "": [T: "weder gleich noch größer als"] # 0xea0e (en: 'neither equal to nor greater than', google translation) - - "": [T: "nicht minus tilde -operator"] # 0xea0f (en: 'not minus tilde operator', google translation) - - "": [T: "weder gleich noch weniger als"] # 0xea10 (en: 'neither equal to nor less than', google translation) - - "": [T: "nicht tilde -operator"] # 0xea11 (en: 'not tilde operator', google translation) - - "": [T: "kein element von oder gleich"] # 0xea12 (en: 'not element of or equal to', google translation) - - "": [T: "weder gleich noch größer als"] # 0xea13 (en: 'neither equal to nor greater than', google translation) - - "": [T: "nicht fast gleich"] # 0xea14 (en: 'not almost equal', google translation) - - "": [T: "es ist nicht ähnlich erfolgreich"] # 0xea15 (en: 'not succeeds similar', google translation) - - "": [T: "weniger oder schräg gleich mit dem schrägstrich"] # 0xea16 (en: 'less than or slanted equal to with slash', google translation) - - "": [T: "größer als oder schräg gleich mit dem schrägstrich"] # 0xea17 (en: 'greater than or slanted equal to with slash', google translation) - - "": [T: "superset solidus"] # 0xea1a (google translation) - - "": [T: "beinhaltet nicht"] # 0xea1b (en: 'does not contain', google translation) - - "": [T: "nicht weniger als oder gleich"] # 0xea1d (en: 'not less than or equal to', google translation) - - "": [T: "nicht größer als oder gleich"] # 0xea1e (en: 'not greater than or equal to', google translation) - - "": [T: "nicht fast gleich minus"] # 0xea1f (en: 'not almost equal to minus', google translation) - - "": [T: "negated set -mitgliedschaftsdot oben"] # 0xea22 (en: 'negated set membership dot above', google translation) - - "": [T: "kein vertgle"] # 0xea2c (en: 'not vert angle', google translation) - - "": [T: "nicht parallel schräg"] # 0xea2d (en: 'not parallel slanted', google translation) - - "": [T: "kein barbetreiber"] # 0xea2e (en: 'not bar operator', google translation) - - "": [T: "nicht doppelbalkenbetreiber"] # 0xea2f (en: 'not double bar operator', google translation) - - "": [T: "nicht dreifacher barbetreiber"] # 0xea30 (en: 'not triple bar operator', google translation) - - "": [T: "weniger als aber nicht ungefähr gleich"] # 0xea32 (en: 'less than but not approximately equal to', google translation) - - "": [T: "größer als aber nicht ungefähr gleich"] # 0xea33 (en: 'greater than but not approximately equal to', google translation) - - "": [T: "weniger als oder nicht gleich"] # 0xea34 (en: 'less than or not equal to', google translation) - - "": [T: "größer als oder nicht gleich"] # 0xea35 (en: 'greater than or not equal to', google translation) - - "": [T: "nicht weniger verschachtelt als"] # 0xea36 (en: 'not nested less than', google translation) - - "": [T: "nicht mehr verschachtelt als"] # 0xea37 (en: 'not nested greater than', google translation) - - "": [T: "nicht viel weniger als"] # 0xea38 (en: 'not much less than', google translation) - - "": [T: "nicht viel größer als"] # 0xea39 (en: 'not much greater than', google translation) - - "": [T: "vor voraussichtlich, aber nicht gleichbedeutend mit"] # 0xea3a (en: 'precedes but not equivalent to', google translation) - - "": [T: "erfolg, aber nicht gleichwertig zu"] # 0xea3b (en: 'succeeds but not equivalent to', google translation) - - "": [T: "voraus, aber nicht gleich"] # 0xea3c (en: 'precedes but not equal to', google translation) - - "": [T: "erfolg, aber nicht gleich"] # 0xea3d (en: 'succeeds but not equal to', google translation) - - "": [T: "gleich oder vorausgegangen"] # 0xea3e (en: 'does not equal or precede', google translation) - - "": [T: "ist nicht gleich oder erfolgreich"] # 0xea3f (en: 'does not equal or succeed', google translation) - - "": [T: "voraus, aber nicht gleich"] # 0xea40 (en: 'precedes but not equal to', google translation) - - "": [T: "erfolg, aber nicht gleich"] # 0xea41 (en: 'succeeds but not equal to', google translation) - - "": [T: "keine untergruppe von oder gleich"] # 0xea42 (en: 'not subset of nor equal to', google translation) - - "": [T: "nicht superset von oder gleich"] # 0xea43 (en: 'not superset of nor equal to', google translation) - - "": [T: "teilmenge von oder nicht gleich"] # 0xea44 (en: 'subset of or not equal to', google translation) - - "": [T: "superset von oder nicht gleich"] # 0xea45 (en: 'superset of or not equal to', google translation) - - "": [T: "keine untergruppe von oder gleich"] # 0xea46 (en: 'not subset of nor equal to', google translation) - - "": [T: "nicht superset von oder gleich"] # 0xea47 (en: 'not superset of nor equal to', google translation) - - "": [T: "nicht dreifach weniger als"] # 0xea48 (en: 'not triple less than', google translation) - - "": [T: "nicht dreifach größer als"] # 0xea49 (en: 'not triple greater than', google translation) - - "": [T: "nicht vorausgeht"] # 0xea4c (en: 'not precedes equals', google translation) - - "": [T: "nicht erfolgreich ist gleich"] # 0xea4d (en: 'not succeeds equals', google translation) - - "": [T: "nicht normale untergruppe mit bar"] # 0xea50 (en: 'not normal subgroup of with bar', google translation) - - "": [T: "enthält nicht als normale untergruppe mit balken"] # 0xea51 (en: 'does not contain as normal subgroup with bar', google translation) - - "": [T: "kein unterschied zwischen"] # 0xea52 (en: 'not difference between', google translation) - - "": [T: "nicht geometrisch äquivalent zu"] # 0xea53 (en: 'not geometrically equivalent to', google translation) - - "": [T: "nicht vert ähnlich"] # 0xea54 (en: 'not vert similar', google translation) - - "": [T: "nicht gleich oder ähnlich"] # 0xea55 (en: 'not equal or similar', google translation) - - "": [T: "nicht verthergestellt"] # 0xea56 (en: 'not vert approximate', google translation) - - "": [T: "nicht ungefähr identisch mit"] # 0xea57 (en: 'not approximately identical to', google translation) - - "": [T: "nicht holprig gleich"] # 0xea58 (en: 'not bumpy equals', google translation) - - "": [T: "keine holprige single gleich"] # 0xea59 (en: 'not bumpy single equals', google translation) - - "": [T: "nicht gleicher punkt"] # 0xea5a (en: 'not equal dot', google translation) - - "": [T: "umgekehrt nicht äquivalent"] # 0xea5b (en: 'reverse not equivalent', google translation) - - "": [T: "nicht quadratische untergruppe"] # 0xea60 (en: 'not square subset', google translation) - - "": [T: "nicht quadratischer superset"] # 0xea61 (en: 'not square superset', google translation) - - "": [T: "nicht fast gleich über gleich"] # 0xea62 (en: 'not almost equal over equal', google translation) - - "": [T: "nicht streng gleich gleich zu"] # 0xea63 (en: 'not strictly equivalent to', google translation) - - "": [T: "nicht kongruenter punkt"] # 0xea64 (en: 'not congruent dot', google translation) - - "": [T: "rückwärts nicht gleich"] # 0xea65 (en: 'reverse not equal', google translation) - - "": [T: "nicht vert -dreieck ist gleich"] # 0xea70 (en: 'not vert left triangle equals', google translation) - - "": [T: "nicht vert rechtes dreieck ist gleich"] # 0xea71 (en: 'not vert right triangle equals', google translation) - - "": [T: "nicht teilweise"] # 0xea80 (en: 'not partial', google translation) - - "": [T: "pfeilverschmutzung extender"] # 0xeb00 (en: 'arrow embellishment extender', google translation) - - "": [T: "pfeil nach rechts über pfeil nach links"] # 0xeb01 (en: 'arrow rightwards over arrow leftwards', google translation) - - "": [T: "pfeil nach rechts über pfeil nach links"] # 0xeb02 (en: 'arrow rightwards over arrow leftwards', google translation) - - "": [T: "harpoon direkt über harpoon links"] # 0xeb03 (en: 'harpoon right over harpoon left', google translation) - - "": [T: "harpoon direkt über harpoon links"] # 0xeb04 (en: 'harpoon right over harpoon left', google translation) - - "": [T: "doppelpfeil nordöstlich südwest"] # 0xeb05 (en: 'double arrow northeast southwest', google translation) - - "": [T: "doppelpfeil nordwestlich südöstlich"] # 0xeb06 (en: 'double arrow northwest southeast', google translation) - - "": [T: "horizontaler harpoon -extender"] # 0xeb07 (en: 'horizontal harpoon extender', google translation) - - "": [T: "arc links -pfeil gegen den uhrzeigersinn"] # 0xeb08 (en: 'anticlockwise arc leftwards arrow', google translation) - - "": [T: "gegen den gegensatz zum arc rightwards pfeil"] # 0xeb09 (en: 'anticlockwise arc rightwards arrow', google translation) - - "": [T: "großer rechts pfeilakzent"] # 0xeb0b (en: 'large rightwards arrow accent', google translation) - - "": [T: "großer links pfeilakzent"] # 0xeb0c (en: 'large leftwards arrow accent', google translation) - - "": [T: "links pfeilspitze"] # 0xeb0d (en: 'leftwards arrowhead', google translation) - - "": [T: "rightwards pfeilspitze"] # 0xeb0e (en: 'rightwards arrowhead', google translation) - - "": [T: "großer links rechts pfeil mit schlaganfall"] # 0xeb0f (en: 'large left right arrow with stroke', google translation) - - "": [T: "horizontaler doppelpfeil -extender"] # 0xeb10 (en: 'horizontal double arrow extender', google translation) - - "": [T: "großer links rechts doppelpfeil mit schlaganfall"] # 0xeb11 (en: 'large left right double arrow with stroke', google translation) - - "": [T: "abwärts links nach oben auf pfeil"] # 0xeb12 (en: 'downwards arrow leftwards of upwards arrow', google translation) - - "": [T: "linkspfeil mit ecke nach unten"] # 0xeb13 (en: 'leftwards arrow with corner downwards', google translation) - - "": [T: "rightwards pfeil mit ecke nach oben"] # 0xeb14 (en: 'rightwards arrow with corner upwards', google translation) - - "": [T: "links pfeil mit ecke nach oben"] # 0xeb15 (en: 'leftwards arrow with corner upwards', google translation) - - "": [T: "gegen den top -semikkreis -pfeil gegen plus gegenüber dem gegen den gegenwart"] # 0xeb16 (en: 'anticlockwise top semicircle arrow with plus', google translation) - - "": [T: "im uhrzeigersinn oberen halbkreispfeil mit minus"] # 0xeb17 (en: 'clockwise top semicircle arrow with minus', google translation) - - "": [T: "richtiger pfeil mit schwanz mit schlaganfall"] # 0xeb18 (en: 'rightwards arrow with tail with stroke', google translation) - - "": [T: "richtige harpune unten"] # 0xeb19 (en: 'right harpoon down', google translation) - - "": [T: "ließ harpoon nieder"] # 0xeb1a (en: 'left harpoon down', google translation) - - "": [T: "linke rechte harpoon nach unten"] # 0xeb1b (en: 'left right harpoon down', google translation) - - "": [T: "linke rechte harpune hoch"] # 0xeb1c (en: 'left right harpoon up', google translation) - - "": [T: "die harpune runter links"] # 0xeb1d (en: 'up down harpoon left', google translation) - - "": [T: "runter harpoon rechts"] # 0xeb1e (en: 'up down harpoon right', google translation) - - "": [T: "auf den pfeil nach unten nach unten am pfeil"] # 0xeb1f (en: 'upwards arrow to the right of downwards arrow', google translation) - - "": [T: "links harpoon zur bar mit barb nach oben"] # 0xeb20 (en: 'leftwards harpoon to bar with barb upwards', google translation) - - "": [T: "rightwards harpoon zur bar mit barb nach oben"] # 0xeb21 (en: 'rightwards harpoon to bar with barb upwards', google translation) - - "": [T: "links harpoon zur bar mit barb nach unten"] # 0xeb22 (en: 'leftwards harpoon to bar with barb downwards', google translation) - - "": [T: "rightwards harpoon zur bar mit barb nach unten"] # 0xeb23 (en: 'rightwards harpoon to bar with barb downwards', google translation) - - "": [T: "links harpune aus der bar mit barb nach oben"] # 0xeb24 (en: 'leftwards harpoon from bar with barb upwards', google translation) - - "": [T: "richtige harpoon aus der bar mit barb nach oben"] # 0xeb25 (en: 'rightwards harpoon from bar with barb upwards', google translation) - - "": [T: "links harpoon aus der bar mit barb nach unten"] # 0xeb26 (en: 'leftwards harpoon from bar with barb downwards', google translation) - - "": [T: "rightwards harpoon aus der bar mit barb nach unten"] # 0xeb27 (en: 'rightwards harpoon from bar with barb downwards', google translation) - - "": [T: "harpune nach oben mit barb nach links"] # 0xeb28 (en: 'upwards harpoon to bar with barb leftwards', google translation) - - "": [T: "harpoon nach unten mit barb nach links"] # 0xeb29 (en: 'downwards harpoon to bar with barb leftwards', google translation) - - "": [T: "nach oben harpunieren zur bar mit barb rightwards"] # 0xeb2a (en: 'upwards harpoon to bar with barb rightwards', google translation) - - "": [T: "harpoon nach unten mit barb rightwards nach unten"] # 0xeb2b (en: 'downwards harpoon to bar with barb rightwards', google translation) - - "": [T: "harpoon von bar mit barb nach links nach oben"] # 0xeb2c (en: 'upwards harpoon from bar with barb leftwards', google translation) - - "": [T: "harpoon nach unten mit barb links nach unten"] # 0xeb2d (en: 'downwards harpoon from bar with barb leftwards', google translation) - - "": [T: "harpoon von bar mit barb rechts nach oben"] # 0xeb2e (en: 'upwards harpoon from bar with barb rightwards', google translation) - - "": [T: "harpoon nach unten aus barb mit barb rightwards"] # 0xeb2f (en: 'downwards harpoon from bar with barb rightwards', google translation) - - "": [T: "aufwärter pfeil in die bar"] # 0xeb30 (en: 'upwards arrow to bar', google translation) - - "": [T: "nach unten pfeil in die bar"] # 0xeb31 (en: 'downwards arrow to bar', google translation) - - "": [T: "harpune nach oben links von der abwärtsharpune"] # 0xeb32 (en: 'upwards harpoon to the left of downwards harpoon', google translation) - - "": [T: "harpunen nach oben rechts von der abwärtsharpune"] # 0xeb33 (en: 'upwards harpoon to the right of downwards harpoon', google translation) - - "": [T: "nach oben pfeilspitze"] # 0xeb34 (en: 'upwards arrowhead', google translation) - - "": [T: "nach unten pfeilspitze"] # 0xeb35 (en: 'downwards arrowhead', google translation) - - "": [T: "doppelte harpoon mit links nach unten nach rechts barb hoch"] # 0xeb36 (en: 'double harpoon with leftwards barb down rightwards barb up', google translation) - - "": [T: "doppelte harpoon mit links nach oben nach oben nach oben nach unten"] # 0xeb37 (en: 'double harpoon with leftwards barb up rightwards barb down', google translation) - - "": [T: "pfeil über die bar links"] # 0xeb38 (en: 'leftwards arrow over bar', google translation) - - "": [T: "richtiger pfeil über die bar"] # 0xeb39 (en: 'rightwards arrow over bar', google translation) - - "": [T: "links pfeil unter der bar"] # 0xeb3a (en: 'leftwards arrow under bar', google translation) - - "": [T: "richtiger pfeil unter der bar"] # 0xeb3b (en: 'rightwards arrow under bar', google translation) - - "": [T: "links rechts triple pfeil"] # 0xeb3c (en: 'left right triple arrow', google translation) - - "": [T: "doppelpfeil nordöstlich südost"] # 0xeb3f (en: 'double arrow northeast southeast', google translation) - - "": [T: "gegen den linken halbkreispfeil gegen den uhrzeigersinn"] # 0xeb40 (en: 'anticlockwise left semicircle arrow', google translation) - - "": [T: "linker semicircle -pfeil im uhrzeigersinn"] # 0xeb41 (en: 'clockwise left semicircle arrow', google translation) - - "": [T: "links geöffneter kreis links rechts pfeil"] # 0xeb42 (en: 'left open circle left right arrow', google translation) - - "": [T: "richtiger pfeil über tilde"] # 0xeb44 (en: 'rightwards arrow over tilde', google translation) - - "": [T: "links pfeil über tilde"] # 0xeb45 (en: 'leftwards arrow over tilde', google translation) - - "": [T: "links harpoon über der bar"] # 0xeb48 (en: 'leftwards harpoon over bar', google translation) - - "": [T: "richtige harpoon über bar"] # 0xeb49 (en: 'rightwards harpoon over bar', google translation) - - "": [T: "links harpun unter bar"] # 0xeb4a (en: 'leftwards harpoon under bar', google translation) - - "": [T: "rightwards harpoon unter bar"] # 0xeb4b (en: 'rightwards harpoon under bar', google translation) - - "": [T: "hocke schwarze pfeil nach links"] # 0xeb4c (en: 'squat black leftwards arrow', google translation) - - "": [T: "im uhrzeigersinn rechte halbkreispfeil"] # 0xeb50 (en: 'clockwise right semicircle arrow', google translation) - - "": [T: "gegen den rechten halbkreisspfeil gegen den uhrzeigersinn"] # 0xeb51 (en: 'anticlockwise right semicircle arrow', google translation) - - "": [T: "links offener kreis links rechts harpune"] # 0xeb52 (en: 'left open circle left right harpoon', google translation) - - "": [T: "aufwärtsspurte pfeil links von vertikaler balken"] # 0xeb58 (en: 'upwards arrow leftwards of vertical bar', google translation) - - "": [T: "abwärts links von vertikaler balken nach unten"] # 0xeb59 (en: 'downwards arrow leftwards of vertical bar', google translation) - - "": [T: "aufwärts nach rechts von vertikaler balken"] # 0xeb5a (en: 'upwards arrow rightwards of vertical bar', google translation) - - "": [T: "nach unten pfeil nach rechts von vertikaler balken"] # 0xeb5b (en: 'downwards arrow rightwards of vertical bar', google translation) - - "": [T: "rightwards pfeil mit erweitertem abwärtshaken"] # 0xeb5c (en: 'rightwards arrow with extended downwards hook', google translation) - - "": [T: "pfeil mit linksem pfeil mit verlängertem haken"] # 0xeb5d (en: 'leftwards arrow with extended hook', google translation) - - "": [T: "der pfeil nach links mit einem ausgedehnten abwärtshaken"] # 0xeb5e (en: 'leftwards arrow with extended downwards hook', google translation) - - "": [T: "richtiger pfeil mit verlängertem haken"] # 0xeb5f (en: 'rightwards arrow with extended hook', google translation) - - "": [T: "nicht richtig pfeil wellig"] # 0xeb60 (en: 'not right arrow wavy', google translation) - - "": [T: "nicht richtig pfeil gebogen"] # 0xeb61 (en: 'not right arrow curved', google translation) - - "": [T: "nach oben harpunieren links von vertikaler bar"] # 0xeb68 (en: 'upwards harpoon leftwards of vertical bar', google translation) - - "": [T: "abwärtsharpune links von vertikaler bar"] # 0xeb69 (en: 'downwards harpoon leftwards of vertical bar', google translation) - - "": [T: "nach oben harpoon rechts von vertikaler bar"] # 0xeb6a (en: 'upwards harpoon rightwards of vertical bar', google translation) - - "": [T: "abwärts harpoon rechts von vertikaler bar"] # 0xeb6b (en: 'downwards harpoon rightwards of vertical bar', google translation) - - "": [T: "vertikaler doppelpfeil -extender"] # 0xeb6c (en: 'vertical double arrow extender', google translation) - - "": [T: "vertikale harpune mit barb links extender"] # 0xeb6d (en: 'vertical harpoon with barb left extender', google translation) - - "": [T: "vertikale harpune mit barb right extender"] # 0xeb6e (en: 'vertical harpoon with barb right extender', google translation) - - "": [T: "rechte harpoon über die linke harpoon rechts"] # 0xeb6f (en: 'right harpoon over left harpoon right', google translation) - - "": [T: "rechte harpoon über linker harpoon links"] # 0xeb70 (en: 'right harpoon over left harpoon left', google translation) - - "": [T: "linke harpoon über die rechte harpoon rechts"] # 0xeb71 (en: 'left harpoon over right harpoon right', google translation) - - "": [T: "linke harpoon über die rechte harpoon links"] # 0xeb72 (en: 'left harpoon over right harpoon left', google translation) - - "": [T: "pfeil von links von der bar pfeilspitze"] # 0xeb73 (en: 'leftwards arrow from bar arrowhead', google translation) - - "": [T: "links nach rechts pfeil von bar extender"] # 0xeb74 (en: 'leftwards rightwards arrow from bar extender', google translation) - - "": [T: "links pfeil vom stangenschwanz"] # 0xeb75 (en: 'leftwards arrow from bar tail', google translation) - - "": [T: "richtiger pfeil vom stangenschwanz"] # 0xeb76 (en: 'rightwards arrow from bar tail', google translation) - - "": [T: "rightwards pfeil von der bar pfeilspitze"] # 0xeb77 (en: 'rightwards arrow from bar arrowhead', google translation) - - "": [T: "harpune nach oben aus der bar mit barb links pfeilspitze"] # 0xeb78 (en: 'upwards harpoon from bar with barb leftwards arrowhead', google translation) - - "": [T: "rechten pfeil über den linken pfeil nach rechts"] # 0xeb79 (en: 'rightwards arrow over leftwards arrow right', google translation) - - "": [T: "rechten pfeil über den linken pfeil nach links"] # 0xeb7a (en: 'rightwards arrow over leftwards arrow left', google translation) - - "": [T: "der pfeil nach links nach rechts nach rechts"] # 0xeb7b (en: 'leftwards arrow over rightwards arrow right', google translation) - - "": [T: "der pfeil nach links über den pfeil nach rechts links"] # 0xeb7c (en: 'leftwards arrow over rightwards arrow left', google translation) - - "": [T: "aufwärter pfeil von der bar pfeilspitze"] # 0xeb7d (en: 'upwards arrow from bar arrowhead', google translation) - - "": [T: "aufwärter pfeil vom stangenschwanz"] # 0xeb7e (en: 'upwards arrow from bar tail', google translation) - - "": [T: "nach unten pfeil vom stangenschwanz"] # 0xeb7f (en: 'downwards arrow from bar tail', google translation) - - "": [T: "nach unten pfeil von pfeilspitzen nach unten"] # 0xeb80 (en: 'downwards arrow from bar arrowhead', google translation) - - "": [T: "harpoon nach unten aus der bar mit barb rightwards arrowhead"] # 0xeb81 (en: 'downwards harpoon from bar with barb rightwards arrowhead', google translation) - - "": [T: "harpunen nach oben links von harpunenboden nach unten"] # 0xeb82 (en: 'upwards harpoon to the left of downwards harpoon bottom', google translation) - - "": [T: "harpunen nach oben links von der abwärtsharpoon extender"] # 0xeb83 (en: 'upwards harpoon to the left of downwards harpoon extender', google translation) - - "": [T: "harpoon nach unten links von der harpunenoberseite nach oben"] # 0xeb84 (en: 'downwards harpoon to the left of upwards harpoon top', google translation) - - "": [T: "harpunen nach oben links von der abwärtsharpoon -oberseite"] # 0xeb85 (en: 'upwards harpoon to the left of downwards harpoon top', google translation) - - "": [T: "harpunen nach unten links von der nach oben nach oben genannten harpoon -extender"] # 0xeb86 (en: 'downwards harpoon to the left of the upwards harpoon extender', google translation) - - "": [T: "harpunen nach unten links von der nach oben nach oben genannten harpunenboden"] # 0xeb87 (en: 'downwards harpoon to the left of the upwards harpoon bottom', google translation) - - "": [T: "aufwärts nach links nach unten pfeilboden"] # 0xeb88 (en: 'upwards arrow leftwards of downwards arrow bottom', google translation) - - "": [T: "nach unten pfeil nach oben von pfeiltop nach oben"] # 0xeb89 (en: 'downwards arrow leftwards of upwards arrow top', google translation) - - "": [T: "aufwärts links nach unten pfeiltop"] # 0xeb8a (en: 'upwards arrow leftwards of downwards arrow top', google translation) - - "": [T: "abwärts nach links nach oben am pfeil nach oben"] # 0xeb8b (en: 'downwards arrow leftwards of upwards arrow bottom', google translation) - - "": [T: "links nach rechts pfeile extender"] # 0xeb8c (en: 'leftwards rightwards arrows extender', google translation) - - "": [T: "north east arrow extender"] # 0xeb8d (google translation) - - "": [T: "north west arrow extender"] # 0xeb8e (google translation) - - "": [T: "daunen zeigen, links"] # 0xec00 (en: 'down pointing brace left', google translation) - - "": [T: "daunen zeigen mitte"] # 0xec01 (en: 'down pointing brace mid', google translation) - - "": [T: "runter zeigen klammer richtig"] # 0xec02 (en: 'down pointing brace right', google translation) - - "": [T: "horizontaler klammer -extender"] # 0xec03 (en: 'horizontal brace extender', google translation) - - "": [T: "nach dem zeigen links"] # 0xec04 (en: 'up pointing brace left', google translation) - - "": [T: "mitte zeigende klammer"] # 0xec05 (en: 'up pointing brace mid', google translation) - - "": [T: "ups-taste-klammer rechts"] # 0xec06 (en: 'up-pointing brace right', google translation) - - "": [T: "links vertikale balken"] # 0xec07 (en: 'left vertical bar', google translation) - - "": [T: "rechte vertikale balken"] # 0xec08 (en: 'right vertical bar', google translation) - - "": [T: "links doppelte vertikale balken"] # 0xec09 (en: 'left double vertical bar', google translation) - - "": [T: "rechte doppelte vertikale balken"] # 0xec0a (en: 'right double vertical bar', google translation) - - "": [T: "horizontaler bracket extender"] # 0xec0b (en: 'horizontal bracket extender', google translation) - - "": [T: "unter quadratischer klammer"] # 0xec0c (en: 'under square bracket', google translation) - - "⎵": [T: "Untere eckige Klammer"] # 0x23b5 (en: 'under square bracket', MathPlayer: 'under square bracket', google: 'unter quadratischer klammer') - - "": [T: "über quadratischer klammer"] # 0xec0d (en: 'over square bracket', google translation) - - "⎴": [T: "Obere eckige Klammer"] # 0x23b4 (en: 'over square bracket', MathPlayer: 'over square bracket', google: 'über quadratischer klammer') - - "": [T: "unter der klammer links"] # 0xec0e (en: 'under bracket left', google translation) - - "": [T: "unter der klammer rechts"] # 0xec0f (en: 'under bracket right', google translation) - - "": [T: "über die klammer ging"] # 0xec10 (en: 'over bracket left', google translation) - - "": [T: "über die klammer richtig"] # 0xec11 (en: 'over bracket right', google translation) - - "": [T: "links klammern 1"] # 0xec12 (en: 'left parens 1', google translation) - - "": [T: "links klammern 2"] # 0xec13 (en: 'left parens 2', google translation) - - "": [T: "links klammern 3"] # 0xec14 (en: 'left parens 3', google translation) - - "": [T: "links klammern 4"] # 0xec15 (en: 'left parens 4', google translation) - - "": [T: "rechte klammer 1"] # 0xec16 (en: 'right parens 1', google translation) - - "": [T: "rechte klammer 2"] # 0xec17 (en: 'right parens 2', google translation) - - "": [T: "rechte klammer 3"] # 0xec18 (en: 'right parens 3', google translation) - - "": [T: "rechte klammer 4"] # 0xec19 (en: 'right parens 4', google translation) - - "": [T: "radikal 1"] # 0xec1a (en: 'radical 1', google translation) - - "": [T: "radikal 2"] # 0xec1b (en: 'radical 2', google translation) - - "": [T: "radikal 3"] # 0xec1c (en: 'radical 3', google translation) - - "": [T: "radikal 4"] # 0xec1d (en: 'radical 4', google translation) - - "": [T: "radikal 5"] # 0xec1e (en: 'radical 5', google translation) - - "": [T: "radikaler boden"] # 0xec1f (en: 'radical bottom', google translation) - - "": [T: "radikaler vertikaler erweiterung"] # 0xec20 (en: 'radical vertical extender', google translation) - - "": [T: "radikaler oberteil"] # 0xec21 (en: 'radical top', google translation) - - "": [T: "links weiße halterung"] # 0xec22 (en: 'left white bracket top', google translation) - - "": [T: "links weiße klammer extender"] # 0xec23 (en: 'left white bracket extender', google translation) - - "": [T: "links weiße halterung"] # 0xec24 (en: 'left white bracket bottom', google translation) - - "": [T: "rechte weiße halterung"] # 0xec25 (en: 'right white bracket top', google translation) - - "": [T: "rechte weiße klammer extender"] # 0xec26 (en: 'right white bracket extender', google translation) - - "": [T: "rechte weiße halterung unten"] # 0xec27 (en: 'right white bracket bottom', google translation) - - "": [T: "links weiße lockige klammer"] # 0xec30 (en: 'left white curly bracket', google translation) - - "": [T: "rechte weiße lockige klammer"] # 0xec31 (en: 'right white curly bracket', google translation) - - "": [T: "langes divisionszeichen"] # 0xec32 (en: 'long division sign', google translation) - - "": [T: "langes divisionszeichen extender"] # 0xec33 (en: 'long division sign extender', google translation) - - "": [T: "kurze division"] # 0xec34 (en: 'short division', google translation) - - "": [T: "doppelte südwest nach nordost -em bond"] # 0xec40 (en: 'double southwest to northeast em bond', google translation) - - "": [T: "doppelte nordwestlich nach südost -em bond"] # 0xec41 (en: 'double northwest to southeast em bond', google translation) - - "": [T: "einzelne horizontale em -bindung"] # 0xec42 (en: 'single horizontal em bond', google translation) - - "": [T: "doppelte horizontale em -bindung"] # 0xec43 (en: 'double horizontal em bond', google translation) - - "": [T: "dreifache horizontale em -bond"] # 0xec44 (en: 'triple horizontal em bond', google translation) - - "": [T: "single vertikale em -bindung"] # 0xec45 (en: 'single vertical em bond', google translation) - - "": [T: "doppelte vertikale em -bindung"] # 0xec46 (en: 'double vertical em bond', google translation) - - "": [T: "dreifache vertikale em -bond"] # 0xec47 (en: 'triple vertical em bond', google translation) - - "": [T: "weniger als em bond"] # 0xec48 (en: 'less than em bond', google translation) - - "": [T: "größer als die em -bindung"] # 0xec49 (en: 'greater than em bond', google translation) - - "": [T: "einzelne horizontale bond"] # 0xec4a (en: 'single horizontal en bond', google translation) - - "": [T: "doppelte horizontale bond"] # 0xec4b (en: 'double horizontal en bond', google translation) - - "": [T: "dreifache horizontaler bond"] # 0xec4c (en: 'triple horizontal en bond', google translation) - - "": [T: "oben links rechteck"] # 0xec80 (en: 'top left rectangle', google translation) - - "": [T: "unten links rechteck"] # 0xec81 (en: 'bottom left rectangle', google translation) - - "": [T: "oben rechts rechteck"] # 0xec90 (en: 'top right rectangle', google translation) - - "": [T: "unten rechts rechteck"] # 0xec91 (en: 'bottom right rectangle', google translation) - - "": [T: "synthetische division ecke"] # 0xec92 (en: 'synthetic division corner', google translation) - - "": [T: "horizontale erweiterung der synthetischen teilung"] # 0xec93 (en: 'synthetic division horizontal extender', google translation) - - "": [T: "vertikale extender der synthetischen spaltung"] # 0xec94 (en: 'synthetic division vertical extender', google translation) - - "": [T: "verlängerung des linken deckenbodens"] # 0xec95 (en: 'left ceiling floor extender', google translation) - - "": [T: "rechte deckenboden erweiterung"] # 0xec96 (en: 'right ceiling floor extender', google translation) - - "": [T: "über klammer extender"] # 0xec97 (en: 'over bracket extender', google translation) - - "": [T: "vertikaler balken -erweiterung"] # 0xec98 (en: 'vertical bar extender', google translation) - - "": [T: "links doppelter vertikaler balken -extender"] # 0xec99 (en: 'left double vertical bar extender', google translation) - - "": [T: "horizontaler balken -erweiterung"] # 0xec9a (en: 'horizontal bar extender', google translation) - - "": [T: "unter der klammer extender"] # 0xec9c (en: 'under bracket extender', google translation) - - "": [T: "runter zeigen klammern nach rechts"] # 0xec9d (en: 'down pointing paren right', google translation) - - "": [T: "down -zeigen von klammern extender"] # 0xec9e (en: 'down pointing paren extender', google translation) - - "": [T: "down -zeigen von klammern übrig"] # 0xec9f (en: 'down pointing paren left', google translation) - - "": [T: "überzüge klammer -extender"] # 0xeca0 (en: 'up pointing brace extender', google translation) - - "": [T: "übergreifende klammern übrig"] # 0xeca1 (en: 'up pointing paren left', google translation) - - "": [T: "übergezeigte klammern"] # 0xeca2 (en: 'up pointing paren extender', google translation) - - "": [T: "übereinstimmung mit klammern richtig"] # 0xeca3 (en: 'up pointing paren right', google translation) - - "": [T: "down spointing acker extender"] # 0xeca4 (en: 'down pointing brace extender', google translation) - - "": [T: "planck konstant über zwei pi -bar"] # 0xed00 (en: 'planck constant over two pi bar', google translation) - - "": [T: "spiegel g"] # 0xed01 (en: 'mirror g', google translation) - - "": [T: "dotless j"] # 0xed02 (google translation) - - "": [T: "digamma"] # 0xed03 (google translation) - - "ϝ": [T: "digamma"] # 0x3dd - - "": [T: ""] # 0xed10 (en: 'd', google translation) - - "": [T: ""] # 0xed11 (en: 'e', google translation) - - "": [T: ""] # 0xed12 (en: 'i', google translation) - - "": [T: ""] # 0xed13 (en: 'j', google translation) - - "ⅅ": - - spell: "translate('.', 'ⅅ', 'DD')" # 0xed16, 0x2145 - -# The private use chars are from MathType - - "": [T: "integralschleife gegen den gegensatz zu contour -kontur"] # 0xee00 (en: 'anticlockwise contour integral loop', google translation) - - "": [T: "contour integral loop im uhrzeigersinn"] # 0xee01 (en: 'clockwise contour integral loop', google translation) - - "": [T: ""] # 0xee04 - - "": [T: ""] # 0xee05 - - "": [T: ""] # 0xee06 - - "": [T: ""] # 0xee07 - - "": [T: ""] # 0xee08 - - "": [T: ""] # 0xee09 - - "": [T: ""] # 0xee0a - - "": [T: ""] # 0xee0b - - "": [T: ""] # 0xee0c - - "": [T: "gemeinsame statusverzerrung"] # 0xee0d (en: 'joint status embellishment', google translation) - - "": [T: "gemeinsame statusverzerrung übrig"] # 0xee0e (en: 'joint status embellishment left', google translation) - - "": [T: "gemeinsame statusverzerrung recht"] # 0xee0f (en: 'joint status embellishment right', google translation) - - "": [T: "gemeinsamer statusverzerrungserweiterung"] # 0xee10 (en: 'joint status embellishment extender', google translation) - - "": [T: "integralschleife"] # 0xee11 (en: 'integral loop', google translation) - - "": [T: "integral loop double"] # 0xee12 (google translation) - - "": [T: "integral loop triple"] # 0xee13 (google translation) - - "": [T: "erweiterung integraler schleife doppel"] # 0xee15 (en: 'expanding integral loop double', google translation) - - "": [T: "erweiterung integraler schleife triple"] # 0xee16 (en: 'expanding integral loop triple', google translation) - - "": [T: "asymptotisch gleich dem akzent"] # 0xee17 (en: 'asymptotically equal to accent', google translation) - - "": [T: "gleicher zeichenakzent"] # 0xee18 (en: 'equal sign accent', google translation) - - "": [T: "vierfache prime"] # 0xee19 (en: 'quadruple prime', google translation) - - "": [T: "balkenakzent mit offenem kreis links"] # 0xee1a (en: 'bar accent with open circle left', google translation) - - "": [T: "barakzent mit geschlossenem kreis links"] # 0xee1b (en: 'bar accent with closed circle left', google translation) - - "": [T: "barakzent mit offenem kreis rechts"] # 0xee1c (en: 'bar accent with open circle right', google translation) - - "": [T: "barakzent mit over dot"] # 0xee1d (en: 'bar accent with over dot', google translation) - - "": [T: "barakzent mit under dot"] # 0xee1e (en: 'bar accent with under dot', google translation) - - "": [T: "barakzent mit double over dot"] # 0xee1f (en: 'bar accent with double over dot', google translation) - - "": [T: "barakzent mit double under dot"] # 0xee20 (en: 'bar accent with double under dot', google translation) - - "": [T: "barakzent mit pflege"] # 0xee21 (en: 'bar accent with caret', google translation) - - "": [T: "dick unter dem stabakzent"] # 0xee22 (en: 'thick under bar accent', google translation) - - "": [T: "barakzent mit geschlossenem kreis rechts"] # 0xee23 (en: 'bar accent with closed circle right', google translation) - - "": [T: "großer punkt oben"] # 0xee24 (en: 'large dot above', google translation) - - "": [T: "ausrichtung mark"] # 0xef00 (en: 'alignment mark', google translation) - - "": [T: ""] # 0xef01 - - "​": [T: ""] # 0x200b - - "": [T: ""] # 0xef02 - - " ": [T: ""] # 0x2009 - - "": [T: ""] # 0xef03 - - " ": [T: ""] # 0x205f - - "": [T: ""] # 0xef04 - - "": [T: ""] # 0xef05 - - "": [T: ""] # 0xef06 - - "": [T: ""] # 0xef07 - - "": [T: ""] # 0xef08 - - "": [T: ""] # 0xef09 - - "": [T: ""] # 0xef0a - - " ": [T: ""] # 0x200a - - "": [T: ""] # 0xef22 - - "": [T: ""] # 0xef23 - - "": [T: ""] # 0xef24 - - "": [T: ""] # 0xef29 - - "": [T: "fehlender begriff"] # 0xef41 (en: 'missing term', google translation) - - "": [T: "contour -integralpfeil im uhrzeigersinn links"] # 0xef80 (en: 'clockwise contour integral arrow on left', google translation) - - "": [T: "integral mit quadratisch"] # 0xef81 (en: 'integral with square', google translation) - - "": [T: "integral mit schrägstrich"] # 0xef82 (en: 'integral with slash', google translation) - - "": [T: "umgekehrter integral"] # 0xef83 (en: 'reversed integral', google translation) - - "": [T: "double null über double null"] # 0xef90 (en: 'double zero over double zero', google translation) - - "": [T: "null mit schrägstrich"] # 0xef91 (en: 'zero with slash', google translation) - - # fraktur chars in math alphabetic block and also MathType private use area - # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display - - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) - - T: "fraktur" # (google translation) - - spell: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" - - - "-": # 0xf000 - 0xf018 - - T: "fraktur" # (google translation) - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" - - - "𝔞-𝔷": # 0x1d51e - 0x1d537 - - T: "fraktur" # (google translation) - - spell: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf01a - 0xf033 - - T: "fraktur" # (google translation) - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝕬-𝖅": # 0x1D56C - 0x1D585 - - T: "fraktur mutig" # (en: 'fraktur bold', google translation) - - spell: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf040 - 0xf059 - - T: "fraktur mutig" # (en: 'fraktur bold', google translation) - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝖆-𝖟": # 0x1d586 - 0x1d59f - - T: "fraktur mutig" # (en: 'fraktur bold', google translation) - - spell: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf05a - 0xf073 - - T: "fraktur mutig" # (en: 'fraktur bold', google translation) - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area - # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display - - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) - - test: - if: "$Verbosity!='Terse'" - then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) - - spell: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf080 - 0xf098 - - test: - if: "$Verbosity!='Terse'" - then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝕒-𝕫": # 0x1d552 - 0x1d56b - - test: - if: "$Verbosity!='Terse'" - then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) - - spell: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf09a - 0xf0b3 - - test: - if: "$Verbosity!='Terse'" - then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - "𝟘-𝟡": # 0x1d7d8 - 0x1d7e1 - - test: - if: "$Verbosity!='Terse'" - then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) - - spell: "translate('.', '𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡', '0123456789')" - - "-": # 0xf0c0 - 0xf0c9 - - test: - if: "$Verbosity!='Terse'" - then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) - - spell: "translate('.', '', '0123456789')" - - - "": [T: "doppelt geschlagen nabla"] # 0xf0ca (en: 'double struck nabla', google translation) - - "": [T: "doppelt geschlagene euler konstant"] # 0xf0cb (en: 'double struck euler constant', google translation) - - # script chars in math alphabetic block and also MathType private use area - - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 - - T: "skript" # (en: 'script', google translation) - - spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf100 - 0xf119 - - T: "skript" # (en: 'script', google translation) - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf - - T: "skript" # (en: 'script', google translation) - - spell: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf11a - 0xf133 - - T: "skript" # (en: 'script', google translation) - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - # bold script chars in math alphabetic block and also MathType private use area - - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 - - T: "skript mutig" # (en: 'script bold', google translation) - - spell: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf140 - 0xf159 - - T: "skript mutig" # (en: 'script bold', google translation) - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝓪-𝔃": # 0x1d4ea - 0x1d503 - - T: "skript mutig" # (en: 'script bold', google translation) - - spell: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf15a - 0xf173 - - T: "skript mutig" # (en: 'script bold', google translation) - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf180 - 0xf199 - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "": # 0xf19a - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "großbuchstaben"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [T: "ligatur ae"] # (en: 'ligature ae', google translation) - - "": # 0xf19b - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "großbuchstaben"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [T: "scharfes s"] # (en: 'sharp s', google translation) - - "": # 0xf19c - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "großbuchstaben"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [T: "o mit schlaganfall"] # (en: 'o with stroke', google translation) - - # MathType only has a few of the cap Greek letters in PUA - - "": # 0xf201 - 0xf209 - - test: - if: "$Verbosity!='Terse'" - then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) - - spell: "translate('.', '', 'ΔΨΛΠΣΘΓΩΥ')" - - - "-": # 0xf220 - 0xf236 - - test: - if: "$Verbosity!='Terse'" - then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "": [T: "doppelt geschlagenes final sigma"] # 0xf237 (en: 'double struck final sigma', google translation) - - "": [T: "doppelte rho geschlagen"] # 0xf250 (en: 'double struck rho', google translation) - - "": [T: "doppelt geschlagen phi"] # 0xf251 (en: 'double struck phi', google translation) - - "𝐀-𝐙": # 0x1d400 - 0x1d419 - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf260 - 0xf279 - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝐚-𝐳": # 0x1d41a - 0x1d433 - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf27a - 0xf293 - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝐴-𝑍": # 0x1d434 - 0x1d44d - - spell: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf294 - 0xf2ad - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝑎-𝑧": # 0x1d44e - 0x1d467 - - spell: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf2ae - 0xf2c7 - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝑨-𝒁": # 0x1d468 - 0x1d481 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf2c8 - 0xf2e1 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝒂-𝒛": # 0x1d482 - 0x1d49b - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf2e2 - 0xf2fb - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 - - spell: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf300 - 0xf319 - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 - - spell: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf31a - 0xf333 - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf334 - 0xf34d - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝗮-𝘇": # 0x1d5ee - 0x1d607 - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf34e - 0xf367 - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - "𝘈-𝘡": # 0x1d608 - 0x1d621 - # - T: "italic" - - spell: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - "-": # 0xf368 - 0xf381 - # - T: "italic" - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝘢-𝘻": # 0x1d622 - 0x1d63b - # - T: "italic" - - spell: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf382 - 0xf39b - # - T: "italic" - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝘼-𝙕": # 0x1d63c - 0x1d655 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf39c - 0xf3b5 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝙖-𝙯": # 0x1d656 - 0x1d66f - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf3b6 - 0xf3cf - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝙰-𝚉": # 0x1d670 - 0x1d689 - - spell: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf3d0 - 0xf3e9 - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 - - spell: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf3ea - 0xf403 - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "": [T: "punktloses i"] # 0xf404 (google translation) - - "𝚤": [T: "punktloses i kursiv"] # 0x1d6a4 (en: 'dotless i', google: 'dotless i') - - "𝚥": [T: "punktloses j kursiv"] # 0x1d6a5 (en: 'dotless j', google: 'dotless j') - - - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 - - T: "punktloses j kursiv" # (en: 'bold', google: 'deutlich') - - spell: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf408 - 0xf420 - - T: "punktloses j kursiv" # (en: 'bold', google: 'deutlich') - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da - - T: "punktloses j kursiv" # (en: 'bold', google: 'deutlich') - - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf422 - 0xf43a - - T: "punktloses j kursiv" # (en: 'bold', google: 'deutlich') - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "": [T: "mutiger nabla"] # 0xf421 (en: 'bold nabla', google translation) - - "𝛁": [T: "mutiger nabla"] # 0x1d6c1 (en: 'bold nabla', google translation) - - - "𝛛𝛜𝛝𝛞𝛟𝛠𝛡": # 0x1D6DB - 0x1D6E1 - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠𝛡', '∂εθκφρπ')" - - - "": # 0xF43C - 0xF441 - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', '∂εθκφρπ')" - - - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa - # - T: "italic" - - spell: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf442 - 0xf45a - # - T: "italic" - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝛼-𝜔": # 0x1d6fc - 0x1d714 - # - T: "italic" - - spell: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf45c - 0xf474 - # - T: "italic" - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "": [T: "kursiv nabla"] # 0xf45b (en: 'italic nabla', google translation) - - "𝛻": [T: "kursiv nabla"] # 0x1d6fb (en: 'italic nabla', google translation) - - - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b - # - T: "italic" - - spell: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" - - - "": # 0xf475 - 0xf47b - # - T: "italic" - - spell: "translate('.', '', '∂εθκφρπ')" - - - "𝜜-𝜴": # 0x1d71c - 0x1d734 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf47c - 0xf494 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝜶-𝝎": # 0x1d736 - 0x1d74e - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf496 - 0xf4ae - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝝏𝝐𝝑𝝒𝝓𝝔𝝕": # 0x1d74f - 0x1d755 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔𝝕', '∂εθκφρπ')" - - - "": # 0xf422 - 0xf43a - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', '∂εθκφρπ')" - - - "𝜵": [T: "mutiges kursives nabla"] # 0x1d735 (en: 'bold italic nabla', google translation) - - "": [T: "mutiges kursives nabla"] # 0xf495 (en: 'bold italic nabla', google translation) - - - "𝝖-𝝮": # 0x1d756 - 0x1d76e - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - "-": # 0xf4b6 - 0xf4ce - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝝰-𝞈": # 0x1d770 - 0x1d788 - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf4d0 - 0xf4e8 - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝞉𝞊𝞋𝞌𝞍𝞎𝞏": # 0x1d789 - 0x1d78f - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎𝞏', '∂εθκφρπ')" - - - "": # 0xf4e9 - 0xf4ef - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', '∂εθκφρπ')" - - - "": [T: "mutiger nabla"] # 0xf4cf (en: 'bold nabla', google translation) - - "𝝯": [T: "mutiger nabla"] # 0x1d76f (en: 'bold nabla', google translation) - - - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf4f0 - 0xf508 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf50a - 0xf522 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝟃𝟄𝟅𝟆𝟇𝟈𝟉": # 0x1d7c3 - 0x1d7c9 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈𝟉', '∂εθκφρπ')" - - - "": # 0xf523 - 0xf529 - # - T: "bold italic" - - T: "deutlich" # (en: 'bold', google translation) - - spell: "translate('.', '', '∂εθκφρπ')" - - - "": [T: "mutiger nabla"] # 0xf509 (en: 'bold nabla', google translation) - - "𝞩": [T: "mutiger nabla"] # 0x1d7a9 (en: 'bold nabla', google translation) - - - "": [T: "fett null"] # 0xf52e (en: 'bold zero', google translation) - - "𝟎": [T: "fett null"] # 0x1d7ce (en: 'bold zero', google translation) - - "": [T: "fett eins"] # 0xf52f (en: 'bold one', google translation) - - "𝟏": [T: "fett eins"] # 0x1d7cf (en: 'bold one', google translation) - - "": [T: "fett zwei"] # 0xf530 (en: 'bold two', google translation) - - "𝟐": [T: "fett zwei"] # 0x1d7d0 (en: 'bold two', google translation) - - "": [T: "fett drei"] # 0xf531 (en: 'bold three', google translation) - - "𝟑": [T: "fett drei"] # 0x1d7d1 (en: 'bold three', google translation) - - "": [T: "fett vier"] # 0xf532 (en: 'bold four', google translation) - - "𝟒": [T: "fett vier"] # 0x1d7d2 (en: 'bold four', google translation) - - "": [T: "fett fünf"] # 0xf533 (en: 'bold five', google translation) - - "𝟓": [T: "fett fünf"] # 0x1d7d3 (en: 'bold five', google translation) - - "": [T: "fett sechs"] # 0xf534 (en: 'bold six', google translation) - - "𝟔": [T: "fett sechs"] # 0x1d7d4 (en: 'bold six', google translation) - - "": [T: "fett sieben"] # 0xf535 (en: 'bold seven', google translation) - - "𝟕": [T: "fett sieben"] # 0x1d7d5 (en: 'bold seven', google translation) - - "": [T: "fett acht"] # 0xf536 (en: 'bold eight', google translation) - - "𝟖": [T: "fett acht"] # 0x1d7d6 (en: 'bold eight', google translation) - - "": [T: "fett neun"] # 0xf537 (en: 'bold nine', google translation) - - "𝟗": [T: "fett neun"] # 0x1d7d7 (en: 'bold nine', google translation) - - "": [T: "null"] # 0xf542 (en: 'zero', google translation) - - "𝟢": [T: "null"] # 0x1d7e2 (en: 'zero', google translation) - - "": [T: "eins"] # 0xf543 (en: 'one', google translation) - - "𝟣": [T: "eins"] # 0x1d7e3 (en: 'one', google translation) - - "": [T: "zwei"] # 0xf544 (en: 'two', google translation) - - "𝟤": [T: "zwei"] # 0x1d7e4 (en: 'two', google translation) - - "": [T: "drei"] # 0xf545 (en: 'three', google translation) - - "𝟥": [T: "drei"] # 0x1d7e5 (en: 'three', google translation) - - "": [T: "vier"] # 0xf546 (en: 'four', google translation) - - "𝟦": [T: "vier"] # 0x1d7e6 (en: 'four', google translation) - - "": [T: "fünf"] # 0xf547 (en: 'five', google translation) - - "𝟧": [T: "fünf"] # 0x1d7e7 (en: 'five', google translation) - - "": [T: "sechs"] # 0xf548 (en: 'six', google translation) - - "𝟨": [T: "sechs"] # 0x1d7e8 (en: 'six', google translation) - - "": [T: "sieben"] # 0xf549 (en: 'seven', google translation) - - "𝟩": [T: "sieben"] # 0x1d7e9 (en: 'seven', google translation) - - "": [T: "acht"] # 0xf54a (en: 'eight', google translation) - - "𝟪": [T: "acht"] # 0x1d7ea (en: 'eight', google translation) - - "": [T: "neun"] # 0xf54b (en: 'nine', google translation) - - "𝟫": [T: "neun"] # 0x1d7eb (en: 'nine', google translation) - - "": [T: "fett null"] # 0xf54c (en: 'bold zero', google translation) - - "𝟬": [T: "fett null"] # 0x1d7ec (en: 'bold zero', google translation) - - "": [T: "fett eins"] # 0xf54d (en: 'bold one', google translation) - - "𝟭": [T: "fett eins"] # 0x1d7ed (en: 'bold one', google translation) - - "": [T: "fett zwei"] # 0xf54e (en: 'bold two', google translation) - - "𝟮": [T: "fett zwei"] # 0x1d7ee (en: 'bold two', google translation) - - "": [T: "fett drei"] # 0xf54f (en: 'bold three', google translation) - - "𝟯": [T: "fett drei"] # 0x1d7ef (en: 'bold three', google translation) - - "": [T: "fett vier"] # 0xf550 (en: 'bold four', google translation) - - "𝟰": [T: "fett vier"] # 0x1d7f0 (en: 'bold four', google translation) - - "": [T: "fett fünf"] # 0xf551 (en: 'bold five', google translation) - - "𝟱": [T: "fett fünf"] # 0x1d7f1 (en: 'bold five', google translation) - - "": [T: "fett sechs"] # 0xf552 (en: 'bold six', google translation) - - "𝟲": [T: "fett sechs"] # 0x1d7f2 (en: 'bold six', google translation) - - "": [T: "fett sieben"] # 0xf553 (en: 'bold seven', google translation) - - "𝟳": [T: "fett sieben"] # 0x1d7f3 (en: 'bold seven', google translation) - - "": [T: "fett acht"] # 0xf554 (en: 'bold eight', google translation) - - "𝟴": [T: "fett acht"] # 0x1d7f4 (en: 'bold eight', google translation) - - "": [T: "fett neun"] # 0xf555 (en: 'bold nine', google translation) - - "𝟵": [T: "fett neun"] # 0x1d7f5 (en: 'bold nine', google translation) - - "": [T: "null"] # 0xf556 (en: 'zero', google translation) - - "𝟶": [T: "null"] # 0x1d7f6 (en: 'zero', google translation) - - "": [T: "eins"] # 0xf557 (en: 'one', google translation) - - "𝟷": [T: "eins"] # 0x1d7f7 (en: 'one', google translation) - - "": [T: "zwei"] # 0xf558 (en: 'two', google translation) - - "𝟸": [T: "zwei"] # 0x1d7f8 (en: 'two', google translation) - - "": [T: "drei"] # 0xf559 (en: 'three', google translation) - - "𝟹": [T: "drei"] # 0x1d7f9 (en: 'three', google translation) - - "": [T: "vier"] # 0xf55a (en: 'four', google translation) - - "𝟺": [T: "vier"] # 0x1d7fa (en: 'four', google translation) - - "": [T: "fünf"] # 0xf55b (en: 'five', google translation) - - "𝟻": [T: "fünf"] # 0x1d7fb (en: 'five', google translation) - - "": [T: "sechs"] # 0xf55c (en: 'six', google translation) - - "𝟼": [T: "sechs"] # 0x1d7fc (en: 'six', google translation) - - "": [T: "sieben"] # 0xf55d (en: 'seven', google translation) - - "𝟽": [T: "sieben"] # 0x1d7fd (en: 'seven', google translation) - - "": [T: "acht"] # 0xf55e (en: 'eight', google translation) - - "𝟾": [T: "acht"] # 0x1d7fe (en: 'eight', google translation) - - "": [T: "neun"] # 0xf55f (en: 'nine', google translation) - - "𝟿": [T: "neun"] # 0x1d7ff (en: 'nine', google translation) - - "": [T: "unbekannter charakter"] # 0xf700 (en: 'unknown character', google translation) - - "": [T: "unter rechts und untere linke dreiecke"] # 0xf726 (en: 'lower right and lower left triangles', google translation) - - "": [T: "horizontaler ellipsis extender"] # 0xf72d (en: 'horizontal ellipsis extender', google translation) - - "": [T: "mittellinienhorizontale ellipsis extender"] # 0xf72e (en: 'midline horizontal ellipsis extender', google translation) - - "": [T: "radikaler erweiterung"] # 0xf8e5 (en: 'radical extender', google translation) - - "": [T: "vertikaler pfeiler extender"] # 0xf8e6 (en: 'vertical arrow extender', google translation) - - "": [T: "horizontaler pfeil extender"] # 0xf8e7 (en: 'horizontal arrow extender', google translation) - - "": [T: "registriertes zeichen sans serif"] # 0xf8e8 (en: 'registered sign sans serif', google translation) - - "": [T: "copyright zeichen sans serif"] # 0xf8e9 (en: 'copyright sign sans serif', google translation) - - "": [T: "markzeichen zeichen ohne serife"] # 0xf8ea (en: 'trade mark sign sans serif', google translation) - - "": [T: "links -klammern"] # 0xf8eb (en: 'left paren top', google translation) - - "": [T: "links -klammern extender"] # 0xf8ec (en: 'left paren extender', google translation) - - "": [T: "linke klammern"] # 0xf8ed (en: 'left paren bottom', google translation) - - "": [T: "linker halterung"] # 0xf8ee (en: 'left bracket top', google translation) - - "": [T: "linke klammer extender"] # 0xf8ef (en: 'left bracket extender', google translation) - - "": [T: "linke halterung unten"] # 0xf8f0 (en: 'left bracket bottom', google translation) - - "": [T: "linke geschweifte klammer oben"] # 0xf8f1 (en: 'left brace top', google translation) - - "": [T: "linke geschweifte klammer mitte"] # 0xf8f2 (en: 'left brace mid', google translation) - - "": [T: "linke geschweifte klammer unten"] # 0xf8f3 (en: 'left brace bottom', google translation) - - "": [T: "erweiterung der geschweiften klammer"] # 0xf8f4 (en: 'brace extender', google translation) - - "": [T: "integral-erweiterung"] # 0xf8f5 (en: 'integral extender', google translation) - - "": [T: "rechte klammer oben"] # 0xf8f6 (en: 'right paren top', google translation) - - "": [T: "rechte klammer-erweiterung"] # 0xf8f7 (en: 'right paren extender', google translation) - - "": [T: "rechte klammer unten"] # 0xf8f8 (en: 'right paren bottom', google translation) - - "": [T: "rechte eckige klammer oben"] # 0xf8f9 (en: 'right bracket top', google translation) - - "": [T: "rechte eckige klammer-erweiterung"] # 0xf8fa (en: 'right bracket extender', google translation) - - "": [T: "rechte eckige klammer unten"] # 0xf8fb (en: 'right bracket bottom', google translation) - - "": [T: "rechte geschweifte klammer oben"] # 0xf8fc (en: 'right brace top', google translation) - - "": [T: "rechte geschweifte klammer mitte"] # 0xf8fd (en: 'right brace mid', google translation) - - "": [T: "rechte geschweifte klammer unten"] # 0xf8fe (en: 'right brace bottom', google translation) - - "": [T: "Apple-Logo"] # 0xf8ff (google translation) - - "ff": [T: "ligatur ff"] # 0xfb00 (en: 'ff', google: 'ff') - - "fi": [T: "ligatur fi"] # 0xfb01 (en: 'fi', google: 'fi') - - "fl": [T: "ligatur fl"] # 0xfb02 (en: 'fl', google: 'fl') - - "ffi": [T: "ligatur ffi"] # 0xfb03 (en: 'ffi', google: 'ffi') - - "ffl": [T: "ligatur ffl"] # 0xfb04 (en: 'ffl', google: 'ffl') - - "ſt": [T: "ligatur ft"] # 0xfb05 (google translation) - - "st": [T: "ligatur st"] # 0xfb06 (google translation) - - "﬩": [T: "hebräischer buchstabe alternatives pluszeichen"] # 0xfb29 (en: 'hebrew letter alternative plus') - - "︠": [T: "ligatur linke halbe verzierung"] # 0xfe20 (en: 'ligature left half embellishment', google translation) - - "︡": [T: "ligatur rechte halbe verzierung"] # 0xfe21 (en: 'ligature right half embellishment', google translation) - - "︢": [T: "doppelte tilde linke halbe verzierung"] # 0xfe22 (en: 'double tilde left half embellishment', google translation) - - "︣": [T: "doppelte tilde rechte halbe verzierung"] # 0xfe23 (en: 'double tilde right half embellishment', google translation) - - "︤": [T: "makron linke halbe verzierung"] # 0xfe24 (en: 'macron left half embellishment', google translation) - - "︥": [T: "makron rechte halbe verzierung"] # 0xfe25 (en: 'macron right half embellishment', google translation) - - "︦": [T: "verbindende makron-verzierung"] # 0xfe26 (en: 'conjoining macron embellishment', google translation) - - "︵": [T: "Präsentationsformular für vertikale linke Klammer"] # 0xfe35 (en: 'over paren', MathPlayer: 'over paren', google: 'über klammern') - - "︶": [T: "Präsentationsformular für vertikale rechte Klammer"] # 0xfe36 (en: 'under paren', MathPlayer: 'under paren', google: 'unter klammern') - - "︷": [T: "Präsentationsformular für vertikale linke geschweifte Klammer"] # 0xfe37 (en: 'over brace', MathPlayer: 'over curly bracket', google: 'über klammer') - - "︸": [T: "Präsentationsformular für vertikale, recht geschweifte Klammer"] # 0xfe38 (en: 'under brace', MathPlayer: 'under curly bracket', google: 'unter klammer') - - "︿": [T: "Präsentationsformular für vertikale linke Winkelhalterung"] # 0xfe3f (en: 'over angle bracket', MathPlayer: 'over angle bracket', google: 'über winkelhalterung') - - "﹀": [T: "Präsentationsformular für vertikale rechtwinklige Halterung"] # 0xfe40 (en: 'under angle bracket', MathPlayer: 'under angle bracket', google: 'unter winkelklasse') - - "﹡": [T: "kleiner asterisk"] # 0xfe61 (en: 'small asterisk') - - "﹢": [T: "kleines plus"] # 0xfe62 (en: 'small plus') - - "﹣": [T: "kleines minus"] # 0xfe63 (en: 'small minus') - - "﹤": [T: "kleines kleiner als"] # 0xfe64 (en: 'small less than') - - "﹥": [T: "kleines größer als"] # 0xfe65 (en: 'small greater than') - - "﹦": [T: "kleines gleichheitszeichen"] # 0xfe66 (en: 'small equals') - - "﹨": [T: "kleiner umgekehrter Schrägstrich"] # 0xfe68 (en: 'integer divide', MathPlayer: 'integer divide', google: 'ganzzahl teilt') - - "<": [T: "kleiner als"] # 0xff1c (en: 'less than') - - "=": [T: "gleichheitszeichen"] # 0xff1d (en: 'equals') - - ">": [T: "größer als"] # 0xff1e (en: 'greater than') - - "\": [T: "rückwärts schrägstrich"] # 0xff3c (en: 'backslash') - - "^": [T: "hut"] # 0xff3e (en: 'hat') - - "|": [T: "vertikale linie"] # 0xff5c (en: 'vertical line') - - "~": [T: "tilde"] # 0xff5e (en: 'tilde') - - "¬": [T: "nicht"] # 0xffe2 (en: 'not') - - "←": [T: "linkspfeil"] # 0xffe9 (en: 'left arrow') - - "↑": [T: "aufwärtspfeil"] # 0xffea (en: 'up arrow') - - "→": [T: "rechtspfeil"] # 0xffeb (en: 'right arrow') - - "↓": [T: "abwärtspfeil"] # 0xffec (en: 'down arrow') - - "": [T: "unbekanntes oder fehlendes objekt"] # 0xfffc (en: 'unknown or missing object', google translation) - - "�": [T: "unbekanntes oder fehlendes Zeichen"] # 0xfffd (google: 'unbekannter oder fehlender charakter') +--- + + + - "¢": [T: "Cent"] # 0xa2 (en: 'cents') + - "£": [T: "Pfund"] # 0xa3 (en: 'pounds') + - "¤": [T: "währungszeichen"] # 0xa4 (en: 'currency sign') + - "¥": [T: "yen"] # 0xa5 + - "¦": [T: "gebrochene Linie"] # 0xa6 (en: 'broken bar') + - "§": [T: "Abschnitt"] # 0xa7 (en: 'section') + - "¨": [T: "diaeresis"] # 0xa8 (en: 'double dot') + - "©": [T: "Urheberrecht"] # 0xa9 (en: 'copyright') + - "ª": [T: "weibliches Ordnungszeichen"] # 0xaa (en: 'feminine ordinal indicator') + - "«": [T: "Nach links zeigendes doppeltes spitzes Anführungszeichen"] # 0xab (en: 'left-pointing double angle quote mark', MathPlayer: 'left-pointing double angle quote mark', google: 'links zeigende doppelwinkel-zitatmarke') + - "¯": # 0xaf + - test: + if: "ancestor::m:modified-variable and preceding-sibling::*[1][self::m:mi]" + then: [T: "bar"] # (google translation) + else: [T: "Überstrich"] # (en: 'line', MathPlayer: 'macron', google: 'linie') + - "²": [T: "Quadrat"] # 0xb2 (en: 'two', MathPlayer: 'zum Quadrat', google: 'zwei') + - "³": [T: "Kubik"] # 0xb3 (en: 'three', MathPlayer: 'hoch drei', google: 'drei') + - "µ": [T: "Mikrozeichen"] # 0xb5 (en: 'micro', MathPlayer: 'micro sign', google: 'mikro') + - "¹": [T: "hoch eins"] # 0xb9 (en: 'one', google: 'eins') + - "º": [T: "Männliches Ordnungszeichen"] # 0xb9 (en: 'masculine ordinal indicator') + - "¡": [T: "umgekehrtes ausrufezeichen"] # 0xa1 (en: 'inverted exclamation mark') + - "¶": [T: "absatzzeichen"] # 0xb6 (en: 'paragraph mark') + - "¿": [T: "umgekehrtes fragezeichen"] # 0xbf (en: 'inverted question mark') + + - "ʰ": [T: "modifikator kleines h"] # 0x2b0 (en: 'modifier small h', google translation) + - "ʱ": [T: "modifikator kleines h mit haken"] # 0x2b1 (en: 'modifier small h with hook', google translation) + - "ʲ": [T: "modifikator kleines j"] # 0x2b2 (en: 'modifier small j', google translation) + - "ʳ": [T: "modifikator kleines r"] # 0x2b3 (en: 'modifier small r', google translation) + - "ʴ": [T: "modifikator gedrehtes kleines r"] # 0x2b4 (en: 'modifier small turned r', google translation) + - "ʵ": [T: "modifikator gedrehtes kleines r mit haken"] # 0x2b5 (en: 'modifier small turned r with hook', google translation) + - "ʶ": # 0x2b6 + - T: "modifikator umgekehrtes kleines r" # (en: 'modifier small inverted', google translation) + - spell: "translate('R', 'R', 'R')" + + - "ʷ": [T: "modifikator kleines w"] # 0x2b7 (en: 'modifier small w', google translation) + - "ʸ": [T: "modifikator kleines y"] # 0x2b8 (en: 'modifier small y', google translation) + - "ʹ": [T: "Strich"] # 0x2b9 (en: 'modifier prime', google: 'modifikator prime') + - "ʺ": [T: "zwei Striche"] # 0x2ba (en: 'modifier double prime', google: 'modifikator double prime') + - "ʻ": [T: "modifikator gedrehtes komma"] # 0x2bb (en: 'modifier turned comma', google translation) + - "ʼ": [T: "modifikator apostroph"] # 0x2bc (en: 'modifier apostrophe', google translation) + - "ʽ": [T: "modifikator umgekehrtes komma"] # 0x2bd (en: 'modifier reversed comma', google translation) + - "ʾ": [T: "modifikator rechter halbring"] # 0x2be (en: 'modifier right half ring', google: 'modifikator rechts halbe ring') + - "ʿ": [T: "modifikator linker halbring"] # 0x2bf (en: 'modifier left half ring', google: 'modifikator verließ den halben ring') + - "ˀ": [T: "modifikator Knacklaut"] # 0x2c0 (en: 'modifier glottal stop', google translation) + - "ˁ": [T: "modifikator umgekehrter Knacklaut"] # 0x2c1 (en: 'modifier reversed glottal stop', google translation) + - "˂": [T: "modifikator pfeilspitze nach links"] # 0x2c2 (en: 'modifier left arrowhead', google translation) + - "˃": [T: "modifikator pfeilspitze nach rechts"] # 0x2c3 (en: 'modifier right arrowhead', google translation) + - "˄": [T: "modifikator pfeilspitze nach oben"] # 0x2c4 (en: 'modifier up arrowhead', google translation) + - "˅": [T: "modifikator pfeilspitze nach unten"] # 0x2c5 (en: 'modifier down arrowhead', google translation) + - "ˆ": [T: "modifikator zirkumflexakzent"] # 0x2c6 (en: 'modifier circumflex accent', google: 'modifikator circumflex akzent') + - "ˇ": [T: "caron"] # 0x2c7 + - "ˈ": [T: "modifikator vertikaler strich"] # 0x2c8 (en: 'modifier vertical line', google translation) + - "ˉ": [T: "modifikator makron"] # 0x2c9 (en: 'modifier macron', google translation) + - "ˊ": [T: "modifikator akutakzent"] # 0x2ca (en: 'modifier acute accent', google translation) + - "ˋ": [T: "modifikator gravisakzent"] # 0x2cb (en: 'modifier grave accent', google translation) + - "ˌ": [T: "modifikator tiefer vertikaler strich"] # 0x2cc (en: 'modifier low vertical line', google translation) + - "ˍ": [T: "modifikator tiefes makron"] # 0x2cd (en: 'modifier low macron', google translation) + - "ˎ": [T: "modifikator tiefer gravisakzent"] # 0x2ce (en: 'modifier low grave accent', google translation) + - "ˏ": [T: "modifikator tiefer akutakzent"] # 0x2cf (en: 'modifier low acute accent', google translation) + - "ː": [T: "modifikator dreieckiger doppelpunkt"] # 0x2d0 (en: 'modifier triangular colon', google translation) + - "ˑ": [T: "modifikator halb dreieckiger doppelpunkt"] # 0x2d1 (en: 'modifier half triangular colon', google translation) + - "˒": [T: "modifikator zentrierter rechter halbring"] # 0x2d2 (en: 'modifier centered right half ring', google translation) + - "˓": [T: "modifikator zentrierter linker halbring"] # 0x2d3 (en: 'modifier centered left half ring', google translation) + - "˔": [T: "modifikator nach oben gerichteter strich"] # 0x2d4 (en: 'modifier up tadck', google translation) + - "˕": [T: "modifikator nach unten gerichteter strich"] # 0x2d5 (en: 'modifier down tack', google translation) + - "˖": [T: "modifikator pluszeichen"] # 0x2d6 (en: 'modifier plus sign', google translation) + - "˗": [T: "modifikator minuszeichen"] # 0x2d7 (en: 'modifier minus sign', google translation) + - "˘": [T: "kurz"] # 0x2d8 (SRE: 'Breve') + - "˙": [T: "Punkt oberhalb"] # 0x2d9 (en: 'dot', MathPlayer: 'Punkt darüber', google: 'punkt') + - "˚": [T: "Ring oberhalb"] # 0x2da (en: 'ring above', MathPlayer: 'Ring darüber', google: 'oben läuten') + - "˛": [T: "ogonek"] # 0x2db (SRE: 'Ogonek') + - "˜": [T: "Tilde"] # 0x2dc (en: 'small tilde') + - "˝": [T: "Doppelakutakzent"] # 0x2dd (en: 'double acute accent', MathPlayer: 'double acute accent', google: 'doppelter akuter akzent') + - "˞": [T: "modifikator rhotischer haken"] # 0x2de (en: 'modifier rhotic hook', google translation) + - "˟": [T: "modifikator kreuzakzent"] # 0x2df (en: 'modifier cross accent', google translation) + - "ˠ": [T: "modifikator kleines gamma"] # 0x2e0 (en: 'modifier small gamma', google translation) + - "ˡ": [T: "modifikator kleines l"] # 0x2e1 (en: 'modifier small l', google translation) + - "ˢ": [T: "modifikator kleines s"] # 0x2e2 (en: 'modifier small s', google translation) + - "ˣ": [T: "modifikator kleines x"] # 0x2e3 (en: 'modifier small x', google translation) + - "ˤ": [T: "modifikator kleiner umgekehrter glottalverschluss"] # 0x2e4 (en: 'modifier small reversed glottal stop', google translation) + - "˥": [T: "modifikator extra hoher tonbalken"] # 0x2e5 (en: 'modifier extra-high tone bar', google translation) + - "˦": [T: "modifikator hoher tonbalken"] # 0x2e6 (en: 'modifier high tone bar', google translation) + - "˧": [T: "modifikator mittlerer tonbalken"] # 0x2e7 (en: 'modifier mid tone bar', google translation) + - "˨": [T: "modifikator niedrige tonbalken"] # 0x2e8 (en: 'modifier low tone bar', google translation) + - "˩": [T: "modifikator extra niedrige tonbalken"] # 0x2e9 (en: 'modifier extra-low tone bar', google translation) + - "˪": [T: "modifikator yin-abgangstonmarke"] # 0x2ea (en: 'modifier yin departing tone mark', google translation) + - "˫": [T: "modifikator yang-abgangstonmarke"] # 0x2eb (en: 'modifier yang departing tone mark', google translation) + - "ˬ": [T: "modifikator stimmgebung"] # 0x2ec (en: 'modifier voicing', google translation) + - "˭": [T: "modifikator nicht-aspiriert"] # 0x2ed (en: 'modifier unaspirated', google translation) + - "ˮ": [T: "modifikator doppelapostroph"] # 0x2ee (en: 'modifier double apostrophe', google translation) + - "˯": [T: "modifikator niedrige pfeilspitze nach unten gerichtet"] # 0x2ef (en: 'modifier low down arrowhead', google translation) + - "˰": [T: "modifikator niedrige pfeilspitze aufwärts gerichtet"] # 0x2f0 (en: 'modifier low up arrowhead', google translation) + - "˱": [T: "modifikator niedrige pfeilspitze nach links gerichtet"] # 0x2f1 (en: 'modifier low left arrowhead', google translation) + - "˲": [T: "modifikator niedrige pfeilspitze nach rechts gerichtet"] # 0x2f2 (en: 'modifier low right arrowhead', google translation) + - "˳": [T: "modifikator niedriger ring"] # 0x2f3 (en: 'modifier low ring', google translation) + - "˴": [T: "modifikator mittlerer gravisakzent"] # 0x2f4 (en: 'modifier middle grave accent', google translation) + - "˵": [T: "modifikator mittlerer doppelter gravisakzent"] # 0x2f5 (en: 'modifier middle double grave accent', google translation) + - "˶": [T: "modifikator mittlerer doppelter akutakzent"] # 0x2f6 (en: 'modifier middle double acute accent', google translation) + - "˷": [T: "modifikator niedrige tilde"] # 0x2f7 (en: 'modifier low tilde', google translation) + - "˸": [T: "modifikator hoch gestellter Doppelpunkt"] # 0x2f8 (en: 'modifier raised colon', google translation) + - "˹": [T: "modifikator beginn hoher ton"] # 0x2f9 (en: 'modifier begin high tone', google translation) + - "˺": [T: "modifikator endet mit hohem ton"] # 0x2fa (en: 'modifier end high tone', google translation) + - "˻": [T: "modifikator beginn tiefer ton"] # 0x2fb (en: 'modifier begin low tone', google translation) + - "˼": [T: "modifikator ende tiefer ton"] # 0x2fc (en: 'modifier end low tone', google translation) + - "˽": [T: "modifikatorregal"] # 0x2fd (en: 'modifier shelf', google translation) + - "˾": [T: "modifikator offenes regal"] # 0x2fe (en: 'modifier open shelf', google translation) + - "˿": [T: "modifikator niedriger links pfeil"] # 0x2ff (en: 'modifier low left arrow', google translation) + - "̈": [T: "zwei Punkte oberhalb"] # 0x308 (en: 'diaeresis embellishment', google: 'diaeresis -verzierung') + - "̉": [T: "haken über verzierung"] # 0x309 (en: 'hook above embellishment', google translation) + - "̊": [T: "ring über verzierung"] # 0x30a (en: 'ring above embellishment', google: 'ring über verzierung') + - "̋": [T: "doppelte akutakzentverzierung"] # 0x30b (en: 'double acute accent embellishment', google translation) + - "̌": [T: "kombinierendes Caron"] # 0x30c (en: 'check', google: 'überprüfen') + - "̍": [T: "vertikale linie über verzierung"] # 0x30d (en: 'vertical line above embellishment', google translation) + - "̎": [T: "doppelte vertikale linie über verzierung"] # 0x30e (en: 'double vertical line above embellishment', google translation) + - "̏": [T: "doppelgravisakzentverzierung"] # 0x30f (en: 'double grave accent embellishment', google translation) + - "̐": [T: "candrabindu-verzierung"] # 0x310 (en: 'candrabindu embellishment', google translation) + - "̑": [T: "umgekehrtes breve-verzierung"] # 0x311 (en: 'inverted breve embellishment', google: 'umgekehrte breve -verzierung') + - "̒": [T: "gedrehtes komma über verzierung"] # 0x312 (en: 'turned comma above embellishment', google translation) + - "̓": [T: "komma über verzierung"] # 0x313 (en: 'comma above embellishment', google translation) + - "̔": [T: "umgekehrtes komma über verzierung"] # 0x314 (en: 'reversed comma above embellishment', google translation) + - "̕": [T: "komma über der rechten verzierung"] # 0x315 (en: 'comma above right embellishment', google translation) + - "̖": [T: "gravisakzent unter der verzierung"] # 0x316 (en: 'grave accent below embellishment', google translation) + - "̗": [T: "akutakzent unter der verzierung"] # 0x317 (en: 'acute accent below embellishment', google translation) + - "̘": [T: "linke klammer unter verzierung"] # 0x318 (en: 'left tack below embellishment', google translation) + - "̙": [T: "rechte klammer unter verzierung"] # 0x319 (en: 'right tack below embellishment', google translation) + - "̚": [T: "linker winkel über verzierung"] # 0x31a (en: 'left angle above embellishment', google translation) + - "̛": [T: "hornverzierung"] # 0x31b (en: 'horn embellishment', google translation) + - "̜": [T: "halber ring links unter der verzierung"] # 0x31c (en: 'left half ring below embellishment', google translation) + - "̝": [T: "aufwärtsklammer unter verzierung"] # 0x31d (en: 'up tack below embellishment', google translation) + - "̞": [T: "abwärtsklammer unter der verzierung"] # 0x31e (en: 'down tack below embellishment', google translation) + - "̟": [T: "pluszeichen unter der verzierung"] # 0x31f (en: 'plus sign below embellishment', google translation) + - "̠": [T: "minuszeichen unter der verzierung"] # 0x320 (en: 'minus sign below embellishment', google translation) + - "̡": [T: "palatalisierter haken unter der verzierung"] # 0x321 (en: 'palatalized hook below embellishment', google translation) + - "̢": [T: "retroflex-haken unter der verzierung"] # 0x322 (en: 'retroflex hook below embellishment', google translation) + - "̣": [T: "punkt unter der verzierung"] # 0x323 (google: 'punkt unter der verzierung') + - "̤": [T: "zwei punkte unter der verzierung"] # 0x324 (en: 'diaeresis below embellishment', google: 'diaerese unter der verzierung') + - "̥": [T: "ring unter der verzierung"] # 0x325 (en: 'ring below embellishment', google translation) + - "̦": [T: "komma unter der verzierung"] # 0x326 (en: 'comma below embellishment', google translation) + - "̧": [T: "cedillaverzierung"] # 0x327 (google: 'cedilla -verzierung') + - "̨": [T: "ogonek-verzierung"] # 0x328 (en: 'ogonek embellishment', google translation) + - "̩": [T: "vertikale linie unter der verzierung"] # 0x329 (en: 'vertical line below embellishment', google translation) + - "̪": [T: "brücke unterhalb der verzierung"] # 0x32a (en: 'bridge below embellishment', google translation) + - "̫": [T: "umgekehrter doppelbogen unter der verzierung"] # 0x32b (en: 'inverted double arch below embellishment', google translation) + - "̬": [T: "caron unter der verzierung"] # 0x32c (en: 'caron below embellishment', google translation) + - "̭": [T: "zirkumflexakzent unter der verzierung"] # 0x32d (en: 'circumflex accent below embellishment', google translation) + - "̮": [T: "breve unter der verzierung"] # 0x32e (en: 'breve below embellishment', google: 'breve unter der verzierung') + - "̯": [T: "umgekehrtes breve unter der verzierung"] # 0x32f (en: 'inverted breve below embellishment', google translation) + - "̰": [T: "tilde unter der verzierung"] # 0x330 (google: 'tilde unter der verzierung') + - "̱": [T: "makron unter der verzierung"] # 0x331 (google: 'macron unter der verzierung') + - "̲": [T: "unterlinie"] # 0x332 (en: 'low line embellishment', google: 'niedriglinienverzerrung') + - "̳": [T: "doppelte unterlinie"] # 0x333 (en: 'double low line embellishment', google translation) + - "̴": [T: "tilde-überlagerungsverzierung"] # 0x334 (en: 'tilde overlay embellishment', google translation) + - "̵": [T: "kurzstrich-überlagerungsverzierung"] # 0x335 (en: 'short stroke overlay embellishment', google translation) + - "̶": [T: "langstrich-überlagerungsverzierung"] # 0x336 (en: 'long stroke overlay embellishment', google translation) + - "̷": [T: "kurzer solidus-überlagerungsverzierung"] # 0x337 (en: 'short solidus overlay embellishment', google translation) + - "̸": [T: "langer solidus-überlagerungsverzierung"] # 0x338 (en: 'long solidus overlay embellishment', google: 'long solidus overlay -verzierung') + - "̹": [T: "halber ring rechts unter der verzierung"] # 0x339 (en: 'right half ring below embellishment', google translation) + - "̺": [T: "umgekehrte brücke unter der verzierung"] # 0x33a (en: 'inverted bridge below embellishment', google translation) + - "̻": [T: "quadrat unter der verzierung"] # 0x33b (en: 'square below embellishment', google translation) + - "̼": [T: "möwe unter der verzierung"] # 0x33c (en: 'seagull below embellishment', google translation) + - "̽": [T: "x über verzierung"] # 0x33d (en: 'x above embellishment', google translation) + - "̾": [T: "vertikale tilde verzierung"] # 0x33e (en: 'vertical tilde embellishment', google translation) + - "̿": [T: "doppelte überstrichverzierung"] # 0x33f (en: 'double overline embellishment', google translation) + - "̀": [T: "gravistonmarkenverzierung"] # 0x340 (en: 'grave tone mark embellishment', google translation) + - "́": [T: "akute tonmarkenverzierung"] # 0x341 (en: 'acute tone mark embellishment', google translation) + - "͆": [T: "brücke oben"] # 0x346 (en: 'bridge above') + + - "ΪΫϏ": # 0x3aa, 0x3ab, 0x3cf + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "großbuchstaben"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [spell: "translate('.', 'ΪΫϏ', 'ιυϗ')"] + - T: "mit dialytika" # (en: 'with dialytika', google translation) + - "ϊ": [T: "iota mit dialytika"] # 0x3ca (en: 'iota with dialytika', google translation) + - "ϋ": [T: "upsilon mit dialytika"] # 0x3cb (en: 'upsilon with dialytika', google translation) + - "ό": [T: "omicron mit tonos"] # 0x3cc (en: 'omicron with tonos', google translation) + - "ύ": [T: "upsilon mit tonos"] # 0x3cd (en: 'upsilon with tonos', google translation) + - "ώ": [T: "omega mit tonos"] # 0x3ce (en: 'omega with tonos', google translation) + - "ϐ": [T: "beta"] # 0x3d0 (MathPlayer: 'greek beta') + - "ϑ": [T: "Variante Theta"] # 0x3d1 (en: 'theta', google: 'theta') + - "ϒ": [T: "Variante Upsilon mit Haken"] # 0x3d2 (en: 'upsilon with hook', google: 'upsilon mit haken') + - "ϓ": [T: "Upsilon mit Akutakzent und Haken"] # 0x3d3 (en: 'upsilon with acute and hook', google translation) + - "ϔ": [T: "Upsilon mit Diaeresis und Haken"] # 0x3d4 (en: 'upsilon with diaeresis and hook', google translation) + - "ϗ": [T: "kai"] # 0x3d7 (MathPlayer: 'variant kai') + - "Ϙ": [T: "großes archaisches koppa"] # 0x3d8 (en: 'cap archaic koppa') + - "ϙ": [T: "archaisches koppa"] # 0x3d9 (en: 'archaic koppa') + - "А-Я": # 0x410 - 0x42f + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "großbuchstaben"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [spell: "translate('.', 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ', 'абвгдежзийклмнопрстуфхцчшщъыьэюя')"] + - "а": [T: "a"] # 0x430 (google: 'а') + - "б": [T: "be"] # 0x431 (google: 'sei') + - "в": [T: "ve"] # 0x432 + - "г": [T: "ghe"] # 0x433 + - "д": [T: "de"] # 0x434 + - "е": [T: "ie"] # 0x435 (google: 'dh') + - "ж": [T: "zhe"] # 0x436 + - "з": [T: "ze"] # 0x437 + - "и": [T: "i"] # 0x438 (google: 'и') + - "й": [T: "kurzes i"] # 0x439 (google: 'kurz ich') + - "к": [T: "ka"] # 0x43a + - "л": [T: "el"] # 0x43b + - "м": [T: "em"] # 0x43c + - "н": [T: "en"] # 0x43d + - "о": [T: "o"] # 0x43e (google: 'о') + - "п": [T: "pe"] # 0x43f (google: 'sport') + - "р": [T: "er"] # 0x440 (google: 'ähm') + - "с": [T: "es"] # 0x441 + - "т": [T: "te"] # 0x442 + - "у": [T: "u"] # 0x443 (google: 'у') + - "ф": [T: "ef"] # 0x444 + - "х": [T: "ha"] # 0x445 + - "ц": [T: "tse"] # 0x446 + - "ч": [T: "che"] # 0x447 + - "ш": [T: "sha"] # 0x448 + - "щ": [T: "shcha"] # 0x449 + - "ъ": [T: "hartes Zeichen"] # 0x44a (google: 'hartes zeichen') + - "ы": [T: "yeru"] # 0x44b + - "ь": [T: "weiches Zeichen"] # 0x44c (google: 'weiches zeichen') + - "э": [T: "e"] # 0x44d (google: 'э') + - "ю": [T: "yu"] # 0x44e + - "я": [T: "ya"] # 0x44f + - "؆": [T: "arabisch-indische kubikwurzel"] # 0x606 (en: 'Arabic-Indic cube root') + - "؇": [T: "arabisch-indische vierte wurzel"] # 0x607 (en: 'Arabic-Indic fourth root') + - "؈": [T: "arabischer strahl"] # 0x608 (en: 'Arabic ray') + - "‐": [T: "Bindestrich"] # 0x2010 (en: 'hyphen', MathPlayer: 'minus', google: 'bindestrich') + - "‑": [T: "nicht-trennender Bindestrich"] # 0x2011 (en: 'hyphen', google: 'bindestrich') + - "‒": [T: "Figurenstrich"] # 0x2012 (en: 'figure dash', google: 'figur dash') + - "†": [T: "Dolch"] # 0x2020 (en: 'dagger', MathPlayer: 'dagger', google: 'dolch') + - "‡": [T: "Doppelter Dolch"] # 0x2021 (en: 'double dagger', MathPlayer: 'double dagger', google: 'doppeldolch') + + - " - ": [T: " "] # 0x2000 - 0x2007 + + - "•": # 0x2022 + - test: + if: "@data-chem-formula-op" + then: [T: "punkt"] # (en: 'dot', google translation) + else: [T: "Kugel"] # (en: 'bullet', MathPlayer: 'bullet', google: 'kugel') + + - "‰": [T: "promille"] # 0x2030 (en: 'per mille', MathPlayer: 'per mille sign', google: 'pro mille') + - "‱": [T: "pro Zehntausend"] # 0x2031 (en: 'per ten thousand', MathPlayer: 'per ten thousand sign', google: 'pro zehntausend') + - "‵": [T: "umgekehrter Strich"] # 0x2035 (en: 'reversed prime', MathPlayer: 'reversed prime', google: 'umgekehrt prime') + - "‶": [T: "zwei umgekehrte Striche"] # 0x2036 (en: 'reversed double prime', MathPlayer: 'reversed double prime', google: 'umgekehrt doppelte prime') + - "‷": [T: "drei umgekehrte Striche"] # 0x2037 (en: 'reversed triple prime', google: 'triple prime umgekehrt') + - "‸": [T: "Caret"] # 0x2038 (en: 'to the', google: 'zum') + - "‹": [T: "einfaches linkes Anführungszeichen"] # 0x2039 (en: 'single left pointing angle quote mark', MathPlayer: 'single left pointing angle quote mark', google: 'single linke zitat angle -zitat marke') + - "›": [T: "einfaches rechtes Anführungszeichen"] # 0x203a (en: 'single right pointing angle quote mark', MathPlayer: 'single right pointing angle quote mark', google: 'single rechts zeigewinkel zitatmarke') + - "‼": [T: "Doppelausrufezeichen"] # 0x203c (en: 'double factorial', google: 'doppelfaktor') + - "⁄": [T: "Schrägstrich"] # 0x2044 (en: 'divided by', MathPlayer: 'slash', google: 'geteilt durch') + - "⁅": [T: "Linke eckige Klammer mit Feder"] # 0x2045 (en: 'left square bracket with quill', google: 'linksquadratische klammer mit feder') + - "⁆": [T: "Rechte eckige Klammer mit Feder"] # 0x2046 (en: 'right square bracket with quill', google: 'rechte quadratische halterung mit feder') + - "※": [T: "referenzzeichen"] # 0x203b (en: 'reference mark') + - "‿": [T: "verbindungsbogen unten"] # 0x203f (en: 'under tie') + - "⁀": [T: "verbindungsbogen"] # 0x2040 (en: 'tie') + - "⁎": [T: "tiefer asterisk"] # 0x204e (en: 'low asterisk') + - "⁏": [T: "umgekehrtes semikolon"] # 0x204f (en: 'reversed semicolon') + - "⁐": [T: "schließen"] # 0x2050 (en: 'close up') + - "⁑": [T: "zwei vertikale asterisken"] # 0x2051 (en: 'two vertical asterisks') + - "⁒": [T: "kommerzielles minuszeichen"] # 0x2052 (en: 'commercial minus sign') + - "⁗": [T: "vier Striche"] # 0x2057 (en: 'quadruple prime', MathPlayer: 'quadruple prime', google: 'vierfache prime') + - "⁠": [T: ""] # 0x2060 + - "‵": [T: "umgekehrter Strich"] # 0x2035 (en: 'reversed prime', MathPlayer: 'reversed prime', google: 'umgekehrt prime') + - "‶": [T: "zwei umgekehrte Striche"] # 0x2036 (en: 'reversed double prime', MathPlayer: 'reversed double prime', google: 'umgekehrt doppelte prime') + - "‷": [T: "drei umgekehrte Striche"] # 0x2037 (en: 'reversed triple prime', google: 'triple prime umgekehrt') + - "⁰": [T: "zur nullten Potenz"] # 0x2070 (en: 'to the zeroth power', google translation) + - "ⁱ": [T: "zur i-ten Potenz"] # 0x2071 (en: 'to the ith power', google: 'zur eihth -macht') + - "⁴": [T: "zur vierten Potenz"] # 0x2074 (en: 'to the fourth power', google translation) + - "⁵": [T: "zur fünften Potenz"] # 0x2075 (en: 'to the fifth power', google translation) + - "⁶": [T: "zur sechsten Potenz"] # 0x2076 (en: 'to the sixth power', google translation) + - "⁷": [T: "zur siebten Potenz"] # 0x2077 (en: 'to the seventh power', google translation) + - "⁸": [T: "zur achten Potenz"] # 0x2078 (en: 'to the eighth power', google translation) + - "⁹": [T: "zur neunten Potenz"] # 0x2079 (en: 'to the ninth power', google translation) + - "⁺": [T: "Hochgestelltes Pluszeichen"] # 0x207a (en: 'superscript plus sign', google: 'superscript plus zeichen') + - "⁻": [T: "Hochgestelltes Minus"] # 0x207b (en: 'superscript minus', google: 'superscript minus') + - "⁼": [T: "Hochgestelltes Gleichheitszeichen"] # 0x207c (en: 'superscript equals sign', google: 'superscript ist gleichzeichen') + - "⁽": [T: "Hochgestellte linke Klammer"] # 0x207d (en: 'superscript left parenthesis', google: 'superscript links klammern') + - "⁾": [T: "Hochgestellte rechte Klammer"] # 0x207e (en: 'superscript right parenthesis', google: 'superscript right parenthesisthese') + - "ⁿ": [T: "hochgestelltes n"] # 0x207f (en: 'to the ennth power', google: 'zur ahnten kraft') + - "₀": [T: "tiefgestellte null"] # 0x2080 (en: 'sub zero', google translation) + - "₁": [T: "tiefgestellte eins"] # 0x2081 (en: 'sub one', google translation) + - "₂": [T: "tiefgestellte zwei"] # 0x2082 (en: 'sub two', google translation) + - "₃": [T: "tiefgestellte drei"] # 0x2083 (en: 'sub three', google translation) + - "₄": [T: "tiefgestellte vier"] # 0x2084 (en: 'sub four', google translation) + - "₅": [T: "tiefgestellte fünf"] # 0x2085 (en: 'sub five', google translation) + - "₆": [T: "tiefgestellte sechs"] # 0x2086 (en: 'sub six', google translation) + - "₇": [T: "tiefgestellte sieben"] # 0x2087 (en: 'sub seven', google translation) + - "₈": [T: "tiefgestellte acht"] # 0x2088 (en: 'sub eight', google translation) + - "₉": [T: "tiefgestellte neun"] # 0x2089 (google translation) + - "₊": [T: "Tiefgestelltes Pluszeichen"] # 0x208a (en: 'subscript plus sign', google: 'index plus -zeichen') + - "₋": [T: "Tiefgestelltes Minuszeichen"] # 0x208b (en: 'subscript minus sign', google: 'index minuszeichen') + - "₌": [T: "Tiefgestelltes Gleichheitszeichen"] # 0x208c (en: 'subscript equals sign', google: 'index gleicher bestandteil des zeichens') + - "₍": [T: "Tiefgestellte linke Klammer"] # 0x208d (en: 'subscript left parenthesis', google: 'untergangsklammern von klammern') + - "₎": [T: "Tiefgestellte rechte Klammer"] # 0x208e (en: 'subscript right parenthesis', google: 'index right parenthesisthese') + - "ₐ": [T: "tiefgestelltes a"] # 0x2090 (en: 'sub A', google: 'sub a') + - "ₑ": [T: "tiefgestelltes e"] # 0x2091 (en: 'sub E', google: 'sub e') + - "ₒ": [T: "tiefgestelltes o"] # 0x2092 (en: 'sub O', google: 'sub o') + - "ₓ": [T: "tiefgestelltes x"] # 0x2093 (en: 'sub X', google: 'sub x') + - "ₕ": [T: "tiefgestelltes h"] # 0x2095 (en: 'sub H', google: 'sub h') + - "ₖ": [T: "tiefgestelltes k"] # 0x2096 (en: 'sub K', google: 'subk') + - "ₗ": [T: "tiefgestelltes l"] # 0x2097 (en: 'sub L', google: 'sub l') + - "ₘ": [T: "tiefgestelltes m"] # 0x2098 (en: 'sub M', google: 'sub m') + - "ₙ": [T: "tiefgestelltes n"] # 0x2099 (en: 'sub N', google: 'sub n') + - "ₚ": [T: "tiefgestelltes p"] # 0x209a (en: 'sub P', google: 'sub p') + - "ₛ": [T: "tiefgestelltes s"] # 0x209b (en: 'sub S', google: 'sub s') + - "ₜ": [T: "tiefgestelltes t"] # 0x209c (en: 'sub T', google: 'sub t') + - "₠": [T: "europäische Währungseinheiten"] # 0x20a0 (en: 'european currenty units', google translation) + - "₡": [T: "Colón"] # 0x20a1 (google: 'kolons') + - "₢": [T: "cruzeiro"] # 0x20a2 + - "₣": [T: "franc"] # 0x20a3 + - "₤": [T: "lira"] # 0x20a4 + - "₥": [T: "mills"] # 0x20a5 (google: 'mühlen') + - "₦": [T: "naira"] # 0x20a6 + - "₧": [T: "peseta"] # 0x20a7 + - "₨": [T: "Rupien"] # 0x20a8 (google: 'rupien') + - "₩": [T: "won"] # 0x20a9 (google: 'gewonnen') + - "₪": [T: "neue Schekel"] # 0x20aa (google: 'neue sheqels') + - "₫": [T: "dong"] # 0x20ab + - "€": [T: "euros"] # 0x20ac (google: 'euro') + - "₭": [T: "kip"] # 0x20ad (google: 'pennen') + - "₮": [T: "tugrik"] # 0x20ae + - "₯": [T: "drachma"] # 0x20af (google: 'drachme') + - "₰": [T: "Deutscher Pfennig"] # 0x20b0 (google: 'deutsche pennys') + - "₱": [T: "pesos"] # 0x20b1 + - "₲": [T: "guaranis"] # 0x20b2 + - "₳": [T: "australs"] # 0x20b3 (google: 'österrale') + - "₴": [T: "hryvnias"] # 0x20b4 + - "₵": [T: "cedis"] # 0x20b5 + - "₶": [T: "livre tournois"] # 0x20b6 (google translation) + - "₷": [T: "spesmilos"] # 0x20b7 (google translation) + - "₸": [T: "tenges"] # 0x20b8 (google translation) + - "₹": [T: "indische rupien"] # 0x20b9 (en: 'indian rupees', google translation) + - "₺": [T: "türkische liras"] # 0x20ba (en: 'turkish liras', google translation) + - "⃐": [T: "linke Harpune über Verzierung"] # 0x20d0 (en: 'left harpoon above embellishment', google: 'links harpoon über verzierung') + - "⃑": [T: "rechte Harpune über Verzierung"] # 0x20d1 (en: 'right harpoon above embellishment', google: 'rechte harpoon über verzierung') + - "⃒": [T: "Verzierung mit langer vertikaler Linie"] # 0x20d2 (en: 'long vertical line overlay embellishment', google translation) + - "⃓": [T: "Verzierung mit kurzer vertikaler Linie"] # 0x20d3 (en: 'short vertical line overlay embellishment', google translation) + - "⃔": [T: "Pfeil gegen den Uhrzeigersinn über Verzierung"] # 0x20d4 (en: 'anticlockwise arrow above embellishment', google translation) + - "⃕": [T: "Pfeil im Uhrzeigersinn über Verzierung"] # 0x20d5 (en: 'clockwise arrow above embellishment', google translation) + - "⃖": [T: "Pfeil nach links über Verzierung"] # 0x20d6 (en: 'left arrow above embellishment', google: 'links pfeil über die verzierung') + - "⃗": [T: "Pfeil nach rechts über Verzierung"] # 0x20d7 (en: 'right arrow above embellishment', google: 'richtiger pfeil über die verzierung') + - "⃘": [T: "Ringüberlagerung als Verzierung"] # 0x20d8 (en: 'ring overlay embellishment', google translation) + - "⃙": [T: "ringüberlagerung im uhrzeigersinn"] # 0x20d9 (en: 'clockwise ring overlay embellishment', google translation) + - "⃚": [T: "ringüberlagerung gegen den uhrzeigersinn"] # 0x20da (en: 'anticlockwise ring overlay embellishment', google translation) + - "⃛": [T: "dreifacher punkt"] # 0x20db (en: 'triple dot', google: 'dreifacher punkt') + - "⃜": [T: "vierfacher punkt"] # 0x20dc (en: 'quadruple dot', google: 'vierfachpunkt punkt') + - "⃝": [T: "umschließender Kreis als Verzierung"] # 0x20dd (en: 'enclosing circle embellishment', google translation) + - "⃞": [T: "umschließendes Quadrat als Verzierung"] # 0x20de (en: 'enclosing square embellishment', google translation) + - "⃟": [T: "umschließender Diamant als Verzierung"] # 0x20df (en: 'enclosing diamond embellishment', google translation) + - "⃠": [T: "einschließender Kreis mit Schrägstrich als Verzierung"] # 0x20e0 (en: 'enclosing circle backslash embellishment', google translation) + - "⃡": [T: "Pfeil links-rechts über Verzierung"] # 0x20e1 (en: 'left right arrow above embellishment', google: 'links rechts pfeil über verzierung') + - "⃢": [T: "einschließende bildschirmverzierung"] # 0x20e2 (en: 'enclosing screen embellishment', google translation) + - "⃣": [T: "Umschließende Tastenkappenverzierung"] # 0x20e3 (en: 'enclosing keycap embellishment', google translation) + - "⃤": [T: "umschließende, nach oben zeigende Dreiecksverzierung"] # 0x20e4 (en: 'enclosing upward pointing triangle embellishment', google translation) + - "⃥": [T: "Umgekehrte Solidus-Überlagerung als Verzierung"] # 0x20e5 (en: 'reverse solidus overlay embellishment', google translation) + - "⃦": [T: "Doppelte vertikale Strichverzierung"] # 0x20e6 (en: 'double verticle stroke embellishment', google translation) + - "⃧": [T: "Annuitätensymbol-Verzierung"] # 0x20e7 (en: 'Verzierung mit Annuitätensymbol', google translation) + - "⃨": [T: "Dreifach-Unterpunkt"] # 0x20e8 (en: 'triple underdot', google translation) + - "⃩": [T: "breite brücke über verzierung"] # 0x20e9 (en: 'wide bridge above embellishment', google translation) + - "⃪": [T: "Verzierung mit nach links zeigendem Pfeil"] # 0x20ea (en: 'leftwards arrow overlay embellishment', google translation) + - "⃫": [T: "Verzierung mit langem, doppeltem Strichüberzug"] # 0x20eb (en: 'long double solidus overlay embellishment', google translation) + - "⃬": [T: "Rechtshaken mit Widerhaken nach unten verziert"] # 0x20ec (en: 'rightwards harpoon with barb downwards embellishment', google translation) + - "⃭": [T: "Linkshaken mit Widerhaken nach unten verziert"] # 0x20ed (en: 'leftwards harpoon with barb downwards embellishment', google translation) + - "⃮": [T: "Pfeil nach links unter Verzierung"] # 0x20ee (en: 'left arrow below embellishment', google translation) + - "⃯": [T: "Pfeil nach rechts unter Verzierung"] # 0x20ef (en: 'right arrow below embellishment', google translation) + - "⃰": [T: "sternchen über verzierung"] # 0x20f0 (en: 'asterisk above embellishment', google translation) + - "℄": [T: "mittelliniensymbol"] # 0x2104 (en: 'center line symbol', google translation) + - "℅": [T: "im Auftrag von"] # 0x2105 (google: 'pflege von') + - "℆": [T: "cada una"] # 0x2106 (google translation) + - "ℇ": [T: "Euler-Konstante"] # 0x2107 (en: 'euler's constant', google: 'eulers konstante') + - "℈": [T: "skrupel"] # 0x2108 (en: 'scruples', google translation) + - "ℊ": [T: "Skript G"] # 0x210a (google: 'skript g') + - "ℌℑℨℭ": # 0x210c, 0x2111, 0x2128, 0x212d + - T: "Fraktur" # (en: 'fraktur', google: 'fraktur') + - spell: "translate('.', 'ℌℑℨℭ', 'HIZC')" + + - "ℍℙℾℿ": # 0x210d, 0x2119, 0x213e, 0x213f + - test: + if: "$Verbosity!='Terse'" + then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) + - spell: "translate('.', 'ℍℙℾℿ', 'HPΓΠ')" + + - "ℏ": # 0x210f + - test: + if: "($Verbosity='Terse')" + then: [T: "h bar"] # (google translation) + else: [T: "Planck-Konstante über zwei Pi"] # (en: 'reduced planck constant', MathPlayer: 'h bar', google: 'reduzierte planckkonstante') + + - "ℐℒ℘ℬℰℱℳ": # 0x2110, 0x2112, 0x2118, 0x2130, 0x2131, 0x2133 + - T: "Skript" # (en: 'script', MathPlayer: 'h bar', google: 'skript') + - spell: "translate('.', 'ℐℒ℘ℬℰℱℳ', 'ILPBEFM')" + + - "℔": [T: "L B Balkensymbol"] # 0x2114 (en: 'pounds', google: 'pfund') + - "№": [T: "Numero-Zeichen"] # 0x2116 (en: 'number', MathPlayer: 'numero sign', google: 'nummer') + - "℥": [T: "Unze-Zeichen"] # 0x2125 (en: 'ounces', MathPlayer: 'ounce sign', google: 'unzen') + - "℧": [T: "Umgekehrtes Ohm-Zeichen"] # 0x2127 (en: 'mhos', MathPlayer: 'inverted ohm', google: 'mhos') + - "℩": [T: "gedrehtes Iota"] # 0x2129 (google: 'drehte iota') + - "ℯ": [T: "Skript E"] # 0x212f (google: 'skript e') + + # coalesced some chars that use cap letters + - "Ⅎ℺⅁⅂⅃⅄": # 0x2132, 0x213a, 0x2141, 0x2142, 0x2143, 0x2144 + - test: + - if: "'.' = '℺'" + then: [T: "gedreht"] # (en: 'rotated', google translation) + - else_if: "'.' = 'Ⅎ'" + then: [T: "gedreht"] # (en: 'turned', google translation) + - else_if: "'.' = '⅃'" + then: [T: "umgekehrt ohne serif"] # (en: 'reversed sans-serif', google translation) + else: [T: "script e"] # (en: 'turned sans-serif', google: 'drehte ohne serif') + - spell: "translate('.', 'Ⅎ℺⅁⅂⅃⅄', 'FQGLLY')" + + - "ℴ": [T: "Skript O"] # 0x2134 (google: 'skript o') + - "ℵ": [T: "Alef-Symbol"] # 0x2135 (en: 'first transfinite cardinal', MathPlayer: 'alef', google: 'erster transfinite kardinal') + - "ℶ": [T: "Bet-Symbol"] # 0x2136 (en: 'second transfinite cardinal', MathPlayer: 'bet', google: 'zweiter transfinite kardinal') + - "ℷ": [T: "Gimel-Symbol"] # 0x2137 (en: 'third transfinite cardinal', MathPlayer: 'gimel', google: 'dritter transfinite kardinal') + - "ℸ": [T: "Dalet-Symbol"] # 0x2138 (en: 'fourth transfinite cardinal', MathPlayer: 'dalet', google: 'viertes transfinite kardinal') + - "ℼ": [T: "pi mit Doppelstrich"] # 0x213c (en: 'double struck pi', google: 'doppelt geschlagen pi') + - "ℽ": [T: "gamma mit Doppelstrich"] # 0x213d (en: 'double struck gamma', google: 'doppelt geschlagen gamma') + - "⅀": [T: "Summenzeichen mit Doppelstrich"] # 0x2140 (en: 'double struck n-ary summation', google: 'doppelte n-ary-summierung') + - "⅋": [T: "Ampersand gedreht"] # 0x214b (en: 'turned ampersand', google: 'ampers umgedreht') + - "⅌": [T: "Pro Zeichen"] # 0x214c (en: 'per', google: 'pro') + - "ⅎ": [T: "Gedreht klein F"] # 0x214e (en: 'turned F', google: 'drehte f') + - "¼": [T: "ein Viertel"] # 0x00bc (en: 'one quarter') + - "½": [T: "ein Halb"] # 0x00bd (en: 'one half') + - "¾": [T: "drei Viertel"] # 0x00be (en: 'three quarters') + - "⅐": [T: "ein Siebtel"] # 0x2150 (en: 'one seventh') + - "⅑": [T: "ein Neuntel"] # 0x2151 (en: 'one ninth', google: 'ein neunter') + - "⅒": [T: "ein Zehntel"] # 0x2152 (en: 'one tenth') + - "⅓": [T: "ein Drittel"] # 0x2153 (en: 'one third', MathPlayer: 'vulgar fraction one third') + - "⅔": [T: "zwei Drittel"] # 0x2154 (en: 'two thirds', MathPlayer: 'vulgar fraction two thirds') + - "⅕": [T: "ein Fünftel"] # 0x2155 (en: 'one fifth', MathPlayer: 'vulgar fraction one fifth') + - "⅖": [T: "zwei Fünftel"] # 0x2156 (en: 'two fifths', MathPlayer: 'vulgar fraction two fifths') + - "⅗": [T: "drei Fünftel"] # 0x2157 (en: 'three fifths', MathPlayer: 'vulgar fraction three fifths') + - "⅘": [T: "vier Fünftel"] # 0x2158 (en: 'four fifths', MathPlayer: 'vulgar fraction four fifths') + - "⅙": [T: "ein Sechstel"] # 0x2159 (en: 'one sixth', MathPlayer: 'vulgar fraction one sixth') + - "⅚": [T: "fünf Sechstel"] # 0x215a (en: 'five sixths', MathPlayer: 'vulgar fraction five sixths') + - "⅛": [T: "ein Achtel"] # 0x215b (en: 'one eighth', MathPlayer: 'vulgar fraction one eighth', google: 'ein ath') + - "⅜": [T: "drei Achtel"] # 0x215c (en: 'three eighths', MathPlayer: 'vulgar fraction three eighths', google: 'drei aths') + - "⅝": [T: "fünf Achtel"] # 0x215d (en: 'five eighths', MathPlayer: 'vulgar fraction five eighths', google: 'fünf aths') + - "⅞": [T: "sieben Achtel"] # 0x215e (en: 'seven eighths', MathPlayer: 'vulgar fraction seven eighths', google: 'sieben aths') + - "⅟": [T: "Bruchzähler eins"] # 0x215f (en: 'one over', google: 'eins vorbei') + - "Ⅰ": [T: "Ⅰ"] # 0x2160 (en: 'I', google translation) + - "Ⅱ": [T: "i i"] # 0x2161 (en: 'I I', google translation) + - "Ⅲ": [T: "i i i"] # 0x2162 (en: 'I I I', google translation) + - "Ⅳ": [T: "i v"] # 0x2163 (en: 'I V', google translation) + - "Ⅴ": [T: "Ⅴ"] # 0x2164 (en: 'V', google translation) + - "Ⅵ": [T: "v i"] # 0x2165 (en: 'V I', google translation) + - "Ⅶ": [T: "v i i"] # 0x2166 (en: 'V I I', google translation) + - "Ⅷ": [T: "v i i i"] # 0x2167 (en: 'V I I I', google translation) + - "Ⅸ": [T: "i x"] # 0x2168 (en: 'I X', google translation) + - "Ⅹ": [T: "Ⅹ"] # 0x2169 (en: 'X', google translation) + - "Ⅺ": [T: "x i"] # 0x216a (en: 'X I', google translation) + - "Ⅻ": [T: "x i i"] # 0x216b (en: 'X I I', google translation) + - "Ⅼ": [T: "Ⅼ"] # 0x216c (en: 'L', google translation) + - "Ⅽ": [T: "Ⅽ"] # 0x216d (en: 'C', google translation) + - "Ⅾ": [T: "Ⅾ"] # 0x216e (en: 'D', google translation) + - "Ⅿ": [T: "Ⅿ"] # 0x216f (en: 'M', google translation) + - "ⅰ": [T: "ⅰ"] # 0x2170 (en: 'I', google translation) + - "ⅱ": [T: "i i"] # 0x2171 (en: 'I I', google translation) + - "ⅲ": [T: "i i i"] # 0x2172 (en: 'I I I', google translation) + - "ⅳ": [T: "i v"] # 0x2173 (en: 'I V', google translation) + - "ⅴ": [T: "ⅴ"] # 0x2174 (en: 'V', google translation) + - "ⅵ": [T: "v i"] # 0x2175 (en: 'V I', google translation) + - "ⅶ": [T: "v i i"] # 0x2176 (en: 'V I I', google translation) + - "ⅷ": [T: "v i i i"] # 0x2177 (en: 'V I I I', google translation) + - "ⅸ": [T: "i x"] # 0x2178 (en: 'I X', google translation) + - "ⅹ": [T: "ⅹ"] # 0x2179 (en: 'X', google translation) + - "ⅺ": [T: "x i"] # 0x217a (en: 'X I', google translation) + - "ⅻ": [T: "x i i"] # 0x217b (en: 'X I I', google translation) + - "ⅼ": [T: "ⅼ"] # 0x217c (en: 'L', google translation) + - "ⅽ": [T: "ⅽ"] # 0x217d (en: 'C', google translation) + - "ⅾ": [T: "ⅾ"] # 0x217e (en: 'D', google translation) + - "ⅿ": [T: "ⅿ"] # 0x217f (en: 'M', google translation) + - "↉": [T: "null drittel"] # 0x2189 (en: 'zero thirds') + - "↔": [T: "Pfeil nach links und rechts"] # 0x2194 (en: 'left right arrow', MathPlayer: 'left right arrow', google: 'links rechts pfeil') + - "↕": [T: "Pfeil nach oben und unten"] # 0x2195 (en: 'up down arrow', MathPlayer: 'up down arrow', google: 'auf pfeil runter') + - "↖": [T: "Nordwestpfeil"] # 0x2196 (en: 'north west arrow', MathPlayer: 'north west arrow', google: 'nordwestpfeil') + - "↗": # 0x2197 + - test: + if: "ancestor::*[2][self::m:limit]" + then: [T: "annähernd von unten"] # (en: 'approaches from below', google translation) + else: [T: "Nordostpfeil"] # (en: 'north east arrow', MathPlayer: 'north east arrow', google: 'nordostpfeil') + + - "↘": # 0x2198 + - test: + if: "ancestor::*[2][self::m:limit]" + then: [T: "nähert sich von oben"] # (en: 'approaches from above', google translation) + else: [T: "Südostpfeil"] # (en: 'south east arrow', MathPlayer: 'south east arrow', google: 'south east pfeil') + + - "↙": [T: "Südwestpfeil"] # 0x2199 (en: 'south west arrow', MathPlayer: 'south west arrow', google: 'südwestpfeil') + - "↚": [T: "Pfeil nach links mit Strich"] # 0x219a (en: 'leftwards arrow with stroke', MathPlayer: 'leftwards arrow with stroke', google: 'links pfeil mit schlaganfall') + - "↛": [T: "Pfeil nach rechts mit Strich"] # 0x219b (en: 'rightwards arrow with stroke', MathPlayer: 'rightwards arrow with stroke', google: 'richtiger pfeil mit schlaganfall') + - "↜": [T: "Wellenpfeil nach links"] # 0x219c (en: 'leftwards wave arrow', MathPlayer: 'leftwards wave arrow', google: 'linkswellenpfeil') + - "↝": [T: "Wellenpfeil nach rechts"] # 0x219d (en: 'rightwards wave arrow', MathPlayer: 'rightwards wave arrow', google: 'rightwards wave pfeil') + - "↞": [T: "Pfeil mit zwei Spitzen nach links "] # 0x219e (en: 'leftwards two headed arrow', MathPlayer: 'leftwards two headed arrow', google: 'links zwei köpfe pfeil') + - "↟": [T: "Aufwärts gerichteter Doppelpfeil"] # 0x219f (en: 'upwards two headed arrow', MathPlayer: 'upwards two headed arrow', google: 'auf zwei köpfe pfeil') + - "↠": [T: "Pfeil mit zwei Spitzen nach rechts"] # 0x21a0 (en: 'rightwards two headed arrow', MathPlayer: 'rightwards two headed arrow', google: 'richtig zwei köpfe pfeil') + - "↡": [T: "Abwärts gerichteter Doppelpfeil"] # 0x21a1 (en: 'downwards two headed arrow', MathPlayer: 'downwards two headed arrow', google: 'nach unten zwei köpfe pfeil') + - "↢": [T: "Pfeil nach links mit Schwanz"] # 0x21a2 (en: 'leftwards arrow with tail', MathPlayer: 'leftwards arrow with tail', google: 'linkspfeil mit schwanz') + - "↣": [T: "Pfeil nach rechts mit Schwanz"] # 0x21a3 (en: 'rightwards arrow with tail', MathPlayer: 'rightwards arrow with tail', google: 'richtiger pfeil mit schwanz') + - "↤": [T: "Pfeil nach links von der Leiste"] # 0x21a4 (en: 'leftwards arrow from bar', MathPlayer: 'leftwards arrow from bar', google: 'links pfeil aus der bar') + - "↥": [T: "Aufwärtspfeil von der Leiste"] # 0x21a5 (en: 'upwards arrow from bar', MathPlayer: 'upwards arrow from bar', google: 'aufwärter pfeil aus der bar') + - "↦": [T: "Pfeil nach rechts von der Leiste"] # 0x21a6 (en: 'rightwards arrow from bar', MathPlayer: 'rightwards arrow from bar', google: 'richtiger pfeil aus der bar') + - "↧": [T: "Abwärtspfeil von der Leiste"] # 0x21a7 (en: 'downwards arrow from bar', MathPlayer: 'downwards arrow from bar', google: 'nach unten pfeil aus der bar') + - "↨": [T: "Aufwärts-/Abwärtspfeil mit Sockel"] # 0x21a8 (en: 'up down arrow with base', MathPlayer: 'up down arrow with base', google: 'mit der basis auf pfeil runter') + - "↩": [T: "Pfeil nach links mit Haken"] # 0x21a9 (en: 'leftwards arrow with hook', MathPlayer: 'leftwards arrow with hook', google: 'links pfeil mit haken') + - "↪": [T: "Pfeil nach rechts mit Haken"] # 0x21aa (en: 'rightwards arrow with hook', MathPlayer: 'rightwards arrow with hook', google: 'richtiger pfeil mit haken') + - "↫": [T: "Pfeil nach links mit Schleife"] # 0x21ab (en: 'leftwards arrow with loop', MathPlayer: 'leftwards arrow with loop', google: 'linkspfeil mit schleife') + - "↬": [T: "Pfeil nach rechts mit Schleife"] # 0x21ac (en: 'rightwards arrow with loop', MathPlayer: 'rightwards arrow with loop', google: 'richtiger pfeil mit schleife') + - "↭": [T: "Linker rechter Wellenpfeil"] # 0x21ad (en: 'left right wave arrow', MathPlayer: 'left right wave arrow', google: 'linke rechte wellenpfeil') + - "↮": [T: "Pfeil nach links und rechts durchgesctrichen"] # 0x21ae (en: 'left right arrow with stroke', MathPlayer: 'left right arrow with stroke', google: 'links rechts pfeil mit schlaganfall') + - "↯": [T: "Zickzack-Pfeil nach unten"] # 0x21af (en: 'downwards zigzag arrow', MathPlayer: 'downwards zigzag arrow', google: 'nach unten zickzack pfeil') + - "↰": [T: "Aufwärtspfeil mit Spitze nach links"] # 0x21b0 (en: 'upwards arrow with tip leftwards', MathPlayer: 'upwards arrow with tip leftwards', google: 'aufwärts mit tipp links nach oben') + - "↱": [T: "Aufwärtspfeil mit Spitze nach rechts"] # 0x21b1 (en: 'upwards arrow with tip rightwards', MathPlayer: 'upwards arrow with tip rightwards', google: 'aufwärts mit tipp nach oben nach oben') + - "↲": [T: "Abwärtspfeil mit Spitze nach links"] # 0x21b2 (en: 'downwards arrow with tip leftwards', MathPlayer: 'downwards arrow with tip leftwards', google: 'nach links nach unten pfeil nach unten') + - "↳": [T: "Abwärtspfeil mit Spitze nach rechts"] # 0x21b3 (en: 'downwards arrow with tip rightwards', MathPlayer: 'downwards arrow with tip rightwards', google: 'nach unten pfeil mit tipp nach rechts') + - "↴": [T: "Pfeil nach rechts mit nach unten gerichteter Ecke"] # 0x21b4 (en: 'rightwards arrow with corner downwards', MathPlayer: 'rightwards arrow with corner downwards', google: 'richtiger pfeil mit ecke nach unten') + - "↵": [T: "Pfeil nach unten mit Ecke nach links"] # 0x21b5 (en: 'downwards arrow with corner leftwards', MathPlayer: 'downwards arrow with corner leftwards', google: 'nach links von ecke nach unten pfeil nach unten') + - "↶": [T: "oberer halbkreisförmiger Pfeil gegen den Uhrzeigersinn "] # 0x21b6 (en: 'anticlockwise top semicircle arrow', MathPlayer: 'anticlockwise top semicircle arrow', google: 'top -semicircle -pfeil gegen den uhrzeigersinn') + - "↷": [T: "oberer halbkreisförmiger Pfeil im Uhrzeigersinn"] # 0x21b7 (en: 'clockwise top semicircle arrow', MathPlayer: 'clockwise top semicircle arrow', google: 'im uhrzeigersinn oberen halbkreispfeil') + - "↸": [T: "Nordwestpfeil zu langem Sockel"] # 0x21b8 (en: 'north west arrow to long bar', MathPlayer: 'north west arrow to long bar', google: 'nordwestpfeil in die lange bar') + - "↹": [T: "Pfeil nach links über Pfeil nach rechts"] # 0x21b9 (en: 'leftwards arrow to bar over rightwards arrow to bar', MathPlayer: 'leftwards arrow to bar over rightwards arrow to bar', google: 'der pfeil nach links, um über den pfeil nach rechts in die bar zu barken') + - "↺": [T: "Offener Kreispfeil gegen den Uhrzeigersinn"] # 0x21ba (en: 'anticlockwise open circle arrow', MathPlayer: 'anticlockwise open circle arrow', google: 'open circle arrow gegen den uhrzeigersinn') + - "↻": [T: "Offener Kreispfeil im Uhrzeigersinn"] # 0x21bb (en: 'clockwise open circle arrow', MathPlayer: 'clockwise open circle arrow', google: 'pfeil im uhrzeigersinn') + - "↼": [T: "Linke Harpune oben"] # 0x21bc (en: 'left harpoon up', MathPlayer: 'left harpoon up', google: 'ließ harpoon hoch') + - "↽": [T: "Linke Harpune unten"] # 0x21bd (en: 'left harpoon down', MathPlayer: 'left harpoon down', google: 'ließ harpoon nieder') + - "↾": [T: "Harpune rechts oben"] # 0x21be (en: 'up harpoon right', MathPlayer: 'up harpoon right', google: 'harpoon rechts') + - "↿": [T: "Harpune links oben"] # 0x21bf (en: 'up harpoon left', MathPlayer: 'up harpoon left', google: 'harpune nach oben') + - "⇀": [T: "Rechte Harpune oben"] # 0x21c0 (en: 'right harpoon up', MathPlayer: 'right harpoon up', google: 'richtige harpoon hoch') + - "⇁": [T: "Rechte Harpune unten"] # 0x21c1 (en: 'right harpoon down', MathPlayer: 'right harpoon down', google: 'richtige harpune unten') + - "⇂": [T: "Harpune rechts unten"] # 0x21c2 (en: 'down harpoon right', MathPlayer: 'down harpoon right', google: 'harpoon rechts') + - "⇃": [T: "Harpune links unten"] # 0x21c3 (en: 'down harpoon left', MathPlayer: 'down harpoon left', google: 'harpoon nach unten') + - "⇄": [T: "Pfeil nach rechts über Pfeil nach links"] # 0x21c4 (en: 'rightwards arrow over leftwards arrow', MathPlayer: 'rightwards arrow over leftwards arrow', google: 'rechten pfeil über den linken pfeil') + - "⇅": [T: "Pfeil nach oben links neben Pfeil nach unten"] # 0x21c5 (en: 'upwards arrow leftwards of downwards arrow', MathPlayer: 'upwards arrow leftwards of downwards arrow', google: 'aufwärts links vom abwärtsspfeil nach oben') + - "⇆": [T: "Pfeil nach links über Pfeil nach rechts"] # 0x21c6 (en: 'leftwards arrow over rightwards arrow', MathPlayer: 'leftwards arrow over rightwards arrow', google: 'links pfeil über rechts pfeil') + - "⇇": [T: "Links gepaarte Pfeile"] # 0x21c7 (en: 'leftwards paired arrows', MathPlayer: 'leftwards paired arrows', google: 'links gepaarte pfeile') + - "⇈": [T: "Aufwärts gepaarte Pfeile"] # 0x21c8 (en: 'upwards paired arrows', MathPlayer: 'upwards paired arrows', google: 'nach oben gepaarte pfeile') + - "⇉": [T: "Rechts gepaarte Pfeile"] # 0x21c9 (en: 'rightwards paired arrows', MathPlayer: 'rightwards paired arrows', google: 'rechtspaare pfeile') + - "⇊": [T: "Abwärts gepaarte Pfeile"] # 0x21ca (en: 'downwards paired arrows', MathPlayer: 'downwards paired arrows', google: 'abwärts gepaarte pfeile') + - "⇋": [T: "Harpune nach links über Harpune nach rechts"] # 0x21cb (en: 'left harpoon over right harpoon', MathPlayer: 'left harpoon over right harpoon', google: 'linke harpoon über die rechte harpune') + - "⇌": [T: "Harpune nach rechts über Harpune nach links"] # 0x21cc (en: 'right harpoon over left harpoon', MathPlayer: 'right harpoon over left harpoon', google: 'rechte harpune über die linke harpune') + - "⇍": [T: "Doppelpfeil nach links mit Strich"] # 0x21cd (en: 'leftwards double arrow with stroke', MathPlayer: 'leftwards double arrow with stroke', google: 'links -doppelpfeil mit schlaganfall') + - "⇎": [T: "Links Rechts Doppelpfeil mit Strich"] # 0x21ce (en: 'left right double arrow with stroke', MathPlayer: 'left right double arrow with stroke', google: 'links rechts doppelpfeil mit schlaganfall') + - "⇏": [T: "Doppelpfeil nach rechts mit Strich"] # 0x21cf (en: 'rightwards double arrow with stroke', MathPlayer: 'rightwards double arrow with stroke', google: 'richtiger doppelpfeil mit schlaganfall') + - "⇐": [T: "Doppelpfeil nach links"] # 0x21d0 (en: 'leftwards double arrow', MathPlayer: 'leftwards double arrow', google: 'links doppelpfeil') + - "⇑": [T: "Doppelpfeil nach oben"] # 0x21d1 (en: 'upwards double arrow', MathPlayer: 'upwards double arrow', google: 'double -pfeil nach oben') + - "⇓": [T: "Doppelpfeil nach unten"] # 0x21d3 (en: 'downwards double arrow', MathPlayer: 'downwards double arrow', google: 'downwards doppelpfeil') + - "⇔": [T: "Linker rechter Doppelpfeil"] # 0x21d4 (en: 'left right double arrow', MathPlayer: 'left right double arrow', google: 'links rechts doppelpfeil') + - "⇕": [T: "Doppelpfeil nach oben und unten"] # 0x21d5 (en: 'up down double arrow', MathPlayer: 'up down double arrow', google: 'doppelpfeil nach oben') + - "⇖": [T: "Nordwest-Doppelpfeil"] # 0x21d6 (en: 'north west double arrow', MathPlayer: 'north west double arrow', google: 'nordwesten doppelpfeil') + - "⇗": [T: "Nordost-Doppelpfeil"] # 0x21d7 (en: 'north east double arrow', MathPlayer: 'north east double arrow', google: 'nordost -doppelpfeil') + - "⇘": [T: "Südost Doppelpfeil"] # 0x21d8 (en: 'south east double arrow', MathPlayer: 'south east double arrow', google: 'south east doppelpfeil') + - "⇙": [T: "Südwest-Doppelpfeil"] # 0x21d9 (en: 'south west double arrow', MathPlayer: 'south west double arrow', google: 'south west doppelpfeil') + - "⇚": [T: "Dreifacher Pfeil nach links"] # 0x21da (en: 'leftwards triple arrow', MathPlayer: 'leftwards triple arrow', google: 'links dreifach pfeil') + - "⇛": [T: "Dreifacher Pfeil nach rechts"] # 0x21db (SRE: 'Dreifacher Pfeil nach rechts') + - "⇜": [T: "Nach links gekrümmter Pfeil"] # 0x21dc (en: 'leftwards squiggle arrow', MathPlayer: 'leftwards squiggle arrow', google: 'linkskundgier pfeil') + - "⇝": [T: "Nach rechts gekrümmter Pfeil"] # 0x21dd (en: 'rightwards squiggle arrow', MathPlayer: 'rightwards squiggle arrow', google: 'rightwards squiggle pfeil') + - "⇞": [T: "Aufwärtspfeil mit Doppelstrich"] # 0x21de (en: 'upwards arrow with double stroke', MathPlayer: 'upwards arrow with double stroke', google: 'aufwärts mit doppelhub') + - "⇟": [T: "Abwärtspfeil mit Doppelstrich"] # 0x21df (en: 'downwards arrow with double stroke', MathPlayer: 'downwards arrow with double stroke', google: 'nach unten pfeil mit doppelhub') + - "⇠": [T: "Gestrichelter Pfeil nach links"] # 0x21e0 (en: 'leftwards dashed arrow', MathPlayer: 'leftwards dashed arrow', google: 'links gestrichelten pfeil') + - "⇡": [T: "Gestrichelter Pfeil nach oben"] # 0x21e1 (en: 'upwards dashed arrow', MathPlayer: 'upwards dashed arrow', google: 'nach oben gestrichelter pfeil') + - "⇢": [T: "Gestrichelter Pfeil nach rechts"] # 0x21e2 (en: 'rightwards dashed arrow', MathPlayer: 'rightwards dashed arrow', google: 'rightwards gestrichelten pfeil') + - "⇣": [T: "Gestrichelter Pfeil nach unten"] # 0x21e3 (en: 'downwards dashed arrow', MathPlayer: 'downwards dashed arrow', google: 'abwärts gestrichelten pfeil') + - "⇤": [T: "Pfeil nach links zum Sockel"] # 0x21e4 (en: 'leftwards arrow to bar', MathPlayer: 'leftwards arrow to bar', google: 'links pfeil in die bar') + - "⇥": [T: "Pfeil nach rechts zum Sockel"] # 0x21e5 (en: 'rightwards arrow to bar', MathPlayer: 'rightwards arrow to bar', google: 'rightwards pfeil in die bar') + - "⇦": [T: "Weißer Pfeil nach links"] # 0x21e6 (en: 'leftwards white arrow', MathPlayer: 'leftwards white arrow', google: 'links weißer pfeil') + - "⇧": [T: "Weißer Pfeil nach oben"] # 0x21e7 (en: 'upwards white arrow', MathPlayer: 'upwards white arrow', google: 'nach oben weißer pfeil') + - "⇨": [T: "Weißer Pfeil nach rechts"] # 0x21e8 (en: 'rightwards white arrow', MathPlayer: 'rightwards white arrow', google: 'richtiger weißer pfeil') + - "⇩": [T: "Weißer Pfeil nach unten"] # 0x21e9 (en: 'downwards white arrow', MathPlayer: 'downwards white arrow', google: 'nach unten weißer pfeil') + - "⇪": [T: "Weißer Pfeil nach oben von der Leiste"] # 0x21ea (en: 'upwards white arrow from bar', MathPlayer: 'upwards white arrow from bar', google: 'nach oben weißer pfeil aus der bar') + - "⇫": [T: "Aufwärts weißer Pfeil auf Sockel"] # 0x21eb (en: 'upwards white arrow on pedestal', google: 'nach oben weißer pfeil auf sockel') + - "⇬": [T: "Aufwärts weißer Pfeil auf Sockel mit horizontaler Leiste"] # 0x21ec (en: 'upwards white arrow on pedestal with horizontal bar', google: 'nach oben weißer pfeil auf sockel mit horizontaler balken') + - "⇭": [T: "Aufwärts weißer Pfeil auf Sockel mit vertikaler Leiste"] # 0x21ed (en: 'upwards white arrow on pedestal with vertical bar', google: 'nach oben weißer pfeil auf sockel mit vertikaler balken') + - "⇮": [T: "Aufwärts weißer Doppelpfeil"] # 0x21ee (en: 'upwards white double arrow', google: 'nach oben weißer doppelpfeil') + - "⇯": [T: "Weißer Doppelpfeil nach oben auf Sockel"] # 0x21ef (en: 'upwards white double arrow on pedestal', google: 'nach oben weißer doppelpfeil auf sockel') + - "⇰": [T: "Weißer Pfeil nach rechts von der Wand"] # 0x21f0 (en: 'rightwards white arrow from wall', google: 'richtiger weißer pfeil von der wand') + - "⇱": [T: "Nordwestpfeil zur Ecke"] # 0x21f1 (en: 'north west arrow to corner', google: 'nordwestpfeil zur ecke') + - "⇲": [T: "Südostpfeil zur Ecke"] # 0x21f2 (en: 'south east arrow to corner', google: 'south east pfeil zur ecke') + - "⇳": [T: "Weißer Pfeil nach unten und oben"] # 0x21f3 (en: 'up down white arrow', google: 'runter weißer pfeil') + - "⇴": [T: "rechter Pfeil mit kleinem Kreis"] # 0x21f4 (en: 'right arrow with small circle', google: 'rechts pfeil mit kleinem kreis') + - "⇵": [T: "Abwärtspfeil links von Aufwärtspfeil"] # 0x21f5 (en: 'downwards arrow leftwards of upwards arrow', MathPlayer: 'upwards arrow to the right of downwards arrow', google: 'abwärts links nach oben auf pfeil') + - "⇶": [T: "Drei nach rechts gerichtete Pfeile"] # 0x21f6 (en: 'three rightwards arrows', google: 'drei rechts pfeile') + - "⇷": [T: "Pfeil nach links mit vertikalem Strich"] # 0x21f7 (en: 'leftwards arrow with vertical stroke', google: 'linkspfeil mit vertikalem schlaganfall') + - "⇸": [T: "Pfeil nach rechts mit vertikalem Strich"] # 0x21f8 (en: 'rightwards arrow with vertical stroke', google: 'richtiger pfeil mit vertikalem schlaganfall') + - "⇹": [T: "Pfeil nach links und rechts mit vertikalem Strich"] # 0x21f9 (en: 'left right arrow with vertical stroke', google: 'links rechts pfeil mit vertikalem schlaganfall') + - "⇺": [T: "Pfeil nach links mit doppeltem vertikalem Strich"] # 0x21fa (en: 'leftwards arrow with double vertical stroke', google: 'linkspfeil mit doppelter vertikaler hub') + - "⇻": [T: "Pfeil nach rechts mit doppeltem vertikalem Strich"] # 0x21fb (en: 'rightwards arrow with double vertical stroke', google: 'richtiger pfeil mit doppelter vertikaler schlaganfall') + - "⇼": [T: "Pfeil nach links und rechts mit doppeltem vertikalem Strich"] # 0x21fc (en: 'left right arrow with double vertical stroke', google: 'links rechts pfeil mit doppelter vertikaler hub') + - "⇽": [T: "Pfeil nach links mit offenem Kopf"] # 0x21fd (en: 'leftwards open headed arrow', MathPlayer: 'leftwards open headed arrow', google: 'links offene köpfe pfeil') + - "⇾": [T: "Pfeil nach rechts mit offenem Kopf"] # 0x21fe (en: 'rightwards open headed arrow', MathPlayer: 'rightwards open headed arrow', google: 'rightwards open headed pfeil') + - "⇿": [T: "Pfeil nach links und rechts mit offenem Kopf"] # 0x21ff (en: 'left right open headed arrow', MathPlayer: 'left right open headed arrow', google: 'links rechts geöffneter köpfe') + - "∀": [T: "für alle"] # 0x2200 (en: 'for all') + - "∁": # 0x2201 + - test: + if: "$Verbosity!='Terse'" + then: [T: "die"] # (en: 'the', google translation) + - T: "Komplement" # (en: 'complement of') + - "∃": [T: "es gibt"] # 0x2203 (en: 'there exists') + - "∄": [T: "es gibt nicht"] # 0x2204 (en: 'there does not exist') + - "∅": [T: "leere Menge"] # 0x2205 (en: 'empty set') + - "∋": [T: "hat als Element"] # 0x220b (en: 'contains the member') + - "∌": [T: "hat nicht als Element"] # 0x220c (en: 'does not contain the member') + - "∍": [T: "hat als Element"] # 0x220d (en: 'contains the member') + - "∎": [T: "Ende Beweis"] # 0x220e (en: 'end of proof') + - "−": [T: "minus"] # 0x2212 + - "∓": [T: "minus plus"] # 0x2213 (en: 'minus or plus') + - "∔": [T: "Plus mit Punkt"] # 0x2214 (en: 'dot plus', MathPlayer: 'dot plus', google: 'punkt plus') + - "∕": [T: "Division"] # 0x2215 (en: 'divided by', MathPlayer: 'Schrägstrich (Division)', google: 'geteilt durch') + - "∖": [T: "Mengendifferenz"] # 0x2216 (en: 'set minus', MathPlayer: 'Mengen-Minus', google: 'minus einstellen') + - "∘": [T: "verknüpft mit"] # 0x2218 (en: 'composed with') + - "∙": # 0x2219 + - test: + if: "@data-chem-formula-op" + then: [T: "punkt"] # (en: 'dot', google translation) + else: [T: "Kreisoperator"] # (en: 'times', MathPlayer: 'bullet operator', google: 'mal') + + - "∛": # 0x221b + - test: + if: "$Verbosity!='Terse'" + then: [T: "die"] # (en: 'the', google translation) + - T: "Kubikwurzel" # (en: 'cube root of', MathPlayer: 'dritte Wurzel', google: 'würfelwurzel von') + - "∜": # 0x221c + - test: + if: "$Verbosity!='Terse'" + then: [T: "die"] # (en: 'the', google translation) + - T: "vierte Wurzel" # (en: 'fourth root of') + - "∞": [T: "unendlich"] # 0x221e (en: 'infinity') + - "∢": [T: "Raumwinkel"] # 0x2222 (en: 'spherical angle', MathPlayer: 'spherical angle', google: 'sphärischer winkel') + - "∣": [T: "teilt"] # 0x2223 (en: 'divides') + - "∤": [T: "teilt nicht"] # 0x2224 (en: 'does not divide') + - "∧": [T: "und"] # 0x2227 (en: 'and') + - "∨": [T: "oder"] # 0x2228 (en: 'or') + - "∯": [T: "Oberflächenintegral"] # 0x222f (en: 'surface integral', MathPlayer: 'Flächenintegral', google: 'oberflächenintegral') + - "∰": [T: "Volumenintegral"] # 0x2230 (en: 'volume integral', MathPlayer: 'Volumsintegral', google: 'volumenintegral') + - "∱": [T: "Integral im Uhrzeigersinn"] # 0x2231 (en: 'clockwise integral') + - "∲": [T: "Kurvenintegral im Uhrzeigersinn"] # 0x2232 (en: 'clockwise contour integral', MathPlayer: 'Kontur-Integral im Uhrzeigersinn', google: 'konturintegral im uhrzeigersinn') + - "∳": [T: "Kurvenintegral im Gegenuhrzeigersinn"] # 0x2233 (en: 'anticlockwise contour integral', MathPlayer: 'Kontur-Integral im Gegenuhrzeigersinn', google: 'konturintegral gegen den gegenwart') + - "∴": [T: "folglich"] # 0x2234 (en: 'therefore', MathPlayer: 'deshalb', google: 'daher') + - "∵": [T: "weil"] # 0x2235 (en: 'because') + - "∸": [T: "Minus mit Punkt"] # 0x2238 (en: 'dot minus', MathPlayer: 'dot minus', google: 'punkt minus') + - "∹": [T: "Überschuss"] # 0x2239 (en: 'has excess compared to', MathPlayer: 'excess', google: 'hat überschüssig im vergleich zu') + - "∺": # 0x223a + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "geometrisch proportional" # (en: 'geometrically proportional to') + - "∻": # 0x223b + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "homothetisch" # (en: 'homothetic to', MathPlayer: 'homothetic', google: 'homothetisch zu') + - "≀": [T: "Kranzprodukt"] # 0x2240 (en: 'wreath product', MathPlayer: 'wreath product', google: 'kranzprodukt') + - "≁": [T: "durchgestrichene Tilde"] # 0x2241 (en: 'not tilde', MathPlayer: 'not tilde', google: 'nicht tilde') + - "≂": [T: "minus tilde"] # 0x2242 (SRE: 'Minus über Tilde') + - "≃": # 0x2243 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "asymptotisch gleich" # (en: 'asymptotically equal to') + - "≄": # 0x2244 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "nicht asymptotisch gleich" # (en: 'not asymptotically equal to') + - "≅": # 0x2245 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "ungefähr gleich" # (en: 'approximately equal to') + - "≆": # 0x2246 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "ungefähr, aber nicht ganz gleich" # (en: 'approximately but not actually equal to') + - "≇": # 0x2247 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "weder ungefähr noch ganz gleich" # (en: 'neither approximately nor actually equal to') + - "≈": # 0x2248 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "beinahe gleich" # (en: 'almost equal to') + - "≉": # 0x2249 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "nicht beinahe gleich" # (en: 'not almost equal to') + - "≊": # 0x224a + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "beinahe gleich oder gleich" # (en: 'almost equal or equal to', MathPlayer: 'beinahe oder ganz gleich', google: 'fast gleich oder gleich') + - "≋": [T: "dreifache Tilde"] # 0x224b (en: 'triple tilde', MathPlayer: 'triple tilde', google: 'dreifach tilde') + - "≌": [T: "alles gleich"] # 0x224c (en: 'are all equal to', MathPlayer: 'all equal to', google: 'sind alle gleich') + - "≍": # 0x224d + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "äquivalent zu" # (en: 'equivalent to') + - "≎": # 0x224e + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "geometrisch äquivalent zu" # (en: 'geometrically equivalent to') + - "≏": # 0x224f + - test: + if: "$Verbosity!='Terse'" + then: [T: "die"] # (en: 'the', google translation) + - T: "Differenz zwischen" # (en: 'difference between') + - "≐": [T: "nähert sich der Grenze"] # 0x2250 (en: 'approaches the limit') + - "≑": # 0x2251 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "geometrisch gleich" # (en: 'geometrically equal to') + - "≒": # 0x2252 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "Ungefähr gleich oder das Bild von" # (en: 'approximately equal to or the image of', MathPlayer: 'approximately equal to or the image of', google: 'ungefähr gleich oder das bild von') + - "≓": # 0x2253 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist der"] # (en: 'is the', google translation) + - T: "Bild von oder ungefähr gleich" # (en: 'image of or approximately equal to', MathPlayer: 'image of or approximately equal to', google: 'bild von oder ungefähr gleich') + - "≔": [T: "definiert als"] # 0x2254 (en: 'colon equals') + - "≕": [T: "definiert als von rechts"] # 0x2255 (en: 'equals colon', MathPlayer: 'equals colon', google: 'gleich') + - "≖": [T: "ungefähr gleich"] # 0x2256 (en: 'ring in equal to', MathPlayer: 'ring in equal to', google: 'in gleich rufen') + - "≗": # 0x2257 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "ungefähr gleich" # (en: 'approximately equal to', MathPlayer: 'ring equal to') + - "≘": [T: "entspricht"] # 0x2258 (en: 'corresponds to') + - "≙": [T: "entspricht"] # 0x2259 (en: 'estimates', MathPlayer: 'estimates', google: 'schätzungen') + - "≚": # 0x225a + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "gleichwinklig zu" # (en: 'equiangular to', MathPlayer: 'equiangular to', google: 'gleiche zu') + - "≛": [T: "gleich mit Stern"] # 0x225b (en: 'star equals', MathPlayer: 'star equals', google: 'stern ist gleich') + - "≜": [T: "gleich mit Delta"] # 0x225c (en: 'delta equals', MathPlayer: 'delta equal to', google: 'delta gleich') + - "≝": [T: "definitionsgemäß gleich"] # 0x225d (en: 'is defined to be') + - "≞": # 0x225e + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "gemessen mit" # (en: 'measured by', MathPlayer: 'measured by') + - "≟": [T: "vielleicht gleich"] # 0x225f (en: 'has an unknown relationship with', MathPlayer: 'questioned equal to', google: 'hat eine unbekannte beziehung zu') + - "≢": # 0x2262 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "nicht identisch mit" # (en: 'not identical to', SRE: 'nicht kongruent mit') + - "≣": # 0x2263 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "genau äquivalent mit" # (en: 'strictly equivalent to', MathPlayer: 'streng äquivalent mit', google: 'streng äquivalent zu') + - "≦": [T: "kleiner als über gleich"] # 0x2266 (en: 'less than over equal to', MathPlayer: 'less than over equal to', google: 'weniger als überweg') + - "≧": [T: "größer als über gleich"] # 0x2267 (en: 'greater than over equal to', MathPlayer: 'greater than over equal to', google: 'größer als überweg') + - "≨": # 0x2268 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "kleiner als, aber nicht gleich" # (en: 'less than but not equal to') + - "≩": # 0x2269 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "größer als, aber nicht gleich" # (en: 'greater than but not equal to') + - "≪": # 0x226a + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "viel kleiner als" # (en: 'much less than') + - "≫": # 0x226b + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "viel größer als" # (en: 'much greater than') + - "≬": # 0x226c + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "zwischen" # (en: 'between') + - "≭": # 0x226d + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "nicht äquivalent mit" # (en: 'not equivalent to') + - "≮": # 0x226e + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "nicht kleiner als" # (en: 'not less than') + - "≯": # 0x226f + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "nicht größer als" # (en: 'not greater than') + - "≰": # 0x2270 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "weder kleiner als noch gleich" # (en: 'neither less than nor equal to') + - "≱": # 0x2271 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "weder größer als noch gleich" # (en: 'neither greater than nor equal to') + - "≲": # 0x2272 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "kleiner als oder äquivalent zu" # (en: 'less than or equivalent to') + - "≳": # 0x2273 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "größer als oder äquivalent zu" # (en: 'greater than or equivalent to') + - "≴": # 0x2274 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "weder kleiner als noch äquivalent" # (en: 'neither less than nor equivalent to') + - "≵": # 0x2275 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "weder größer als noch äquivalent" # (en: 'neither greater than nor equivalent to') + - "≶": # 0x2276 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "kleiner oder größer als" # (en: 'less than or greater than') + - "≷": # 0x2277 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "größer oder kleiner als" # (en: 'greater than or less than') + - "≸": # 0x2278 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "weder kleiner noch größer als" # (en: 'neither less than nor greater than') + - "≹": # 0x2279 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "weder größer noch kleiner als" # (en: 'neither greater than nor less than') + - "≺": [T: "vorangehend"] # 0x227a (en: 'precedes', MathPlayer: 'precedes', google: 'voraus') + - "≻": [T: "nachfolgend"] # 0x227b (en: 'succeeds', MathPlayer: 'succeeds', google: 'gelingt es') + - "≼": [T: "vorangehend oder gleich"] # 0x227c (en: 'precedes or is equal to', MathPlayer: 'precedes or equal to', google: 'vorausgeht oder ist gleich') + - "≽": [T: "nachfolgend oder gleich"] # 0x227d (en: 'succeeds or is equal to', MathPlayer: 'succeeds or equal to', google: 'erfolg oder ist gleich') + - "≾": [T: "vorangehend oder äquivalent"] # 0x227e (en: 'precedes or is equivalent to', MathPlayer: 'precedes or equivalent to', google: 'vorausgeht oder ist gleichbedeutend mit') + - "≿": [T: "nachfolgend oder äquivalent"] # 0x227f (en: 'succeeds or is equivalent to', MathPlayer: 'succeeds or equivalent to', google: 'erfolg oder ist gleichbedeutend mit') + - "⊀": [T: "nicht vorangehend"] # 0x2280 (en: 'does not precede', MathPlayer: 'does not precede', google: 'vorausgegangen nicht voraus') + - "⊁": [T: "nicht nachfolgend"] # 0x2281 (en: 'does not succeed', MathPlayer: 'does not succeed', google: 'gelingt es nicht') + - "⊈": # 0x2288 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "weder Teilmenge noch gleich" # (en: 'neither a subset of nor equal to', MathPlayer: 'weder Teilmenge von noch gleich', google: 'weder eine untergruppe von noch gleich') + - "⊉": # 0x2289 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "weder Obermenge noch gleich" # (en: 'neither a superset of nor equal to', MathPlayer: 'weder Obermenge von noch gleich', google: 'weder ein superset von noch gleich') + - "⊊": [T: "Teilmenge aber nicht gleich"] # 0x228a (en: 'subset of with not equal to', MathPlayer: 'Teilmenge von, aber nicht gleich', google: 'teilmenge von mit nicht gleich') + - "⊋": [T: "Obermenge aber nicht gleich"] # 0x228b (en: 'superset of with not equal to', MathPlayer: 'Obermenge von, aber nicht gleich', google: 'superset von mit nicht gleich') + - "⊌": [T: "Multimenge"] # 0x228c (SRE: 'Multimenge') + - "⊍": [T: "Multimengenmultiplikation"] # 0x228d (en: 'multiset multiplication', MathPlayer: 'multiset multiplication', google: 'multiset -multiplikation') + - "⊎": [T: "Multimengenvereinigung"] # 0x228e (SRE: 'Multimengenvereinigung') + - "⊏": [T: "quadratisches Bild von"] # 0x228f (en: 'square image of', MathPlayer: 'square image of', google: 'square bild von') + - "⊐": [T: "quadratisches Original von"] # 0x2290 (en: 'square original of', MathPlayer: 'square original of', google: 'square original von') + - "⊑": [T: "quadratisches Bild oder gleich"] # 0x2291 (en: 'square image of or equal to', MathPlayer: 'square image of or equal to', google: 'quadratisches bild von oder gleich') + - "⊒": [T: "quadratisches Original oder gleich"] # 0x2292 (en: 'square original of or equal to', MathPlayer: 'square original of or equal to', google: 'square original von oder gleich') + - "⊓": [T: "quadratische Schnittmenge"] # 0x2293 (en: 'square cap', MathPlayer: 'square cap', google: 'quadratische großbuchstaben') + - "⊔": [T: "quadratische Vereinigungsmenge"] # 0x2294 (en: 'square cup', MathPlayer: 'square cup', google: 'quadratbecher') + - "⊕": [T: "eingekreistes Pluszeichen"] # 0x2295 (en: 'circled plus', MathPlayer: 'circle plus', google: 'umgekreist plus') + - "⊖": [T: "eingekreistes Minuszeichen"] # 0x2296 (en: 'circled minus', MathPlayer: 'circle minus', google: 'eingekreist minus') + - "⊗": [T: "eingekreiste Multiplikation"] # 0x2297 (en: 'circled times', MathPlayer: 'circle times', google: 'kreiste zeiten') + - "⊘": [T: "eingekreiste Division"] # 0x2298 (en: 'circled slash', MathPlayer: 'circle slash', google: 'eingekreist') + - "⊙": [T: "eingekreister Punktoperator"] # 0x2299 (en: 'circled dot operator', MathPlayer: 'circle dot', google: 'eingekreister punktbetreiber') + - "⊚": [T: "eingekreister Ringoperator"] # 0x229a (en: 'circled ring', MathPlayer: 'circle ring', google: 'eingekreister ring') + - "⊛": [T: "eingekreister Sternoperator"] # 0x229b (en: 'circled asterisk', MathPlayer: 'circle asterisk', google: 'eingekreistes sternchen') + - "⊜": [T: "eingekreistes Gleich"] # 0x229c (en: 'circled equals', MathPlayer: 'circle equals', google: 'kreist gleich') + - "⊝": [T: "eingekreister Gedankenstrich"] # 0x229d (en: 'circled dash', MathPlayer: 'circle dash', google: 'kreislauf') + - "⊞": [T: "eingerahmtes Plus"] # 0x229e (en: 'squared plus', MathPlayer: 'square plus', google: 'quadrat plus') + - "⊟": [T: "eingerahmtes Minus"] # 0x229f (en: 'squared minus', MathPlayer: 'square minus', google: 'quadratisch minus') + - "⊠": [T: "eingerahmte Multiplikation"] # 0x22a0 (en: 'squared times', MathPlayer: 'square times', google: 'quadratische zeiten') + - "⊡": [T: "eingerahmter Punktoperator"] # 0x22a1 (en: 'squared dot operator', MathPlayer: 'square dot', google: 'quadratischer punktbetreiber') + - "⊢": [T: "ergibt"] # 0x22a2 (en: 'proves', MathPlayer: 'right tack', google: 'beweist') + - "⊣": [T: "ergibt nicht"] # 0x22a3 (en: 'does not yield', MathPlayer: 'left tack', google: 'ergeben nicht') + - "⊤": [T: "senkrecht von"] # 0x22a4 (en: 'top', MathPlayer: 'down tack', google: 'spitze') + - "⊥": # 0x22a5 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "senkrecht auf" # (en: 'bottom', MathPlayer: 'up tack', google: 'unten') + - "⊦": [T: "Behauptung"] # 0x22a6 (en: 'reduces to', MathPlayer: 'assertion', google: 'reduziert zu') + - "⊧": [T: "Modell"] # 0x22a7 (en: 'models', MathPlayer: 'models', google: 'modelle') + - "⊨": # 0x22a8 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "wahr" # (en: 'true', MathPlayer: 'true') + - "⊩": [T: "erzwingt"] # 0x22a9 (en: 'forces', MathPlayer: 'forces', google: 'kräfte') + - "⊪": [T: "dreifache vertikale Leiste mit rechtem Drehkreuz"] # 0x22aa (en: 'triple vertical bar right turnstile', MathPlayer: 'triple vertical bar right turnstile', google: 'triple vertikale bar rechtsummens') + - "⊫": [T: "doppelte vertikale Leiste mit doppeltem rechtem Drehkreuz"] # 0x22ab (en: 'double vertical bar double right turnstile', MathPlayer: 'double vertical bar double right turnstile', google: 'doppelte vertikale balken doppelte rechte kurve') + - "⊬": [T: "beweist nicht"] # 0x22ac (en: 'does not prove', MathPlayer: 'does not prove') + - "⊭": # 0x22ad + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "nicht wahr" # (en: 'not true', MathPlayer: 'not true') + - "⊮": [T: "erzwingt nicht"] # 0x22ae (en: 'does not force', MathPlayer: 'does not force', google: 'zwingt nicht') + - "⊯": [T: "negierte doppelte vertikale Leiste mit doppeltem rechten Drehkreuz"] # 0x22af (en: 'negated double vertical bar double right turnstile', MathPlayer: 'negated double vertical bar double right turnstile', google: 'negierter doppelter vertikaler balken doppelte rechte kurve') + - "⊰": [T: "vorangehend in Relation"] # 0x22b0 (en: 'precedes under relation', MathPlayer: 'precedes under relation', google: 'vorausgegangen in beziehung') + - "⊱": [T: "nachfolgend in Relation"] # 0x22b1 (en: 'succeeds under relation', MathPlayer: 'succeeds under relation', google: 'erfolgreich in beziehung') + - "⊲": # 0x22b2 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "normale Untergruppe" # (en: 'a normal subgroup of', MathPlayer: 'normal subgroup of', google: 'eine normale untergruppe von') + - "⊳": [T: "enthält normale Untergruppe"] # 0x22b3 (en: 'contains as a normal subgroup', MathPlayer: 'contains as normal subgroup', google: 'enthält als normale untergruppe') + - "⊴": # 0x22b4 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "normale Untergruppe von oder gleich" # (en: 'a normal subgroup of or equal to', MathPlayer: 'normal subgroup of or equal to', google: 'eine normale untergruppe von oder gleich') + - "⊵": [T: "enthält normale Untergruppe oder gleich"] # 0x22b5 (en: 'contains as a normal subgroup or equal to', MathPlayer: 'contains as normal subgroup or equal to', google: 'enthält als normale untergruppe oder gleich') + - "⊶": # 0x22b6 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "Original von" # (en: 'the original of', MathPlayer: 'original of', google: 'das original von') + - "⊷": # 0x22b7 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "Bild von" # (en: 'an image of', MathPlayer: 'image of', google: 'ein bild von') + - "⊸": [T: "multimap"] # 0x22b8 (SRE: 'Mehrfachzuordnung') + - "⊹": [T: "hermitesch konjugierte Matrix"] # 0x22b9 (en: 'hermitian conjugate matrix', MathPlayer: 'hermitian conjugate matrix', google: 'hermitische konjugierte matrix') + - "⊺": [T: "einschalten"] # 0x22ba (en: 'intercalate', MathPlayer: 'intercalate', google: 'interkalieren') + - "⊻": [T: "Ausschließendes Oder"] # 0x22bb (SRE: 'Ausschließendes Oder') + - "⊼": [T: "Nicht-und"] # 0x22bc (SRE: 'Nand verknüpft mit') + - "⊽": [T: "Nor verknüpft mit"] # 0x22bd (en: 'nor', MathPlayer: 'nor', google: 'noch') + - "⊾": [T: "rechter Winkel mit Bogen"] # 0x22be (en: 'right angle with arc', MathPlayer: 'right angle with arc', google: 'rechtwinkel mit bogen') + - "⊿": [T: "rechtwinkliges Dreieck"] # 0x22bf (en: 'right triangle', MathPlayer: 'right triangle', google: 'rechtwinkliges dreieck') + - "⋀": [T: "logisch und"] # 0x22c0 (en: 'logical and', SRE: 'N-stufiges logisches Und') + - "⋁": [T: "logisch oder"] # 0x22c1 (en: 'logical or', SRE: 'N-stufiges logisches Oder') + - "⋂": [T: "N-stufiger Durchschnitt"] # 0x22c2 (en: 'intersection', MathPlayer: 'Durchschnitt', google: 'überschneidung') + - "⋃": [T: "N-stufige Vereinigung"] # 0x22c3 (en: 'union', MathPlayer: 'Vereinigung', google: 'union') + - "⋄": [T: "Rautenoperator"] # 0x22c4 (en: 'diamond operator', MathPlayer: 'diamond operator', google: 'diamantbetreiber') + - "⋅": # 0x22c5 + - test: + if: "@data-chem-formula-op" + then: [T: "punkt"] # (en: 'dot', google translation) + else: [T: "mal"] # (en: 'times', MathPlayer: 'dot') + + - "⋆": [T: "Sternoperator"] # 0x22c6 (en: 'times', MathPlayer: 'star', google: 'mal') + - "⋇": [T: "Divisionsanzahl"] # 0x22c7 (en: 'division times', MathPlayer: 'division times', google: 'divisionszeiten') + - "⋈": [T: "Schleife"] # 0x22c8 (en: 'bowtie', MathPlayer: 'bowtie', google: 'krawatte') + - "⋉": # 0x22c9 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "linkes halbdirektes Produkt" # (en: 'the left normal factor semidirect product of', MathPlayer: 'left normal factor semidirect product', google: 'das linke normale faktor semidirekte produkt von') + - "⋊": # 0x22ca + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "rechtes halbdirektes Produkt" # (en: 'the right normal factor semidirect product of', MathPlayer: 'right normal factor semidirect product', google: 'der richtige normale faktor semidirect -produkt von') + - "⋋": # 0x22cb + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "linkes halbdirektes Produkt" # (en: 'the left semidirect product of', MathPlayer: 'left semidirect product', google: 'das linke semidirect -produkt von') + - "⋌": # 0x22cc + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "rechtes halbdirektes Produkt" # (en: 'the right semidirect product of', MathPlayer: 'right semidirect product', google: 'das richtige semidirect -produkt von') + - "⋍": [T: "umgekehrte Tilde gleich"] # 0x22cd (en: 'reversed tilde equals', MathPlayer: 'reversed tilde equals', google: 'umgekehrte tilde gleich') + - "⋎": [T: "geschweiftes logisches Oder"] # 0x22ce (en: 'curly logical or', MathPlayer: 'curly logical or', google: 'lockiges logisch oder') + - "⋏": [T: "geschweiftes logisches Und"] # 0x22cf (en: 'curly logical and', MathPlayer: 'curly logical and', google: 'lockiges logisch und') + - "⋐": # 0x22d0 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "doppelte Teilmenge" # (en: 'a double subset of', MathPlayer: 'double subset', google: 'eine doppelte untergruppe von') + - "⋑": # 0x22d1 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "doppelte Obermenge" # (en: 'a double superset of', MathPlayer: 'double superset', google: 'ein doppeltes superset von') + - "⋒": # 0x22d2 + - test: + if: "$Verbosity!='Terse'" + then: [T: "die"] # (en: 'the', google translation) + - T: "doppelter Durchschnitt" # (en: 'double intersection of', MathPlayer: 'double intersection', google: 'doppelte kreuzung von') + - "⋓": # 0x22d3 + - test: + if: "$Verbosity!='Terse'" + then: [T: "die"] # (en: 'the', google translation) + - T: "doppelte Vereinigung" # (en: 'double union of', MathPlayer: 'double union', google: 'doppelte vereinigung von') + - "⋔": # 0x22d4 + - test: + if: "$Verbosity!='Terse'" + then: [T: "die"] # (en: 'the', google translation) + - T: "echter Durchschnitt" # (en: 'proper intersection of', MathPlayer: 'pitchfork', google: 'richtige schnittpunkt von') + - "⋕": # 0x22d5 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "gleich und parallel" # (en: 'equal to and parallel to', MathPlayer: 'equal and parallel to', google: 'gleich und parallel zu') + - "⋖": [T: "kleiner als mit Punkt"] # 0x22d6 (en: 'less than with dot', MathPlayer: 'less than with dot', google: 'weniger als mit punkt') + - "⋗": [T: "größer als mit Punkt"] # 0x22d7 (en: 'greater than with dot', MathPlayer: 'greater than with dot', google: 'größer als mit punkt') + - "⋘": # 0x22d8 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "sehr viel kleiner als" # (en: 'very much less than', MathPlayer: 'very much less than', google: 'sehr viel weniger als') + - "⋙": # 0x22d9 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "sehr viel größer als" # (en: 'very much greater than', MathPlayer: 'very much greater than') + - "⋚": # 0x22da + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "kleiner als, gleich oder größer als" # (en: 'less than equal to or greater than', MathPlayer: 'less than equal to or greater than', google: 'weniger als gleich oder größer als') + - "⋛": # 0x22db + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "größer als, gleich oder kleiner als" # (en: 'greater than equal to or less than', MathPlayer: 'greater than equal to or less than', google: 'größer als gleich oder weniger als') + - "⋜": # 0x22dc + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "gleich oder kleiner als" # (en: 'equal to or less than', MathPlayer: 'equal to or less than', google: 'gleich oder weniger als') + - "⋝": # 0x22dd + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "gleich oder größer als" # (en: 'equal to or greater than', MathPlayer: 'equal to or greater than') + - "⋞": # 0x22de + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "gleich oder vorangehend" # (en: 'equal to or precedes', MathPlayer: 'equal to or precedes', google: 'gleich oder voraus') + - "⋟": # 0x22df + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "gleich oder nachfolgend" # (en: 'equal to or succeeds', MathPlayer: 'equal to or succeeds', google: 'gleich oder erfolgreich') + - "⋠": [T: "weder vorangehend noch gleich"] # 0x22e0 (en: 'does not precede nor is equal to', MathPlayer: 'does not precede or equal', google: 'geht nicht voraus und ist nicht gleich') + - "⋡": [T: "weder nachfolgend noch gleich"] # 0x22e1 (en: 'does not succeed nor is equal to', MathPlayer: 'does not succeed or equal', google: 'gelingt weder noch ist es gleich') + - "⋢": [T: "kein quadratisches Bild oder gleich"] # 0x22e2 (en: 'not square image of or equal to', MathPlayer: 'not square image of or equal to', google: 'kein quadratisches bild von oder gleich') + - "⋣": [T: "kein quadratisches Original oder gleich"] # 0x22e3 (en: 'not square original of or equal to', MathPlayer: 'not square original of or equal to', google: 'kein quadratisches original von oder gleich') + - "⋤": [T: "quadratisches Bild oder nicht gleich"] # 0x22e4 (en: 'square image of or not equal to', MathPlayer: 'square image of or not equal to', google: 'quadratisches bild von oder nicht gleich') + - "⋥": [T: "quadratisches Original oder nicht gleich"] # 0x22e5 (en: 'square original of or not equal to', MathPlayer: 'square original of or not equal to', google: 'square original von oder nicht gleich') + - "⋦": # 0x22e6 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "kleiner als, aber nicht äquivalent" # (en: 'less than but not equivalent to', MathPlayer: 'less than but not equivalent to', google: 'weniger als aber nicht gleichbedeutend mit') + - "⋧": # 0x22e7 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "größer als, aber nicht äquivalent" # (en: 'greater than but not equivalent to', MathPlayer: 'greater than but not equivalent to', google: 'größer als aber nicht gleichbedeutend mit') + - "⋨": [T: "vorangehend, aber nicht äquivalent"] # 0x22e8 (en: 'precedes but is not equivalent to', MathPlayer: 'precedes but not equivalent to', google: 'vorausgesetzt, ist aber nicht gleichwertig zu') + - "⋩": [T: "nachfolgend, aber nicht äquivalent"] # 0x22e9 (en: 'succeeds but is not equivalent to', MathPlayer: 'succeeds but not equivalent to', google: 'erfolg, ist aber nicht gleichwertig zu') + - "⋪": # 0x22ea + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "nicht normale Untergruppe von" # (en: 'not a normal subgroup of', MathPlayer: 'not normal subgroup of', google: 'keine normale untergruppe von') + - "⋫": [T: "enthält keine normale Untergruppe"] # 0x22eb (en: 'does not contain as a normal subgroup', MathPlayer: 'does not contain as normal subgroup', google: 'enthält nicht als normale untergruppe') + - "⋬": # 0x22ec + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "keine normale Untergruppe von oder gleich" # (en: 'not a normal subgroup of nor is equal to', MathPlayer: 'not normal subgroup of or equal to', google: 'keine normale untergruppe von und nicht gleich') + - "⋭": [T: "enthält nicht als normale Untergruppe oder gleich"] # 0x22ed (en: 'does not contain as a normal subgroup nor is equal to', MathPlayer: 'does not contain as normal subgroup or equal', google: 'enthält weder eine normale untergruppe noch') + - "⋮": [T: "Vertikale Ellipsis"] # 0x22ee (en: 'vertical ellipsis', MathPlayer: 'vertical ellipsis', google: 'vertikale ellipse') + - "⋯": [T: "Zentrierte horizontale Ellipse"] # 0x22ef (en: 'dot dot dot', MathPlayer: 'math axis ellipsis', google: 'punkt punkt punkt') + - "⋰": [T: "Diagonale Ellipse unten links nach oben rechts"] # 0x22f0 (en: 'upwards diagonal ellipsis', MathPlayer: 'up right diagonal ellipsis', google: 'aufwärts diagonale ellipsis') + - "⋱": [T: "Diagonale Ellipse, oben links nach unten rechts"] # 0x22f1 (en: 'diagonal ellipsis', MathPlayer: 'down right diagonal ellipsis', google: 'diagonale ellipsis') + - "⋲": [T: "Element mit langem horizontalen Strich"] # 0x22f2 (en: 'element of with long horizontal stroke', MathPlayer: 'element of with long horizontal stroke', google: 'element von mit langem horizontalem schlaganfall') + - "⋳": [T: "Element mit vertikalem Strich am Ende des horizontalen Strichs"] # 0x22f3 (en: 'element of with vertical bar at end of horizontal stroke', MathPlayer: 'element of with vertical bar at end of horizontal stroke', google: 'element von mit vertikalem balken am ende des horizontalen strich') + - "⋴": [T: "kleines Element mit vertikalem Strich am Ende des horizontalen Strichs"] # 0x22f4 (en: 'element of with vertical bar at end of horizontal stroke', MathPlayer: 'element of with vertical bar at end of horizontal stroke', google: 'element von mit vertikalem balken am ende des horizontalen strich') + - "⋵": [T: "Element mit Punkt"] # 0x22f5 (en: 'element of with dot above', MathPlayer: 'element of with dot above', google: 'element von mit punkt oben') + - "⋶": [T: "Element mit Überstrich"] # 0x22f6 (en: 'element of with overbar', MathPlayer: 'element of with overbar', google: 'element von overbar') + - "⋷": [T: "kleines Element mit Überstrich"] # 0x22f7 (en: 'element of with overbar', MathPlayer: 'element of or equal to', google: 'element von overbar') + - "⋸": [T: "Element mit Unterstrich"] # 0x22f8 (en: 'element of with underbar', MathPlayer: 'element of with underbar', google: 'element von mit unterbar') + - "⋹": [T: "Element mit 2 horizontalen Strichen"] # 0x22f9 (en: 'element of with two horizontal strokes', MathPlayer: 'element of with two horizontal strokes', google: 'element von mit zwei horizontalen strichen') + - "⋺": [T: "umgekehrtes Elementzeichen mit langem horizontalen Strich"] # 0x22fa (en: 'contains with long horizontal stroke', MathPlayer: 'contains with long horizontal stroke', google: 'enthält mit langem horizontalem schlaganfall') + - "⋻": [T: "umgekehrtes Elementzeichen mit vertikalem Strich am Ende des horizontalen Strichs"] # 0x22fb (en: 'contains with vertical bar at end of horizontal stroke', MathPlayer: 'contains with vertical bar at end of horizontal stroke', google: 'enthält mit vertikaler balken am ende des horizontalen schlaganfalls') + - "⋼": [T: "kleines umgekehrtes Elementzeichen mit vertikalem Strich am Ende des horizontalen Strichs"] # 0x22fc (en: 'contains with vertical bar at end of horizontal stroke', MathPlayer: 'contains with vertical bar at end of horizontal stroke', google: 'enthält mit vertikaler balken am ende des horizontalen schlaganfalls') + - "⋽": [T: "umgekehrtes Elementzeichen mit Überstrich"] # 0x22fd (en: 'contains with overbar', MathPlayer: 'contains or equal to', google: 'enthält mit überbar') + - "⋾": [T: "kleines umgekehrtes Elementzeichen mit Überstrich"] # 0x22fe (en: 'contains with overbar', MathPlayer: 'small contains with overbar', google: 'enthält mit überbar') + - "⋿": [T: "Z-Notation-Bag-Mitgliedschaft"] # 0x22ff (en: 'z notation bag membership', MathPlayer: 'z notation bag membership', google: 'z notation bag mitgliedschaft') + - "⌀": [T: "Durchmesser-Zeichen"] # 0x2300 (en: 'diameter', MathPlayer: 'diameter', google: 'durchmesser') + - "⌁": [T: "Elektrischer Pfeil"] # 0x2301 (en: 'electric arrow', google: 'elektrischer pfeil') + - "⌂": [T: "Haus"] # 0x2302 (en: 'house', MathPlayer: 'house', google: 'haus') + - "⌃": [T: "Pfeilkopf nach oben"] # 0x2303 (en: 'up arrowhead', google: 'auf pfeilspitze') + - "⌄": [T: "Pfeilkopf nach unten"] # 0x2304 (en: 'down arrowhead', google: 'pfeilspitze') + - "⌅": [T: "Projektiv"] # 0x2305 (en: 'projective', MathPlayer: 'projective', google: 'projektiv') + - "⌆": [T: "Perspektive"] # 0x2306 (en: 'perspective', MathPlayer: 'perspective', google: 'perspektive') + - "⌇": [T: "Schlangenlinie"] # 0x2307 (en: 'wavy line', google: 'schlangenlinie') + - "⌈": [T: "linke Aufrundungsklammer"] # 0x2308 (en: 'left ceiling', MathPlayer: 'left ceiling', google: 'linke decke') + - "⌉": [T: "rechte Aufrundungsklammer"] # 0x2309 (en: 'right ceiling', MathPlayer: 'right ceiling', google: 'rechte decke') + - "⌊": [T: "linke Abrundungsklammer"] # 0x230a (en: 'left floor', MathPlayer: 'left floor', google: 'linker boden') + - "⌋": [T: "rechter Abrundungsklammer"] # 0x230b (en: 'right floor', MathPlayer: 'right floor', google: 'rechts boden') + - "⌌": [T: "unterer rechter Abschnitt"] # 0x230c (en: 'bottom right crop', MathPlayer: 'bottom right crop', google: 'unten rechts ernte') + - "⌍": [T: "Unterer linker Abschnitt"] # 0x230d (en: 'bottom left crop', MathPlayer: 'bottom left crop', google: 'unten linke ernte') + - "⌎": [T: "Oberer rechter Abschnitt"] # 0x230e (en: 'top right crop', MathPlayer: 'top right crop', google: 'oben rechts ernte') + - "⌏": [T: "Oberer linker Abschnitt"] # 0x230f (en: 'top left crop', MathPlayer: 'top left crop', google: 'oben linke ernte') + - "⌐": [T: "Umgekehrtes Nichtzeichen"] # 0x2310 (en: 'reversed not sign', MathPlayer: 'reversed not', google: 'umgekehrt nicht unterschreiben') + - "⌑": [T: "Quadratische Raute"] # 0x2311 (en: 'square lozenge', google: 'square rautege') + - "⌒": [T: "Bogen"] # 0x2312 (en: 'arc', MathPlayer: 'arc', google: 'bogen') + - "⌓": [T: "segment"] # 0x2313 (SRE: 'Segment') + - "⌔": [T: "Sektor"] # 0x2314 (en: 'sector', google: 'sektor') + - "⌕": [T: "telephone recorder"] # 0x2315 (google: 'telefonrekorder') + - "⌖": [T: "position indicator; crosshairs"] # 0x2316 (en: 'position indicator crosshairs', google: 'positionsindikator crosshairs') + - "⌗": [T: "Datenanzeigefeld"] # 0x2317 (google translation) + - "⌘": [T: "Sehenswürdigkeitszeichen"] # 0x2318 (google: 'spole von interschlage') + - "⌙": [T: "nicht gedrehtes zeichen"] # 0x2319 (en: 'turned not sign', google translation) + - "⌚": [T: "Uhr"] # 0x231a (google: 'betrachten') + - "⌛": [T: "sanduhr"] # 0x231b (en: 'hourglass', google translation) + - "⌜": [T: "Obere linke Ecke"] # 0x231c (en: 'top left corner', MathPlayer: 'top left corner', google: 'obere linke ecke') + - "⌝": [T: "Obere rechte Ecke"] # 0x231d (en: 'top right corner', MathPlayer: 'top right corner', google: 'obere rechte ecke') + - "⌞": [T: "Untere linke Ecke"] # 0x231e (en: 'bottom left corner', MathPlayer: 'bottom left corner', google: 'untere linke ecke') + - "⌟": [T: "Rechte untere Ecke"] # 0x231f (en: 'bottom right corner', MathPlayer: 'bottom right corner', google: 'rechte untere ecke') + - "⌠": [T: "Obere Hälfte eines Integrals"] # 0x2320 (en: 'top half integral', MathPlayer: 'top half integral', google: 'top -hälfte integral') + - "⌡": [T: "Untere Hälfte eines Integrals"] # 0x2321 (en: 'bottom half integral', MathPlayer: 'bottom half integral', google: 'untere hälfte integral') + - "⌢": [T: "Stirnrunzeln"] # 0x2322 (google: 'stirnrunzeln') + - "⌣": [T: "Lächeln"] # 0x2323 (google: 'lächeln') + - "⌤": [T: "Pfeilspitze zwischen zwei horizontalen Balken"] # 0x2324 (en: 'up arrowhead between two horizontal bars', google: 'auf der pfeilspitze zwischen zwei horizontalen balken') + - "⌥": [T: "optionschlüssel"] # 0x2325 (en: 'option key', google translation) + - "⌦": [T: "nach rechts löschen"] # 0x2326 (en: 'erase to the right', google translation) + - "⌧": [T: "x in einer rechteckbox"] # 0x2327 (en: 'x in a rectangle box', google translation) + - "⌨": [T: "tastatur"] # 0x2328 (en: 'keyboard', google translation) + - "〈": [T: "Linke spitze Klammer"] # 0x2329 (en: 'left pointing angle bracket', MathPlayer: 'left pointing angle bracket', google: 'links zeigewinkelhalterung') + - "〉": [T: "Rechte spitze Klammer"] # 0x232a (en: 'right pointing angle bracket', MathPlayer: 'right pointing angle bracket', google: 'rechte zeigewinkelhalterung') + - "⌫": [T: "links löschen"] # 0x232b (en: 'erase to the left', google translation) + - "⌬": [T: "benzolring"] # 0x232c (en: 'benzene ring', google translation) + - "⌭": [T: "Zylindrizität"] # 0x232d (google: 'zylinderheit') + - "⌮": [T: "Runsumpfeil"] # 0x232e (google: 'rund um das profil') + - "⌯": [T: "symmetrie"] # 0x232f (en: 'symmetry', google translation) + - "⌰": [T: "totaler Auslauf"] # 0x2330 (en: 'total runout', google translation) + - "⌱": [T: "Dimensionsursprung"] # 0x2331 (en: 'dimension origin', google translation) + - "⌲": [T: "konische Verjüngung"] # 0x2332 (en: 'conical taper', google translation) + - "⌳": [T: "Neigung"] # 0x2333 (en: 'slope', google translation) + - "⌴": [T: "Gegenbohrung"] # 0x2334 (en: 'counterbore', google translation) + - "⌵": [T: "Versenkung"] # 0x2335 (en: 'countersink', google translation) + - "⌶": [T: "APL I-Träger"] # 0x2336 (en: 'apl i beam') + - "⌽": [T: "APL-Kreisstütze"] # 0x233d (en: 'apl circle stile') + - "⌿": [T: "APL-Schrägstrichbalken"] # 0x233f (en: 'apl slash bar') + - "⍰": [T: "eingerahmtes Fragezeichen"] # 0x2370 (en: 'unknown box', google: 'unbekannte box') + - "⍼": [T: "rechter winkel mit abwärts-zickzackpfeil"] # 0x237c (en: 'right angle with downwards zigzag arrow') + - "⎔": [T: "sechseck"] # 0x2394 (en: 'hexagon') + - "⎕": [T: "kasten"] # 0x2395 (en: 'box', google translation) + - "⎶": [T: "untere eckige klammer über oberer eckiger klammer"] # 0x23b6 (en: 'bottom square bracket over top square bracket') + - "⏜": [T: "obere klammer"] # 0x23dc (en: 'top paren') + - "⏝": [T: "untere klammer"] # 0x23dd (en: 'bottom paren') + - "⏞": [T: "Obere geschweifte Klammer"] # 0x23DE (en: 'top brace', MathPlayer: 'top curly bracket', google: 'spitzenklammer') + - "⏟": [T: "Untere geschweifte Klammer"] # 0x23DF (en: 'bottom brace', MathPlayer: 'bottom curly bracket', google: 'bottom -klammer') + - "⏠": [T: "obere schildkröten-klammer"] # 0x23e0 (en: 'top tortoise shell bracket') + - "⏡": [T: "untere schildkröten-klammer"] # 0x23e1 (en: 'bottom tortoise shell bracket') + - "⏢": [T: "weißes trapez"] # 0x23e2 (en: 'white trapezium') + - "⏣": [T: "benzol rechts mit kreis"] # 0x23e3 (en: 'benzene right with circle') + - "⏤": [T: "geradheit"] # 0x23e4 (en: 'straightness') + - "⏥": [T: "ebenheit"] # 0x23e5 (en: 'flatness') + - "⏦": # 0x23e6 + - spell: "ac" + - T: "strom" + - "⏧": [T: "elektrische kreuzung"] # 0x23e7 (en: 'electrical intersection') + - "①-⑨": # 0x2460 - 0x2469 + - T: "umkreiste" # (en: 'circled', MathPlayer: 'bottom curly bracket', google: 'eingekreist') + - spell: "translate('.', '①②③④⑤⑥⑦⑧⑨', '123456789')" + - "⑩": [T: "zehn umkreist"] # 0x2469 (en: 'circled ten', google translation) + - "⑪": [T: "elf umkreist"] # 0x246a (en: 'circled eleven', google translation) + - "⑫": [T: "zwölf umkreist"] # 0x246b (en: 'circled twelve', google translation) + - "⑬": [T: "dreizehn umkreist"] # 0x246c (en: 'circled thirteen', google translation) + - "⑭": [T: "vierzehn umkreist"] # 0x246d (en: 'circled fourteen', google translation) + - "⑮": [T: "fünfzehn umkreist"] # 0x246e (en: 'circled fifteen', google translation) + - "⑯": [T: "umkreiste sechzehn"] # 0x246f (en: 'circled sixteen', google translation) + - "⑰": [T: "siebzehn umkreist"] # 0x2470 (en: 'circled seventeen', google translation) + - "⑱": [T: "eingekreist"] # 0x2471 (en: 'circled eighteen', google translation) + - "⑳": [T: "zwanzig umkreist"] # 0x2473 (en: 'circled twenty', google translation) + - "⑴-⑼": # 0x2474 - 0x247d + - T: "klammern" # (en: 'parenthesized', google translation) + - spell: "translate('.', '⑴⑵⑶⑷⑸⑹⑺⑻⑼', '123456789')" + - "⑽": [T: "klammern zehn"] # 0x247d (en: 'parenthesized ten', google translation) + - "⑾": [T: "klammern elf"] # 0x247e (en: 'parenthesized eleven', google translation) + - "⑿": [T: "klammern zwölf"] # 0x247f (en: 'parenthesized twelve', google translation) + - "⒀": [T: "klammern dreizehn"] # 0x2480 (en: 'parenthesized thirteen', google translation) + - "⒁": [T: "klammern vierzehn"] # 0x2481 (en: 'parenthesized fourteen', google translation) + - "⒂": [T: "klammern fünfzehn"] # 0x2482 (en: 'parenthesized fifteen', google translation) + - "⒃": [T: "klammern sechzehn"] # 0x2483 (en: 'parenthesized sixteen', google translation) + - "⒄": [T: "klammern siebzehn"] # 0x2484 (en: 'parenthesized seventeen', google translation) + - "⒅": [T: "klammern"] # 0x2485 (en: 'parenthesized eighteen', google translation) + - "⒆": [T: "klammern neunzehn"] # 0x2486 (en: 'parenthesized nineteen', google translation) + - "⒇": [T: "klammern von zwanzig"] # 0x2487 (en: 'parenthesized twenty', google translation) + - "⒈-⒐": # 0x2488 - 0x2491 + - spell: "translate('.', '⒈⒉⒊⒋⒌⒍⒎⒏⒐', '123456789')" + - T: "mit periode" # (en: 'with period', google translation) + - "⒑": [T: "zehn mit periode"] # 0x2491 (en: 'ten with period', google translation) + - "⒒": [T: "elf mit periode"] # 0x2492 (en: 'eleven with period', google translation) + - "⒓": [T: "zwölf mit periode"] # 0x2493 (en: 'twelve with period', google translation) + - "⒔": [T: "dreizehn mit periode"] # 0x2494 (en: 'thirteen with period', google translation) + - "⒕": [T: "vierzehn mit periode"] # 0x2495 (en: 'fourteen with period', google translation) + - "⒖": [T: "fünfzehn mit periode"] # 0x2496 (en: 'fifteen with period', google translation) + - "⒗": [T: "16 mit periode"] # 0x2497 (en: 'sixteen with period', google translation) + - "⒘": [T: "siebzehn mit periode"] # 0x2498 (en: 'seventeen with period', google translation) + - "⒙": [T: "mit periode gefressen"] # 0x2499 (en: 'eighteen with period', google translation) + - "⒚": [T: "neunzehn mit periode"] # 0x249a (en: 'nineteen with period', google translation) + - "⒛": [T: "zwanzig mit periode"] # 0x249b (en: 'twenty with period', google translation) + - "⒜-⒵": # 0x249c - 0x24b5 + - T: "klammern" # (en: 'parenthesized', google translation) + - spell: "translate('.', '⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵', 'abcdefghijklmnopqrstuvwxyz')" + + - "Ⓐ-Ⓩ": + - T: "eingekreist" # (en: 'circled', google translation) + - spell: "translate('.', 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "🅐-🅩": # 0x1f150 - 0x1f169 + - T: "schwarz eingekreist" # (en: 'black circled', google translation) + - spell: "translate('.', '🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "ⓐ-ⓩ": # 0x24d0 - 0x24e9 + - T: "eingekreist" # (en: 'circled', google translation) + - spell: "translate('.', 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ', 'abcdefghijklmnopqrstuvwxyz')" + - "⓪": [T: "eingekreist null"] # 0x24ea (en: 'circled zero', google translation) + - "⓫": [T: "schwarz eingekreiste elf"] # 0x24eb (en: 'black circled eleven', google translation) + - "⓬": [T: "schwarz eingekreiste zwölf"] # 0x24ec (en: 'black circled twelve', google translation) + - "⓭": [T: "schwarz eingekreiste dreizehn"] # 0x24ed (en: 'black circled thirteen', google translation) + - "⓮": [T: "schwarz eingekreiste vierzehn"] # 0x24ee (en: 'black circled fourteen', google translation) + - "⓯": [T: "schwarz eingekreiste fünfzehn"] # 0x24ef (en: 'black circled fifteen', google translation) + - "⓰": [T: "schwarz eingekreiste sechzehn"] # 0x24f0 (en: 'black circled sixteen', google translation) + - "⓱": [T: "schwarz eingekreiste siebzehn"] # 0x24f1 (en: 'black circled seventeen', google translation) + - "⓲": [T: "schwarz eingekreiste achtzehn"] # 0x24f2 (en: 'black circled eighteen', google translation) + - "⓳": [T: "schwarz eingekreiste neunzehn"] # 0x24f3 (en: 'black circled nineteen', google translation) + - "⓴": [T: "schwarz eingekreiste zwanzig"] # 0x24f4 (en: 'black circled twenty', google translation) + - "⓵-⓽": # 0x24f5 - 0x24fe + - T: "doppelt umkreist" # (en: 'double circled', google translation) + - spell: "translate('.', '⓵⓶⓷⓸⓹⓺⓻⓼⓽', '123456789')" + - "⓾": [T: "doppelt umgekreiste zehn"] # 0x24fe (en: 'double circled ten', google translation) + - "⓿": [T: "schwarz eingekreiste null"] # 0x24ff (en: 'black circled zero', google translation) + - "■": [T: "Schwarzes Quadrat"] # 0x25a0 (en: 'black square', MathPlayer: 'black square', google: 'schwarzes quadrat') + - "□": [T: "Weißes Quadrat"] # 0x25a1 (en: 'white square', MathPlayer: 'white square', google: 'weißes quadrat') + - "▢": [T: "Weißes Quadrat mit abgerundeten Ecken"] # 0x25a2 (en: 'white square with rounded corners', google: 'weißes quadrat mit abgerundeten ecken') + - "▣": [T: "Weißes Quadrat, das schwarzes kleines Quadrat enthält"] # 0x25a3 (en: 'white square containing small black square', google: 'weißes quadrat mit kleinem schwarzem quadrat') + - "▤": [T: "Quadrat mit horizontaler Füllung"] # 0x25a4 (en: 'square with horizontal fill', google: 'quadrat mit horizontaler füllung') + - "▥": [T: "Quadrat mit vertikaler Füllung"] # 0x25a5 (en: 'square with vertical fill', google: 'quadrat mit vertikaler füllung') + - "▦": [T: "Quadrat mit orthogonaler Schraffurfüllung"] # 0x25a6 (en: 'square with orthogonal crosshatch fill', google: 'quadrat mit orthogonaler kreuzungsfüllung') + - "▧": [T: "Quadrat mit Füllung von oben links nach rechts unten"] # 0x25a7 (en: 'square with upper left to lower right fill', google: 'quadratisch mit oberen links nach unten rechts füllung') + - "▨": [T: "Quadrat mit Füllung von oben recht nach links unten"] # 0x25a8 (en: 'square with upper right to lower left fill', google: 'quadrat mit der oberen rechten linken füllung') + - "▩": [T: "Quadrat mit diagonaler Schraffurfüllung"] # 0x25a9 (en: 'square with diagonal crosshatch fill', google: 'quadrat mit diagonaler kreuzungsfüllung') + - "▪": [T: "Schwarzes kleines Quadrat"] # 0x25aa (en: 'black small square', MathPlayer: 'black square', google: 'schwarzes kleines quadrat') + - "▫": [T: "Weißes kleines Quadrat"] # 0x25ab (en: 'white small square', MathPlayer: 'white square', google: 'weißes kleines quadrat') + - "▬": [T: "Schwarzes Rechteck"] # 0x25ac (en: 'black rectangle', google: 'schwarzes rechteck') + - "▭": [T: "Weißes Rechteck"] # 0x25ad (en: 'white rectangle', MathPlayer: 'white rectangle', google: 'weißes rechteck') + - "▮": [T: "Schwarzes vertikales Rechteck"] # 0x25ae (en: 'black vertical rectangle', MathPlayer: 'black vertical rectangle', google: 'schwarzes vertikales rechteck') + - "▯": [T: "Weißes vertikales Rechteck"] # 0x25af (en: 'white vertical rectangle', MathPlayer: 'white vertical rectangle', google: 'weißes vertikales rechteck') + - "▰": [T: "Schwarzes Parallelogramm"] # 0x25b0 (en: 'black parallelogram', google: 'schwarzes parallelogramm') + - "▱": [T: "Weißes Parallelogramm"] # 0x25b1 (en: 'white parallelogram', MathPlayer: 'white parallelogram', google: 'weißes parallelogramm') + - "▲": [T: "Schwarzes nach oben zeigendes Dreieck"] # 0x25b2 (en: 'black up pointing triangle', MathPlayer: 'black up pointing triangle', google: 'schwarz nach oben zeigt dreieck') + - "△": [T: "Weißes nach oben zeigendes Dreieck"] # 0x25b3 (en: 'white up pointing triangle', MathPlayer: 'white up pointing triangle', google: 'weiß nach oben zeigendreieck') + - "▴": [T: "Schwarzes nach oben zeigendes kleines Dreieck"] # 0x25b4 (en: 'black up pointing small triangle', MathPlayer: 'black up pointing triangle', google: 'schwarz nach oben zeigt ein kleines dreieck') + - "▵": [T: "Weißes nach oben zeigendes kleines Dreieck"] # 0x25b5 (en: 'white up pointing small triangle', MathPlayer: 'white up pointing triangle', google: 'weiß nach oben zeigt ein kleines dreieck') + - "▶": [T: "Schwarzes nach rechts zeigendes Dreieck"] # 0x25b6 (en: 'black right pointing triangle', MathPlayer: 'black right pointing triangle', google: 'schwarzes rechte dreieck') + - "▷": [T: "Weißes nach rechts zeigendes Dreieck"] # 0x25b7 (en: 'white right pointing triangle', MathPlayer: 'white right pointing triangle', google: 'weißes rechtes dreieck') + - "▸": [T: "Schwarzes nach rechts zeigendes kleines Dreieck"] # 0x25b8 (en: 'black right pointing small triangle', MathPlayer: 'black right pointing triangle', google: 'schwarzer rechts kleines dreieck') + - "▹": [T: "Weißes nach rechts zeigendes kleines Dreieck"] # 0x25b9 (en: 'white right pointing small triangle', MathPlayer: 'right pointing triangle', google: 'weißer rechts kleines dreieck') + - "►": [T: "Schwarzer nach rechts zeigender Zeiger"] # 0x25ba (en: 'black right pointing pointer', google: 'schwarzer rechter zeiger') + - "▻": [T: "Weißer nach rechts zeigender Zeiger"] # 0x25bb (en: 'white right pointing pointer', google: 'weißer rechts zeiger') + - "▼": [T: "Schwarzes Abwärtsdreieck"] # 0x25bc (en: 'black down pointing triangle', MathPlayer: 'black down pointing triangle', google: 'schwarzes down -dreieck') + - "▽": [T: "Weißes Abwärtsdreieck"] # 0x25bd (en: 'white down pointing triangle', MathPlayer: 'white down pointing triangle', google: 'weiß down dreieck') + - "▾": [T: "Schwarzes kleines Abwärtsdreieck"] # 0x25be (en: 'black down pointing small triangle', MathPlayer: 'black down pointing triangle', google: 'schwarz unten zeigt ein kleines dreieck') + - "▿": [T: "Weißes kleines Abwärtsdreieck"] # 0x25bf (en: 'white down pointing small triangle', MathPlayer: 'white down pointing triangle', google: 'weiß down zeigt kleines dreieck') + - "◀": [T: "Schwarzes nach links zeigendes Dreieck"] # 0x25c0 (en: 'black left pointing triangle', MathPlayer: 'black left pointing triangle', google: 'schwarzes linker dreieck') + - "◁": [T: "Weißes nach links zeigendes Dreieck"] # 0x25c1 (en: 'white left pointing triangle', MathPlayer: 'white left pointing triangle', google: 'weißes linker dreieck') + - "◂": [T: "Schwarzes nach links zeigendes kleines Dreieck"] # 0x25c2 (en: 'black left pointing small triangle', MathPlayer: 'black left pointing triangle', google: 'schwarz links zeigt ein kleines dreieck') + - "◃": [T: "Weißes nach links zeigendes kleines Dreieck"] # 0x25c3 (en: 'white left pointing small triangle', MathPlayer: 'white left pointing triangle', google: 'weiß links kleines dreieck') + - "◄": [T: "Schwarzer nach links zeigender Zeiger"] # 0x25c4 (en: 'black left pointing pointer', MathPlayer: 'black left pointing pointer', google: 'schwarzer links zeigter zeiger') + - "◅": [T: "Weißer nach links zeigender Zeiger"] # 0x25c5 (en: 'white left pointing pointer', MathPlayer: 'white left pointing pointer', google: 'weißer links zeiger zeiger') + - "◆": [T: "Schwarzer Diamant"] # 0x25c6 (en: 'black diamond', MathPlayer: 'black diamond', google: 'schwarzer diamant') + - "◇": [T: "Weißer Diamant"] # 0x25c7 (en: 'white diamond', MathPlayer: 'white diamond', google: 'weißer diamant') + - "◈": [T: "Weißer Diamant mit schwarzem kleinem Diamant"] # 0x25c8 (en: 'white diamond containing black small diamond', MathPlayer: 'white diamond containing black diamond', google: 'weißer diamant mit schwarzem kleinem diamanten') + - "◉": [T: "Fischauge"] # 0x25c9 (SRE: 'Fischauge') + - "◊": [T: "Raute"] # 0x25ca (en: 'lozenge', MathPlayer: 'lozenge', google: 'pastille') + - "○": [T: "Weißer Kreis"] # 0x25cb (en: 'white circle', MathPlayer: 'white circle', google: 'weißer kreis') + - "◌": [T: "Gepunkteter weißer Kreis"] # 0x25cc (en: 'dotted circle', MathPlayer: 'dotted circle', google: 'gepunkteter kreis') + - "◍": [T: "Kreis mit vertikaler Füllung"] # 0x25cd (en: 'circle with vertical fill', MathPlayer: 'circle with vertical fill', google: 'kreis mit vertikaler füllung') + - "◎": [T: "Volltreffer"] # 0x25ce (SRE: 'Bullseye') + - "●": [T: "Schwarzer Kreis"] # 0x25cf (en: 'black circle', MathPlayer: 'black circle', google: 'schwarzer kreis') + - "◐": [T: "Kreis mit linker Hälfte schwarz"] # 0x25d0 (en: 'circle with left half black', MathPlayer: 'circle with left half black', google: 'kreis mit dem linken halben schwarz') + - "◑": [T: "Kreis mit rechter Hälfte schwarz"] # 0x25d1 (en: 'circle with right half black', MathPlayer: 'circle with right half black', google: 'kreis mit dem rechten halb schwarz') + - "◒": [T: "Kreis mit unterer Hälfte schwarz"] # 0x25d2 (en: 'circle with lower half black', MathPlayer: 'circle with lower half black', google: 'kreis mit unterer halb schwarz') + - "◓": [T: "Kreis mit oberer Hälfte schwarz"] # 0x25d3 (en: 'circle with upper half black', MathPlayer: 'circle with upper half black', google: 'kreis mit der oberen hälfte schwarz') + - "◔": [T: "Kreis mit oberem rechten Quadranten schwarz"] # 0x25d4 (en: 'circle with upper right quadrant black', MathPlayer: 'circle with upper right quadrant black', google: 'kreis mit dem oberen rechten quadranten schwarz') + - "◕": [T: "Kreis mit ganzem oberen linken Quadranten schwarz"] # 0x25d5 (en: 'circle with all but upper left quadrant black', MathPlayer: 'circle with all but upper left quadrant black', google: 'kreisen sie mit allen außer oberen linken quadranten schwarz') + - "◖": [T: "Linker halber schwarzer Kreis"] # 0x25d6 (en: 'left half black circle', MathPlayer: 'left half black circle', google: 'links halb schwarzer kreis') + - "◗": [T: "rechter halber schwarzer Kreis"] # 0x25d7 (en: 'right half black circle', MathPlayer: 'right half black circle', google: 'rechte halbe schwarze kreis') + - "◘": [T: "Inverse Kugel"] # 0x25d8 (en: 'inverse bullet', MathPlayer: 'inverse bullet', google: 'inverse kugel') + - "◙": [T: "Inverser weißer Kreis"] # 0x25d9 (en: 'inverse white circle', MathPlayer: 'inverse white circle', google: 'inverser weißer kreis') + - "◚": [T: "Umgekehrter weißer Kreis der oberen Hälfte"] # 0x25da (en: 'upper half inverse white circle', MathPlayer: 'upper half inverse white circle', google: 'inverse weißer kreis der oberen hälfte') + - "◛": [T: "Umgekehrter weißer Kreis der unteren Hälfte"] # 0x25db (en: 'lower half inverse white circle', MathPlayer: 'lower half inverse white circle', google: 'untere hälfte inverser weißer kreis') + - "◜": [T: "Kreisbogen im oberen linken Quadranten"] # 0x25dc (en: 'upper left quadrant circular arc', MathPlayer: 'upper left quadrant circular arc', google: 'oberer linker quadrantenkreisbogen') + - "◝": [T: "Kreisbogen im oberen rechten Quadranten"] # 0x25dd (en: 'upper right quadrant circular arc', MathPlayer: 'upper right quadrant circular arc', google: 'oberer rechter quadrant kreisbogen') + - "◞": [T: "Kreisbogen im rechten unteren Quadranten"] # 0x25de (en: 'lower right quadrant circular arc', MathPlayer: 'lower right quadrant circular arc', google: 'unterer rechts quadrant zirkularbogen') + - "◟": [T: "Kreisbogen im unteren linken Quadranten"] # 0x25df (en: 'lower left quadrant circular arc', MathPlayer: 'lower left quadrant circular arc', google: 'unterer linker quadrantenkreisbogen') + - "◠": [T: "Oberer Halbkreis"] # 0x25e0 (en: 'upper half circle', MathPlayer: 'upper half circle', google: 'oberer halbkreis') + - "◡": [T: "Unterer Halbkreis"] # 0x25e1 (en: 'lower half circle', MathPlayer: 'lower half circle', google: 'unterer halbkreis') + - "◢": [T: "Schwarzes unteres rechtes Dreieck"] # 0x25e2 (en: 'black lower right triangle', MathPlayer: 'black lower right triangle', google: 'schwarz unten rechts dreieck') + - "◣": [T: "Schwarzes unteres linkes Dreieck"] # 0x25e3 (en: 'black lower left triangle', MathPlayer: 'black lower left triangle', google: 'schwarzes unteres linke dreieck') + - "◤": [T: "Schwarzes oberes linkes Dreieck"] # 0x25e4 (en: 'black upper left triangle', MathPlayer: 'black upper left triangle', google: 'schwarzes oberes linksdreieck') + - "◥": [T: "Schwarzes oberes rechtes Dreieck"] # 0x25e5 (en: 'black upper right triangle', MathPlayer: 'black upper right triangle', google: 'schwarzes oberes rechtes dreieck') + - "◦": [T: "Weiße Kugel"] # 0x25e6 (en: 'composition', MathPlayer: 'composition', google: 'komposition') + - "◧": [T: "Quadrat mit linker Hälfte schwarz"] # 0x25e7 (en: 'square with left half black', MathPlayer: 'square with left half black', google: 'quadrat mit linksem halb schwarz') + - "◨": [T: "Quadrat mit rechter Hälfte schwarz"] # 0x25e8 (en: 'square with right half black', MathPlayer: 'square with right half black', google: 'quadrat mit dem rechten halben schwarz') + - "◩": [T: "Quadrat mit der oberen linken Diagonalenhälfte schwarz"] # 0x25e9 (en: 'square with upper left half black', MathPlayer: 'square with upper left half black', google: 'quadrat mit oberen linken halben schwarz') + - "◪": [T: "Quadrat mit unterer rechter Diagonalhälfte schwarz"] # 0x25ea (en: 'square with lower right half black', MathPlayer: 'square with lower right half black', google: 'quadratisch mit unterer rechter halb schwarz') + - "◫": [T: "Weißes Quadrat mit senkrechter Linie"] # 0x25eb (en: 'white square with bisecting line', MathPlayer: 'white square with bisecting line', google: 'weißes quadrat mit halbierender linie') + - "◬": [T: "Weißes nach oben zeigendes Dreieck mit Punkt"] # 0x25ec (en: 'white up pointing triangle with dot', MathPlayer: 'white up pointing triangle with dot', google: 'weiß nach oben zeigte dreieck mit punkt') + - "◭": [T: "Aufwärtszeigendes Dreieck mit linker Hälfte schwarz"] # 0x25ed (en: 'up pointing triangle with left half black', MathPlayer: 'up pointing triangle with left half black', google: 'dreieck mit dem linken halben schwarz zeigen') + - "◮": [T: "Aufwärtszeigendes Dreieck mit rechter Hälfte schwarz"] # 0x25ee (en: 'up pointing triangle with right half black', MathPlayer: 'up pointing triangle with right half black', google: 'dreieck mit dem rechten halben schwarz zeigen') + - "◯": [T: "Großer Kreis"] # 0x25ef (en: 'large circle', MathPlayer: 'large circle', google: 'großer kreis') + - "◰": [T: "Weißes Quadrat mit kleinem Quadrat im oberem linken Quadranten"] # 0x25f0 (en: 'white square with upper left quadrant', google: 'weißes quadrat mit oberen linken quadrant') + - "◱": [T: "Weißes Quadrat mit kleinem Quadrat im unterem linken Quadranten"] # 0x25f1 (en: 'white square with lower left quadrant', google: 'weißes quadrat mit unteren linken quadranten') + - "◲": [T: "Weißes Quadrat mit kleinem Quadrat im unterem rechten Quadranten"] # 0x25f2 (en: 'white square with lower right quadrant', google: 'weißes quadrat mit unten rechts quadrant') + - "◳": [T: "Weißes Quadrat mit kleinem Quadrat im rechtem oberen Quadranten"] # 0x25f3 (en: 'white square with upper right quadrant', google: 'weißes quadrat mit oberen rechten quadrant') + - "◴": [T: "Weißer Kreis mit kleinem Kreis im oberem linkem Quadranten"] # 0x25f4 (en: 'white circle with upper left quadrant', google: 'weißer kreis mit oberen linken quadrant') + - "◵": [T: "Weißer Kreis mit kleinem Kreis im unterem linken Quadranten"] # 0x25f5 (en: 'white circle with lower left quadrant', google: 'weißer kreis mit unteren linken quadranten') + - "◶": [T: "Weißer Kreis mit kleinem Kreis im unterem rechten Quadranten"] # 0x25f6 (en: 'white circle with lower right quadrant', google: 'weißer kreis mit unten rechts quadrant') + - "◷": [T: "Weißer Kreis mit kleinem Kreis im rechtem oberen Quadranten"] # 0x25f7 (en: 'white circle with upper right quadrant', google: 'weißer kreis mit oben rechts quadrant') + - "◸": [T: "Oberes linkes Dreieck"] # 0x25f8 (en: 'upper left triangle', MathPlayer: 'upper left triangle', google: 'oberes linker dreieck') + - "◹": [T: "Oberes rechtes Dreieck"] # 0x25f9 (en: 'upper right triangle', MathPlayer: 'upper right triangle triangle', google: 'ober rechtes dreieck') + - "◺": [T: "Unteres linkes Dreieck"] # 0x25fa (en: 'lower left triangle', MathPlayer: 'lower left triangle', google: 'unteres linker dreieck') + - "◻": [T: "Weißes mittleres Quadrat"] # 0x25fb (en: 'white medium square', MathPlayer: 'white medium square', google: 'weißes mittleres quadrat') + - "◼": [T: "Schwarzes mittleres kleines Quadrat"] # 0x25fc (en: 'black medium square', MathPlayer: 'black medium square', google: 'schwarzes mittleres quadrat') + - "◽": [T: "Weißes mittleres Quadrat"] # 0x25fd (en: 'white medium small square', MathPlayer: 'white medium square', google: 'weißes mittleres kleines quadrat') + - "◾": [T: "Schwarzes mittleres Quadrat"] # 0x25fe (en: 'black medium small square', MathPlayer: 'black medium square', google: 'schwarzes mittel kleiner quadrat') + - "◿": [T: "Unteres rechtes Dreieck"] # 0x25ff (en: 'lower right triangle', MathPlayer: 'lower right triangle', google: 'unten rechts dreieck') + - "★": [T: "schwarzer stern"] # 0x2605 (en: 'black star') + - "☆": [T: "weißer stern"] # 0x2606 (en: 'white star') + - "☉": [T: "sonne"] # 0x2609 (en: 'sun') + - "☌": [T: "konjunktion"] # 0x260c (en: 'conjuction') + - "☒": [T: "wahlbox mit x"] # 0x2612 (en: 'ballot box with x') + - "☽": [T: "zunehmender mond"] # 0x263d (en: 'waxing moon') + - "☾": [T: "abnehmender mond"] # 0x263e (en: 'waning moon') + - "☿": [T: "merkur"] # 0x263f (en: 'mercury') + - "♀": [T: "weiblich"] # 0x2640 (en: 'female') + - "♁": [T: "erde"] # 0x2641 (en: 'earth') + - "♂": [T: "männlich"] # 0x2642 (en: 'male') + - "♃": [T: "jupiter"] # 0x2643 (en: 'jupiter') + - "♄": [T: "saturn"] # 0x2644 (en: 'saturn') + - "♅": [T: "uranus"] # 0x2645 (en: 'uranus') + - "♆": [T: "neptun"] # 0x2646 (en: 'neptune') + - "♇": [T: "pluto"] # 0x2647 (en: 'pluto') + - "♈": [T: "widder"] # 0x2648 (en: 'aries') + - "♉": [T: "stier"] # 0x2649 (en: 'taurus') + - "♩": [T: "viertelnote"] # 0x2669 (en: 'quarter note') + - "♭": [T: "b"] # 0x266d (en: 'flat') + - "♮": [T: "auflösungszeichen"] # 0x266e (en: 'natural') + - "♯": [T: "kreuz"] # 0x266f (en: 'sharp') + - "♠": [T: "schwarzes Piksymbol"] # 0x2660 (google: 'schwarzer spatenanzug') + - "♡": [T: "weißes Herz"] # 0x2661 (google: 'weißer herzanzug') + - "♢": [T: "weißes Karo"] # 0x2662 (google: 'weißer diamantanzug') + - "♣": [T: "schwarzes Kreuzsymbol"] # 0x2663 (google: 'schwarzer clubanzug') + - "♤": [T: "weißes Piksymbol"] # 0x2664 (google: 'weißer spatenanzug') + - "♥": [T: "schwarzes Herz"] # 0x2665 (google: 'schwarzer herzanzug') + - "♦": [T: "schwarzes Karo"] # 0x2666 (google: 'schwarzer diamantanzug') + - "♧": [T: "weißes Kreuzsymbol"] # 0x2667 (google: 'weißer clubanzug') + - "⚀": [T: "würfelseite 1"] # 0x2680 (en: 'die face 1') + - "⚁": [T: "würfelseite 2"] # 0x2681 (en: 'die face 2') + - "⚂": [T: "würfelseite 3"] # 0x2682 (en: 'die face 3') + - "⚃": [T: "würfelseite 4"] # 0x2683 (en: 'die face 4') + - "⚄": [T: "würfelseite 5"] # 0x2684 (en: 'die face 5') + - "⚅": [T: "würfelseite 6"] # 0x2685 (en: 'die face 6') + - "⚆": [T: "weißer kreis mit punkt rechts"] # 0x2686 (en: 'white circle with dot right') + - "⚇": [T: "weißer kreis mit zwei punkten"] # 0x2687 (en: 'white circle with two dots') + - "⚈": [T: "schwarzer kreis mit punkt rechts"] # 0x2688 (en: 'black circle with dot right') + - "⚉": [T: "schwarzer kreis mit zwei punkten"] # 0x2689 (en: 'black circle with two dots') + - "⚪": [T: "mittelgroßer weißer kreis"] # 0x26aa (en: 'medium white circle') + - "⚫": [T: "mittelgroßer schwarzer kreis"] # 0x26ab (en: 'medium black circle') + - "⚬": [T: "mittelkleiner weißer kreis"] # 0x26ac (en: 'medium small white circle') + - "⚲": [T: "neutrum"] # 0x26b2 (en: 'neuter') + - "✓": [T: "häkchen"] # 0x2713 (en: 'check mark') + - "✠": [T: "malteserkreuz"] # 0x2720 (en: 'maltese cross') + - "✪": [T: "eingekreister weißer stern"] # 0x272a (en: 'circled white star') + - "✶": [T: "sechszackiger schwarzer stern"] # 0x2736 (en: 'six pointed black star') + - "❨": [T: "Mittlere linke Klammerverzierung"] # 0x2768 (en: 'medium left parentheses ornament', google: 'mittel linke klammern') + - "❩": [T: "Mittlere rechte Klammerverzierung"] # 0x2769 (en: 'medium right parentheses ornament', google: 'mittel rechts klammernsthesis ornament') + - "❪": [T: "Mittlere abgeflachte linke Klammerverzierung"] # 0x276a (en: 'medium flattened left parentheses ornament', google: 'medium abgeflachtes linker klammern') + - "❫": [T: "Mittlere abgeflachte rechte Klammerverzierung"] # 0x276b (en: 'medium flattened right parentheses ornament', google: 'mittel abgeflacht rechte klammerthese -ornament') + - "❬": [T: "Mittlere nach links weisende Winkelhalterung"] # 0x276c (en: 'medium left-pointing angle bracket ornament', google: 'mittelgroße linkswinkel-klammerverzierung') + - "❭": [T: "Mittlere, rechtwinklige Winkelhalterung"] # 0x276d (en: 'medium right-pointing angle bracket ornament', google: 'mittel mit dem rechten zeigungswinkelhalterung') + - "❮": [T: "Dickes nach links weisendes Anführungszeichen"] # 0x276e (en: 'heavy left-pointing angle quotation mark ornament', google: 'schwerer zitat für den linken zeigungswinkel mark ornament') + - "❯": [T: "Dickes nach links weisendes Anführungszeichen"] # 0x276f (en: 'heavy right-pointing angle quotation mark ornament', google: 'schwerer rechts zeigter winkel zitat mark ornament') + - "❰": [T: "schweres, nach links zeigendes eckiges Klammerornament"] # 0x2770 (en: 'heavy left-pointing angle bracket ornament', google: 'schwere linkswinkel-halterung') + - "❱": [T: "schweres, nach rechts zeigendes eckiges Klammerornament"] # 0x2771 (en: 'heavy right-pointing angle bracket ornament', google: 'schwere rechtshalterung mit rechts zeigter winkel') + - "❲": [T: "Leichte Halterung aus Schildpatt, links"] # 0x2772 (en: 'light left tortoise shell bracket ornament', google: 'leichte linke schildkröte -hülle -halterung') + - "❳": [T: "Leichte Halterung aus Schildpatt, rechts"] # 0x2773 (en: 'light right tortoise shell bracket ornament', google: 'leichte rechte schildkröte -hülle -halterung') + - "❴": [T: "Mittlere linke geschweifte Klammerverzierung"] # 0x2774 (en: 'medium left brace ornament', google: 'medium linke klammerverzierung') + - "❵": [T: "Mittlere rechte geschweifte Klammerverzierung"] # 0x2775 (en: 'medium right brace ornament', google: 'mittlere rechte klammerverzierung') + - "❶": [T: "schwarz umkreiste eins"] # 0x2776 (en: 'black circled one', google translation) + - "❷": [T: "schwarz umkreiste zwei"] # 0x2777 (en: 'black circled two', google translation) + - "❸": [T: "schwarz umkreiste drei"] # 0x2778 (en: 'black circled three', google translation) + - "❹": [T: "schwarz umkreiste vier"] # 0x2779 (en: 'black circled four', google translation) + - "❺": [T: "schwarz umkreiste fünf"] # 0x277a (en: 'black circled five', google translation) + - "❻": [T: "schwarz umkreiste sechs"] # 0x277b (en: 'black circled six', google translation) + - "❼": [T: "schwarz umkreiste sieben"] # 0x277c (en: 'black circled seven', google translation) + - "❽": [T: "schwarz umumkreist nach"] # 0x277d (en: 'black circled eight', google translation) + - "❾": [T: "schwarz umreiste neun"] # 0x277e (en: 'black circled nine', google translation) + - "❿": [T: "schwarz umkreiste zehn"] # 0x277f (en: 'black circled ten', google translation) + - "➀": [T: "umkreiste eins ohne serife"] # 0x2780 (en: 'circled sans serif one', google translation) + - "➁": [T: "umkreiste zwei ohne serife"] # 0x2781 (en: 'circled sans serif two', google translation) + - "➂": [T: "umkreiste drei hne serife "] # 0x2782 (en: 'circled sans serif three', google translation) + - "➃": [T: "umkreiste vier ohne serife"] # 0x2783 (en: 'circled sans serif four', google translation) + - "➄": [T: "umkreite fünf ohne serife"] # 0x2784 (en: 'circled sans serif five', google translation) + - "➅": [T: "umkreiste sechs ohne serife"] # 0x2785 (en: 'circled sans serif six', google translation) + - "➆": [T: "umkreiste sieben ohne serife"] # 0x2786 (en: 'circled sans serif seven', google translation) + - "➇": [T: "umkreiste acht ohne serife"] # 0x2787 (en: 'circled sans serif eight', google translation) + - "➈": [T: "umkreiste neun ohne serife"] # 0x2788 (en: 'circled sans serif nine', google translation) + - "➉": [T: "umkreiste zehn ohne serife"] # 0x2789 (en: 'circled sans serif ten', google translation) + - "➊": [T: "schwarz umkreiste eins ohne serife"] # 0x278a (en: 'black circled sans serif one', google translation) + - "➋": [T: "schwarz umkreiste zwei ohne serife"] # 0x278b (en: 'black circled sans serif two', google translation) + - "➌": [T: "schwarz umkreiste drei ohne serife"] # 0x278c (en: 'black circled sans serif three', google translation) + - "➍": [T: "schwarz umkreiste vier ohne serife"] # 0x278d (en: 'black circled sans serif four', google translation) + - "➎": [T: "schwarz umkreiste fünf ohne serife"] # 0x278e (en: 'black circled sans serif five', google translation) + - "➏": [T: "schwarz umkreiste sechs ohne serife"] # 0x278f (en: 'black circled sans serif six', google translation) + - "➐": [T: "schwarz umkreiste sieben ohne serife"] # 0x2790 (en: 'black circled sans serif seven', google translation) + - "➑": [T: "schwarz umkreiste acht ohne serife "] # 0x2791 (en: 'black circled sans serif eight', google translation) + - "➒": [T: "schwarz umkreiste neun ohne serife"] # 0x2792 (en: 'black circled sans serif nine', google translation) + - "➓": [T: "schwarz umkreiste zehn ohne serife"] # 0x2793 (en: 'black circled sans serif ten', google translation) + - "➔": [T: "Schwerer, breitköpfiger nach rechts gerichteter Pfeil"] # 0x2794 (en: 'heavy wide-headed rightwards arrow', google: 'schwerer breiter arrow') + - "➕": [T: "dickes großes Pluszeichen"] # 0x2795 (en: 'heavy plus sign', google: 'schweres pluszeichen') + - "➖": [T: "dickes großes Minuszeichen"] # 0x2796 (en: 'heavy minus sign', google: 'schweres minuszeichen') + - "➗": [T: "dickes großes Divisionszeichen"] # 0x2797 (en: 'heavy division sign', google: 'schweres divisionszeichen') + - "➘": [T: "Starker Südostpfeil"] # 0x2798 (en: 'heavy south east arrow', google: 'schwerer südostpfeil') + - "➙": [T: "Starker Pfeil nach rechts"] # 0x2799 (en: 'heavy rightwards arrow', google: 'schwerer rechts pfeil') + - "➚": [T: "Starker Nordostpfeil"] # 0x279a (en: 'heavy north east arrow', google: 'schwerer nordostpfeil') + - "➛": [T: "Zeichnungszeichen Pfeil nach rechts"] # 0x279b (en: 'drafting point rightwards arrow', google: 'ausgangspunkt rechts von pfeil') + - "➜": [T: "Starker Pfeil mit runder Spitze nach rechts"] # 0x279c (en: 'heavy round-tipped rightwards arrow', google: 'schwerer pfeil nach rechts') + - "➝": [T: "Dreieckköpfiger Pfeil nach rechts"] # 0x279d (en: 'triangle-headed rightwards arrow', google: 'dreieck köpfig mit rechtsem pfeil') + - "➞": [T: "Schwerer Dreieckspfeil nach rechts"] # 0x279e (en: 'heavy triangle-headed rightwards arrow', google: 'schwerer pfeil mit dreieck-köpfen') + - "➟": [T: "Dicker Pfeil nach rechts"] # 0x279f (en: 'dashed triangle-headed rightwards arrow', google: 'dreieck köpfig nach rechtsem pfeil') + - "➠": [T: "Dicker, gestrichelter Dreieckspfeil nach rechts"] # 0x27a0 (en: 'heavy dashed triangle-headed rightwards arrow', google: 'schwerer, geschnittenes dreieck-köpfiger pfeil nach rechts') + - "➡": [T: "Dicker Pfeil nach rechts"] # 0x27a1 (en: 'black rightwards arrow', google: 'schwarzer pfeil nach rechts') + - "➢": [T: "Dreidimensionale, nach oben beleuchtete Pfeilspitze nach rechts"] # 0x27a2 (en: 'three d top lighted rightwards arrow', google: 'drei d top leuchtet nach rechts') + - "➣": [T: "Dreidimensionale, von unten beleuchtete Pfeilspitze nach rechts"] # 0x27a3 (en: 'three d bottom lighted rightwards arrow', google: 'drei d bottom beleuchtet nach rechts') + - "➤": [T: "Schwarze Pfeilspitze nach rechts"] # 0x27a4 (en: 'black rightwards arrowhead', google: 'schwarz rechts pfeilspitze') + - "➥": [T: "Schwerer schwarzer Pfeil nach unten und rechts gebogen"] # 0x27a5 (en: 'heavy black curved downwards and rightwards arrow', google: 'schwerer schwarz gebrüht nach unten und rechts pfeil') + - "➦": [T: "Schwerer schwarzer Pfeil nach oben und rechts gebogen"] # 0x27a6 (en: 'heavy black curved upwards and rightwards arrow', google: 'schwerer schwarz nach oben gebogen und rechts pfeil') + - "➧": [T: "Schwarzer kurzer nach rechts gerichteter Pfeil"] # 0x27a7 (en: 'squat black rightwards arrow', google: 'hocke black rightwards pfeil') + - "➨": [T: "Schwerer konkaver Spitze-Pfeil nach rechts"] # 0x27a8 (en: 'heavy concave-pointed black rightwards arrow', google: 'schwerer konkavspunkter schwarzer pfeil nach rechts') + - "➩": [T: "Rechts geschatteter weißer Pfeil nach rechts"] # 0x27a9 (en: 'right-shaded white rightwards arrow', google: 'right shaded white rightwards pfeil') + - "➪": [T: "Links schattierter weißer Pfeil nach rechts"] # 0x27aa (en: 'left-shaded white rightwards arrow', google: 'linksschattierte weiße pfeil nach rechts') + - "➫": [T: "Zurückgekippter, beschatteter weißer Pfeil nach rechts"] # 0x27ab (en: 'back-tilted shadowed white rightwards arrow', google: 'rückgedünnter weißer weißer pfeil nach rechts') + - "➬": [T: "Vorne geneigter, beschatteter weißer Pfeil nach rechts"] # 0x27ac (en: 'front-tilted shadowed white rightwards arrow', google: 'frontgeflodeltes weißer weißer pfeil nach rechts') + - "➭": [T: "Schwerer unterer rechter Schatten mit weißem Pfeil nach rechts"] # 0x27ad (en: 'heavy lower right-shadowed white rightwards arrow', google: 'schwere, rechte schatten mit weißem recht nach rechts') + - "➮": [T: "Schwerer oberer rechter Schatten mit weißem Pfeil nach rechts"] # 0x27ae (en: 'heavy upper right-shadowed white rightwards arrow', google: 'schwere obere rechte schattenhafte weiße rechts pfeil') + - "➯": [T: "Unten gekerbter Pfeil nach rechts"] # 0x27af (en: 'notched lower right-shadowed white rightwards arrow', google: 'gekerbte rechte rechten weißen pfeil nach rechts') + - "➱": [T: "Uben gekerbter Pfeil nach rechts"] # 0x27b1 (en: 'notched upper right-shadowed white rightwards arrow', google: 'gekerbte obere rechte schattenhafte weiße pfeil nach rechts') + - "➲": [T: "Eingekreister schwerer weißer Pfeil nach rechts"] # 0x27b2 (en: 'circled heavy white rightwards arrow', google: 'umgekreist schweren weißen pfeil nach rechts') + - "➳": [T: "Pfeil mit weißer Feder nach rechts"] # 0x27b3 (en: 'white-feathered rightwards arrow', google: 'weiß gefiederter pfeil nach rechts') + - "➴": [T: "Schwarz-gefiederter Südostpfeil"] # 0x27b4 (en: 'black-feathered south east arrow', google: 'schwarz gefiederter südöstlicher pfeil') + - "➵": [T: "chwarz-gefiederter Pfeil nach rechts"] # 0x27b5 (en: 'black-feathered rightwards arrow', google: 'schwarz gefiederter pfeil nach rechts') + - "➶": [T: "Schwarzgefiederter Nordostpfeil"] # 0x27b6 (en: 'black-feathered north east arrow', google: 'schwarz gefiederter nordostpfeil') + - "➷": [T: "Schwerer schwarzgefiederter Südostpfeil"] # 0x27b7 (en: 'heavy black-feathered south east arrow', google: 'schwerer schwarz gefiederter südostpfeil') + - "➸": [T: "Schwarzgefiederter Pfeil nach rechts"] # 0x27b8 (en: 'heavy black-feathered rightwards arrow', google: 'schwerer schwarz gefiederter pfeil nach rechts') + - "➹": [T: "Schwarzgefiederter Nordostpfeil"] # 0x27b9 (en: 'heavy black-feathered north east arrow', google: 'schwerer schwarz gefiederter nordostpfeil') + - "➺": [T: "Teradrop-Pfeil nach rechts mit Haken"] # 0x27ba (en: 'teradrop-barbed rightwards arrow', google: 'teradrop-barded mit rechtsem pfeil') + - "➻": [T: "Schwerer Pfeil mit tropfenförmigem Schaft, nach rechts gebogen"] # 0x27bb (en: 'heavy teardrop-shanked rightwards arrow', google: 'schwere tränenverschiebung nach rechts pfeil') + - "➼": [T: "Keilförmiger Pfeil nach rechts"] # 0x27bc (en: 'wedge-tailed rightwards arrow', google: 'keilschwanz rechts pfeil') + - "➽": [T: "Schwerer, nach rechts gekeilter Pfeil"] # 0x27bd (en: 'heavy wedge-tailed rightwards arrow', google: 'schwerer keilschwanz rechts pfeil') + - "➾": [T: "Offener Pfeil nach rechts"] # 0x27be (en: 'open-outlined rightwards arrow', google: 'open-out-line-rightwards-pfeil') + - "⟀": [T: "Dreidimensionaler Winkel"] # 0x27c0 (en: 'three dimensional angle', MathPlayer: 'three dimensional angle', google: 'dreidimensionaler winkel') + - "⟁": [T: "Weißes Dreieck, das ein kleines weißes Dreieck enthält"] # 0x27c1 (en: 'white triangle containing small white triangle', MathPlayer: 'white triangle containing small white triangle', google: 'weißes dreieck mit einem kleinen weißen dreieck') + - "⟂": # 0x27c2 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "rechtwinklig" # (en: 'perpendicular to', MathPlayer: 'perpendicular', google: 'senkrecht zu') + - "⟃": # 0x27c3 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "offene Teilmenge von" # (en: 'an open subset of', MathPlayer: 'open subset', google: 'eine offene teilmenge von') + - "⟄": # 0x27c4 + - test: + if: "$Verbosity!='Terse'" + then: [T: "ist"] # (en: 'is', google translation) + - T: "offene Obermenge von" # (en: 'an open superset of', MathPlayer: 'open superset', google: 'ein offenes superet von') + - "⟅": [T: "Linker S-förmiger Taschenbegrenzer"] # 0x27c5 (en: 'left s-shaped bag delimiter', MathPlayer: 'left s-shaped bag delimiter', google: 'links s-förmiger tasche gremiter') + - "⟆": [T: "rechter S-förmiger Taschenbegrenzer"] # 0x27c6 (en: 'right s-shaped bag delimiter', MathPlayer: 'right s-shaped bag delimiter', google: 'rechte s-förmige tasche grenzwerbung') + - "⟇": [T: "Oder mit innerem Punkt"] # 0x27c7 (en: 'or with dot inside', MathPlayer: 'or with dot inside', google: 'oder mit punkt im inneren') + - "⟈": [T: "Umgekehrter Schrägstrich Vorhergehender Teilsatz"] # 0x27c8 (en: 'reverse solidus preceding subset', MathPlayer: 'back slash preceeding subset', google: 'reverse solidus vor der untergruppe') + - "⟉": [T: "Superset Vorgänger Schrägstrich"] # 0x27c9 (en: 'superset preceding solidus', MathPlayer: 'superset preceeding slash', google: 'superset vor solidus') + - "⟊": [T: "Vertikaler Balken mit horizontalem Hub"] # 0x27ca (en: 'vertical bar with horizontal stroke', MathPlayer: 'vertical bar with horizontal stroke', google: 'vertikale balken mit horizontalem schlaganfall') + - "⟋": [T: "Mathematische aufsteigende Diagonale"] # 0x27cb (en: 'mathematical rising diagonal', google: 'mathematische steigende diagonale') + - "⟌": [T: "Lange Abteilung"] # 0x27cc (en: 'long division', MathPlayer: 'long division', google: 'lange division') + - "⟍": [T: "Mathematische fallende Diagonale"] # 0x27cd (en: 'mathematical falling diagonal', google: 'mathematische fallende diagonale') + - "⟎": [T: "quadratisches und"] # 0x27ce (en: 'squared logical and', google: 'quadratisch logisch und') + - "⟏": [T: "quadratisches oder"] # 0x27cf (en: 'squared logical or', google: 'quadratisch logisch oder') + - "⟐": [T: "Weißer Diamant mit zentriertem Punkt"] # 0x27d0 (en: 'white diamond with centered dot', google: 'weißer diamant mit zentriertem punkt') + - "⟑": [T: "Und mit Punkt"] # 0x27d1 (en: 'and with dot', MathPlayer: 'and with dot inside', google: 'und mit punkt') + - "⟒": [T: "Element der Öffnung nach oben"] # 0x27d2 (en: 'element of opening upwards', MathPlayer: 'element of openning upwards', google: 'element der öffnung nach oben') + - "⟓": [T: "Untere rechte Ecke mit Punkt"] # 0x27d3 (en: 'lower right corner with dot', MathPlayer: 'lower right corner with dot', google: 'untere rechte ecke mit punkt') + - "⟔": [T: "Obere linke Ecke mit Punkt"] # 0x27d4 (en: 'upper left corner with dot', MathPlayer: 'lower left corner with dot', google: 'obere linke ecke mit punkt') + - "⟕": [T: "Linke äußere Verbindung"] # 0x27d5 (en: 'left outer join', MathPlayer: 'left outer join', google: 'linke äußere verbindung') + - "⟖": [T: "Rechte äußere Verbindung"] # 0x27d6 (en: 'right outer join', MathPlayer: 'right outer join', google: 'rechts äußerer join') + - "⟗": [T: "Volle äußere Verbindung"] # 0x27d7 (en: 'full outer join', MathPlayer: 'full outer join', google: 'voller äußerer join') + - "⟘": [T: "Großer Aufwärtsstrich"] # 0x27d8 (en: 'large up tack', MathPlayer: 'large up tack', google: 'groß nach oben') + - "⟙": [T: "Großer Abwärtsstrich"] # 0x27d9 (en: 'large down tack', MathPlayer: 'large down tack', google: 'groß nach unten') + - "⟚": [T: "Linkes und rechtes doppeltes Drehkreuz"] # 0x27da (en: 'left and right double turnstile', MathPlayer: 'left and right double turnstile', google: 'linke und rechte doppeldrehung') + - "⟛": [T: "Linker und rechter Tack"] # 0x27db (en: 'left and right tack', MathPlayer: 'left and right tack', google: 'linker und rechter angriff') + - "⟜": [T: "Linke Multikarte"] # 0x27dc (en: 'left multimap', MathPlayer: 'left multimap', google: 'links multimap') + - "⟝": [T: "Langer rechter Strich"] # 0x27dd (en: 'long right tack', MathPlayer: 'long right tack', google: 'langer richtiger tack') + - "⟞": [T: "Langer linker Strich"] # 0x27de (en: 'long left tack', MathPlayer: 'long left tack', google: 'lange linke tack') + - "⟟": [T: "Aufwärtsstrich mit Kreis oben"] # 0x27df (en: 'up tack with circle above', MathPlayer: 'up tack with circle above', google: 'auf kreis oben') + - "⟠": [T: "Raute durch horizontale Regel geteilt"] # 0x27e0 (en: 'lozenge divided by horizontal rule', MathPlayer: 'lozenge divided by horizontal rule', google: 'rautengeschwindigkeit geteilt durch horizontale herrschaft') + - "⟡": [T: "Weißer konkavseitiger Diamant"] # 0x27e1 (en: 'white concave sided diamond', MathPlayer: 'white concave sided diamond', google: 'weißer konkaves diamant') + - "⟢": [T: "Weißer konkavseitiger Diamant mit Häkchen nach links"] # 0x27e2 (en: 'white concave sided diamond with leftwards tick', MathPlayer: 'white concave sided diamond with leftwards tick', google: 'weißer konkaves diamant mit linkser zecke') + - "⟣": [T: "Weißer konkavseitiger Diamant mit Häkchen nach rechts"] # 0x27e3 (en: 'white concave sided diamond with rightwards tick', MathPlayer: 'white concave sided diamond with rightwards tick', google: 'weißer konkaves diamant mit rightwards tick') + - "⟤": [T: "Weißes Quadrat mit Häkchen nach links"] # 0x27e4 (en: 'white square with leftwards tick', MathPlayer: 'white square with leftwards tick', google: 'weißes quadrat mit links. tick') + - "⟥": [T: "Weißes Quadrat mit Häkchen nach rechts"] # 0x27e5 (en: 'white square with rightwards tick', MathPlayer: 'white square with rightwards tick', google: 'weißes quadrat mit rechtsem häkchen') + - "⟦": [T: "Mathematische linke weiße eckige Klammer"] # 0x27e6 (en: 'left white square bracket', MathPlayer: 'left white square bracket', google: 'linke weiße quadratklammer') + - "⟧": [T: "Mathematische rechte weiße eckige Klammer"] # 0x27e7 (en: 'right white square bracket', MathPlayer: 'right white square bracket', google: 'rechte weiße quadratklasse') + - "⟨": [T: "Mathematische linke Winkelklammer"] # 0x27e8 (en: 'left angle bracket', MathPlayer: 'left angle bracket', google: 'linkswinkelhalter') + - "⟩": [T: "Mathematische rechtwinklige Klammer"] # 0x27e9 (en: 'right angle bracket', MathPlayer: 'right angle bracket', google: 'rechtswinkelhalterung') + - "⟪": [T: "Mathematische linke doppelte Winkelklammer"] # 0x27ea (en: 'left double angle bracket', MathPlayer: 'left double angle bracket', google: 'links zwei winkelhalterungen') + - "⟫": [T: "Mathematische rechtwinklige eckige Klammer"] # 0x27eb (en: 'right double angle bracket', MathPlayer: 'right double angle bracket', google: 'rechte doppelwinkelhalterung') + - "⟬": [T: "Mathematische linke weiße Schildpatt-Klammer"] # 0x27ec (en: 'left white tortoise shell bracket', MathPlayer: 'left white tortoise shell bracket', google: 'links weiße schildkröte') + - "⟭": [T: "Mathematische rechte weiße Schildpatt-Klammer"] # 0x27ed (en: 'right white tortoise shell bracket', MathPlayer: 'right white tortoise shell bracket', google: 'richtige weiße schildkrabbungshalterung') + - "⟮": [T: "Mathematische linke abgeflachte Klammer"] # 0x27ee (en: 'left flattened parenthesis', MathPlayer: 'left flattened parenthesis', google: 'links abgeflachte klammern') + - "⟯": [T: "Mathematische rechte abgeflachte Klammer"] # 0x27ef (en: 'right flattened parenthesis', MathPlayer: 'right flattened parenthesis', google: 'rechte abgeflachte klammern') + - "⟰": [T: "Vierfachpfeil nach oben"] # 0x27f0 (en: 'upwards quadruple arrow', google: 'vierfache pfeil nach oben') + - "⟱": [T: "Vierfacher Pfeil nach unten"] # 0x27f1 (en: 'downwards quadruple arrow', google: 'abwärtsvervierter pfeil') + - "⟲": [T: "Kreispfeil gegen den Uhrzeigersinn"] # 0x27f2 (en: 'anticlockwise gapped circle arrow', google: 'gezitterkreis pfeil gegen den gegen den lockzuseigersinn') + - "⟳": [T: "Kreispfeil im Uhrzeigersinn"] # 0x27f3 (en: 'clockwise gapped circle arrow', google: 'geteilte kreispfeil im uhrzeigersinn') + - "⟴": [T: "rechter Pfeil mit Circled Plus"] # 0x27f4 (en: 'right arrow with circled plus', google: 'richtiger pfeil mit eingekreistem plus') + - "⟵": [T: "Langer Pfeil nach links"] # 0x27f5 (en: 'long leftwards arrow', MathPlayer: 'long leftwards arrow', google: 'langer pfeil nach links') + - "⟶": [T: "Langer Pfeil nach rechts"] # 0x27f6 (en: 'long rightwards arrow', MathPlayer: 'long rightwards arrow', google: 'langer rechts pfeil') + - "⟷": [T: "Langer linker rechter Pfeil"] # 0x27f7 (en: 'long left right arrow', MathPlayer: 'long left right arrow', google: 'langer links rechts pfeil') + - "⟸": [T: "Langer Doppelpfeil nach links"] # 0x27f8 (en: 'long leftwards double arrow', MathPlayer: 'long leftwards double arrow', google: 'langer links doppelpfeil') + - "⟹": [T: "Langer Doppelpfeil nach rechts"] # 0x27f9 (en: 'long rightwards double arrow', MathPlayer: 'long rightwards double arrow', google: 'langer rechts doppelpfeil') + - "⟺": [T: "Langer linker rechter Doppelpfeil"] # 0x27fa (en: 'long left right double arrow', MathPlayer: 'long left right double arrow', google: 'langer links rechts doppelpfeil') + - "⟻": [T: "Langer Pfeil nach links mit Sockel"] # 0x27fb (en: 'long leftwards arrow from bar', google: 'langer links pfeil aus der bar') + - "⟼": [T: "Langer Pfeil nach rechts mit Sockel"] # 0x27fc (en: 'long rightwards arrow from bar', MathPlayer: 'long rightwards arrow from bar', google: 'langer rechts pfeil aus der bar') + - "⟽": [T: "Langer Doppelpfeil nach links mit Sockel"] # 0x27fd (en: 'long leftwards double arrow from bar', google: 'langer links doppelpfeil aus der bar') + - "⟾": [T: "Langer Doppelpfeil nach rechts mit Sockel"] # 0x27fe (en: 'long rightwards double arrow from bar', google: 'langer rechts doppelpfeil aus der bar') + - "⟿": [T: "Langer, nach rechts gekrümmter Pfeil"] # 0x27ff (en: 'long rightwards squiggle arrow', MathPlayer: 'long rightwards squiggle arrow', google: 'langer rechts squiggle -pfeil') + - "⤀": [T: "Nach rechts gerichteter Doppelpfeil mit vertikalem Strich"] # 0x2900 (en: 'rightwards two headed arrow with vertical stroke', google: 'rechten zweiköpfigen pfeil mit vertikalem schlaganfall') + - "⤁": [T: "Nach rechts gerichteter Doppelpfeil mit doppeltem vertikalem Strich"] # 0x2901 (en: 'rightwards two headed arrow with double vertical stroke', google: 'rechten zweiköpfigen pfeil mit doppelter vertikaler hub') + - "⤂": [T: "Doppelpfeil nach links mit vertikalem Strich"] # 0x2902 (en: 'leftwards double arrow with vertical stroke', google: 'links doppelpfeil mit vertikalem schlaganfall') + - "⤃": [T: "Doppelpfeil nach rechts mit vertikalem Strich"] # 0x2903 (en: 'rightwards double arrow with vertical stroke', google: 'richtiger doppelpfeil mit vertikalem schlaganfall') + - "⤄": [T: "Linker rechter Doppelpfeil mit vertikalem Strich"] # 0x2904 (en: 'left right double arrow with vertical stroke', google: 'links rechts doppelpfeil mit vertikalem schlaganfall') + - "⤅": [T: "Zwei Pfeile nach rechts mit Sockel "] # 0x2905 (en: 'rightwards two headed arrow from bar', MathPlayer: 'rightwards two headed arrow from bar', google: 'rightwards zwei köpfe pfeil aus der bar') + - "⤆": [T: "Doppelpfeil nach links mit Sockel"] # 0x2906 (en: 'leftwards double arrow from bar', google: 'links doppelpfeil aus der bar') + - "⤇": [T: "Doppelter Pfeil nach rechts mit Sockel"] # 0x2907 (en: 'rightwards double arrow from bar', google: 'richtiger doppelpfeil aus der bar') + - "⤈": [T: "Abwärtspfeil mit horizontalem Strich"] # 0x2908 (en: 'downwards arrow with horizontal stroke', google: 'nach unten pfeil mit horizontalem schlaganfall nach unten') + - "⤉": [T: "Aufwärtspfeil mit horizontalem Anschlag"] # 0x2909 (en: 'upwards arrow with horizontal stroke', google: 'aufwärter pfeil mit horizontalem schlaganfall') + - "⤊": [T: "Dreifachpfeil nach oben"] # 0x290a (en: 'upwards triple arrow', google: 'dreifach pfeil nach oben') + - "⤋": [T: "Dreifacher Pfeil nach unten"] # 0x290b (en: 'downwards triple arrow', google: 'dreifach pfeil nach unten') + - "⤌": [T: "Doppelpfeil nach links"] # 0x290c (en: 'leftwards double dash arrow', MathPlayer: 'leftwards double dash arrow', google: 'links -doppel -dash -pfeil') + - "⤍": [T: "Doppelpfeil nach rechts"] # 0x290d (en: 'rightwards double dash arrow', MathPlayer: 'rightwards double dash arrow', google: 'rightwards double dash -pfeil') + - "⤎": [T: "Dreifacher Strichpfeil nach links"] # 0x290e (en: 'leftwards triple dash arrow', MathPlayer: 'leftwards triple dash arrow', google: 'links dreifach dash -pfeil') + - "⤏": [T: "Dreifacher Strichpfeil nach rechts"] # 0x290f (en: 'rightwards triple dash arrow', MathPlayer: 'rightwards triple dash arrow', google: 'rightwards triple dash pfeil') + - "⤐": [T: "Dreipoliger Pfeil nach rechts"] # 0x2910 (en: 'rightwards two headed triple dash arrow', MathPlayer: 'rightwards two headed triple dash arrow', google: 'rightwards zwei köpfe triple dash -pfeil') + - "⤑": [T: "Pfeil nach rechts mit gepunktetem Stamm"] # 0x2911 (en: 'rightwards arrow with dotted stem', MathPlayer: 'rightwards arrow with dotted stem', google: 'richtiger pfeil mit gepunktetem stiel') + - "⤒": [T: "Aufwärtspfeil zur Sockel"] # 0x2912 (en: 'upwards arrow to bar', MathPlayer: 'upwards arrow to bar', google: 'aufwärter pfeil in die bar') + - "⤓": [T: "Abwärtspfeil zur Sockel"] # 0x2913 (en: 'downwards arrow to bar', MathPlayer: 'downwards arrow to bar', google: 'nach unten pfeil in die bar') + - "⤔": [T: "Pfeil nach rechts mit Schwanz mit vertikalem Strich"] # 0x2914 (en: 'rightwards arrow with tail and vertical stroke', google: 'rechten pfeil mit schwanz und vertikalem schlaganfall') + - "⤕": [T: "Pfeil nach rechts mit Schwanz mit doppeltem vertikalen Strich"] # 0x2915 (en: 'rightwards arrow with tail and double vertical stroke', google: 'rechten pfeil mit schwanz und doppelter vertikaler schlaganfall') + - "⤖": [T: "Nach rechts gerichteter zweiköpfiger Pfeil mit Schwanz"] # 0x2916 (en: 'rightwards two headed arrow with tail', MathPlayer: 'rightwards two headed arrow with tail', google: 'rechten zweiköpfigen pfeil mit schwanz') + - "⤗": [T: "Nach rechts gerichteter Doppelpfeil mit Schwanz mit senkrechtem Anschlag"] # 0x2917 (en: 'rightwards two headed arrow with tail with vertical stroke', google: 'rechten zweiköpfigen pfeil mit schwanz mit vertikalem schlaganfall') + - "⤘": [T: "Nach rechts gerichteter Doppelpfeil mit Schwanz mit doppeltem vertikalen Strich"] # 0x2918 (en: 'rightwards two headed arrow with tail with double vertical stroke', google: 'rechten zweiköpfigen pfeil mit schwanz mit doppelter vertikaler hub') + - "⤙": [T: "Pfeilspitze nach links"] # 0x2919 (en: 'leftwards arrow tail', MathPlayer: 'leftwards arrow tail', google: 'links pfeilschwanz') + - "⤚": [T: "Pfeilspitze nach rechts"] # 0x291a (en: 'rightwards arrow tail', google: 'richtiger pfeilschwanz') + - "⤛": [T: "Doppelter Pfeilschwanz nach links"] # 0x291b (en: 'leftwards double arrow tail', MathPlayer: 'leftwards double arrow tail', google: 'links doppelpfeilschwanz') + - "⤜": [T: "Doppelter Pfeilschwanz nach rechts"] # 0x291c (en: 'rightwards double arrow tail', MathPlayer: 'rightwards double arrow tail', google: 'rightwards double pfeilschwanz') + - "⤝": [T: "Pfeil nach links zu Black Diamond"] # 0x291d (en: 'leftwards arrow to filled diamond', MathPlayer: 'leftwards arrow to filled diamond', google: 'pfeil nach links zum gefüllten diamanten') + - "⤞": [T: "Pfeil nach rechts zu Black Diamond"] # 0x291e (en: 'rightwards arrow to filled diamond', MathPlayer: 'rightwards arrow to filled diamond', google: 'richtiger pfeil zum gefüllten diamanten') + - "⤟": [T: "Pfeil nach links von Bar zu Black Diamond"] # 0x291f (en: 'leftwards arrow from bar to filled diamond', MathPlayer: 'leftwards arrow from bar to filled diamond', google: 'pfeil von der bar zum gefüllten diamanten links') + - "⤠": [T: "Pfeil nach rechts von Bar zu Black Diamond"] # 0x2920 (en: 'rightwards arrow from bar to filled diamond', MathPlayer: 'rightwards arrow from bar to filled diamond', google: 'richtiger pfeil von bar zum gefüllten diamanten') + - "⤡": [T: "Nordwest- und Südostpfeil"] # 0x2921 (en: 'north west and south east arrow', google: 'nordwest- und südostpfeil') + - "⤢": [T: "Nordost- und Südwestpfeil"] # 0x2922 (en: 'north east and south west arrow', google: 'nordost- und südwestpfeil') + - "⤣": [T: "Nordwestpfeil mit Haken"] # 0x2923 (en: 'north west arrow with hook', MathPlayer: 'north west arrow with hook', google: 'nordwestpfeil mit haken') + - "⤤": [T: "Nordostpfeil mit Haken"] # 0x2924 (en: 'north east arrow with hook', MathPlayer: 'north east arrow with hook', google: 'nordostpfeil mit haken') + - "⤥": [T: "Südostpfeil mit Haken"] # 0x2925 (en: 'south east arrow with hook', MathPlayer: 'south east arrow with hook', google: 'südostpfeil mit haken') + - "⤦": [T: "Südwestpfeil mit Haken"] # 0x2926 (en: 'south west arrow with hook', MathPlayer: 'south west arrow with hook', google: 'südwestpfeil mit haken') + - "⤧": [T: "Nordwestpfeil und Nordostpfeil"] # 0x2927 (en: 'north west arrow and north east arrow', MathPlayer: 'north west arrow and north east arrow', google: 'north west arrow und north east pfeil') + - "⤨": [T: "Nordostpfeil und Südostpfeil"] # 0x2928 (en: 'north east arrow and south east arrow', MathPlayer: 'north east arrow and south east arrow', google: 'north east arrow und south east pfeil') + - "⤩": [T: "Südostpfeil und Südwestpfeil"] # 0x2929 (en: 'south east arrow and south west arrow', MathPlayer: 'south east arrow and south west arrow', google: 'south east arrow und south west arrow') + - "⤪": [T: "Südwestpfeil und Nordwestpfeil"] # 0x292a (en: 'south west arrow and north west arrow', MathPlayer: 'south west arrow and north west arrow', google: 'südwestpfeil und nordwestpfeil') + - "⤫": [T: "Steigende diagonale Kreuzung fallende Diagonale"] # 0x292b (en: 'rising diagonal crossing falling diagonal', google: 'steigende diagonale kreuzung fallende diagonale') + - "⤬": [T: "Fallende diagonale Kreuzung steigende Diagonale"] # 0x292c (en: 'falling diagonal crossing rising diagonal', google: 'fallende diagonale kreuzende diagonale diagonale kreuzung') + - "⤭": [T: "Südostpfeil Kreuzung Nordostpfeil"] # 0x292d (en: 'south east arrow crossing north east arrow', google: 'south east arrow crossed north east pfeil') + - "⤮": [T: "Nordostpfeil Kreuzung Südostpfeil"] # 0x292e (en: 'north east arrow crossing south east arrow', google: 'north east arrow crossed south east pfeil') + - "⤯": [T: "Fallende Diagonale, die Nordostpfeil kreuzt"] # 0x292f (en: 'falling diagonal crossing north east arrow', google: 'fallende diagonale kreuzung north east pfeil') + - "⤰": [T: "Steigende Diagonale, die Südostpfeil kreuzt"] # 0x2930 (en: 'rising diagonal crossing south east arrow', google: 'steigende diagonale kreuzung südostpfeil') + - "⤱": [T: "Nordostpfeilüberquerung Nordwestpfeil"] # 0x2931 (en: 'north east arrow crossing north west arrow', google: 'nordostpfeil der nordwestpfeil') + - "⤲": [T: "Nordwestpfeilüberquerung Nordostpfeil"] # 0x2932 (en: 'north west arrow crossing north east arrow', google: 'nordwest -pfeil überqueren north east pfeil') + - "⤳": [T: "Wellenpfeil, der nach rechts zeigt"] # 0x2933 (en: 'wave arrow pointing directly right', MathPlayer: 'wave arrow pointing directly to the right', google: 'wellenpfeil direkt nach rechts zeigen') + - "⤴": [T: "Pfeil nach rechts, dann nach oben gekrümmt"] # 0x2934 (en: 'arrow pointing rightwards then curving upwards', google: 'pfeil nach rechts zeigt und dann nach oben krümmt') + - "⤵": [T: "Pfeil nach rechts, dann nach unten gekrümmt"] # 0x2935 (en: 'arrow pointing rightwards then curving downwards', MathPlayer: 'arrow pointing rightwards then curving downwards', google: 'pfeil nach rechts zeigt und dann nach unten krümmt') + - "⤶": [T: "Pfeil nach unten, dann nach links gekrümmt"] # 0x2936 (en: 'arrow pointing downwards then curving leftwards', MathPlayer: 'arrow pointing downwards then curving leftwards', google: 'pfeil nach unten zeigt und dann nach links krümmt') + - "⤷": [T: "Pfeil nach unten, dann nach rechts gekrümmt"] # 0x2937 (en: 'arrow pointing downwards then curving rightwards', MathPlayer: 'arrow pointing downwards then curving rightwards', google: 'pfeil nach unten zeigt und dann nach rechts krümmt') + - "⤸": [T: "Rechtsseitiger Bogen im Uhrzeigersinn"] # 0x2938 (en: 'right side arc clockwise arrow', MathPlayer: 'clockwise right semicircle arrow', google: 'rechte seite arc im uhrzeigersinn') + - "⤹": [T: "Bogen von der linken Seite gegen den Uhrzeigersinn"] # 0x2939 (en: 'left side arc anticlockwise arrow', MathPlayer: 'anticlockwise left semicircle arrow', google: 'linker side arc arc gegen den pfeil gegen gesamtzusehen') + - "⤺": [T: "Pfeil von rechts oben gegen den Uhrzeigersinn"] # 0x293a (en: 'top arc anticlockwise arrow', google: 'top -arc -arc gegen den pfeil gegen den uhrzeigersinn') + - "⤻": [T: "Pfeil von links unten gegen den Uhrzeigersinn"] # 0x293b (en: 'bottom arc anticlockwise arrow', google: 'bogenzeigero -pfeil gegen den unteren lichtbogen') + - "⤼": [T: "Pfeil von links unten im Uhrzeigersinn mit Minuszeichen links"] # 0x293c (en: 'top arc clockwise arrow with minus', MathPlayer: 'clockwise top semicircle arrow with minus', google: 'bogenzusuell -pfeil mit minus') + - "⤽": [T: "Pfeil von rechts unten gegen den Uhrzeigersinn mit Pluszeichen rechts"] # 0x293d (en: 'top arc anticlockwise arrow with plus', MathPlayer: 'anticlockwise top semicircle arrow with plus', google: 'top -arc -arc gegen plus gegen den arrow') + - "⤾": [T: "Rechter halbkreisförmiger Pfeil im Uhrzeigersinn"] # 0x293e (en: 'lower right semicircular clockwise arrow', google: 'unterhalb des rechten halbkreisförmigen pfeils im uhrzeigersinn') + - "⤿": [T: "Linker halbkreisförmiger Pfeil gegen den Uhrzeigersinn"] # 0x293f (en: 'lower left semicircular anticlockwise arrow', google: 'unterer linker halbkreisförmiger arrow gegen den gegen den gegen den uhrzeigersinn') + - "⥀": [T: "Geschlossener Kreispfeil gegen den Uhrzeigersinn"] # 0x2940 (en: 'anticlockwise closed circle arrow', google: 'schleigender kirckeisprohl') + - "⥁": [T: "Geschlossener Kreispfeil im Uhrzeigersinn"] # 0x2941 (en: 'clockwise closed circle arrow', google: 'pfeil im uhrzeigersinn geschlossen') + - "⥂": [T: "Pfeil nach rechts über einem kurzen Pfeil nach links"] # 0x2942 (en: 'rightwards arrow above short leftwards arrow', google: 'rechten pfeil über dem kurzen linken pfeil') + - "⥃": [T: "Pfeil nach links über einem kurzen Pfeil nach rechts"] # 0x2943 (en: 'leftwards arrow above short rightwards arrow', google: 'links pfeil über kurzer rechts pfeil') + - "⥄": [T: "Kurzer Pfeil nach rechts Über Pfeil nach links"] # 0x2944 (en: 'short rightwards arrow above leftwards arrow', google: 'kurz nach rechts pfeil über links') + - "⥅": [T: "Pfeil nach rechts mit Pluszeichen unten"] # 0x2945 (en: 'rightwards arrow with plus below', MathPlayer: 'rightwards arrow with plus below', google: 'rightwards pfeil mit plus unten') + - "⥆": [T: "Pfeil nach links mit Pluszeichen unten"] # 0x2946 (en: 'leftwards arrow with plus below', google: 'links pfeil mit plus unten') + - "⥇": [T: "Pfeil nach rechts durch X"] # 0x2947 (en: 'rightwards arrow through x', google: 'richtiger pfeil durch x') + - "⥈": [T: "Pfeil nach links und rechts durch kleinen Kreis"] # 0x2948 (en: 'left right arrow through circle', MathPlayer: 'left right arrow through circle', google: 'links rechts pfeil durch den kreis') + - "⥉": [T: "Aufwärts zweiköpfiger Pfeil vom kleinen Kreis ausgehend"] # 0x2949 (en: 'upwards two headed arrow from circle', MathPlayer: 'upwards two headed arrow from circle', google: 'auf zwei köpfe pfeil aus dem kreis') + - "⥊": [T: "Linker Haken oben mit rechtem Haken unten"] # 0x294a (en: 'left barb up right barb down harpoon', MathPlayer: 'left barb up right barb down harpoon', google: 'links barb oben rechte barb down harpoon') + - "⥋": [T: "Linker Haken unten mit rechtem Haken oben"] # 0x294b (en: 'left barb down right barb up harpoon', MathPlayer: 'left barb down right barb up harpoon', google: 'linker barb unten rechte barb auf harpoon') + - "⥌": [T: "Aufwärtshaken rechts, Abwärtshaken links"] # 0x294c (en: 'up barb right down barb left harpoon', google: 'auf barb rechts runter barb links harpune') + - "⥍": [T: "Aufwärtshaken links, Abwärtshaken rechts"] # 0x294d (en: 'up barb left down barb right harpoon', google: 'auf barb nach links nach unten abharpoon') + - "⥎": [T: "Linker Haken oben mit rechtem Haken oben"] # 0x294e (en: 'left barb up right barb up harpoon', MathPlayer: 'left right harpoon up', google: 'links barby up up barb up harpoon') + - "⥏": [T: "Aufwärtshaken rechts, Abwärtshaken rechts"] # 0x294f (en: 'up barb right down barb right harpoon', MathPlayer: 'up down harpoon right', google: 'auf barb direkt nach barb rechts rechts harpune') + - "⥐": [T: "Linker Haken unten mit rechtem Haken unten"] # 0x2950 (en: 'left barb down right barb down harpoon', MathPlayer: 'left right harpoon down', google: 'linker barb unten rechte barb nach unten harpoon') + - "⥑": [T: "Aufwärtshaken links, Abwärtshaken links"] # 0x2951 (en: 'up barb left down barb left harpoon', MathPlayer: 'up down harpoon left', google: 'auf barb ließ barb nach barb ließ harpoon') + - "⥒": [T: "Linker Haken oben mit Sockel links"] # 0x2952 (en: 'leftwards harpoon with barb up to bar', MathPlayer: 'leftwards harpoon to bar with barb upwards', google: 'links harpoon mit barb bis zur bar') + - "⥓": [T: "rechter Haken oben mit Sockel rechts"] # 0x2953 (en: 'rightwards harpoon with barb up to bar', MathPlayer: 'rightwards harpoon to bar with barb upwards', google: 'rightwards harpoon mit barb bis zur bar') + - "⥔": [T: "Aufwärtshaken rechts mit Sockel oben"] # 0x2954 (en: 'upwards harpoon with barb right to bar', MathPlayer: 'upwards harpoon to bar with barb rightwards', google: 'harpune nach oben mit barb right to bar') + - "⥕": [T: "Abwärtshaken rechts mit Sockel unten"] # 0x2955 (en: 'downwards harpoon with barb right to bar', MathPlayer: 'downwards harpoon to bar with barb rightwards', google: 'nach unten harpoon mit barb right to bar') + - "⥖": [T: "Linker Haken unten mit Sockel links"] # 0x2956 (en: 'leftwards harpoon with barb down to bar', MathPlayer: 'leftwards harpoon to bar with barb downwards', google: 'links harpoon mit barb in die bar') + - "⥗": [T: "Rechter Haken unten mit Sockel rechts"] # 0x2957 (en: 'rightwards harpoon with barb down to bar', MathPlayer: 'rightwards harpoon to bar with barb downwards', google: 'rightwards harpoon mit barb nach unten in die bar') + - "⥘": [T: "Aufwärtshaken links mit Sockel oben"] # 0x2958 (en: 'upwards harpoon with barb left to bar', MathPlayer: 'upwards harpoon to bar with barb leftwards', google: 'harpoon mit barb in der bar nach oben') + - "⥙": [T: "Abwärtshaken links mit Sockel unten"] # 0x2959 (en: 'downwards harpoon with barb left to bar', MathPlayer: 'downwards harpoon to bar with barb leftwards', google: 'abwärtsharpune mit barb in der bar nach unten') + - "⥚": [T: "Linker Haken oben mit Sockel rechts"] # 0x295a (en: 'leftwards harpoon with barb up from bar', MathPlayer: 'leftwards harpoon from bar with barb upwards', google: 'links -harpoon mit barb aus der bar') + - "⥛": [T: "Rechter Haken oben mit Sockel links"] # 0x295b (en: 'rightwards harpoon with barb up from bar', MathPlayer: 'rightwards harpoon from bar with barb upwards', google: 'rightwards harpoon mit barb auf der bar') + - "⥜": [T: "Aufwärtshaken rechts mit Sockel unten"] # 0x295c (en: 'upwards harpoon with barb right from bar', MathPlayer: 'upwards harpoon from bar with barb rightwards', google: 'harpune nach oben mit barb direkt aus der bar') + - "⥝": [T: "Abwärtshaken rechts mit Sockel oben"] # 0x295d (en: 'downwards harpoon with barb right from bar', MathPlayer: 'downwards harpoon from bar with barb rightwards', google: 'harpunen nach unten mit barb direkt aus der bar') + - "⥞": [T: "Linker Haken unten mit Sockel rechts"] # 0x295e (en: 'leftwards harpoon with barb down from bar', MathPlayer: 'leftwards harpoon from bar with barb downwards', google: 'links harpoon mit barb von bar aus der bar') + - "⥟": [T: "Rechter Haken unten mit Sockel links"] # 0x295f (en: 'rightwards harpoon with barb down from bar', MathPlayer: 'rightwards harpoon from bar with barb downwards', google: 'rightwards harpoon mit barb von bar aus der bar') + - "⥠": [T: "Aufwärtshaken links mit Sockel unten"] # 0x2960 (en: 'upwards harpoon with barb left from bar', MathPlayer: 'upwards harpoon from bar with barb leftwards', google: 'harpoon mit barb aus der bar nach oben') + - "⥡": [T: "Abwärtshaken links mit Sockel oben"] # 0x2961 (en: 'downwards harpoon with barb left from bar', MathPlayer: 'downwards harpoon from bar with barb leftwards', google: 'abwärtsharpune mit barb aus der bar weg') + - "⥢": [T: "Harpune nach links mit Widerhaken nach oben Harpune nach links mit Widerhaken nach unten"] # 0x2962 (en: 'leftwards harpoon with barb up above leftwards harpoon with barb down', MathPlayer: 'leftwards harpoon with barb up above leftwards harpoon with barb down', google: 'links harpoon mit barb oben links harpoon mit barb nach unten') + - "⥣": [T: "Harpune nach oben mit Widerhaken links neben Harpune nach oben Widerhaken Barb rechts"] # 0x2963 (en: 'upwards harpoon with barb left beside upwards harpoon with barb right', MathPlayer: 'upwards harpoon with barb left beside upwards harpoon with barb right', google: 'harpoon nach oben mit barb neben harpoon nach oben mit barb rechts') + - "⥤": [T: "Harpune nach rechts mit Widerhaken nach oben Harpune nach rechts mit Widerhaken nach unten"] # 0x2964 (en: 'rightwards harpoon with barb up above rightwards harpoon with barb down', MathPlayer: 'rightwards harpoon with barb up above rightwards harpoon with barb down', google: 'rightwards harpoon mit barb oben rechts harpoon mit barb down') + - "⥥": [T: "Harpune nach unten mit Widerhaken nach unten Harpune nach unten mit Widerhaken nach rechts"] # 0x2965 (en: 'downwards harpoon with barb left beside downwards harpoon with barb right', MathPlayer: 'downwards harpoon with barb left beside downwards harpoon with barb right', google: 'harpoon nach unten mit barb neben der abwärtsharpoon mit barb rechts') + - "⥦": [T: "Harpune nach links mit Widerhaken nach oben Harpune nach rechts mit Widerhaken nach oben"] # 0x2966 (en: 'leftwards harpoon with barb up above rightwards harpoon with barb up', MathPlayer: 'leftwards harpoon with barb up above rightwards harpoon with barb up', google: 'links harpoon mit barb oben rechts harpoon mit barb hoch') + - "⥧": [T: "Linke Harpune mit Widerhaken nach unten rechts Harpune mit Widerhaken nach unten"] # 0x2967 (en: 'leftwards harpoon with barb down above rightwards harpoon with barb down', MathPlayer: 'leftwards harpoon with barb down above rightwards harpoon with barb down', google: 'links harpoon mit barb oben rechts harpoon mit barb nach unten') + - "⥨": [T: "Harpune nach rechts mit Widerhaken nach oben Harpune nach links mit Widerhaken nach oben"] # 0x2968 (en: 'rightwards harpoon with barb up above leftwards harpoon with barb up', MathPlayer: 'rightwards harpoon with barb up above leftwards harpoon with barb up', google: 'harpoon nach rechts mit barb oben links mit barb auf harpoon') + - "⥩": [T: "Harpune nach rechts mit Widerhaken nach unten Harpune nach links mit Widerhaken nach unten"] # 0x2969 (en: 'rightwards harpoon with barb down above leftwards harpoon with barb down', MathPlayer: 'rightwards harpoon with barb down above leftwards harpoon with barb down', google: 'harpoon nach rechts mit barb oben links mit barb mit barb') + - "⥪": [T: "nach links gerichtete Harpune mit Widerhaken über einem langen Strich"] # 0x296a (en: 'leftwards harpoon with barb up above long dash', MathPlayer: 'leftwards harpoon over bar', google: 'links -harpoon mit barb über langen schuss') + - "⥫": [T: "nach links gerichtete Harpune mit Widerhaken unten, lang gestrichelt"] # 0x296b (en: 'leftwards harpoon with barb down below long dash', MathPlayer: 'leftwards harpoon under bar', google: 'links -harpoon mit barb unter longem armaturenbrett') + - "⥬": [T: "Rechtshaken mit Widerhaken über langem Strich"] # 0x296c (en: 'rightwards harpoon with barb up above long dash', MathPlayer: 'rightwards harpoon over bar', google: 'rightwards harpoon mit barb über langen schuss') + - "⥭": [T: "Rechtshaken mit Widerhaken unten, lang"] # 0x296d (en: 'rightwards harpoon with barb down below long dash', MathPlayer: 'rightwards harpoon under bar', google: 'rightwards harpoon mit barb unter longem armaturenbrett') + - "⥮": [T: "aufwärts gerichtete Harpune mit Widerhaken links neben unten gerichteter Harpune mit Widerhaken rechts"] # 0x296e (en: 'upwards harpoon with barb left beside downwards harpoon with barb right', MathPlayer: 'upwards harpoon to the left of downwards harpoon', google: 'harpune nach oben mit barb, der neben der abwärtsharpoon mit barb rechts bleibt') + - "⥯": [T: "Abwärtsharpune mit Widerhaken links neben Abwärtsharpune mit Widerhaken rechts"] # 0x296f (en: 'downwards harpoon with barb left beside upwards harpoon with barb right', MathPlayer: 'upwards harpoon to the right of downwards harpoon', google: 'harpoon nach unten mit barb neben harpoon nach oben mit barb rechts') + - "⥰": [T: "Rechter Doppelpfeil mit abgerundeter Spitze"] # 0x2970 (en: 'right double arrow with rounded head') + - "⥱": [T: "Gleichheitszeichen über dem Pfeil nach rechts"] # 0x2971 (en: 'equals above rightwards arrow', MathPlayer: 'equals above rightwards arrow', google: 'entspricht dem rechten pfeil') + - "⥲": [T: "Tilde-Operator über dem Pfeil nach rechts"] # 0x2972 (en: 'tilde operator above rightwards arrow', MathPlayer: 'tilde operator above rightwards arrow', google: 'tilde -operator über rechtsem pfeil') + - "⥳": [T: "Pfeil nach links über Tilde-Operator"] # 0x2973 (en: 'leftwards arrow above tilde operator', MathPlayer: 'leftwards arrow over tilde', google: 'pfeil links über dem tilde -operator') + - "⥴": [T: "Pfeil nach rechts über Tilde-Operator"] # 0x2974 (en: 'rightwards arrow above tilde operator', MathPlayer: 'rightwards arrow over tilde', google: 'rightwards pfeil über dem tilde -operator') + - "⥵": [T: "Pfeil nach rechts über fast gleich"] # 0x2975 (en: 'rightwards arrow above almost equal to', MathPlayer: 'rightwards arrow above almost equal to', google: 'richtiger pfeil über fast gleich') + - "⥶": [T: "Weniger als über Pfeil nach links"] # 0x2976 (en: 'less than above leftwards arrow', MathPlayer: 'less than above leftwards arrow', google: 'weniger als links in pfeil') + - "⥷": [T: "Pfeil nach links durch weniger als"] # 0x2977 (en: 'leftwards arrow through less than', google: 'links pfeil durch weniger als') + - "⥸": [T: "Größer als über dem Pfeil nach rechts"] # 0x2978 (en: 'greater than above rightwards arrow', MathPlayer: 'greater than above rightwards arrow', google: 'größer als über rechts nach rechts') + - "⥹": [T: "Untersatz über dem Pfeil nach rechts"] # 0x2979 (en: 'subset above rightwards arrow', MathPlayer: 'subset above rightwards arrow', google: 'untergruppe über rechts nach rechts') + - "⥺": [T: "Pfeil nach links durch Teilmenge"] # 0x297a (en: 'leftwards arrow through subset', google: 'pfeil durch die teilmenge links') + - "⥻": [T: "Superset über dem Pfeil nach links"] # 0x297b (en: 'superset above leftwards arrow', MathPlayer: 'superset above leftwards arrow', google: 'superset über dem linken pfeil') + - "⥼": [T: "linker Fischschwanz"] # 0x297c (en: 'left fish tail', MathPlayer: 'left fish tail', google: 'links fischschwanz') + - "⥽": [T: "rechter Fischschwanz"] # 0x297d (en: 'right fish tail', MathPlayer: 'right fish tail', google: 'rechts fischschwanz') + - "⥾": [T: "Fischschwanz oben"] # 0x297e (en: 'up fish tail', MathPlayer: 'vertical bar with double hook', google: 'up fischschwanz') + - "⥿": [T: "Fischschwanz unten"] # 0x297f (en: 'down fish tail', MathPlayer: 'down fish tail', google: 'down fischschwanz') + - "⦀": [T: "Dreifacher vertikaler Balkenbegrenzer"] # 0x2980 (en: 'triple vertical bar delimiter', google: 'triple vertical bar gremiter') + - "⦁": [T: "Z Notationspunkt"] # 0x2981 (en: 'z notation spot', google: 'z notationspunkt') + - "⦂": [T: "Z Notationstyp Doppelpunkt"] # 0x2982 (en: 'z notation type colon', google: 'z notation typ dickdarm') + - "⦃": [T: "Linke weiße geschweifte Klammer"] # 0x2983 (en: 'left white brace', google: 'links weiße klammer') + - "⦄": [T: "Rechte weiße geschweifte Klammer"] # 0x2984 (en: 'right white brace', google: 'rechte weiße klammer') + - "⦅": [T: "Linke weiße Klammer"] # 0x2985 (en: 'left white parenthesis', MathPlayer: 'left white paren', google: 'linke weiße klammern') + - "⦆": [T: "Rechte weiße Klammer"] # 0x2986 (en: 'right white parenthesis', MathPlayer: 'right white paren', google: 'rechte weiße klammern') + - "⦇": [T: "Z-Notation linke Bildklammer"] # 0x2987 (en: 'z notation left image bracket', google: 'z notation linke bildklasse') + - "⦈": [T: "Z-Notation rechte Bildklammer"] # 0x2988 (en: 'z notation right image bracket', google: 'z notation rechtsbildklasse') + - "⦉": [T: "Z-Notation linke Klammer"] # 0x2989 (en: 'z notation left binding bracket', MathPlayer: 'z notation left binding bracket', google: 'z notation links bindungshalterung') + - "⦊": [T: "Z-Notation rechte Klammer"] # 0x298a (en: 'z notation right binding bracket', MathPlayer: 'z notation right binding bracket', google: 'z notation recht bindungshalterung') + - "⦋": [T: "Linke eckige Klammer mit Unterlenker"] # 0x298b (en: 'left square bracket with underbar', MathPlayer: 'left bracket with underbar', google: 'linksquadratische klammer mit unterbar') + - "⦌": [T: "Rechte eckige Klammer mit Unterlenker"] # 0x298c (en: 'right square bracket with underbar', MathPlayer: 'right bracket with underbar', google: 'rechte quadratische halterung mit unterbar') + - "⦍": [T: "Linke eckige Klammer mit Häkchen in der oberen Ecke"] # 0x298d (en: 'left square bracket with tick in top corner', MathPlayer: 'left bracket with tick in top corner', google: 'linksquadratische halterung mit zecke in der oberen ecke') + - "⦎": [T: "Rechte eckige Klammer mit Tick in der unteren Ecke"] # 0x298e (en: 'right square bracket with tick in bottom corner', MathPlayer: 'right bracket with tick in bottom corner', google: 'rechte quadratische halterung mit tick in der unteren ecke') + - "⦏": [T: "Linke eckige Klammer mit Tick in der unteren Ecke"] # 0x298f (en: 'left square bracket with tick in bottom corner', MathPlayer: 'left bracket with tick in bottom corner', google: 'links quadratische halterung mit tick in der unteren ecke') + - "⦐": [T: "Rechte eckige Klammer mit Tick in der oberen Ecke"] # 0x2990 (en: 'right square bracket with tick in top corner', MathPlayer: 'right bracket with tick in top corner', google: 'rechte quadratische halterung mit zecke in der oberen ecke') + - "⦑": [T: "Linke Winkelklammer mit Punkt"] # 0x2991 (en: 'left angle bracket with dot', MathPlayer: 'left angle bracket with dot', google: 'linkswinkelhalter mit punkt') + - "⦒": [T: "Rechtwinklige Klammer mit Punkt"] # 0x2992 (en: 'right angle bracket with dot', MathPlayer: 'right angle bracket with dot', google: 'rechtswinkelhalterung mit punkt') + - "⦓": [T: "Linker Bogen weniger als Halterung"] # 0x2993 (en: 'left arc less than bracket', MathPlayer: 'left arc less than bracket', google: 'links bogen weniger als klammer') + - "⦔": [T: "rechter Bogen größer als Halterung"] # 0x2994 (en: 'right arc greater than bracket', MathPlayer: 'right arc greater than bracket', google: 'richtiger bogen größer als die klammer') + - "⦕": [T: "Doppelter linker Bogen größer als Halterung"] # 0x2995 (en: 'double left arc greater than bracket', MathPlayer: 'double left arc greater than bracket', google: 'doppelter linker bogen größer als die klammer') + - "⦖": [T: "Doppelter rechter Bogen weniger als Halterung"] # 0x2996 (en: 'double right arc less than bracket', MathPlayer: 'double right arc less than bracket', google: 'doppeler rechts bogen weniger als klammer') + - "⦗": [T: "Linke schwarze Schildpatt-Klammer"] # 0x2997 (en: 'left black tortoise shell bracket', google: 'links black tortoise muschelhalterung') + - "⦘": [T: "Rechte schwarze Schildpatt-Klammer"] # 0x2998 (en: 'right black tortoise shell bracket', google: 'rechte schwarze schildkröte') + - "⦙": [T: "Gepunkteter Zaun"] # 0x2999 (en: 'dotted fence', google: 'gepunkteter zaun') + - "⦚": [T: "Vertikale Zickzacklinie"] # 0x299a (en: 'vertical zigzag line', MathPlayer: 'vertical zigzag line', google: 'vertikale zick -zack -linie') + - "⦛": [T: "Gemessene Winkelöffnung links"] # 0x299b (en: 'measured angle opening left', google: 'gemessene winkelöffnung links') + - "⦜": [T: "Rechtwinklige Variante mit Quadrat"] # 0x299c (en: 'right angle variant with square', google: 'rechtswinkelvariante mit quadrat') + - "⦝": [T: "rechter Winkel mit Punkt gemessen"] # 0x299d (en: 'measured right angle with dot', MathPlayer: 'measured right angle with dot', google: 'gemessener rechter winkel mit punkt') + - "⦞": [T: "Winkel mit S nach innen"] # 0x299e (en: 'angle with s inside', google: 'winkel mit s im inneren') + - "⦟": [T: "Spitzer Winkel"] # 0x299f (en: 'acute angle', google: 'spitzer winkel') + - "⦠": [T: "Sphärischer Öffnungswinkel nach links"] # 0x29a0 (en: 'spherical angle opening left', google: 'kugelwinkelöffnung nach links') + - "⦡": [T: "Sphärischer Öffnungswinkel nach unten"] # 0x29a1 (en: 'spherical angle opening up', google: 'kugelwinkel öffnen sich') + - "⦢": [T: "Gedrehter Winkel"] # 0x29a2 (en: 'turned angle', google: 'drehwinkel') + - "⦣": [T: "Umgekehrter Winkel"] # 0x29a3 (en: 'reversed angle', google: 'umgekehrter winkel') + - "⦤": [T: "Winkel mit Unterstrich"] # 0x29a4 (en: 'angle with underbar', MathPlayer: 'angle with underbar', google: 'winkel mit unterbar') + - "⦥": [T: "Umgekehrter Winkel mit Unterstrich"] # 0x29a5 (en: 'reversed angle with underbar', MathPlayer: 'reversed angle with underbar', google: 'umgekehrter winkel mit unterbar') + - "⦦": [T: "Schräger Winkel, der sich nach oben öffnet"] # 0x29a6 (en: 'oblique angle opening up', MathPlayer: 'oblique angle opening up', google: 'schräge winkelöffnung') + - "⦧": [T: "Schräger Winkel, der sich nach unten öffnet"] # 0x29a7 (en: 'oblique angle opening down', MathPlayer: 'oblique angle opening down', google: 'schräge winkel öffnet sich') + - "⦨": [T: "Gemessener Winkel mit offenem Arm endet im Pfeil nach oben und rechts"] # 0x29a8 (en: 'measured angle with open arm ending in arrow pointing up and to the right', MathPlayer: 'measured angle with open arm ending in arrow pointing up and to the right', google: 'der gemessene winkel mit offenem arm in pfeil und nach rechts') + - "⦩": [T: "Gemessener Winkel mit offenem Arm und Pfeil nach oben und links"] # 0x29a9 (en: 'measured angle with open arm ending in arrow pointing up and to the left', MathPlayer: 'measured angle with open arm ending in arrow pointing up and to the left', google: 'der gemessene winkel mit offenem arm in pfeil und nach links') + - "⦪": [T: "Gemessener Winkel mit offenem Arm endet im nach unten zeigenden Pfeil und rechts"] # 0x29aa (en: 'measured angle with open arm ending in arrow pointing down and to the right', MathPlayer: 'measured angle with open arm ending in arrow pointing down and to the right', google: 'der gemessene winkel mit offenem arm in pfeil nach unten und nach rechts') + - "⦫": [T: "Gemessener Winkel mit offenem Arm endet im nach unten zeigenden Pfeil"] # 0x29ab (en: 'measured angle with open arm ending in arrow pointing down and to the left', MathPlayer: 'measured angle with open arm ending in arrow pointing down and to the left', google: 'der gemessene winkel mit offenem arm in pfeil, der nach unten und nach links zeigt') + - "⦬": [T: "Gemessener Winkel mit offenem Arm endet im Pfeil nach rechts und oben"] # 0x29ac (en: 'measured angle with open arm ending in arrow pointing right and up', MathPlayer: 'measured angle with open arm ending in arrow pointing right and up', google: 'der gemessene winkel mit offenem arm in pfeil nach rechts und nach oben zeigt') + - "⦭": [T: "Gemessener Winkel mit offenem Arm endet im Pfeil nach links und oben"] # 0x29ad (en: 'measured angle with open arm ending in arrow pointing left and up', MathPlayer: 'measured angle with open arm ending in arrow pointing left and up', google: 'der gemessene winkel mit offenem arm in pfeil nach links und nach oben zeigt') + - "⦮": [T: "Gemessener Winkel mit offenem Arm endet im nach rechts und unten zeigenden Pfeil"] # 0x29ae (en: 'measured angle with open arm ending in arrow pointing right and down', MathPlayer: 'measured angle with open arm ending in arrow pointing right and down', google: 'der gemessene winkel mit offenem arm in pfeil nach rechts und unten zeigt') + - "⦯": [T: "Gemessener Winkel mit offenem Arm und Pfeil nach links und unten"] # 0x29af (en: 'measured angle with open arm ending in arrow pointing left and down', MathPlayer: 'measured angle with open arm ending in arrow pointing left and down', google: 'der gemessene winkel mit offenem arm in pfeil nach links und unten zeigt') + - "⦰": [T: "Umgekehrte leere Menge"] # 0x29b0 (en: 'reversed empty set', MathPlayer: 'reversed empty set', google: 'umgekehrter leerer satz') + - "⦱": [T: "Leere Menge mit Strich oberhalb"] # 0x29b1 (en: 'empty set with overbar', MathPlayer: 'empty set with overbar', google: 'leeres set mit überbar') + - "⦲": [T: "Leere Menge mit kleinem Kreis oben"] # 0x29b2 (en: 'empty set with small circle above', MathPlayer: 'empty set with circle above', google: 'leeres set mit kleinem kreis oben') + - "⦳": [T: "Leere Menge mit Pfeil rechts oben"] # 0x29b3 (en: 'empty set with right arrow above', MathPlayer: 'empty set with right arrow above', google: 'leer mit dem rechten pfeil oben') + - "⦴": [T: "Leere Menge mit linkem Pfeil oben"] # 0x29b4 (en: 'empty set with left arrow above', MathPlayer: 'empty set with left arrow above', google: 'leeres set mit dem linken pfeil oben') + - "⦵": [T: "Kreis mit horizontaler Leiste"] # 0x29b5 (en: 'circle with horizontal bar', MathPlayer: 'circle with horizontal bar', google: 'kreis mit horizontaler balken') + - "⦶": [T: "Kreis mit vertikaler Linie"] # 0x29b6 + - "⦷": [T: "eingekreiste Parallele"] # 0x29b7 (en: 'circled parallel', MathPlayer: 'circled parallel', google: 'parallel eingekreist') + - "⦸": [T: "eingekreister umgekehrter Schrägstrich"] # 0x29b8 (en: 'circled reverse solidus', google: 'umgekreist reverse solidus') + - "⦹": [T: "eingekreistes Senkrecht"] # 0x29b9 (en: 'circled perpendicular', MathPlayer: 'circled perpendicular', google: 'senkrecht umkreist') + - "⦺": [T: "Kreis geteilt durch horizontale Leiste und obere Hälfte geteilt durch vertikale Leiste"] # 0x29ba (en: 'circled divided by horizontal bar and top half divided by vertical bar', google: 'durch den horizontalen balken und die obere hälfte geteilt durch vertikale balken eingekreist') + - "⦻": [T: "Kreis mit überlagertem X"] # 0x29bb (en: 'circle with superimposed x', MathPlayer: 'circle with superimposed x', google: 'kreis mit überlagertem x') + - "⦼": [T: "eingekreistes, gegen den Uhrzeigersinn gedrehtes Divisionszeichen"] # 0x29bc (en: 'circled anticlockwise rotated division sign', MathPlayer: 'circled anticlockwise rotated division', google: 'umgedrehtes divisionszeichen gegen den uhrzeigersinn') + - "⦽": [T: "Pfeil nach oben durch Kreis"] # 0x29bd (en: 'up arrow through circle', google: 'pfeil durch den kreis') + - "⦾": [T: "eingekreiste weiße Kugel"] # 0x29be (en: 'circled white bullet', MathPlayer: 'circled white bullet', google: 'eingekreiste weiße kugel') + - "⦿": [T: "eingekreiste Kugel"] # 0x29bf (en: 'circled bullet', MathPlayer: 'circled bullet', google: 'eingekreist') + - "⧀": [T: "eingekreist weniger als"] # 0x29c0 (en: 'circled less than', MathPlayer: 'circled less than', google: 'kreiste weniger als') + - "⧁": [T: "eingekreist größer als"] # 0x29c1 (en: 'circled greater than', MathPlayer: 'circled greater than', google: 'umgekreist größer als') + - "⧂": [T: "Kreis mit kleinem Kreis nach rechts"] # 0x29c2 (en: 'circle with small circle to the right', MathPlayer: 'circle with circle to the right', google: 'kreis mit kleinem kreis nach rechts') + - "⧃": [T: "Kreis mit zwei horizontalen Strichen nach rechts"] # 0x29c3 (en: 'circle with two horizontal strokes to the right', MathPlayer: 'circle with two horizontal strokes to the right', google: 'kreisen sie mit zwei horizontalen strichen rechts') + - "⧄": [T: "Quadrat mit Diagonale links unten nach rechts oben"] # 0x29c4 (en: 'squared rising diagonal slash', MathPlayer: 'squared rising diagonal slash', google: 'quadratischer steigender diagonaler schrägstrich') + - "⧅": [T: "Quadrat mit Diagonale links oben nach rechts unten"] # 0x29c5 (en: 'squared falling diagonal slash', MathPlayer: 'squared falling diagonal slash', google: 'quadratische fallende diagonale schrägstriche') + - "⧆": [T: "Quadrat mit Sternchen"] # 0x29c6 (en: 'squared asterisk', google: 'quadratischer sternchen') + - "⧇": [T: "Quadrat mir kleinem Kreis"] # 0x29c7 (en: 'squared small circle', google: 'quadratischer kleiner kreis') + - "⧈": [T: "Doppelquadrat"] # 0x29c8 (en: 'squared square', google: 'quadratisch quadratisch') + - "⧉": [T: "Zwei verbundene Quadrate"] # 0x29c9 (en: 'two joined squares', MathPlayer: 'two joined squares', google: 'zwei traten quadrate an') + - "⧊": [T: "Dreieck mit Punkt oben"] # 0x29ca (en: 'triangle with dot above', google: 'dreieck mit punkt oben') + - "⧋": [T: "Dreieck mit Unterleiste"] # 0x29cb (en: 'triangle with underbar', google: 'dreieck mit underbar') + - "⧌": [T: "S im Dreieck"] # 0x29cc (en: 's in triangle', google: 's im dreieck') + - "⧍": [T: "Dreieck mit Serifen unten"] # 0x29cd (en: 'triangle with serifs at bottom', MathPlayer: 'triangle with serifs at bottom', google: 'dreieck mit serifen unten') + - "⧎": [T: "Rechtes Dreieck über linkem Dreieck"] # 0x29ce (en: 'right triangle above left triangle', MathPlayer: 'right triangle above left triangle', google: 'rechts dreieck über dem linken dreieck') + - "⧏": [T: "Linkes Dreieck neben vertikaler Leiste"] # 0x29cf (en: 'left triangle beside vertical bar', MathPlayer: 'normal subgroup of with bar', google: 'links dreieck neben vertikaler balken') + - "⧐": [T: "Vertikale Leiste neben rechtem Dreieck"] # 0x29d0 (en: 'vertical bar beside right triangle', MathPlayer: 'contains as normal subgroup with bar', google: 'vertikale bar neben dem rechten dreieck') + - "⧑": [T: "Fliege mit linker Hälfte schwarz"] # 0x29d1 (en: 'bowtie with left half black', google: 'bowtie mit linksem halb schwarz') + - "⧒": [T: "Fliege mit rechter Hälfte schwarz"] # 0x29d2 (en: 'bowtie with right half black', google: 'bowtie mit rechts halb schwarz') + - "⧓": [T: "Schwarze Fliege"] # 0x29d3 (en: 'black bowtie', google: 'schwarzer bowtie') + - "⧔": [T: "Zeiten mit linker Hälfte schwarz"] # 0x29d4 (en: 'times with left half black', google: 'mal mit links halb schwarz') + - "⧕": [T: "Mal mit rechter Hälfte Schwarz"] # 0x29d5 (en: 'times with right half black', google: 'mal mit dem rechten halb schwarz') + - "⧖": [T: "Weiße Sanduhr"] # 0x29d6 (en: 'white hourglass', google: 'weiße sanduhr') + - "⧗": [T: "Schwarze Sanduhr"] # 0x29d7 (en: 'black hourglass', google: 'schwarze sanduhr') + - "⧘": [T: "Linker wackeliger Zaun"] # 0x29d8 (en: 'left wiggly fence', google: 'links wackeliger zaun') + - "⧙": [T: "rechter wackeliger Zaun"] # 0x29d9 (en: 'right wiggly fence', google: 'rechts wackeliges zaun') + - "⧚": [T: "Linker doppelter wackeliger Zaun"] # 0x29da (en: 'left double wiggly fence', MathPlayer: 'left double wiggly fence', google: 'links doppelter wackeliger zaun') + - "⧛": [T: "rechter doppelter wackeliger Zaun"] # 0x29db (en: 'right double wiggly fence', MathPlayer: 'right double wiggly fence', google: 'rechts doppelter wackeliger zaun') + - "⧜": [T: "Unvollständige Unendlichkeit"] # 0x29dc (en: 'incomplete infinity', MathPlayer: 'incomplete infinity', google: 'unvollständige unendlichkeit') + - "⧝": [T: "Krawatte über Unendlichkeit"] # 0x29dd (en: 'tie over infinity', google: 'unendlich binden') + - "⧞": [T: "Unendlichkeit mit vertikaler Leiste negiert"] # 0x29de (en: 'infinity negated with vertical bar', MathPlayer: 'infinity negated with vertical bar', google: 'unendlich negiert mit vertikaler balken') + - "⧟": [T: "Doppelter Multimap"] # 0x29df (en: 'double-ended multimap', google: 'doppel-multimap') + - "⧠": [T: "Quadrat mit konturierter Kontur"] # 0x29e0 (en: 'square with contoured outline', google: 'quadrat mit konturierten umriss') + - "⧡": [T: "Erhöht als"] # 0x29e1 (en: 'increases as', google: 'erhöht sich als') + - "⧢": [T: "Produkt mischen"] # 0x29e2 (en: 'shuffle product', google: 'shuffle -produkt') + - "⧣": [T: "Gleichheitszeichen und geneigte Parallele"] # 0x29e3 (en: 'equals sign and slanted parallel', MathPlayer: 'equals sign and slanted parallel', google: 'gleicher zeichen und schräg parallel') + - "⧤": [T: "Gleichheitszeichen und schräge Parallele zu Tilde oben"] # 0x29e4 (en: 'equals sign and slanted parallel with tilde above', MathPlayer: 'equals sign and slanted parallel with tilde above', google: 'gleicher zeichen und schräg parallel zu tilde oben') + - "⧥": [T: "Identisch und schräg parallel"] # 0x29e5 (en: 'identical to and slanted parallel', MathPlayer: 'identical to with double slash', google: 'identisch mit und schräg parallel') + - "⧦": [T: "Gleich Stark"] # 0x29e6 (en: 'gleich stark', google: 'gleich stark') + - "⧧": [T: "Thermodynamisch"] # 0x29e7 (en: 'thermodynamic', google: 'thermodynamisch') + - "⧨": [T: "Abwärtszeigendes Dreieck mit linker Hälfte schwarz"] # 0x29e8 (en: 'down pointing triangle with left half black', google: 'down dreieck mit linksem halb schwarz') + - "⧩": [T: "Abwärtszeigendes Dreieck mit rechter Hälfte schwarz"] # 0x29e9 (en: 'down pointing triangle with right half black', google: 'down dreieck mit dem rechten halben schwarz') + - "⧪": [T: "Schwarzer Diamant mit Pfeil nach unten"] # 0x29ea (en: 'black diamond with down arrow', google: 'schwarzer diamant mit pfeil') + - "⧫": [T: "Schwarze Raute"] # 0x29eb (en: 'black lozenge', MathPlayer: 'filled lozenge', google: 'schwarze raute') + - "⧬": [T: "Weißer Kreis mit Pfeil nach unten"] # 0x29ec (en: 'white circle with down arrow', google: 'weißer kreis mit pfeil') + - "⧭": [T: "Schwarzer Kreis mit Pfeil nach unten"] # 0x29ed (en: 'black circle with down arrow', google: 'schwarzer kreis mit pfeil') + - "⧮": [T: "Fehlergesperrtes weißes Quadrat"] # 0x29ee (en: 'error-barred white square', google: 'irrtum mit dem irrtümlichen weißen quadrat') + - "⧯": [T: "Fehlerfreies schwarzes Quadrat"] # 0x29ef (en: 'error-barred black square', google: 'fehler mit dem schwarzen quadrat') + - "⧰": [T: "Fehlergesperrter weißer Diamant"] # 0x29f0 (en: 'error-barred white diamond', google: 'fehler mit dem fehler mit weißem diamanten') + - "⧱": [T: "Fehlergesperrter schwarzer Diamant"] # 0x29f1 (en: 'error-barred black diamond', google: 'fehlerfreier schwarzer diamant') + - "⧲": [T: "Fehlergesperrter weißer Kreis"] # 0x29f2 (en: 'error-barred white circle', google: 'fehlerer weißer weißer kreis') + - "⧳": [T: "Fehlergesperrter schwarzer Kreis"] # 0x29f3 (en: 'error-barred black circle', google: 'fehlerer schwarzer kreis') + - "⧴": [T: "regelverzögert"] # 0x29f4 (en: 'rule-delayed') + - "⧵": [T: "Umgekehrter Schrägstrich Operator"] # 0x29f5 (en: 'reverse solidus operator', google: 'umgekehrter solidus -operator') + - "⧶": [T: "Schrägstrich mit vertikaler Leiste oben"] # 0x29f6 (en: 'solidus with overbar', MathPlayer: 'solidus with overbar', google: 'solidus mit overbar') + - "⧷": [T: "Umgekehrter Schrägstrich mit horizontalem Hub"] # 0x29f7 (en: 'reverse solidus with horizontal stroke', google: 'mit horizontalem schlaganfall solidus umkehren') + - "⧸": [T: "Großer Schrägstrich"] # 0x29f8 (en: 'big solidus', google: 'big solidus') + - "⧹": [T: "Großer umgekehrter Schrägstrich"] # 0x29f9 (en: 'big reverse solidus', google: 'big reverse solidus') + - "⧺": [T: "Doppel plus"] # 0x29fa (en: 'double plus', google: 'doppelte plus') + - "⧻": [T: "Triple Plus"] # 0x29fb (en: 'triple plus', google: 'triple plus') + - "⧼": [T: "Nach links zeigender gebogener Winkelhalter"] # 0x29fc (en: 'left pointing curved angle bracket', google: 'links gezeigt, gekrümmte winkelhalterung') + - "⧽": [T: "Nach rechts zeigender gebogener Winkelhalter"] # 0x29fd (en: 'right pointing curved angle bracket', google: 'rechte spitze gekrümmte winkelhalterung') + - "⧾": [T: "Winzig"] # 0x29fe (en: 'tiny', google: 'winzig') + - "⧿": [T: "Miny"] # 0x29ff (en: 'miny', google: 'miny') + - "⨀": [T: "Operator mit eingekreistem Punkt"] # 0x2a00 (en: 'circled dot operator', google: 'eingekreister punktbetreiber') + - "⨁": [T: "Operator mit eingekreistem Plus"] # 0x2a01 (en: 'circled plus operator', google: 'kreis plus operator') + - "⨂": [T: "Operator mit eingekreistem Malzeichen"] # 0x2a02 (en: 'circled times operator', google: 'eingekreistes times operator') + - "⨃": [T: "Vereinigungs-Operator mit Punkt"] # 0x2a03 (en: 'union operator with dot', google: 'gewerkschaftsbetreiber mit punkt') + - "⨄": [T: "Vereinigungs-Operator mit Plus"] # 0x2a04 (en: 'union operator with plus', google: 'gewerkschaftsbetreiber mit plus') + - "⨅": [T: "quadratischer Schnittmengen-Operator"] # 0x2a05 (en: 'square intersection operator', google: 'square intersection operator') + - "⨆": [T: "quadratischer Vereinigungs-Operator"] # 0x2a06 (en: 'square union operator', google: 'square union operator') + - "⨇": [T: "Zwei logische Und-Operator"] # 0x2a07 (en: 'two logical and operator', google: 'zwei logische und operator') + - "⨈": [T: "Zwei logische Oder-Operator"] # 0x2a08 (en: 'two logical or operator', google: 'zwei logische oder operator') + - "⨉": [T: "Kreuz-Operator"] # 0x2a09 (en: 'times operator', google: 'times operator') + - "⨊": [T: "Modulo Zwei Summe"] # 0x2a0a (en: 'modulo two sum', google: 'modulo zwei summe') + - "⨋": [T: "Summation mit Integral"] # 0x2a0b (en: 'summation with integral', google: 'summierung mit integral') + - "⨌": [T: "Vierfach-Integral-Operator"] # 0x2a0c (SRE: 'Vierfach-Integral-Operator') + - "⨍": [T: "endliches Teilintegral"] # 0x2a0d (en: 'finite part integral', MathPlayer: 'finite part integral', google: 'finite -teil -integral') + - "⨎": [T: "Integral mit Doppelhub"] # 0x2a0e (en: 'integral with double stroke', google: 'integral mit doppelter hub') + - "⨏": [T: "Integraler Durchschnitt mit Schrägstrich"] # 0x2a0f (en: 'integral average with slash', google: 'integraler durchschnitt mit schrägstrich') + - "⨐": [T: "Zirkulationsfunktion"] # 0x2a10 (en: 'circulation function', MathPlayer: 'circulation function', google: 'zirkulationsfunktion') + - "⨑": [T: "Integration gegen den Uhrzeigersinn"] # 0x2a11 (en: 'anticlockwise integration', MathPlayer: 'anticlockwise integration', google: 'integration gegen den uhrzeigersinn') + - "⨒": [T: "Linienintegration mit rechteckigem Pfad um die Pole"] # 0x2a12 (en: 'line integration with rectangular path around pole', MathPlayer: 'line integration with rectangular path around pole', google: 'linienintegration mit einem rechteckigen pfad um pol') + - "⨓": [T: "Linienintegration mit halbkreisförmigem Pfad um den Pol"] # 0x2a13 (en: 'line integration with semicircular path around pole', MathPlayer: 'line integration with semicircular path around pole', google: 'linienintegration mit halbkreisförmigem pfad um pol') + - "⨔": [T: "Leitungsintegration ohne Pole"] # 0x2a14 (en: 'line integration not including the pole', MathPlayer: 'line integration not including the pole', google: 'linienintegration ohne stange') + - "⨕": [T: "Integral um einen Punktoperator"] # 0x2a15 (en: 'integral around a point operator', MathPlayer: 'integral around a point operator', google: 'integral um einen punktbetreiber') + - "⨖": [T: "quaternion Integral-Operator"] # 0x2a16 (SRE: 'Quaternion Integral Operator') + - "⨗": [T: "Integral mit Pfeil nach links mit Haken"] # 0x2a17 (en: 'integral with leftwards arrow with hook', MathPlayer: 'integral with leftwards arrow with hook', google: 'integraler mit linksem pfeil mit haken') + - "⨘": [T: "Integral mit Kreuzproduktzeichen"] # 0x2a18 (en: 'integral with times sign', google: 'integral mit times sign') + - "⨙": [T: "Integral mit Schnittmenge-Zeichen"] # 0x2a19 (en: 'integral with intersection', google: 'integral mit der kreuzung') + - "⨚": [T: "Integral mit Vereinigungs-Zeichen"] # 0x2a1a (en: 'integral with union', google: 'integral mit union') + - "⨛": [T: "Integral mit Overbar"] # 0x2a1b (en: 'integral with overbar', google: 'integral mit overbar') + - "⨜": [T: "Integral mit Underbar"] # 0x2a1c (en: 'integral with underbar', google: 'integral mit underbar') + - "⨝": [T: "Beitreten"] # 0x2a1d (en: 'join', google: 'verbinden') + - "⨞": [T: "Großes linkes Dreieckbediener"] # 0x2a1e (en: 'large left triangle operator', google: 'großer linker dreieck operator') + - "⨟": [T: "Z-Notationsschema-Zusammensetzung"] # 0x2a1f (en: 'z notation schema composition', google: 'z notationschema -zusammensetzung') + - "⨠": [T: "Z-Notationsschema-Piping"] # 0x2a20 (en: 'z notation schema piping', google: 'z notationschema -rohrleitungen') + - "⨡": [T: "Z-Notationsschema-Projektion"] # 0x2a21 (en: 'z notation schema projection', google: 'z notationschemaprojektion') + - "⨢": [T: "Pluszeichen mit kleinem Kreis oben"] # 0x2a22 (en: 'plus sign with circle above', MathPlayer: 'plus sign with circle above', google: 'plus zeichen mit kreis oben') + - "⨣": [T: "Pluszeichen mit Zirkumflex-Akzent oben"] # 0x2a23 (en: 'plus sign with circumflex accent above', MathPlayer: 'plus sign with circumflex accent above', google: 'plus -zeichen mit dem obigen zirkelakzent') + - "⨤": [T: "Pluszeichen mit Tilde oben"] # 0x2a24 (en: 'plus sign with tilde above', MathPlayer: 'tilde with plus below', google: 'plus zeichen mit tilde oben') + - "⨥": [T: "Pluszeichen mit Punkt unten"] # 0x2a25 (en: 'plus sign with dot below', MathPlayer: 'plus sign with dot below', google: 'plus zeichen mit punkt unten') + - "⨦": [T: "Pluszeichen mit Tilde unter"] # 0x2a26 (en: 'plus sign with tilde below', MathPlayer: 'tilde with plus above', google: 'plus zeichen mit tilde unten') + - "⨧": [T: "Pluszeichen mit Index Zwei"] # 0x2a27 (en: 'plus sign with subscript two', MathPlayer: 'plus sign with subscript two', google: 'plus sign sign mit dem index two') + - "⨨": [T: "Pluszeichen mit schwarzem Dreieck"] # 0x2a28 (en: 'plus sign with black triangle', google: 'plus zeichen mit schwarzem dreieck') + - "⨩": [T: "Minuszeichen mit Komma oben"] # 0x2a29 (en: 'minus sign with comma above', MathPlayer: 'minus sign with comma above', google: 'minus zeichen mit komma oben') + - "⨪": [T: "Minuszeichen mit Punkt unten"] # 0x2a2a (en: 'minus sign with dot below', MathPlayer: 'minus sign with dot below', google: 'minus zeichen mit punkt unten') + - "⨫": [T: "Minuszeichen mit fallenden Punkten"] # 0x2a2b (en: 'minus sign with falling dots', google: 'minus zeichen mit fallenden punkten') + - "⨬": [T: "Minuszeichen mit steigenden Punkten"] # 0x2a2c (en: 'minus sign with rising dots', google: 'minus zeichen mit steigenden punkten') + - "⨭": [T: "Pluszeichen Im linken Halbkreis"] # 0x2a2d (en: 'plus sign in left half circle', MathPlayer: 'plus sign in left half circle', google: 'plus melden sie sich im linken halbkreis an') + - "⨮": [T: "Pluszeichen Im rechten Halbkreis"] # 0x2a2e (en: 'plus sign in right half circle', MathPlayer: 'plus sign in right half circle', google: 'plus im rechten halbkreis anzeigen') + - "⨯": [T: "Vektor- oder Kreuzprodukt"] # 0x2a2f (en: 'cross product', MathPlayer: 'vector or cross product', google: 'kreuzprodukt') + - "⨰": [T: "Multiplikationszeichen mit Punkt oben"] # 0x2a30 (en: 'multiplication sign with dot above', MathPlayer: 'multiplication sign with dot above', google: 'multiplikationszeichen mit punkt oben') + - "⨱": [T: "Multiplikationszeichen mit Unterleiste"] # 0x2a31 (en: 'multiplication sign with underbar', MathPlayer: 'multiplication sign with underbar', google: 'multiplikationszeichen mit underbar') + - "⨲": [T: "Semidirektprodukt mit geschlossenem Boden"] # 0x2a32 (en: 'semidirect product with bottom closed', google: 'semidirect -produkt mit unten geschlossen') + - "⨳": [T: "smash product"] # 0x2a33 + - "⨴": [T: "Multiplikationszeichen im linken Halbkreis"] # 0x2a34 (en: 'multiplication sign in left half circle', MathPlayer: 'multiplication sign in left half circle', google: 'multiplikationszeichen im linken halbkreis') + - "⨵": [T: "Multiplikationszeichen im rechten Halbkreis"] # 0x2a35 (en: 'multiplication sign in right half circle', MathPlayer: 'multiplication sign in right half circle', google: 'multiplikationszeichen im rechten halbkreis') + - "⨶": [T: "eingekreistes Multiplikationszeichen mit Circumflex-Akzent"] # 0x2a36 (en: 'circled multiplication sign with circumflex accent', MathPlayer: 'circled multiplication sign with circumflex accent', google: 'umkreistes multiplikationszeichen mit circumflex -akzent') + - "⨷": [T: "Multiplikationszeichen im doppelten Kreis"] # 0x2a37 (en: 'multiplication sign in double circle', MathPlayer: 'multiplication sign in double circle', google: 'multiplikationszeichen im doppelkreis') + - "⨸": [T: "eingekreistes Divisionszeichen"] # 0x2a38 + - "⨹": [T: "Pluszeichen im Dreieck"] # 0x2a39 (en: 'plus sign in triangle', MathPlayer: 'plus sign in triangle', google: 'plus melden sie sich im dreieck an') + - "⨺": [T: "Minuszeichen im Dreieck"] # 0x2a3a (en: 'minus sign in triangle', MathPlayer: 'minus sign in triangle', google: 'minus zeichen im dreieck') + - "⨻": [T: "Multiplikationszeichen im Dreieck"] # 0x2a3b (en: 'multiplication sign in triangle', MathPlayer: 'multiplication sign in triangle', google: 'multiplikationszeichen im dreieck') + - "⨼": [T: "Innenprodukt"] # 0x2a3c (en: 'interior product', MathPlayer: 'interior product', google: 'innenprodukt') + - "⨽": [T: "Produkt für den rechten Innenraum"] # 0x2a3d (en: 'righthand interior product', google: 'righthand innenprodukt') + - "⨾": [T: "relationale komposition"] # 0x2a3e (en: 'z notation relational composition') + - "⨿": [T: "Verschmelzung oder Koprodukt"] # 0x2a3f (en: 'amalgamation or coproduct', MathPlayer: 'amalgamation or coproduct', google: 'verschmelzung oder koprodukt') + - "⩀": [T: "Schnittpunkt mit Punkt"] # 0x2a40 (en: 'intersection with dot', MathPlayer: 'intersection with dot', google: 'kreuzung mit punkt') + - "⩁": [T: "Union mit Minuszeichen"] # 0x2a41 (en: 'union with minus sign', google: 'gewerkschaft mit minus zeichen') + - "⩂": [T: "Union mit Overbar"] # 0x2a42 (en: 'union with overbar', MathPlayer: 'union with overbar', google: 'gewerkschaft mit overbar') + - "⩃": [T: "Kreuzung mit Overbar"] # 0x2a43 (en: 'intersection with overbar', MathPlayer: 'intersection with overbar', google: 'kreuzung mit überbär') + - "⩄": [T: "Überschneidung mit logischem und"] # 0x2a44 (en: 'intersection with logical and', MathPlayer: 'intersection with logical and', google: 'schnittpunkt mit logisch und') + - "⩅": [T: "Vereinigung mit logischem Or"] # 0x2a45 (en: 'union with logical or', MathPlayer: 'union with logical or', google: 'vereinigung mit logisch oder') + - "⩆": [T: "Vereinigung über dem Schnittpunkt"] # 0x2a46 (en: 'union above intersection', MathPlayer: 'union above intersection', google: 'union über der kreuzung') + - "⩇": [T: "Schnittpunkt über Union"] # 0x2a47 (en: 'intersection above union', MathPlayer: 'intersection above union', google: 'kreuzung über union') + - "⩈": [T: "Vereinigung über Stab über Kreuzung"] # 0x2a48 (en: 'union above bar above intersection', MathPlayer: 'union above bar above intersection', google: 'gewerkschaft über der bar über der kreuzung') + - "⩉": [T: "Schnittpunkt oberhalb der Stange oberhalb der Union"] # 0x2a49 (en: 'intersection above bar above union', MathPlayer: 'intersection above bar above union', google: 'kreuzung über bar über union') + - "⩊": [T: "Union daneben und mit Union verbunden"] # 0x2a4a (en: 'union beside and joined with union', MathPlayer: 'union beside and joined with union', google: 'gewerkschaft neben der union') + - "⩋": [T: "Kreuzung neben und mit Kreuzung verbunden"] # 0x2a4b (en: 'intersection beside and joined with intersection', MathPlayer: 'intersection beside and joined with intersection', google: 'kreuzung neben und zusammen mit der kreuzung') + - "⩌": [T: "Geschlossene Vereinigung mit Serifen"] # 0x2a4c (en: 'closed union with serifs', MathPlayer: 'closed union with serifs', google: 'geschlossene vereinigung mit serifen') + - "⩍": [T: "Geschlossener Schnittpunkt mit Serifen"] # 0x2a4d (en: 'closed intersection with serifs', MathPlayer: 'closed intersection with serifs', google: 'geschlossener kreuzung mit serifen') + - "⩎": [T: "Doppelter Quadratschnitt"] # 0x2a4e (en: 'double square intersection', google: 'doppelquadratische kreuzung') + - "⩏": [T: "Double Square Union"] # 0x2a4f (en: 'double square union', google: 'doppelquadratische gewerkschaft') + - "⩐": [T: "Closed Union mit Serifen und Smash-Produkten"] # 0x2a50 (en: 'closed union with serifs and smash product', MathPlayer: 'closed union with serifs and smash product', google: 'geschlossene vereinigung mit serifen und smash -produkt') + - "⩑": [T: "Logisch und mit Punkt oben"] # 0x2a51 (en: 'logical and with dot above', google: 'logisch und mit punkt oben') + - "⩒": [T: "Logisch oder mit Punkt oben"] # 0x2a52 (en: 'logical or with dot above', google: 'logisch oder mit punkt oben') + - "⩓": [T: "doppeltes logisches Und"] # 0x2a53 + - "⩔": [T: "doppeltes logisches Oder"] # 0x2a54 + - "⩕": [T: "Zwei durchschneiden logisch und"] # 0x2a55 (en: 'two intersecting logical and', MathPlayer: 'two intersecting logical and', google: 'zwei kreuzende logische und') + - "⩖": [T: "Zwei sich überschneidende logische Oder"] # 0x2a56 (en: 'two intersecting logical or', MathPlayer: 'two intersecting logical or', google: 'zwei kreuzende logische oder') + - "⩗": [T: "Abfallend großes oder"] # 0x2a57 (en: 'sloping large or', MathPlayer: 'sloping large or', google: 'groß oder') + - "⩘": [T: "Abfallend großes und"] # 0x2a58 (en: 'sloping large and', MathPlayer: 'sloping large and', google: 'groß und') + - "⩙": [T: "Logisch oder Überlappend Logisch Und"] # 0x2a59 (en: 'logical or overlapping logical and', google: 'logisch oder überlappend logisch und') + - "⩚": [T: "Logisch und mit Middle Stem"] # 0x2a5a (en: 'logical and with middle stem', MathPlayer: 'logical and with middle stem', google: 'logisch und mit mittlerem stiel') + - "⩛": [T: "Logisch oder mit Middle Stem"] # 0x2a5b (en: 'logical or with middle stem', MathPlayer: 'logical or with middle stem', google: 'logisch oder mit mittlerem stiel') + - "⩜": [T: "Logisch und mit Horizontalstrich"] # 0x2a5c (en: 'logical and with horizontal dash', MathPlayer: 'logical and with horizontal dash', google: 'logisch und mit horizontalem armaturenbrett') + - "⩝": [T: "Logisch oder mit Horizontalstrich"] # 0x2a5d (en: 'logical or with horizontal dash', MathPlayer: 'logical or with horizontal dash', google: 'logisch oder mit horizontalem strich') + - "⩞": [T: "Logisch und mit Double Overbar"] # 0x2a5e (en: 'logical and with double overbar', google: 'logisch und mit doppelter überbärung') + - "⩟": [T: "Logisch und mit Underbar"] # 0x2a5f (en: 'logical and with underbar', MathPlayer: 'logical and with underbar', google: 'logisch und mit unterbar') + - "⩠": [T: "Logisch und mit Double Underbar"] # 0x2a60 (en: 'logical and with double underbar', google: 'logisch und mit doppelter unterbarung') + - "⩡": [T: "kleines Vee mit Underbar"] # 0x2a61 (en: 'small vee with underbar', google: 'kleiner vee mit unterbar') + - "⩢": [T: "Logisch oder mit Double Overbar"] # 0x2a62 (en: 'logical or with double overbar', google: 'logisch oder mit doppelter überbärung') + - "⩣": [T: "Logisch oder mit doppelter Unterleiste"] # 0x2a63 (en: 'logical or with double underbar', google: 'logisch oder mit doppelter unterbarung') + - "⩤": [T: "Z-Notation Domain Antirestriction"] # 0x2a64 (en: 'z notation domain antirestriction', google: 'z notation domain antirestriktion') + - "⩥": [T: "Z Notationsbereich Antirestriction"] # 0x2a65 (en: 'z notation range antirestriction', google: 'z notation range antirestriktion') + - "⩦": [T: "Gleichheitszeichen mit Punkt unten"] # 0x2a66 (en: 'equals sign with dot below', MathPlayer: 'equal with dot below', google: 'gleiches zeichen mit punkt unten') + - "⩧": [T: "Identisch mit dem obigen Punkt"] # 0x2a67 (en: 'identical with dot above', google: 'identisch mit punkt oben') + - "⩨": [T: "Dreifacher Horizontalbalken mit doppeltem vertikalem Hub"] # 0x2a68 (en: 'triple horizontal bar with double vertical stroke', google: 'dreifache horizontale balken mit doppelter vertikaler hub') + - "⩩": [T: "Dreifacher Horizontalbalken mit dreifachem vertikalem Hub"] # 0x2a69 (en: 'triple horizontal bar with triple vertical stroke', google: 'dreifache horizontale stange mit dreifachem vertikalem schlaganfall') + - "⩪": [T: "Tilde-Operator mit Punkt oben"] # 0x2a6a (en: 'tilde operator with dot above', MathPlayer: 'tilde with dot', google: 'tilde -operator mit punkt oben') + - "⩫": [T: "Tilde-Operator mit steigenden Punkten"] # 0x2a6b (en: 'tilde operator with rising dots', google: 'tilde -operator mit steigenden punkten') + - "⩬": [T: "Ähnlich Minus Ähnlich"] # 0x2a6c (en: 'similar minus similar', google: 'ähnlich minus ähnlich') + - "⩭": [T: "Kongruent mit Punkt oben"] # 0x2a6d (en: 'congruent with dot above', MathPlayer: 'congruent with dot above', google: 'kongruent mit punkten oben') + - "⩮": [T: "Entspricht Asterisk"] # 0x2a6e (en: 'equals with asterisk', google: 'entspricht mit sternchen') + - "⩯": [T: "Fast gleichwertig mit dem Circumflex Accent"] # 0x2a6f (en: 'almost equal to with circumflex accent', MathPlayer: 'almost equal to with circumflex accent', google: 'fast gleich mit dem zirkumflexakzent') + - "⩰": [T: "Ungefähr gleich oder gleich zu"] # 0x2a70 (en: 'approximately equal to or equal to', google: 'ungefähr gleich oder gleich') + - "⩱": [T: "Gleichheitszeichen über Pluszeichen"] # 0x2a71 (en: 'equals sign above plus sign', MathPlayer: 'equals with plus below', google: 'gleiches zeichen oben plus zeichen') + - "⩲": [T: "Pluszeichen über Gleichheitszeichen"] # 0x2a72 (en: 'plus sign above equals sign', MathPlayer: 'equals with plus above', google: 'plus -zeichen oben gleiches zeichen') + - "⩳": [T: "Gleichheitszeichen über Tilde-Operator"] # 0x2a73 (en: 'equals sign above tilde operator', MathPlayer: 'equals sign above tilde operator', google: 'gleicher vorzeichen über dem tilde -operator') + - "⩴": [T: "Doppelpunkt gleich"] # 0x2a74 (en: 'double colon equal', MathPlayer: 'double colon equal', google: 'doppelter dickdarm gleich') + - "⩵": [T: "doppeltes Gleichheitszeichen"] # 0x2a75 (en: 'two consecutive equals signs') + - "⩶": [T: "Drei aufeinander folgende Gleichheitszeichen"] # 0x2a76 (en: 'three consecutive equals signs', google: 'drei aufeinanderfolgende anzeichen') + - "⩷": [T: "Gleichheitszeichen mit zwei Punkten oben und zwei Punkten unten"] # 0x2a77 (en: 'equals sign with two dots above and two dots below', MathPlayer: 'equals sign with two dots above and two dots below', google: 'gleiches zeichen mit zwei punkten oben und zwei punkten unten') + - "⩸": [T: "Gleichwertig mit vier Punkten oben"] # 0x2a78 (en: 'equivalent with four dots above', MathPlayer: 'equivalent with four dots above', google: 'äquivalent mit vier punkten oben') + - "⩹": [T: "Weniger als mit Circle Inside"] # 0x2a79 (en: 'less than with circle inside', MathPlayer: 'less than with circle inside', google: 'weniger als mit kreis im inneren') + - "⩺": [T: "Größer als mit Kreis nach innen"] # 0x2a7a (en: 'greater than with circle inside', MathPlayer: 'greater than with circle inside', google: 'größer als mit kreis im inneren') + - "⩻": [T: "Weniger als mit Fragezeichen oben"] # 0x2a7b (en: 'less than with question mark above', MathPlayer: 'less than with question mark above', google: 'weniger als mit fragezeichen oben') + - "⩼": [T: "Größer als mit Fragezeichen oben"] # 0x2a7c (en: 'greater than with question mark above', MathPlayer: 'greater than with question mark above', google: 'größer als mit dem obigen fragezeichen') + - "⩽": [T: "Weniger als oder schräg gleich"] # 0x2a7d (en: 'less than or slanted equal to', MathPlayer: 'less than or slanted equal to', google: 'weniger als oder schräg gleich') + - "⩾": [T: "Größer als oder schräg gleich"] # 0x2a7e (en: 'greater than or slanted equal to', MathPlayer: 'greater than or slanted equal', google: 'größer als oder schräg gleich') + - "⩿": [T: "Weniger als oder schräg gleich mit Punkt nach innen"] # 0x2a7f (en: 'less than or slanted equal to with dot inside', MathPlayer: 'less than or slanted equal to with dot inside', google: 'weniger als oder schräg gleich mit punkt im inneren') + - "⪀": [T: "Größer als oder schräg gleich mit Punkt nach innen"] # 0x2a80 (en: 'greater than or slanted equal to with dot inside', MathPlayer: 'greater than or slanted equal to with dot inside', google: 'größer als oder schräg gleich mit punkt im inneren') + - "⪁": [T: "Weniger als oder schräg gleich mit Punkt oben"] # 0x2a81 (en: 'less than or slanted equal to with dot above', MathPlayer: 'less than or slanted equal to with dot above', google: 'weniger als oder schräg gleich mit punkt oben') + - "⪂": [T: "Größer als oder schräg gleich mit Punkt oben"] # 0x2a82 (en: 'greater than or slanted equal to with dot above', MathPlayer: 'greater than or slanted equal to with dot above', google: 'größer als oder schräg gleich mit punkt oben') + - "⪃": [T: "Weniger als oder schräg gleich mit Punkt oben rechts"] # 0x2a83 (en: 'less than or slanted equal to with dot above right', MathPlayer: 'less than or slanted equal to with dot above right', google: 'weniger oder schräg gleich mit dem punkt oben rechts') + - "⪄": [T: "Größer als oder schräg gleich mit Punkt oben links"] # 0x2a84 (en: 'greater than or slanted equal to with dot above left', MathPlayer: 'greater than or slanted equal to with dot above left', google: 'größer als oder schräg gleich mit punkt oben links') + - "⪅": [T: "Weniger als oder ungefähr"] # 0x2a85 (en: 'less than or approximate', google: 'weniger als oder ungefähr') + - "⪆": [T: "Größer als oder ungefähr"] # 0x2a86 (en: 'greater than or approximate', google: 'größer als oder ungefähr') + - "⪇": [T: "Kleiner als aber nicht gleich"] # 0x2a87 (en: 'less than and single line not equal to', google: 'weniger als und eine einzelne linie nicht gleich') + - "⪈": [T: "Größer als aber nicht gleich"] # 0x2a88 (en: 'greater than and single line not equal to', google: 'größer als und eine einzelne linie nicht gleich') + - "⪉": [T: "Kleiner als aber nicht ungefähr gleich"] # 0x2a89 (en: 'less than and not approximate', MathPlayer: 'less than but not approximately equal to', google: 'weniger als und nicht ungefähr') + - "⪊": [T: "Größer als aber nicht ungefähr gleich"] # 0x2a8a (en: 'greater than and not approximate', MathPlayer: 'greater than but not approximately equal to', google: 'größer als und nicht ungefähr') + - "⪋": [T: "Weniger als aber größer als oben"] # 0x2a8b (en: 'less than above double line equal above greater than', google: 'weniger als über der doppelten linie gleich über größer als höher als') + - "⪌": [T: "Größer als aber weniger als unten und größer als oben"] # 0x2a8c (en: 'greater than above double line equal above less than', google: 'größer als über der doppelten linie, die über weniger als über weniger als übertroffen werden') + - "⪍": [T: "Weniger als oben ähnlich oder gleich"] # 0x2a8d (en: 'less than above similar or equal', MathPlayer: 'less than above similar or equal', google: 'weniger als über ähnlich oder gleich') + - "⪎": [T: "Größer als oben ähnlich oder gleich"] # 0x2a8e (en: 'greater than above similar or equal', MathPlayer: 'greater than above similar or equal', google: 'größer als über ähnlich oder gleich') + - "⪏": [T: "Weniger als oben ähnlich oben größer als"] # 0x2a8f (en: 'less than above similar above greater than', MathPlayer: 'less than above similar above greater than', google: 'weniger als über ähnlich oben höher als größer als') + - "⪐": [T: "Größer als oben Ähnlich oben"] # 0x2a90 (en: 'greater than above similar above less than', MathPlayer: 'greater than above similar above less than', google: 'größer als über ähnlich über ähnlichem') + - "⪑": [T: "less than greater than or equal to"] # 0x2a91 (en: 'less than above greater than above double line equal') + - "⪒": [T: "greater than less than or equal to"] # 0x2a92 (en: 'greater than above less than above double line equal') + - "⪓": [T: "Weniger als oben schräg gleich oben Größer als oben schräg gleich"] # 0x2a93 (en: 'less than above slanted equal above greater than above slanted equal', MathPlayer: 'less than above slanted equal above greater than above slanted equal', google: 'weniger als über dem überdurchschnittlich überdurchschnittlich überdurchschnittlich ist es gleich') + - "⪔": [T: "Größer als oben schräg gleich oben kleiner als oben schräg gleich groß"] # 0x2a94 (en: 'greater than above slanted equal above less than above slanted equal', MathPlayer: 'greater than above slanted equal above less than above slanted equal', google: 'größer als über dem schrägen gleich über dem gleichen schrägen gleich') + - "⪕": [T: "Schräg gleich oder kleiner als"] # 0x2a95 (en: 'slanted equal to or less than', google: 'schräg gleich oder weniger als') + - "⪖": [T: "Schräg gleich oder größer als"] # 0x2a96 (en: 'slanted equal to or greater than', google: 'schräg gleich oder größer als') + - "⪗": [T: "Schräg gleich oder kleiner als mit innenliegendem Punkt"] # 0x2a97 (en: 'slanted equal to or less than with dot inside', MathPlayer: 'slanted equal to or less than with dot inside', google: 'schräg gleich oder weniger als mit punkt im inneren') + - "⪘": [T: "Schräg gleich oder größer als mit Punkt nach innen"] # 0x2a98 (en: 'slanted equal to or greater than with dot inside', MathPlayer: 'slanted equal to or greater than with dot inside', google: 'schräg gleich oder größer als mit punkt im inneren') + - "⪙": [T: "Gleich oder kleiner als"] # 0x2a99 (en: 'double line equal to or less than', MathPlayer: 'equal (double) over less than', google: 'doppellinie gleich oder weniger als') + - "⪚": [T: "Gleich oder größer als"] # 0x2a9a (en: 'double line equal to or greater than', MathPlayer: 'equal to or greater than', google: 'doppellinie gleich oder größer als') + - "⪛": [T: "Doppelte Linie schräg gleich oder kleiner als"] # 0x2a9b (en: 'double line slanted equal to or less than', google: 'doppelzeile, die gleich oder weniger als weniger als') + - "⪜": [T: "Doppelte Linie schräg gleich oder größer als"] # 0x2a9c (en: 'double line slanted equal to or greater than', google: 'doppelte linie schräg gleich oder größer als') + - "⪝": [T: "Äquivalent oder kleiner als"] # 0x2a9d (en: 'similar or less than', MathPlayer: 'equivalent to or less than', google: 'ähnlich oder weniger als') + - "⪞": [T: "Ähnlich oder größer als"] # 0x2a9e (en: 'similar or greater than', MathPlayer: 'similar or greater than', google: 'ähnlich oder größer als') + - "⪟": [T: "Ähnlich oben Weniger als Gleiches Gleichheitszeichen"] # 0x2a9f (en: 'similar above less than above equals sign', MathPlayer: 'similar above less than above equals sign', google: 'ähnlich oben weniger als über oben gleiches zeichen') + - "⪠": [T: "Ähnlich oben größer als oben Gleichheitszeichen"] # 0x2aa0 (en: 'similar above greater than above equals sign', MathPlayer: 'similar above greater than above equals sign', google: 'ähnlich oben größer als über oben gleiches zeichen') + - "⪡": [T: "Verschachteltes kleiner als"] # 0x2aa1 (en: 'double nested less than', MathPlayer: 'nested less than', google: 'doppelt weniger verschachtelt als') + - "⪢": [T: "Verschachteltes größer als"] # 0x2aa2 (en: 'double nested greater than', MathPlayer: 'nested greater than', google: 'doppelt verschachtelt größer als') + - "⪣": [T: "Doppelt verschachtelt, weniger als mit Unterleiste"] # 0x2aa3 (en: 'double nested less than with underbar', google: 'doppelte verschachtel weniger als mit underbar') + - "⪤": [T: "less than greater than overlay"] # 0x2aa4 (en: 'greater than overlapping less than') + - "⪥": [T: "Größer als weniger als"] # 0x2aa5 (en: 'greater than beside less than', MathPlayer: 'greater than beside less than', google: 'größer als weniger als weniger als') + - "⪦": [T: "Weniger als durch Kurve geschlossen"] # 0x2aa6 (en: 'less than closed by curve', MathPlayer: 'less than closed by curve', google: 'weniger als durch kurve geschlossen') + - "⪧": [T: "Größer als durch Kurve geschlossen"] # 0x2aa7 (en: 'greater than closed by curve', MathPlayer: 'greater than closed by curve', google: 'größer als durch kurve geschlossen') + - "⪨": [T: "Weniger als dann geschlossen durch Kurve oberhalb der gleichen Neigung"] # 0x2aa8 (en: 'less than closed by curve above slanted equal', MathPlayer: 'less than closed by curve above slanted equal', google: 'weniger als geschlossen durch kurve über schräg gleich') + - "⪩": [T: "Größer als geschlossen durch Kurve oberhalb der gleichen Neigung"] # 0x2aa9 (en: 'greater than closed by curve above slanted equal', MathPlayer: 'greater than closed by curve above slanted equal', google: 'größer als durch kurve über schräg gleich geschlossen') + - "⪪": [T: "kleiner als"] # 0x2aaa (en: 'smaller than', MathPlayer: 'smaller than') + - "⪫": [T: "Größer als"] # 0x2aab (en: 'larger than', MathPlayer: 'larger than', google: 'größer als') + - "⪬": [T: "kleiner als oder gleich"] # 0x2aac (en: 'smaller than or equal to', MathPlayer: 'smaller than or equal to') + - "⪭": [T: "Größer als oder gleich"] # 0x2aad (en: 'larger than or equal to', MathPlayer: 'larger than or equal to', google: 'größer als oder gleich') + - "⪮": [T: "difference between (variant"] # 0x2aae (en: 'equals sign with bumpy above', MathPlayer: 'difference between (variant)', google: 'gleiches zeichen mit holprigem oben') + - "⪯": [T: "Stellt über dem einzeiligen Gleichheitszeichen ein"] # 0x2aaf (en: 'precedes above single line equals sign', MathPlayer: 'precedes above single line equals sign', google: 'vorausgesetzt über ein einzelner zeile ist gleich ein zeichen') + - "⪰": [T: "Erfolg über dem einzeiligen Gleichheitszeichen"] # 0x2ab0 (en: 'succeeds above single line equals sign', google: 'nachfolger über eine einzelne zeile gleich zeichen') + - "⪱": [T: "Vorangehende Single-Line ist nicht gleich"] # 0x2ab1 (en: 'precedes above single line not equal to', google: 'vor voraussichtlich nicht gleich einzelner linie gleich') + - "⪲": [T: "Erfolg über Single-Line nicht gleich"] # 0x2ab2 (en: 'succeeds above single line not equal to', google: 'nachfolger über eine einzelne linie nicht gleich') + - "⪳": [T: "Vorangegangenes Gleichheitszeichen"] # 0x2ab3 (en: 'precedes above equals sign', google: 'vor dem gleichen vorzeichen voraus') + - "⪴": [T: "Erfolgreich über Gleichheitszeichen"] # 0x2ab4 (en: 'succeeds above equals sign', google: 'nachfolger über gleiches zeichen') + - "⪵": [T: "vorangehend, aber nicht gleich"] # 0x2ab5 (en: 'precedes above not equal to') + - "⪶": [T: "nachfolgend, aber nicht gleich"] # 0x2ab6 (en: 'succeeds above not equal to') + - "⪷": [T: "Vorangegangenes fast gleich zu"] # 0x2ab7 (en: 'precedes above almost equal to', google: 'vor voraussichtlich fast gleich gleich') + - "⪸": [T: "Erreicht über fast gleich viel"] # 0x2ab8 (en: 'succeeds above almost equal to', google: 'erfolgreich ist über fast gleich') + - "⪹": [T: "Vorangegangene nicht annähernd gleich"] # 0x2ab9 (en: 'precedes above not almost equal to', google: 'vorkommen oben nicht annähernd gleich') + - "⪺": [T: "Erreicht oben nicht annähernd gleich"] # 0x2aba (en: 'succeeds above not almost equal to', google: 'es ist nicht annähernd gleich') + - "⪻": [T: "Doppelter Vorgänger"] # 0x2abb (en: 'double precedes', MathPlayer: 'double precedes', google: 'double geht vor') + - "⪼": [T: "Doppelter Erfolg"] # 0x2abc (en: 'double succeeds', MathPlayer: 'double succeeds', google: 'doppelt erfolgreich') + - "⪽": [T: "Teilmenge mit Punkt"] # 0x2abd (en: 'subset with dot', MathPlayer: 'subset of with dot; is included in as sub relation', google: 'untergruppe mit punkt') + - "⪾": [T: "Superset mit Punkt"] # 0x2abe (en: 'superset with dot', MathPlayer: 'superset of with dot; includes as sub relation', google: 'superset mit punkt') + - "⪿": [T: "Teilmenge mit Pluszeichen unten"] # 0x2abf (en: 'subset with plus sign below', MathPlayer: 'subset with plus sign below', google: 'untergruppe mit pluszeichen unten') + - "⫀": [T: "Superset mit Pluszeichen unten"] # 0x2ac0 (en: 'superset with plus sign below', MathPlayer: 'superset with plus sign below', google: 'superset mit plus -zeichen unten') + - "⫁": [T: "Teilmenge mit Multiplikationszeichen unten"] # 0x2ac1 (en: 'subset with multiplication sign below', MathPlayer: 'subset with multiplication sign below', google: 'untergruppe mit multiplikationszeichen unten') + - "⫂": [T: "Superset mit Multiplikationszeichen unten"] # 0x2ac2 (en: 'superset with multiplication sign below', MathPlayer: 'superset with multiplication sign below', google: 'superset mit multiplikationszeichen unten') + - "⫃": [T: "Teilmenge oder gleich mit dem obigen Punkt"] # 0x2ac3 (en: 'subset of or equal to with dot above', MathPlayer: 'subset of or equal to with dot above', google: 'teilmenge von oder gleich mit punkt oben') + - "⫄": [T: "Superset von oder gleich mit Punkt oben"] # 0x2ac4 (en: 'superset of or equal to with dot above', MathPlayer: 'superset of or equal to with dot above', google: 'superset von oder gleich mit punkt oben') + - "⫅": [T: "Teilmenge des obigen Gleichheitszeichens"] # 0x2ac5 (en: 'subset of above equals sign', google: 'teilmenge von oben gleichen vorzeichen') + - "⫆": [T: "Superset des obigen Gleichheitszeichens"] # 0x2ac6 (en: 'superset of above equals sign', google: 'superset von oben gleichen vorzeichen') + - "⫇": [T: "approximate subset of"] # 0x2ac7 (en: 'subset of above tilde operator') + - "⫈": [T: "approximate superset of"] # 0x2ac8 (en: 'superset of above tilde operator') + - "⫉": [T: "Teilmenge von oben fast gleich"] # 0x2ac9 (en: 'subset of above almost equal to', google: 'untergruppe von oben fast gleich') + - "⫊": [T: "Superset von oben fast gleichwertig"] # 0x2aca (en: 'superset of above almost equal to', google: 'superset von oben fast gleich') + - "⫋": [T: "Teilmenge von oben nicht gleich"] # 0x2acb (en: 'subset above not equal to', google: 'untergruppe oben nicht gleich') + - "⫌": [T: "Superset von oben nicht gleich"] # 0x2acc (en: 'superset of above not equal to', google: 'superset von oben nicht gleich') + - "⫍": [T: "Platz links Feldbetreiber geöffnet"] # 0x2acd (en: 'square left open box operator', google: 'quadratische linke offene box -bediener') + - "⫎": [T: "Rechteckige Box mit offener Box"] # 0x2ace (en: 'square right open box operator', google: 'square right open box operator') + - "⫏": [T: "Geschlossener Teilsatz"] # 0x2acf (en: 'closed subset', MathPlayer: 'closed subset', google: 'geschlossene untergruppe') + - "⫐": [T: "Superset geschlossen"] # 0x2ad0 (en: 'closed superset', MathPlayer: 'closed superset', google: 'geschlossener superset') + - "⫑": [T: "Geschlossene Untermenge oder gleich"] # 0x2ad1 (en: 'closed subset or equal to', MathPlayer: 'closed subset or equal to', google: 'geschlossene untergruppe oder gleich') + - "⫒": [T: "Superset geschlossen oder gleich"] # 0x2ad2 (en: 'closed superset or equal to', MathPlayer: 'closed superset or equal to', google: 'geschlossene superset oder gleich') + - "⫓": [T: "Teilmenge über Obermenge"] # 0x2ad3 (en: 'subset above superset') + - "⫔": [T: "Obermenge über Teilmenge"] # 0x2ad4 (en: 'superset above subset') + - "⫕": [T: "Teilmenge über Teilmenge"] # 0x2ad5 (en: 'subset above subset') + - "⫖": [T: "Obermenge über Obermenge"] # 0x2ad6 (en: 'superset above superset') + - "⫗": [T: "Superset neben dem Subset"] # 0x2ad7 (en: 'superset beside subset', MathPlayer: 'superset beside subset', google: 'superset neben untergruppe') + - "⫘": [T: "Superset Neben und Joined von Dash mit Subset"] # 0x2ad8 (en: 'superset beside and joined by dash with subset', MathPlayer: 'superset beside and joined by dash with subset', google: 'superset neben dem dash mit der untergruppe') + - "⫙": [T: "Element der Öffnung nach unten"] # 0x2ad9 (en: 'element of opening downwards', MathPlayer: 'element of opening downwards', google: 'element der abwärts öffnen') + - "⫚": [T: "Heugabel mit T-Stück"] # 0x2ada (en: 'pitchfork with tee top', MathPlayer: 'pitchfork with tee top', google: 'pitchfork mit t -shirt top') + - "⫛": [T: "Transversalschnitt"] # 0x2adb (en: 'transversal intersection', MathPlayer: 'transversal intersection', google: 'transversal -kreuzung') + - "⫝̸": [T: "Gabelung"] # 0x2adc (en: 'forking', google: 'gabel') + - "⫝": [T: "Nicht Gabeln"] # 0x2add (en: 'nonforking', google: 'nicht -forking') + - "⫞": [T: "Kurzer Linker Tack"] # 0x2ade (en: 'short left tack', google: 'kurzer linker tack') + - "⫟": [T: "Kurzer Down Tack"] # 0x2adf (en: 'short down tack', google: 'kurzer tack') + - "⫠": [T: "kurzer Aufwärtshaken"] # 0x2ae0 (en: 'short up tack', google: 'kurzer tack') + - "⫡": [T: "Rechtwinklig zu S"] # 0x2ae1 (en: 'perpendicular with s', google: 'senkrecht mit s') + - "⫢": [T: "Vertikales Dreifach-Drehkreuz"] # 0x2ae2 (en: 'vertical bar triple right turnstile', google: 'vertikale bar dreifache rechte drehstil') + - "⫣": [T: "Doppelter vertikaler Balken linkes Drehkreuz"] # 0x2ae3 (en: 'double vertical bar left turnstile', google: 'doppelte vertikale balken linke drehkreuze') + - "⫤": [T: "vertikaler Strich mit doppeltem linkem Drehkreuz"] # 0x2ae4 (en: 'vertical bar double left turnstile') + - "⫥": [T: "Doppelter vertikaler Balken Doppelter linker Drehkreuz"] # 0x2ae5 (en: 'double vertical bar double left turnstile', google: 'doppelte vertikale balken doppelte linke drehkreuze') + - "⫦": [T: "Long Dash von Left Member von Double Vertical"] # 0x2ae6 (en: 'long dash from left member of double vertical', MathPlayer: 'long dash from left member of double vertical', google: 'langer dash vom linken mitglied des doppel vertikalen') + - "⫧": [T: "kurzer Abwärtshaken mit Überstrich"] # 0x2ae7 (en: 'short down tack with overbar', MathPlayer: 'short down tack with overbar', google: 'kurzer tack mit overbar') + - "⫨": [T: "kurzer Aufwärtshaken mit Unterstrich"] # 0x2ae8 (en: 'short up tack with underbar') + - "⫩": [T: "kurzer Aufwärtshaken über kurzem Abwärtshaken"] # 0x2ae9 (en: 'short up tack above short down tack', MathPlayer: 'short up tack above short down tack', google: 'kurzschluss über kurzer tack') + - "⫪": [T: "doppelter Abwärtshaken"] # 0x2aea (en: 'double down tack', google: 'double down tack') + - "⫫": [T: "Verdoppeln Sie Tack"] # 0x2aeb (en: 'double up tack', MathPlayer: 'double up tack', google: 'doppelte tack') + - "⫬": [T: "Doppelstrich nicht unterschreiben"] # 0x2aec (en: 'double stroke not sign', MathPlayer: 'double stroke not sign', google: 'doppelhub nicht unterschreiben') + - "⫭": [T: "Umgekehrter Doppelstrich nicht unterschrieben"] # 0x2aed (en: 'reversed double stroke not sign', MathPlayer: 'reversed double stroke not sign', google: 'umgekehrter doppelstrich nicht unterschreiben') + - "⫮": [T: "Teilt sich nicht mit umgekehrten Negationsschrägstrich"] # 0x2aee (en: 'does not divide with reversed negation slash', MathPlayer: 'does not divide with reversed negation slash', google: 'teilt sich nicht mit umgekehrter negationsschrägung') + - "⫯": [T: "Vertikale Linie mit Kreis oben"] # 0x2aef (en: 'vertical line with circle above', MathPlayer: 'vertical line with circle above', google: 'vertikale linie mit dem obigen kreis') + - "⫰": [T: "Vertikale Linie mit Kreis unten"] # 0x2af0 (en: 'vertical line with circle below', MathPlayer: 'vertical line with circle below', google: 'vertikale linie mit kreis unten') + - "⫱": [T: "Down Tack mit Kreis unten"] # 0x2af1 (en: 'down tack with circle below', MathPlayer: 'down tack with circle below', google: 'down tack mit kreis unten') + - "⫲": [T: "Parallel zum horizontalen Anschlag"] # 0x2af2 (en: 'parallel with horizontal stroke', MathPlayer: 'parallel with horizontal stroke', google: 'parallel zu horizontalem schlaganfall') + - "⫳": [T: "Parallel zu Tilde Operator"] # 0x2af3 (en: 'parallel with tilde operator', MathPlayer: 'parallel with tilde operator', google: 'parallel zum tilde -operator') + - "⫴": [T: "Dreifache vertikale Balken-Binärbeziehung"] # 0x2af4 (en: 'triple vertical bar binary relation', google: 'triple vertical bar binärbeziehung') + - "⫵": [T: "Dreifacher vertikaler Strich mit horizontalem Hub"] # 0x2af5 (en: 'triple vertical bar with horizontal stroke', google: 'dreifache vertikale balken mit horizontalem schlaganfall') + - "⫶": [T: "dreifacher doppelpunkt-operator"] # 0x2af6 (en: 'triple colon operator', google: 'dreifacher dickdarmbetreiber') + - "⫷": [T: "Dreifach verschachtelt weniger als"] # 0x2af7 (en: 'triple nested less than', google: 'dreifach verschachtelte weniger als') + - "⫸": [T: "Dreifach verschachteltes Größeres als"] # 0x2af8 (en: 'triple nested greater than', google: 'dreifach verschachteltes als') + - "⫹": [T: "Doppellinie schräg, weniger als oder gleich"] # 0x2af9 (en: 'double line slanted less than or equal to', google: 'doppelzeile, die weniger oder gleich sind') + - "⫺": [T: "Doppelte Linie schräg größer als oder gleich"] # 0x2afa (en: 'double line slanted greater than or equal to', google: 'doppelte linie schräg größer als oder gleich') + - "⫻": [T: "Dreifache Schrägstrich-Binärbeziehung"] # 0x2afb (en: 'triple solidus binary relation', google: 'triple solidus binärbeziehung') + - "⫼": [T: "Großer dreifacher vertikaler Barbediener"] # 0x2afc (en: 'large triple vertical bar operator', google: 'großer dreifacher vertikaler barbetreiber') + - "⫽": [T: "Doppelter Schrägstrich-Operator"] # 0x2afd (en: 'double solidus operator', google: 'doppeler solidus -operator') + - "⫾": [T: "Weiße vertikale Leiste"] # 0x2afe (en: 'white vertical bar', google: 'weiße vertikale balken') + - "⫿": [T: "n-ary weiße vertikale leiste"] # 0x2aff (en: 'white vertical bar', google: 'weiße vertikale balken') + - "⬀": [T: "weißer Nordostpfeil"] # 0x2b00 (en: 'north east white arrow', google: 'north east white arrow') + - "⬁": [T: "Nordwestlicher weißer Pfeil"] # 0x2b01 (en: 'north west white arrow', google: 'north west white arrow') + - "⬂": [T: "Südostweißer Pfeil"] # 0x2b02 (en: 'south east white arrow', google: 'südostweißer pfeil') + - "⬃": [T: "Südwestweißer Pfeil"] # 0x2b03 (en: 'south west white arrow', google: 'south west white arrow') + - "⬄": [T: "Linker rechter weißer Pfeil"] # 0x2b04 (en: 'left right white arrow', google: 'links rechts weißer pfeil') + - "⬅": [T: "Schwarzer Pfeil nach links"] # 0x2b05 (en: 'leftwards black arrow', google: 'links schwarzer pfeil') + - "⬆": [T: "Aufwärts schwarzer Pfeil"] # 0x2b06 (en: 'upwards black arrow', google: 'aufwärts schwarze pfeil') + - "⬇": [T: "Abwärts schwarzer Pfeil"] # 0x2b07 (en: 'downwards black arrow', google: 'nach unten schwarzen pfeil') + - "⬈": [T: "Schwarzer Nordostpfeil"] # 0x2b08 (en: 'north east black arrow', google: 'nordostschwarzer pfeil') + - "⬉": [T: "Nordwestlicher schwarzer Pfeil"] # 0x2b09 (en: 'north west black arrow', google: 'nordwesten schwarzer pfeil') + - "⬊": [T: "Schwarzer Südostpfeil"] # 0x2b0a (en: 'south east black arrow', google: 'südostschwarzer pfeil') + - "⬋": [T: "Südwestlicher schwarzer Pfeil"] # 0x2b0b (en: 'south west black arrow', google: 'südwesten schwarzer pfeil') + - "⬌": [T: "Linker rechter schwarzer Pfeil"] # 0x2b0c (en: 'left right black arrow', google: 'links rechts schwarzer pfeil') + - "⬍": [T: "Schwarzer Pfeil nach unten"] # 0x2b0d (en: 'up down black arrow', google: 'runter schwarze pfeil') + - "⬎": [T: "Pfeil nach rechts mit Spitze nach unten"] # 0x2b0e (en: 'rightwards arrow with tip downwards', google: 'richtiger pfeil mit tipp nach unten') + - "⬏": [T: "Pfeil nach rechts mit Spitze nach oben"] # 0x2b0f (en: 'rightwards arrow with tip upwards', google: 'richtiger pfeil mit tipp nach oben') + - "⬐": [T: "Pfeil nach links mit Spitze nach unten"] # 0x2b10 (en: 'leftwards arrow with tip downwards', google: 'links pfeil mit tipp nach unten') + - "⬑": [T: "Pfeil nach links mit Spitze nach oben"] # 0x2b11 (en: 'leftwards arrow with tip upwards', google: 'linkspfeil mit tipp nach oben') + - "⬒": [T: "Quadrat mit oberer Hälfte schwarz"] # 0x2b12 (en: 'square with top half black', google: 'quadrat mit der oberen halbzeit') + - "⬓": [T: "Quadrat mit unterer Hälfte schwarz"] # 0x2b13 (en: 'square with bottom half black', google: 'quadrat mit unterer halb schwarz') + - "⬔": [T: "Quadrat mit oberer rechter diagonaler Hälfte schwarz"] # 0x2b14 (en: 'square with upper right diagonal half black', google: 'quadrat mit der oberen rechten diagonalen halbschwarz') + - "⬕": [T: "Quadrat mit unterer linker diagonaler Hälfte schwarz"] # 0x2b15 (en: 'square with lower left diagonal half black', google: 'quadrat mit der unteren linken diagonalen halbschwarz') + - "⬖": [T: "Diamant mit linker Hälfte schwarz"] # 0x2b16 (en: 'diamond with left half black', google: 'diamant mit linksem halb schwarz') + - "⬗": [T: "Diamant mit rechter Hälfte schwarz"] # 0x2b17 (en: 'diamond with right half black', google: 'diamant mit rechter halb schwarz') + - "⬘": [T: "Diamant mit oberer Hälfte schwarz"] # 0x2b18 (en: 'diamond with top half black', google: 'diamant mit oberem halben schwarz') + - "⬙": [T: "Diamant mit unterer Hälfte schwarz"] # 0x2b19 (en: 'diamond with bottom half black', google: 'diamant mit unterer halb schwarz') + - "⬚": [T: "Gepunktetes Quadrat"] # 0x2b1a (en: 'box', google: 'kasten') + - "⬛": [T: "Schwarzes großes Quadrat"] # 0x2b1b (en: 'black large square', google: 'schwarzes großes quadrat') + - "⬜": [T: "Weißes großes Quadrat"] # 0x2b1c (en: 'white large square', google: 'weiß großes quadrat') + - "⬝": [T: "Schwarzes sehr kleines Quadrat"] # 0x2b1d (en: 'black very small square', google: 'schwarz, sehr kleines quadrat') + - "⬞": [T: "Weißes sehr kleines Quadrat"] # 0x2b1e (en: 'white very small square', google: 'weiß sehr kleines quadrat') + - "⬟": [T: "Schwarzes Pentagon"] # 0x2b1f (en: 'black pentagon', google: 'schwarzes pentagon') + - "⬠": [T: "Weißes Pentagon"] # 0x2b20 (en: 'white pentagon', google: 'weißes pentagon') + - "⬡": [T: "Weißes Sechseck"] # 0x2b21 (en: 'white hexagon', google: 'weißes sechseck') + - "⬢": [T: "Schwarzes Sechseck"] # 0x2b22 (en: 'black hexagon', google: 'schwarzes sechseck') + - "⬣": [T: "Horizontales schwarzes Sechseck"] # 0x2b23 (en: 'horizontal black hexagon', google: 'horizontales schwarzes sechseck') + - "⬤": [T: "Schwarzer großer Kreis"] # 0x2b24 (en: 'black large circle', google: 'schwarzer großer kreis') + - "⬥": [T: "Schwarzer mittlerer Diamant"] # 0x2b25 (en: 'black medium diamond', google: 'schwarzer medium diamond') + - "⬦": [T: "Weißer mittlerer Diamant"] # 0x2b26 (en: 'white medium diamond', google: 'weißer medium diamant') + - "⬧": [T: "Schwarze mittlere Raute"] # 0x2b27 (en: 'black medium lozenge', google: 'schwarze mittelgroße rauten') + - "⬨": [T: "Weiße mittlere Raute"] # 0x2b28 (en: 'white medium lozenge', google: 'weiße mittelgroße rauten') + - "⬩": [T: "Schwarzer kleiner Diamant"] # 0x2b29 (en: 'black small diamond', google: 'schwarzer kleiner diamant') + - "⬪": [T: "Schwarze kleine Raute"] # 0x2b2a (en: 'black small lozenge', google: 'schwarze kleine rauten') + - "⬫": [T: "Weiße kleine Raute"] # 0x2b2b (en: 'white small lozenge', google: 'weiße kleine raute') + - "⬬": [T: "Schwarze horizontale Ellipse"] # 0x2b2c (en: 'black horizontal ellipse', google: 'schwarze horizontale ellipse') + - "⬭": [T: "Weiße horizontale Ellipse"] # 0x2b2d (en: 'white horizontal ellipse', google: 'weiße horizontale ellipse') + - "⬮": [T: "Schwarze vertikale Ellipse"] # 0x2b2e (en: 'black vertical ellipse', google: 'schwarze vertikale ellipse') + - "⬯": [T: "Weiße vertikale Ellipse"] # 0x2b2f (en: 'white vertical ellipse', google: 'weiße vertikale ellipse') + - "⬰": [T: "Linker Pfeil mit kleinem Kreis"] # 0x2b30 (en: 'left arrow with small circle', google: 'links pfeil mit kleinem kreis') + - "⬱": [T: "Drei nach links gerichtete Pfeile"] # 0x2b31 (en: 'three leftwards arrows', google: 'drei linke pfeile') + - "⬲": [T: "Linker Pfeil mit Circled Plus"] # 0x2b32 (en: 'left arrow with circled plus', google: 'links pfeil mit eingekreistem plus') + - "⬳": [T: "Langer nach links gerichteter Squiggle-Pfeil"] # 0x2b33 (en: 'long leftwards squiggle arrow', google: 'langer linkskundiger pfeil') + - "⬴": [T: "Pfeil nach links mit senkrechtem Strich"] # 0x2b34 (en: 'leftwards two headed arrow with vertical stroke', google: 'links zwei köpfe pfeil mit vertikalem schlaganfall') + - "⬵": [T: "Doppelpfeil nach links mit doppeltem vertikalem Strich"] # 0x2b35 (en: 'leftwards two headed arrow with double vertical stroke', google: 'links zwei köpfe pfeil mit doppelter vertikaler hub') + - "⬶": [T: "Doppelpfeil nach links von der Bar"] # 0x2b36 (en: 'leftwards two headed arrow from bar', google: 'links zwei köpfe pfeil aus der bar') + - "⬷": [T: "Pfeil nach links mit zwei Köpfen"] # 0x2b37 (en: 'leftwards two headed triple dash arrow', google: 'links zwei köpfe triple dash pfeil') + - "⬸": [T: "Pfeil nach links mit gepunktetem Stamm"] # 0x2b38 (en: 'leftwards arrow with dotted stem', google: 'links pfeil mit gepunktetem stiel') + - "⬹": [T: "Pfeil nach links mit Schwanz mit vertikalem Strich"] # 0x2b39 (en: 'leftwards arrow with tail with vertical stroke', google: 'linkspfeil mit schwanz mit vertikalem schlaganfall') + - "⬺": [T: "Pfeil nach links mit Schwanz mit doppeltem vertikalem Strich"] # 0x2b3a (en: 'leftwards arrow with tail with double vertical stroke', google: 'linkspfeil mit schwanz mit doppelter vertikaler hub') + - "⬻": [T: "Nach links gerichteter zweiköpfiger Pfeil mit Schwanz"] # 0x2b3b (en: 'leftwards two headed arrow with tail', google: 'links zwei köpfe pfeil mit schwanz') + - "⬼": [T: "Nach links gerichteter zweiköpfiger Pfeil mit Schwanz mit vertikalem Strich"] # 0x2b3c (en: 'leftwards two headed arrow with tail with vertical stroke', google: 'links zwei köpfe pfeil mit schwanz mit vertikalem schlaganfall') + - "⬽": [T: "Nach links gerichteter zweiköpfiger Pfeil mit Schwanz mit doppeltem vertikalem Strich"] # 0x2b3d (en: 'leftwards two headed arrow with tail with double vertical stroke', google: 'links zwei köpfe pfeil mit schwanz mit doppelter vertikaler hub') + - "⬾": [T: "Pfeil nach links durch X"] # 0x2b3e (en: 'leftwards arrow through x', google: 'links pfeil durch x') + - "⬿": [T: "Wellenpfeil, der direkt nach links zeigt"] # 0x2b3f (en: 'wave arrow pointing directly left', google: 'wellenpfeil direkt nach links zeigen') + - "⭀": [T: "Gleichheitszeichen über dem Pfeil nach links"] # 0x2b40 (en: 'equals sign above leftwards arrow', google: 'gleiches zeichen über dem linken pfeil') + - "⭁": [T: "Reverse-Tilde-Operator Über Linkspfeil"] # 0x2b41 (en: 'reverse tilde operator above leftwards arrow', google: 'operator umgekehrter tilde über dem linken pfeil') + - "⭂": [T: "Pfeil nach links über der Rückseite fast gleich"] # 0x2b42 (en: 'leftwards arrow above reverse almost equal to', google: 'linksspfeil über der rückseite fast gleich') + - "⭃": [T: "Pfeil nach rechts durch mehr als"] # 0x2b43 (en: 'rightwards arrow through greater than', google: 'richtiger pfeil durch größer als') + - "⭄": [T: "Pfeil nach rechts durch Superset"] # 0x2b44 (en: 'rightwards arrow through superset', google: 'richtiger pfeil durch superset') + - "⭅": [T: "Vierfachpfeil nach links"] # 0x2b45 (en: 'leftwards quadruple arrow', google: 'linksvierter pfeil') + - "⭆": [T: "Vierfachpfeil nach rechts"] # 0x2b46 (en: 'rightwards quadruple arrow', google: 'richtiger vierfachpfeil') + - "⭇": [T: "Reverse-Tilde-Operator über dem Pfeil nach rechts"] # 0x2b47 (en: 'reverse tilde operator above rightwards arrow', google: 'operator umgekehrter tilde oberhalb rechts pfeil') + - "⭈": [T: "Pfeil nach rechts oben fast gleich"] # 0x2b48 (en: 'rightwards arrow above reverse almost equal to', google: 'rightwards pfeil über der rückseite fast gleich') + - "⭉": [T: "Tilde-Operator über dem Pfeil nach links"] # 0x2b49 (en: 'tilde operator above leftwards arrow', google: 'tilde -operator über linksem pfeil') + - "⭊": [T: "Pfeil nach links oben fast gleich"] # 0x2b4a (en: 'leftwards arrow above almost equal to', google: 'links über den pfeil über fast gleich') + - "⭋": [T: "Pfeil nach links über Reverse-Tilde-Operator"] # 0x2b4b (en: 'leftwards arrow above reverse tilde operator', google: 'links -pfeil über dem operator des umgekehrten tilde') + - "⭌": [T: "Pfeil nach rechts über Reverse-Tilde-Operator"] # 0x2b4c (en: 'rightwards arrow above reverse tilde operator', google: 'rightwards pfeil über dem operator des umgekehrten tilde') + - "⭐": [T: "Weißer mittlerer Stern"] # 0x2b50 (en: 'white medium star', MathPlayer: 'white medium star', google: 'weißer mittelstern') + - "⭑": [T: "Schwarzer kleiner Stern"] # 0x2b51 (en: 'black small star', MathPlayer: 'black small star', google: 'schwarzer kleiner stern') + - "⭒": [T: "Weißer kleiner Stern"] # 0x2b52 (en: 'white small star', MathPlayer: 'white small star', google: 'weißer kleiner stern') + - "⭓": [T: "Schwarzes nach rechts zeigendes Pentagon"] # 0x2b53 (en: 'black right pointing pentagon', google: 'schwarzer rechter pentagon') + - "⭔": [T: "Weißes nach rechts zeigendes Pentagon"] # 0x2b54 (en: 'white right pointing pentagon', google: 'weißer rechts pentagon') + - "⭕": [T: "Schwerer großer Kreis"] # 0x2b55 (en: 'heavy large circle', google: 'schwerer großer kreis') + - "⭖": [T: "Schweres Oval mit innenliegendem Oval"] # 0x2b56 (en: 'heavy oval with oval inside', google: 'schweres oval mit oval im inneren') + - "⭗": [T: "Schwerer Kreis mit Kreis nach innen"] # 0x2b57 (en: 'heavy circle with circle inside', google: 'schwerer kreis mit kreis im inneren') + - "⭘": [T: "Schwerer Kreis"] # 0x2b58 (en: 'heavy circle', google: 'schwerer kreis') + - "⭙": [T: "Schwerer eingekreister Saltire"] # 0x2b59 (en: 'heavy circled saltire', google: 'schwer umgekreistes salzire') + - "⸀": [T: "Rechtwinkel-Substitutionsmarker"] # 0x2e00 (en: 'right angle substitution marker', google translation) + - "⸁": [T: "rechtswinkel gepunkteter substitutionsmarker"] # 0x2e01 (en: 'right angle dotted substitution marker', google translation) + - "⸂": [T: "links -substitution -halterung"] # 0x2e02 (en: 'left substitution bracket', google translation) + - "⸃": [T: "rechte Substitutionsklammer"] # 0x2e03 (en: 'right substitution bracket', google translation) + - "⸄": [T: "links gepunktete substitutionshalterung"] # 0x2e04 (en: 'left dotted substitution bracket', google translation) + - "⸅": [T: "richtig gepunktete substitutionshalterung"] # 0x2e05 (en: 'right dotted substitution bracket', google translation) + - "⸆": [T: "erhöhter interpolationsmarker"] # 0x2e06 (en: 'raised interpolation marker', google translation) + - "⸇": [T: "erhöhter gepunkteter interpolationsmarker"] # 0x2e07 (en: 'raised dotted interpolation marker', google translation) + - "⸈": [T: "gepunkteter Transpositionsmarker"] # 0x2e08 (en: 'dotted transposition marker marker', google translation) + - "⸉": [T: "linke transpositionshalterung"] # 0x2e09 (en: 'left transposition bracket', google translation) + - "⸊": [T: "rechte transpositionsklasse"] # 0x2e0a (en: 'right transposition bracket', google translation) + - "⸋": [T: "erhöhter quadrat"] # 0x2e0b (en: 'raised square', google translation) + - "⸌": [T: "links erhöhte unterlassungshalterung"] # 0x2e0c (en: 'left raised omission bracket', google translation) + - "⸍": [T: "rechte auslassungshalterung"] # 0x2e0d (en: 'right raised omission bracket', google translation) + - "⸎": [T: "redaktionelle coronis"] # 0x2e0e (en: 'editorial coronis', google translation) + - "⸏": [T: "absatz"] # 0x2e0f (en: 'paragraphos', google translation) + - "⸐": [T: "gabel absätze"] # 0x2e10 (en: 'forked paragraphos', google translation) + - "⸑": [T: "umgekehrte gabel absätze"] # 0x2e11 (en: 'reversed forked paragraphos', google translation) + - "⸒": [T: "hypodiastole"] # 0x2e12 (google translation) + - "⸓": [T: "gepunktete obelos"] # 0x2e13 (en: 'dotted obelos', google translation) + - "⸔": [T: "abwärts ancora"] # 0x2e14 (en: 'downwards ancora', google translation) + - "⸕": [T: "nach oben ancora"] # 0x2e15 (en: 'upwards ancora', google translation) + - "⸖": [T: "gepunktete rechte zeigewinkel"] # 0x2e16 (en: 'dotted right pointing angle', google translation) + - "⸗": [T: "doppelter schräger bindestrich"] # 0x2e17 (en: 'double oblique hyphen', google translation) + - "⸘": [T: "umgekehrter interrobang"] # 0x2e18 (en: 'inverted interrobang', google translation) + - "⸙": [T: "palmenzweig"] # 0x2e19 (en: 'palm branch', google translation) + - "⸚": [T: "bindestrich mit diaerese"] # 0x2e1a (en: 'hyphen with diaeresis', google translation) + - "⸛": [T: "tilde mit ring oben"] # 0x2e1b (en: 'tilde with ring above', google translation) + - "⸜": [T: "linke niedrige Paraphraseklammer"] # 0x2e1c (en: 'left low paraphrase bracket', google translation) + - "⸝": [T: "rechte niedrige paraphrase -klammer"] # 0x2e1d (en: 'right low paraphrase bracket', google translation) + - "⸞": [T: "tilde mit punkt oben"] # 0x2e1e (en: 'tilde with dot above', google translation) + - "⸟": [T: "tilde mit punkt unten"] # 0x2e1f (en: 'tilde with dot below', google translation) + - "⸠": [T: "links vertikale balken mit feder"] # 0x2e20 (en: 'left vertical bar with quill', google translation) + - "⸡": [T: "rechte vertikale balken mit feder"] # 0x2e21 (en: 'right vertical bar with quill', google translation) + - "⸢": [T: "Obere linke halbe Halterung"] # 0x2e22 (en: 'top left half bracket', google: 'oben links halbe halterung') + - "⸣": [T: "Obere rechte halbe Klammer"] # 0x2e23 (en: 'top right half bracket', google: 'oben rechts halbhalterung') + - "⸤": [T: "Linke halbe halterung unten"] # 0x2e24 (en: 'bottom left half bracket', google: 'unten linke halbe klammer') + - "⸥": [T: "Untere rechte halbe Halterung"] # 0x2e25 (en: 'bottom right half bracket', google: 'unten rechts halbe klammer') + - "⸦": [T: "linksseitige U-Klammer"] # 0x2e26 (en: 'left sideways u bracket', google: 'links seitwärts u klammer') + - "⸧": [T: "rechtsseitige U-Klammer"] # 0x2e27 (en: 'right sideways u bracket', google: 'rechte seitwärtshalterung') + - "⸨": [T: "Linke doppelte Klammer"] # 0x2e28 (en: 'left double parentheses', google: 'links doppelte klammern') + - "⸩": [T: "Rechte doppelte Klammer"] # 0x2e29 (en: 'right double parentheses', google: 'rechte doppelte klammern') + - "⸪": [T: "zwei punkte über eine punktzahl"] # 0x2e2a (en: 'two dots over one dot punctuation', google translation) + - "⸫": [T: "ein punkt über zwei punkte"] # 0x2e2b (en: 'one dot over two dots punctuation', google translation) + - "⸬": [T: "quadratische vier punkt -interpunktion"] # 0x2e2c (en: 'squared four dot punctuation', google translation) + - "⸭": [T: "fünf punkt mark"] # 0x2e2d (en: 'five dot mark', google translation) + - "⸮": [T: "umgekehrter fragezeichen"] # 0x2e2e (en: 'reversed question mark', google translation) + - "ⸯ": [T: "vertikale tilde"] # 0x2e2f (en: 'vertical tilde', google translation) + - "⸰": [T: "ringpunkt"] # 0x2e30 (en: 'ring point', google translation) + - "⸱": [T: "wortseparator mittlerer punkt"] # 0x2e31 (en: 'word separator middle dot', google translation) + - "⸲": [T: "gedrehtes Komma"] # 0x2e32 (en: 'turned comma', google translation) + - "⸳": [T: "erhöhter punkt"] # 0x2e33 (en: 'raised dot', google translation) + - "⸴": [T: "erhöhter komma"] # 0x2e34 (en: 'raised comma', google translation) + - "⸵": [T: "gedrehtes Semikolon"] # 0x2e35 (en: 'turned semicolon', google translation) + - "⸶": [T: "dolch mit der linken wache"] # 0x2e36 (en: 'dagger with left guard', google translation) + - "⸷": [T: "dolch mit der rechten wache"] # 0x2e37 (en: 'dagger with right guard', google translation) + - "⸸": [T: "drehte dolch"] # 0x2e38 (en: 'turned dagger', google translation) + - "⸹": [T: "oberes Halb-Abschnittszeichen"] # 0x2e39 (en: 'top half section sign', google translation) + - "⸺": [T: "zwei Em-Striche"] # 0x2e3a (en: 'two em dash', google translation) + - "⸻": [T: "drei Em-Striche"] # 0x2e3b (en: 'three em dash', google translation) + - "〃": [T: "Dittomarke"] # 0x3003 (en: 'ditto mark', google translation) + - "〈": [T: "Linke Winkelklammer"] # 0x3008 (en: 'left angle bracket', google: 'linkswinkelhalter') + - "〉": [T: "Rechtwinklige Halterung"] # 0x3009 (en: 'right angle bracket', google: 'rechtswinkelhalterung') + - "《": [T: "Linke Doppelwinkelhalterung"] # 0x300a (en: 'left double angle bracket', MathPlayer: 'left double angle bracket', google: 'links zwei winkelhalterungen') + - "》": [T: "Rechte Doppelwinkelhalterung"] # 0x300b (en: 'right double angle bracket', MathPlayer: 'right double angle bracket', google: 'rechte doppelwinkelhalterung') + - "「": [T: "Linke Eckklammer"] # 0x300c (en: 'left corner bracket', google: 'linke eckhalterung') + - "」": [T: "Rechte Eckhalterung"] # 0x300d (en: 'right corner bracket', google: 'rechte eckhalterung') + - "『": [T: "Linke weiße Eckhalterung"] # 0x300e (en: 'left white corner bracket', google: 'links weiße eckhalterung') + - "』": [T: "Rechte weiße Eckhalterung"] # 0x300f (en: 'right white corner bracket', google: 'rechte weiße eckhalterung') + - "【": [T: "Linke schwarze linsenförmige Halterung"] # 0x3010 (en: 'left black lenticular bracket', google: 'links schwarze linsenhalterung') + - "】": [T: "Rechte schwarze linsenförmige Halterung"] # 0x3011 (en: 'right black lenticular bracket', google: 'rechte schwarze linsenhalterung') + - "〔": [T: "linke Schildpatt-Klammer"] # 0x3014 (en: 'left tortoise shell bracket', MathPlayer: 'left tortoise shell bracket', google: 'links schildkrötenhalterung') + - "〕": [T: "rechte Schildpatt-Klammer"] # 0x3015 (en: 'right tortoise shell bracket', MathPlayer: 'right tortoise shell bracket', google: 'rechte schildkrötenhalterung') + - "〖": [T: "Linke weiße linsenförmige Halterung"] # 0x3016 (en: 'left white lenticular bracket', google: 'links weiße linsenhalterung') + - "〗": [T: "Rechte weiße linsenförmige Halterung"] # 0x3017 (en: 'right white lenticular bracket', google: 'rechte weiße linsenhalterung') + - "〘": [T: "Linke weiße Schildpatt-Klammer"] # 0x3018 (en: 'left white tortoise shell bracket', google: 'links weiße schildkröte') + - "〙": [T: "Rechte weiße Schildpatt-Klammer"] # 0x3019 (en: 'right white tortoise shell bracket', google: 'richtige weiße schildkrabbungshalterung') + - "〚": [T: "Linke weiße eckige Klammer"] # 0x301a (en: 'left white square bracket', MathPlayer: 'left white square bracket', google: 'linke weiße quadratklammer') + - "〛": [T: "Rechte weiße eckige Klammer"] # 0x301b (en: 'right white square bracket', MathPlayer: 'right white square bracket', google: 'rechte weiße quadratklasse') + - "〜": [T: "Wave Dash"] # 0x301c (en: 'wave dash', google: 'wave dash') + - "〰": [T: "zigzag"] # 0x3030 (en: 'wavy dash', google: 'welliger armaturenbrett') + - "㉈": [T: "eingekreiste Zehn auf schwarzem Quadrat"] # 0x3248 (en: 'circled number ten on black square', google: 'kreiste nummer zehn auf black square') + - "㉉": [T: "eingekreiste Zwanzig auf schwarzem Quadrat"] # 0x3249 (en: 'circled number twenty on black square', google: 'kreiste nummer zwanzig auf dem schwarzen quadrat') + - "㉊": [T: "eingekreiste Dreißig auf schwarzem Quadrat"] # 0x324a (en: 'circled number thirty on black square', google: 'kreiste nummer dreißig auf dem schwarzen platz') + - "㉋": [T: "eingekreiste Vierzig auf schwarzem Quadrat"] # 0x324b (en: 'circled number forty on blacks square', google: 'kreiste nummer vierzig auf dem blacks square') + - "㉌": [T: "eingekreiste Fünfzig auf schwarzem Quadrat"] # 0x324c (en: 'circled number fifty on black square', google: 'auf dem schwarzen platz um fünfzig umkreiste') + - "㉍": [T: "eingekreiste Sechzig auf schwarzem Quadrat"] # 0x324d (en: 'circled number sixty on black square', google: 'kreiste nummer sechzig auf black square') + - "㉎": [T: "eingekreiste Siebzig auf schwarzem Quadrat"] # 0x324e (en: 'circled number seventy on black square', google: 'kreiste nummer siebzig auf dem schwarzen quadrat') + - "㉏": [T: "eingekreiste Achtzig auf schwarzem Quadrat"] # 0x324f (en: 'circled number eighty on black square', google: 'eingekreiste nummer auf dem black square') + - "㉑": [T: "umkreiste nummer einundzwanzig"] # 0x3251 (en: 'circled number twenty one', google translation) + - "㉒": [T: "umkreiste nummer zweiundzwanzig"] # 0x3252 (en: 'circled number twenty two', google translation) + - "㉓": [T: "umkreiste nummer dreiundzwanzig"] # 0x3253 (en: 'circled number twenty three', GPT-5.4 fixed translation) + - "㉔": [T: "umkreiste nummer vierundzwanzig"] # 0x3254 (en: 'circled number twenty four', GPT-5.4 fixed translation) + - "㉕": [T: "umkreiste nummer fünfundzwanzig"] # 0x3255 (en: 'circled number twenty five', GPT-5.4 fixed translation) + - "㉖": [T: "umkreiste nummer sechsundzwanzig"] # 0x3256 (en: 'circled number twenty six', GPT-5.4 fixed translation) + - "㉗": [T: "umkreiste nummer siebenundzwanzig"] # 0x3257 (en: 'circled number twenty seven', GPT-5.4 fixed translation) + - "㉘": [T: "umkreiste nummer achtundzwanzig"] # 0x3258 (en: 'circled number twenty eight', GPT-5.4 fixed translation) + - "㉙": [T: "umkreiste nummer neunundzwanzig"] # 0x3259 (en: 'circled number twenty nine', google translation) + - "㉚": [T: "umkreiste nummer dreißig"] # 0x325a (en: 'circled number thirty', google translation) + - "㉛": [T: "umkreiste nummer einunddreißig"] # 0x325b (en: 'circled number thirty one', google translation) + - "㉜": [T: "umkreiste nummer zweiunddreißig"] # 0x325c (en: 'circled number thirty two', GPT-5.4 fixed translation) + - "㉝": [T: "umkreiste nummer dreiunddreißig"] # 0x325d (en: 'circled number thirty three', google translation) + - "㉞": [T: "umkreiste nummer vierunddreißig"] # 0x325e (en: 'circled number thirty four', google translation) + - "㉟": [T: "umkreiste nummer fünfunddreißig"] # 0x325f (en: 'circled number thirty five', google translation) + - "㊱": [T: "umkreiste nummer sechsunddreißig"] # 0x32b1 (en: 'circled number thirty six', GPT-5.4 fixed translation) + - "㊲": [T: "umkreiste nummer siebenunddreißig"] # 0x32b2 (en: 'circled number thirty seven', GPT-5.4 translation) + - "㊳": [T: "umkreiste nummer achtunddreißig"] # 0x32b3 (en: 'circled number thirty eight', GPT-5.4 translation) + - "㊴": [T: "umkreiste nummer neununddreißig"] # 0x32b4 (en: 'circled number thirty nine', GPT-5.4 translation) + - "㊵": [T: "umkreiste nummer vierzig"] # 0x32b5 (en: 'circled number forty', GPT-5.4 translation) + - "㊶": [T: "umkreiste nummer einundvierzig"] # 0x32b6 (en: 'circled number forty one', GPT-5.4 translation) + - "㊷": [T: "umkreiste nummer zweiundvierzig"] # 0x32b7 (en: 'circled number forty two', GPT-5.4 translation) + - "㊸": [T: "umkreiste nummer dreiundvierzig"] # 0x32b8 (en: 'circled number forty three', GPT-5.4 translation) + - "㊹": [T: "umkreiste nummer vierundvierzig"] # 0x32b9 (en: 'circled number forty four', GPT-5.4 translation) + - "㊺": [T: "umkreiste nummer fünfundvierzig"] # 0x32ba (en: 'circled number forty five', GPT-5.4 translation) + - "㊻": [T: "umkreiste nummer sechsundvierzig"] # 0x32bb (en: 'circled number forty six', GPT-5.4 translation) + - "㊼": [T: "umkreiste nummer siebenundvierzig"] # 0x32bc (en: 'circled number forty seven', GPT-5.4 translation) + - "㊽": [T: "umkreiste nummer achtundvierzig"] # 0x32bd (en: 'circled number forty eight', GPT-5.4 translation) + - "㊾": [T: "umkreiste nummer neunundvierzig"] # 0x32be (en: 'circled number forty nine', GPT-5.4 translation) + - "㊿": [T: "umkreiste nummer fünfzig"] # 0x32bf (en: 'circled number fifty', GPT-5.4 translation) + - "㋌": [T: "quecksilber"] # 0x32cc (en: 'mercury', google translation) + - "㋍": [T: "ergs"] # 0x32cd (google translation) + - "㋎": [T: "elektronenvolt"] # 0x32ce (en: 'electron volts', google translation) + - "㋏": [T: "haftungsschild beschränkt"] # 0x32cf (en: 'limited liability sign', google translation) + - "㍱": [T: "hektopascal"] # 0x3371 (google translation) + - "㍲": [T: "dalton"] # 0x3372 (google translation) + - "㍳": [T: "astronomische einheiten"] # 0x3373 (en: 'astronomical units', google translation) + - "㍴": [T: "riegel"] # 0x3374 (en: 'bars', google translation) + - "㍵": [T: "o v"] # 0x3375 (google translation) + - "㍶": [T: "parsec"] # 0x3376 (google translation) + - "㍷": [T: "dezimeter"] # 0x3377 (en: 'decimeters', google translation) + - "㍸": [T: "Quadratdezimeter"] # 0x3378 (en: 'decimeters squared', google translation) + - "㍹": [T: "Kubikdezimeter"] # 0x3379 (en: 'decimeters cubed', google translation) + - "㍺": [T: "internationale Einheit"] # 0x337a (en: 'instrumental units', google translation) + - "㎀": [T: "pikoampere"] # 0x3380 (google translation) + - "㎁": [T: "nanoampere"] # 0x3381 (google translation) + - "㎂": [T: "mikroampere"] # 0x3382 (en: 'microamps', google translation) + - "㎃": [T: "milliampere"] # 0x3383 (google translation) + - "㎄": [T: "kiloampere"] # 0x3384 (google translation) + - "㎅": [T: "kilobyte"] # 0x3385 (google translation) + - "㎆": [T: "megabyte"] # 0x3386 (en: 'megabytes', google translation) + - "㎇": [T: "gigabyte"] # 0x3387 (en: 'gigabytes', google translation) + - "㎈": [T: "kalorien"] # 0x3388 (en: 'calories', google translation) + - "㎉": [T: "kilokalorien"] # 0x3389 (en: 'kilocalories', google translation) + - "㎊": [T: "pikofarad"] # 0x338a (google translation) + - "㎋": [T: "nanofarad"] # 0x338b (google translation) + - "㎌": [T: "mikrofarad"] # 0x338c (en: 'microfarads', google translation) + - "㎍": [T: "mikrogramm"] # 0x338d (en: 'micrograms', google translation) + - "㎎": [T: "milligramm"] # 0x338e (en: 'milligrams', google translation) + - "㎏": [T: "kilogramm"] # 0x338f (en: 'kilograms', google translation) + - "㎐": [T: "hertz"] # 0x3390 (google translation) + - "㎑": [T: "kilohertz"] # 0x3391 (google translation) + - "㎒": [T: "megahertz"] # 0x3392 (google translation) + - "㎓": [T: "gigahertz"] # 0x3393 (google translation) + - "㎔": [T: "terahertz"] # 0x3394 (google translation) + - "㎕": [T: "mikroliter"] # 0x3395 (en: 'microliters', google translation) + - "㎖": [T: "milliliter"] # 0x3396 (en: 'milliliters', google translation) + - "㎗": [T: "dezilierer"] # 0x3397 (en: 'deciliters', google translation) + - "㎘": [T: "kiloliter"] # 0x3398 (en: 'kiloliters', google translation) + - "㎙": [T: "femtometer"] # 0x3399 (en: 'femtometers', google translation) + - "㎚": [T: "nanometer"] # 0x339a (en: 'nanometers', google translation) + - "㎛": [T: "mikrometer"] # 0x339b (en: 'micrometers', google translation) + - "㎜": [T: "millimeter"] # 0x339c (en: 'millimeters', google translation) + - "㎝": [T: "zentimeter"] # 0x339d (en: 'centimeters', google translation) + - "㎞": [T: "kilometer"] # 0x339e (en: 'kilometers', google translation) + - "㎟": [T: "millimeter quadratisch"] # 0x339f (en: 'millimeters squared', google translation) + - "㎠": [T: "zentimeter quadratisch"] # 0x33a0 (en: 'centimeters squared', google translation) + - "㎡": [T: "quadratmeter"] # 0x33a1 (en: 'meters squared', google translation) + - "㎢": [T: "kilometer quadratisch"] # 0x33a2 (en: 'kilometers squared', google translation) + - "㎣": [T: "millimeter gewonnen"] # 0x33a3 (en: 'millimeters cubed', google translation) + - "㎤": [T: "zentimeter gewonnen"] # 0x33a4 (en: 'centimeters cubed', google translation) + - "㎥": [T: "meter gewonnen"] # 0x33a5 (en: 'meters cubed', google translation) + - "㎦": [T: "kilometer gewonnen"] # 0x33a6 (en: 'kilometers cubed', google translation) + - "㎧": [T: "meter pro sekunde"] # 0x33a7 (en: 'meters per second', google translation) + - "㎨": [T: "meter pro sekunde quadrat"] # 0x33a8 (en: 'meters per second squared', google translation) + - "㎩": [T: "pascals"] # 0x33a9 (google translation) + - "㎪": [T: "kilopascals"] # 0x33aa (google translation) + - "㎫": [T: "megapascals"] # 0x33ab (google translation) + - "㎬": [T: "gigapascals"] # 0x33ac (google translation) + - "㎭": [T: "rads"] # 0x33ad (google translation) + - "㎮": [T: "rads pro sekunde"] # 0x33ae (en: 'rads per second', google translation) + - "㎯": [T: "rads pro sekunde quadrat"] # 0x33af (en: 'rads per second squared', google translation) + - "㎰": [T: "pikosekunden"] # 0x33b0 (en: 'picoseconds', google translation) + - "㎱": [T: "nanosekunden"] # 0x33b1 (en: 'nanoseconds', google translation) + - "㎲": [T: "mikrosekunde"] # 0x33b2 (en: 'microseconds', google translation) + - "㎳": [T: "millisekunden"] # 0x33b3 (en: 'milliseconds', google translation) + - "㎴": [T: "picovolts"] # 0x33b4 (google translation) + - "㎵": [T: "nanovolts"] # 0x33b5 (google translation) + - "㎶": [T: "mikrovolte"] # 0x33b6 (en: 'microvolts', google translation) + - "㎷": [T: "millivolts"] # 0x33b7 (google translation) + - "㎸": [T: "kilovolts"] # 0x33b8 (google translation) + - "㎹": [T: "megavolts"] # 0x33b9 (google translation) + - "㎺": [T: "picowatts"] # 0x33ba (google translation) + - "㎻": [T: "nanowatts"] # 0x33bb (google translation) + - "㎼": [T: "mikrowatt"] # 0x33bc (en: 'microwatts', google translation) + - "㎽": [T: "milliwatt"] # 0x33bd (en: 'milliwatts', google translation) + - "㎾": [T: "kilowatt"] # 0x33be (en: 'kilowatts', google translation) + - "㎿": [T: "megawatt"] # 0x33bf (en: 'megawatts', google translation) + - "㏀": [T: "kilo-ohm"] # 0x33c0 (en: 'kilo-ohms', google translation) + - "㏁": [T: "megaohm"] # 0x33c1 (en: 'megaohms', google translation) + - "㏂": [T: "attometer"] # 0x33c2 (en: 'attometers', google translation) + - "㏃": [T: "becquerel"] # 0x33c3 (google translation) + - "㏄": [T: "kubikzentimeter"] # 0x33c4 (en: 'cubic centimeters', google translation) + - "㏅": [T: "candela"] # 0x33c5 (google translation) + - "㏆": [T: "coulombs pro kilogramm"] # 0x33c6 (en: 'coulombs per kilogram', google translation) + - "㏇": [T: "herzzeitvolumen"] # 0x33c7 (en: 'cardiac output', google translation) + - "㏈": [T: "dezibel"] # 0x33c8 (en: 'decibels', google translation) + - "㏉": [T: "grautöne"] # 0x33c9 (en: 'grays', google translation) + - "㏊": [T: "hektar"] # 0x33ca (en: 'hectares', google translation) + - "㏋": [T: "pferdestärke"] # 0x33cb (en: 'horsepower', google translation) + - "㏌": [T: "zoll"] # 0x33cc (en: 'inches', google translation) + - "㏍": [T: "kilokelvin"] # 0x33cd (google translation) + - "㏎": [T: "kilometer"] # 0x33ce (en: 'kilometers', google translation) + - "㏏": [T: "knoten"] # 0x33cf (en: 'knots', google translation) + - "㏐": [T: "lumen"] # 0x33d0 (en: 'lumens', google translation) + - "㏑": [T: "natürlicher Logarithmus"] # 0x33d1 (google translation) + - "㏒": [T: "logarithmus"] # 0x33d2 (en: 'logarithm', google translation) + - "㏓": [T: "lux"] # 0x33d3 (google translation) + - "㏔": [T: "millibar"] # 0x33d4 (google translation) + - "㏕": [T: "mil"] # 0x33d5 (en: 'mills', google translation) + - "㏖": [T: "mol"] # 0x33d6 (en: 'moles', google translation) + - "㏗": [T: "p h"] # 0x33d7 (google translation) + - "㏘": [T: "picometer"] # 0x33d8 (en: 'picometers', google translation) + - "㏙": [T: "teile pro million"] # 0x33d9 (en: 'parts per million', google translation) + - "㏚": [T: "petaroentgens"] # 0x33da (google translation) + - "㏛": [T: "steradier"] # 0x33db (en: 'steradians', google translation) + - "㏜": [T: "sieverts"] # 0x33dc (google translation) + - "㏝": [T: "webers"] # 0x33dd (google translation) + - "㏞": [T: "volt pro meter"] # 0x33de (en: 'volts per meter', google translation) + - "㏟": [T: "verstärker pro meter"] # 0x33df (en: 'amps per meter', google translation) + - "㏿": [T: "gallonen"] # 0x33ff (en: 'gallons', google translation) + - "": [T: "entspricht mit hut unten"] # 0xe900 (en: 'equals with hat below', google translation) + - "": [T: "entspricht plus oben"] # 0xe901 (en: 'equals with plus above', google translation) + - "": [T: "entspricht plus unten"] # 0xe902 (en: 'equals with plus below', google translation) + - "": [T: "tilde mit plus oben"] # 0xe903 (en: 'tilde with plus above', google translation) + - "": [T: "tilde mit plus unten"] # 0xe904 (en: 'tilde with plus below', google translation) + - "": [T: "gleich doppelt doppelt über größer als"] # 0xe908 (en: 'equal double over greater than', google translation) + - "": [T: "gleich doppelt über weniger als"] # 0xe909 (en: 'equal double over less than', google translation) + - "": [T: "enthält oder gleich"] # 0xe90a (en: 'contains or equal to', google translation) + - "": [T: "superset von oder gleich"] # 0xe90b (en: 'superset of or equal to', google translation) + - "": [T: "teilmenge von oder gleich"] # 0xe90c (en: 'subset of or equal to', google translation) + - "": [T: "gleich über weniger als"] # 0xe90d (en: 'equal over less than', google translation) + - "": [T: "element von oder gleich"] # 0xe912 (en: 'element of or equal to', google translation) + - "": [T: "gleich oder größer als"] # 0xe913 (en: 'equal to or greater than', google translation) + - "": [T: "ungefähre superset von"] # 0xe914 (en: 'approximate superset of', google translation) + - "": [T: "ungefähre teilmenge von"] # 0xe915 (en: 'approximate subset of', google translation) + - "": [T: "superset von with dot enthält als unterbeziehung"] # 0xe916 (en: 'superset of with dot includes as sub relation', google translation) + - "": [T: "die teilmenge von mit punkt ist in als sub -relation enthalten"] # 0xe917 (en: 'subset of with dot is included in as sub relation', google translation) + - "": [T: "gleich mit punkt unten"] # 0xe918 (en: 'equal with dot below', google translation) + - "": [T: "links punkt über minus über den rechten punkt"] # 0xe919 (en: 'left dot over minus over right dot', google translation) + - "": [T: "rechter punkt über minus über den linken punkt"] # 0xe91a (en: 'right dot over minus over left dot', google translation) + - "": [T: "fast gleich minus"] # 0xe91f (en: 'almost equal to minus', google translation) + - "": [T: "doppelter quadratbecher"] # 0xe920 (en: 'double square cup', google translation) + - "": [T: "doppelter quadrat in großbuchstaben"] # 0xe921 (en: 'double square cap', google translation) + - "": [T: "weniger als gleich oder größer als"] # 0xe922 (en: 'less than equal to or greater than', google translation) + - "": [T: "tilde mit punkt"] # 0xe924 (en: 'tilde with dot', google translation) + - "": [T: "tilde mit zwei punkten"] # 0xe925 (en: 'tilde with two dots', google translation) + - "": [T: "weniger als größer als oder gleich"] # 0xe926 (en: 'less than greater than or equal to', google translation) + - "": [T: "größer als weniger als oder gleich"] # 0xe927 (en: 'greater than less than or equal to', google translation) + - "": [T: "äquivalent zu oder weniger als"] # 0xe928 (en: 'equivalent to or less than', google translation) + - "": [T: "äquivalent zu oder größer als"] # 0xe929 (en: 'equivalent to or greater than', google translation) + - "": [T: "links geöffneter box -bediener"] # 0xe92a (en: 'left open box operator', google translation) + - "": [T: "rechts öffnen sie den box -bediener"] # 0xe92b (en: 'right open box operator', google translation) + - "": [T: "identisch mit punkt"] # 0xe92c (en: 'identical to with dot', google translation) + - "": [T: "größer als gleich oder weniger als"] # 0xe92d (en: 'greater than equal to or less than', google translation) + - "": [T: "barbetreiber"] # 0xe92e (en: 'bar operator', google translation) + - "": [T: "doppelbalkenbetreiber"] # 0xe92f (en: 'double bar operator', google translation) + - "": [T: "dreifachbetreiber"] # 0xe930 (en: 'triple bar operator', google translation) + - "": [T: "weniger als oder ungefähr gleich"] # 0xe932 (en: 'less than or approximately equal to', google translation) + - "": [T: "größer als oder ungefähr gleich"] # 0xe933 (en: 'greater than or approximately equal to', google translation) + - "": [T: "weniger als"] # 0xe936 (en: 'nested less than', google translation) + - "": [T: "verschachtelt größer als"] # 0xe937 (en: 'nested greater than', google translation) + - "": [T: "vorausgeht oder gleichwertig zu"] # 0xe93a (en: 'precedes or equivalent to', google translation) + - "": [T: "erfolg oder gleichwertig zu"] # 0xe93b (en: 'succeeds or equivalent to', google translation) + - "": [T: "geht über gleich"] # 0xe940 (en: 'precedes over equal', google translation) + - "": [T: "erfolgreich über gleich"] # 0xe941 (en: 'succeeds over equal', google translation) + - "": [T: "weniger gleicher neigung größer"] # 0xe942 (en: 'less equal slanted greater', google translation) + - "": [T: "mehr gleicher neigung weniger"] # 0xe943 (en: 'greater equal slanted less', google translation) + - "": [T: "zufrieden von"] # 0xe948 (en: 'satisfied by', google translation) + - "": [T: "faul s"] # 0xe949 (en: 'lazy s', google translation) + - "": [T: "keine behauptung"] # 0xe94a (en: 'not assertion', google translation) + - "": [T: "doppelt gleich"] # 0xe94b (en: 'double equal', google translation) + - "": [T: "dreifach gleich"] # 0xe94c (en: 'triple equal', google translation) + - "": [T: "regel verzögert"] # 0xe94d (en: 'rule delayed', google translation) + - "": [T: "alias gremiter"] # 0xe94e (en: 'alias delimiter', google translation) + - "": [T: "normale untergruppe mit bar"] # 0xe950 (en: 'normal subgroup of with bar', google translation) + - "": [T: "enthält als normale untergruppe mit balken"] # 0xe951 (en: 'contains as normal subgroup with bar', google translation) + - "": [T: "runde impliziert"] # 0xe954 (en: 'round implies', google translation) + - "": [T: "lächeln unter der bar"] # 0xe955 (en: 'smile under bar', google translation) + - "": [T: "stirnrunzeln über die bar"] # 0xe956 (en: 'frown over bar', google translation) + - "": [T: "superset von oder fast gleich"] # 0xe957 (en: 'superset of or almost equal to', google translation) + - "": [T: "teilmenge von oder fast gleich"] # 0xe958 (en: 'subset of or almost equal to', google translation) + - "": [T: "größer als fast gleich oder weniger als"] # 0xe959 (en: 'greater than almost equal to or less than', google translation) + - "": [T: "weniger als fast gleich oder größer als"] # 0xe95a (en: 'less than almost equal or greater than', google translation) + - "": [T: "doppelt logisch oder"] # 0xe95c (en: 'double logical or', google translation) + - "": [T: "doppelt logisch und"] # 0xe95d (en: 'double logical and', google translation) + - "": [T: "logisch oder mit einer doppelten balken unten"] # 0xe95e (en: 'logical or with double bar below', google translation) + - "": [T: "logisch oder mit bar unten"] # 0xe95f (en: 'logical or with bar below', google translation) + - "": [T: "fast gleich über gleich"] # 0xe962 (en: 'almost equal over equal', google translation) + - "": [T: "links zeigter dreieck mit halbierender stange"] # 0xe964 (en: 'left pointing triangle with bisecting bar', google translation) + - "": [T: "rechte dreieck mit halbierender balken"] # 0xe965 (en: 'right pointing triangle with bisecting bar', google translation) + - "": [T: "entspricht mit gepunkteten top -linien"] # 0xe966 (en: 'equals with dotted top line', google translation) + - "": [T: "geht mit dickdarm voraus"] # 0xe967 (en: 'precedes with colon', google translation) + - "": [T: "erfolg mit colon"] # 0xe968 (en: 'succeeds with colon', google translation) + - "": [T: "kleiner als oder gleich schräg"] # 0xe969 (en: 'smaller than or equal slanted', google translation) + - "": [T: "größer oder gleich schräg"] # 0xe96a (en: 'larger than or equal slanted', google translation) + - "": [T: "sehr viel weniger verschachtelt als"] # 0xe96b (en: 'nested very much less than', google translation) + - "": [T: "sehr viel größer als"] # 0xe96c (en: 'nested very much greater than', google translation) + - "": [T: "unterschied zwischen variante"] # 0xe96d (en: 'difference between variant', google translation) + - "": [T: "weniger als größer als overlay"] # 0xe96e (en: 'less than greater than overlay', google translation) + - "": [T: "logisch oder logisch und overlay"] # 0xe96f (en: 'logical or logical and overlay', google translation) + - "": [T: "superset über superset"] # 0xe970 (en: 'superset over superset', google translation) + - "": [T: "untergruppe über teilmenge"] # 0xe971 (en: 'subset over subset', google translation) + - "": [T: "superset über untergruppe"] # 0xe972 (en: 'superset over subset', google translation) + - "": [T: "untergruppe über superset"] # 0xe973 (en: 'subset over superset', google translation) + - "": [T: "dreifache vertikale bar"] # 0xe979 (en: 'triple vertical bar', google translation) + - "": [T: "gekoppelte vierfache vertikale punkte"] # 0xe97a (en: 'paired quadruple vertical dots', google translation) + - "": [T: "senkrecht über bar"] # 0xe97b (en: 'perpendicular over bar', google translation) + - "": [T: "linke drehkreuze doppelte vertikale balken"] # 0xe97c (en: 'left turnstile double vertical bar', google translation) + - "": [T: "doppelte linke drehklemme doppelte vertikale balken"] # 0xe97d (en: 'double left turnstile double vertical bar', google translation) + - "": [T: "senkrecht über invertierte senkrechte"] # 0xe97e (en: 'perpendicular over inverted perpendicular', google translation) + - "": [T: "vertikale balken mit doppelter linke"] # 0xe97f (en: 'double left turnstile vertical bar', google translation) + - "": [T: "kugelwinkel öffnen sich"] # 0xe980 (en: 'spherical angle opening up', google translation) + - "": [T: "doppelter schrägstrich"] # 0xe981 (en: 'double slash', google translation) + - "": [T: "rechtwinkel mit ecke"] # 0xe982 (en: 'right angle with corner', google translation) + - "": [T: "vertikaler balken"] # 0xe984 (en: 'circled vertical bar', google translation) + - "": [T: "umkreiste divisionszeichen"] # 0xe985 (en: 'circled division sign', google translation) + - "": [T: "gestrichelten solidus"] # 0xe986 (en: 'dashed solidus', google translation) + - "": [T: "gestürztes backslash"] # 0xe987 (en: 'dashed backslash', google translation) + - "": [T: "mitten in der mitte"] # 0xe988 (en: 'dashed mid line', google translation) + - "": [T: "gestrichelte vertikale balken"] # 0xe989 (en: 'dashed vertical bar', google translation) + - "": [T: "senkrecht mit s"] # 0xe98a (en: 'perpendicular with s', google translation) + - "": [T: "winkel mit s"] # 0xe98b (en: 'angle with s', google translation) + - "": [T: "kugelwinkelöffnung nach links"] # 0xe98c (en: 'spherical angle opening left', google translation) + - "": [T: "winkelöffnung links"] # 0xe98d (en: 'angle opening left', google translation) + - "": [T: "vertikale balken mit doppelhaken"] # 0xe98e (en: 'vertical bar with double hook', google translation) + - "": [T: "mittlerer punktbetreiber freie radikal"] # 0xe98f (en: 'medium dot operator free radical', google translation) + - "": [T: "weiß nach oben zeigte dreieck über die bar"] # 0xe990 (en: 'white up pointing triangle above bar', google translation) + - "": [T: "identisch und parallel zu"] # 0xe991 (en: 'identical and parallel to', google translation) + - "": [T: "produkt zerschlagen"] # 0xe992 (en: 'smash product', google translation) + - "": [T: "triple bar operator mit horizontaler balken"] # 0xe993 (en: 'triple bar operator with horizontal bar', google translation) + - "": [T: "identisch mit doppelter schrägstrich"] # 0xe994 (en: 'identical to with double slash', google translation) + - "": [T: "dreifach gekreuzte riegel"] # 0xe995 (en: 'triple crossed bars', google translation) + - "": [T: "vertikaler balken über den kreis"] # 0xe996 (en: 'vertical bar over circle', google translation) + - "": [T: "vertikal proportional zu"] # 0xe997 (en: 'vertical proportional to', google translation) + - "": [T: "schwarz im letzten quartal mond"] # 0xe998 (en: 'black last quarter moon', google translation) + - "": [T: "schwarzer mond im ersten quartal"] # 0xe999 (en: 'black first quarter moon', google translation) + - "": [T: "negative sinuswelle"] # 0xe9a0 (en: 'negative sine wave', google translation) + - "": [T: "klammern"] # 0xe9a1 (en: 'parenthesized dot', google translation) + - "": [T: "klammern"] # 0xe9a2 (en: 'parens', google translation) + - "": [T: "weißes lächeln"] # 0xe9a3 (en: 'white smile', google translation) + - "": [T: "weißes stirnrunzeln"] # 0xe9a4 (en: 'white frown', google translation) + - "": [T: "hexagon"] # 0xe9a5 (google translation) + - "": [T: "entspricht über plus"] # 0xe9a6 (en: 'equivalent to over plus', google translation) + - "": [T: "plus über gleichwertig zu"] # 0xe9a7 (en: 'plus over equivalent to', google translation) + - "": [T: "kreuzungserife"] # 0xe9b0 (en: 'intersection serifs', google translation) + - "": [T: "union serife"] # 0xe9b1 (en: 'union serifs', google translation) + - "": [T: "square intersection serifen"] # 0xe9b2 (en: 'square intersection serifs', google translation) + - "": [T: "square union serifen"] # 0xe9b3 (en: 'square union serifs', google translation) + - "": [T: "vor voraussichtlich dem gleichwertigen oder erfolgreich"] # 0xe9e0 (en: 'precedes equivalent to or succeeds', google translation) + - "": [T: "erfolgreich ist äquivalent zu oder geht voraus"] # 0xe9e1 (en: 'succeeds equivalent to or precedes', google translation) + - "": [T: "vor voraussichtlich fast gleich oder erfolgreich"] # 0xe9e2 (en: 'precedes almost equal to or succeeds', google translation) + - "": [T: "ist fast gleich oder voraus"] # 0xe9e3 (en: 'succeeds almost equal to or precedes', google translation) + - "": [T: "weniger als äquivalent zu oder größer als"] # 0xe9f0 (en: 'less than equivalent to or greater than', google translation) + - "": [T: "größer als äquivalent zu oder weniger als"] # 0xe9f1 (en: 'greater than equivalent to or less than', google translation) + - "": [T: "nicht viel weniger als"] # 0xea00 (en: 'not vert much less than', google translation) + - "": [T: "nicht viel größer als"] # 0xea01 (en: 'not vert much greater than', google translation) + - "": [T: "nicht viel weniger als variante"] # 0xea02 (en: 'not much less than variant', google translation) + - "": [T: "nicht viel größer als variante"] # 0xea03 (en: 'not much greater than variant', google translation) + - "": [T: "weniger vert doppelt nicht gleich"] # 0xea04 (en: 'less vert not double equals', google translation) + - "": [T: "gt vert doppelt nicht gleich"] # 0xea05 (en: 'gt vert not double equals', google translation) + - "": [T: "nicht weniger als oder gleich"] # 0xea06 (en: 'not less than or equal to', google translation) + - "": [T: "nicht größer als oder gleich"] # 0xea07 (en: 'not greater than or equal to', google translation) + - "": [T: "weder gleich noch weniger als"] # 0xea09 (en: 'neither equal to nor less than', google translation) + - "": [T: "enthält nicht oder gleich"] # 0xea0a (en: 'does not contain or equal to', google translation) + - "": [T: "weder superset von noch gleich"] # 0xea0b (en: 'neither superset of nor equal to', google translation) + - "": [T: "weder teilmenge von noch gleich"] # 0xea0c (en: 'neither subset of nor equal to', google translation) + - "": [T: "umgekehrte solidus -untergruppe"] # 0xea0d (en: 'reverse solidus subset', google translation) + - "": [T: "weder gleich noch größer als"] # 0xea0e (en: 'neither equal to nor greater than', google translation) + - "": [T: "nicht minus tilde -operator"] # 0xea0f (en: 'not minus tilde operator', google translation) + - "": [T: "weder gleich noch weniger als"] # 0xea10 (en: 'neither equal to nor less than', google translation) + - "": [T: "nicht tilde -operator"] # 0xea11 (en: 'not tilde operator', google translation) + - "": [T: "kein element von oder gleich"] # 0xea12 (en: 'not element of or equal to', google translation) + - "": [T: "weder gleich noch größer als"] # 0xea13 (en: 'neither equal to nor greater than', google translation) + - "": [T: "nicht fast gleich"] # 0xea14 (en: 'not almost equal', google translation) + - "": [T: "es ist nicht ähnlich erfolgreich"] # 0xea15 (en: 'not succeeds similar', google translation) + - "": [T: "weniger oder schräg gleich mit dem schrägstrich"] # 0xea16 (en: 'less than or slanted equal to with slash', google translation) + - "": [T: "größer als oder schräg gleich mit dem schrägstrich"] # 0xea17 (en: 'greater than or slanted equal to with slash', google translation) + - "": [T: "superset solidus"] # 0xea1a (google translation) + - "": [T: "beinhaltet nicht"] # 0xea1b (en: 'does not contain', google translation) + - "": [T: "nicht weniger als oder gleich"] # 0xea1d (en: 'not less than or equal to', google translation) + - "": [T: "nicht größer als oder gleich"] # 0xea1e (en: 'not greater than or equal to', google translation) + - "": [T: "nicht fast gleich minus"] # 0xea1f (en: 'not almost equal to minus', google translation) + - "": [T: "negated set -mitgliedschaftsdot oben"] # 0xea22 (en: 'negated set membership dot above', google translation) + - "": [T: "kein vertgle"] # 0xea2c (en: 'not vert angle', google translation) + - "": [T: "nicht parallel schräg"] # 0xea2d (en: 'not parallel slanted', google translation) + - "": [T: "kein barbetreiber"] # 0xea2e (en: 'not bar operator', google translation) + - "": [T: "nicht doppelbalkenbetreiber"] # 0xea2f (en: 'not double bar operator', google translation) + - "": [T: "nicht dreifacher barbetreiber"] # 0xea30 (en: 'not triple bar operator', google translation) + - "": [T: "weniger als aber nicht ungefähr gleich"] # 0xea32 (en: 'less than but not approximately equal to', google translation) + - "": [T: "größer als aber nicht ungefähr gleich"] # 0xea33 (en: 'greater than but not approximately equal to', google translation) + - "": [T: "weniger als oder nicht gleich"] # 0xea34 (en: 'less than or not equal to', google translation) + - "": [T: "größer als oder nicht gleich"] # 0xea35 (en: 'greater than or not equal to', google translation) + - "": [T: "nicht weniger verschachtelt als"] # 0xea36 (en: 'not nested less than', google translation) + - "": [T: "nicht mehr verschachtelt als"] # 0xea37 (en: 'not nested greater than', google translation) + - "": [T: "nicht viel weniger als"] # 0xea38 (en: 'not much less than', google translation) + - "": [T: "nicht viel größer als"] # 0xea39 (en: 'not much greater than', google translation) + - "": [T: "vor voraussichtlich, aber nicht gleichbedeutend mit"] # 0xea3a (en: 'precedes but not equivalent to', google translation) + - "": [T: "erfolg, aber nicht gleichwertig zu"] # 0xea3b (en: 'succeeds but not equivalent to', google translation) + - "": [T: "voraus, aber nicht gleich"] # 0xea3c (en: 'precedes but not equal to', google translation) + - "": [T: "erfolg, aber nicht gleich"] # 0xea3d (en: 'succeeds but not equal to', google translation) + - "": [T: "gleich oder vorausgegangen"] # 0xea3e (en: 'does not equal or precede', google translation) + - "": [T: "ist nicht gleich oder erfolgreich"] # 0xea3f (en: 'does not equal or succeed', google translation) + - "": [T: "voraus, aber nicht gleich"] # 0xea40 (en: 'precedes but not equal to', google translation) + - "": [T: "erfolg, aber nicht gleich"] # 0xea41 (en: 'succeeds but not equal to', google translation) + - "": [T: "keine untergruppe von oder gleich"] # 0xea42 (en: 'not subset of nor equal to', google translation) + - "": [T: "nicht superset von oder gleich"] # 0xea43 (en: 'not superset of nor equal to', google translation) + - "": [T: "teilmenge von oder nicht gleich"] # 0xea44 (en: 'subset of or not equal to', google translation) + - "": [T: "superset von oder nicht gleich"] # 0xea45 (en: 'superset of or not equal to', google translation) + - "": [T: "keine untergruppe von oder gleich"] # 0xea46 (en: 'not subset of nor equal to', google translation) + - "": [T: "nicht superset von oder gleich"] # 0xea47 (en: 'not superset of nor equal to', google translation) + - "": [T: "nicht dreifach weniger als"] # 0xea48 (en: 'not triple less than', google translation) + - "": [T: "nicht dreifach größer als"] # 0xea49 (en: 'not triple greater than', google translation) + - "": [T: "nicht vorausgeht"] # 0xea4c (en: 'not precedes equals', google translation) + - "": [T: "nicht erfolgreich ist gleich"] # 0xea4d (en: 'not succeeds equals', google translation) + - "": [T: "nicht normale untergruppe mit bar"] # 0xea50 (en: 'not normal subgroup of with bar', google translation) + - "": [T: "enthält nicht als normale untergruppe mit balken"] # 0xea51 (en: 'does not contain as normal subgroup with bar', google translation) + - "": [T: "kein unterschied zwischen"] # 0xea52 (en: 'not difference between', google translation) + - "": [T: "nicht geometrisch äquivalent zu"] # 0xea53 (en: 'not geometrically equivalent to', google translation) + - "": [T: "nicht vert ähnlich"] # 0xea54 (en: 'not vert similar', google translation) + - "": [T: "nicht gleich oder ähnlich"] # 0xea55 (en: 'not equal or similar', google translation) + - "": [T: "nicht verthergestellt"] # 0xea56 (en: 'not vert approximate', google translation) + - "": [T: "nicht ungefähr identisch mit"] # 0xea57 (en: 'not approximately identical to', google translation) + - "": [T: "nicht holprig gleich"] # 0xea58 (en: 'not bumpy equals', google translation) + - "": [T: "keine holprige single gleich"] # 0xea59 (en: 'not bumpy single equals', google translation) + - "": [T: "nicht gleicher punkt"] # 0xea5a (en: 'not equal dot', google translation) + - "": [T: "umgekehrt nicht äquivalent"] # 0xea5b (en: 'reverse not equivalent', google translation) + - "": [T: "nicht quadratische untergruppe"] # 0xea60 (en: 'not square subset', google translation) + - "": [T: "nicht quadratischer superset"] # 0xea61 (en: 'not square superset', google translation) + - "": [T: "nicht fast gleich über gleich"] # 0xea62 (en: 'not almost equal over equal', google translation) + - "": [T: "nicht streng gleich gleich zu"] # 0xea63 (en: 'not strictly equivalent to', google translation) + - "": [T: "nicht kongruenter punkt"] # 0xea64 (en: 'not congruent dot', google translation) + - "": [T: "rückwärts nicht gleich"] # 0xea65 (en: 'reverse not equal', google translation) + - "": [T: "nicht vert -dreieck ist gleich"] # 0xea70 (en: 'not vert left triangle equals', google translation) + - "": [T: "nicht vert rechtes dreieck ist gleich"] # 0xea71 (en: 'not vert right triangle equals', google translation) + - "": [T: "nicht teilweise"] # 0xea80 (en: 'not partial', google translation) + - "": [T: "pfeilverschmutzung extender"] # 0xeb00 (en: 'arrow embellishment extender', google translation) + - "": [T: "pfeil nach rechts über pfeil nach links"] # 0xeb01 (en: 'arrow rightwards over arrow leftwards', google translation) + - "": [T: "pfeil nach rechts über pfeil nach links"] # 0xeb02 (en: 'arrow rightwards over arrow leftwards', google translation) + - "": [T: "harpoon direkt über harpoon links"] # 0xeb03 (en: 'harpoon right over harpoon left', google translation) + - "": [T: "harpoon direkt über harpoon links"] # 0xeb04 (en: 'harpoon right over harpoon left', google translation) + - "": [T: "doppelpfeil nordöstlich südwest"] # 0xeb05 (en: 'double arrow northeast southwest', google translation) + - "": [T: "doppelpfeil nordwestlich südöstlich"] # 0xeb06 (en: 'double arrow northwest southeast', google translation) + - "": [T: "horizontaler harpoon -extender"] # 0xeb07 (en: 'horizontal harpoon extender', google translation) + - "": [T: "arc links -pfeil gegen den uhrzeigersinn"] # 0xeb08 (en: 'anticlockwise arc leftwards arrow', google translation) + - "": [T: "gegen den gegensatz zum arc rightwards pfeil"] # 0xeb09 (en: 'anticlockwise arc rightwards arrow', google translation) + - "": [T: "großer rechts pfeilakzent"] # 0xeb0b (en: 'large rightwards arrow accent', google translation) + - "": [T: "großer links pfeilakzent"] # 0xeb0c (en: 'large leftwards arrow accent', google translation) + - "": [T: "links pfeilspitze"] # 0xeb0d (en: 'leftwards arrowhead', google translation) + - "": [T: "rightwards pfeilspitze"] # 0xeb0e (en: 'rightwards arrowhead', google translation) + - "": [T: "großer links rechts pfeil mit schlaganfall"] # 0xeb0f (en: 'large left right arrow with stroke', google translation) + - "": [T: "horizontaler doppelpfeil -extender"] # 0xeb10 (en: 'horizontal double arrow extender', google translation) + - "": [T: "großer links rechts doppelpfeil mit schlaganfall"] # 0xeb11 (en: 'large left right double arrow with stroke', google translation) + - "": [T: "abwärts links nach oben auf pfeil"] # 0xeb12 (en: 'downwards arrow leftwards of upwards arrow', google translation) + - "": [T: "linkspfeil mit ecke nach unten"] # 0xeb13 (en: 'leftwards arrow with corner downwards', google translation) + - "": [T: "rightwards pfeil mit ecke nach oben"] # 0xeb14 (en: 'rightwards arrow with corner upwards', google translation) + - "": [T: "links pfeil mit ecke nach oben"] # 0xeb15 (en: 'leftwards arrow with corner upwards', google translation) + - "": [T: "gegen den top -semikkreis -pfeil gegen plus gegenüber dem gegen den gegenwart"] # 0xeb16 (en: 'anticlockwise top semicircle arrow with plus', google translation) + - "": [T: "im uhrzeigersinn oberen halbkreispfeil mit minus"] # 0xeb17 (en: 'clockwise top semicircle arrow with minus', google translation) + - "": [T: "richtiger pfeil mit schwanz mit schlaganfall"] # 0xeb18 (en: 'rightwards arrow with tail with stroke', google translation) + - "": [T: "richtige harpune unten"] # 0xeb19 (en: 'right harpoon down', google translation) + - "": [T: "ließ harpoon nieder"] # 0xeb1a (en: 'left harpoon down', google translation) + - "": [T: "linke rechte harpoon nach unten"] # 0xeb1b (en: 'left right harpoon down', google translation) + - "": [T: "linke rechte harpune hoch"] # 0xeb1c (en: 'left right harpoon up', google translation) + - "": [T: "die harpune runter links"] # 0xeb1d (en: 'up down harpoon left', google translation) + - "": [T: "runter harpoon rechts"] # 0xeb1e (en: 'up down harpoon right', google translation) + - "": [T: "auf den pfeil nach unten nach unten am pfeil"] # 0xeb1f (en: 'upwards arrow to the right of downwards arrow', google translation) + - "": [T: "links harpoon zur bar mit barb nach oben"] # 0xeb20 (en: 'leftwards harpoon to bar with barb upwards', google translation) + - "": [T: "rightwards harpoon zur bar mit barb nach oben"] # 0xeb21 (en: 'rightwards harpoon to bar with barb upwards', google translation) + - "": [T: "links harpoon zur bar mit barb nach unten"] # 0xeb22 (en: 'leftwards harpoon to bar with barb downwards', google translation) + - "": [T: "rightwards harpoon zur bar mit barb nach unten"] # 0xeb23 (en: 'rightwards harpoon to bar with barb downwards', google translation) + - "": [T: "links harpune aus der bar mit barb nach oben"] # 0xeb24 (en: 'leftwards harpoon from bar with barb upwards', google translation) + - "": [T: "richtige harpoon aus der bar mit barb nach oben"] # 0xeb25 (en: 'rightwards harpoon from bar with barb upwards', google translation) + - "": [T: "links harpoon aus der bar mit barb nach unten"] # 0xeb26 (en: 'leftwards harpoon from bar with barb downwards', google translation) + - "": [T: "rightwards harpoon aus der bar mit barb nach unten"] # 0xeb27 (en: 'rightwards harpoon from bar with barb downwards', google translation) + - "": [T: "harpune nach oben mit barb nach links"] # 0xeb28 (en: 'upwards harpoon to bar with barb leftwards', google translation) + - "": [T: "harpoon nach unten mit barb nach links"] # 0xeb29 (en: 'downwards harpoon to bar with barb leftwards', google translation) + - "": [T: "nach oben harpunieren zur bar mit barb rightwards"] # 0xeb2a (en: 'upwards harpoon to bar with barb rightwards', google translation) + - "": [T: "harpoon nach unten mit barb rightwards nach unten"] # 0xeb2b (en: 'downwards harpoon to bar with barb rightwards', google translation) + - "": [T: "harpoon von bar mit barb nach links nach oben"] # 0xeb2c (en: 'upwards harpoon from bar with barb leftwards', google translation) + - "": [T: "harpoon nach unten mit barb links nach unten"] # 0xeb2d (en: 'downwards harpoon from bar with barb leftwards', google translation) + - "": [T: "harpoon von bar mit barb rechts nach oben"] # 0xeb2e (en: 'upwards harpoon from bar with barb rightwards', google translation) + - "": [T: "harpoon nach unten aus barb mit barb rightwards"] # 0xeb2f (en: 'downwards harpoon from bar with barb rightwards', google translation) + - "": [T: "aufwärter pfeil in die bar"] # 0xeb30 (en: 'upwards arrow to bar', google translation) + - "": [T: "nach unten pfeil in die bar"] # 0xeb31 (en: 'downwards arrow to bar', google translation) + - "": [T: "harpune nach oben links von der abwärtsharpune"] # 0xeb32 (en: 'upwards harpoon to the left of downwards harpoon', google translation) + - "": [T: "harpunen nach oben rechts von der abwärtsharpune"] # 0xeb33 (en: 'upwards harpoon to the right of downwards harpoon', google translation) + - "": [T: "nach oben pfeilspitze"] # 0xeb34 (en: 'upwards arrowhead', google translation) + - "": [T: "nach unten pfeilspitze"] # 0xeb35 (en: 'downwards arrowhead', google translation) + - "": [T: "doppelte harpoon mit links nach unten nach rechts barb hoch"] # 0xeb36 (en: 'double harpoon with leftwards barb down rightwards barb up', google translation) + - "": [T: "doppelte harpoon mit links nach oben nach oben nach oben nach unten"] # 0xeb37 (en: 'double harpoon with leftwards barb up rightwards barb down', google translation) + - "": [T: "pfeil über die bar links"] # 0xeb38 (en: 'leftwards arrow over bar', google translation) + - "": [T: "richtiger pfeil über die bar"] # 0xeb39 (en: 'rightwards arrow over bar', google translation) + - "": [T: "links pfeil unter der bar"] # 0xeb3a (en: 'leftwards arrow under bar', google translation) + - "": [T: "richtiger pfeil unter der bar"] # 0xeb3b (en: 'rightwards arrow under bar', google translation) + - "": [T: "links rechts triple pfeil"] # 0xeb3c (en: 'left right triple arrow', google translation) + - "": [T: "doppelpfeil nordöstlich südost"] # 0xeb3f (en: 'double arrow northeast southeast', google translation) + - "": [T: "gegen den linken halbkreispfeil gegen den uhrzeigersinn"] # 0xeb40 (en: 'anticlockwise left semicircle arrow', google translation) + - "": [T: "linker semicircle -pfeil im uhrzeigersinn"] # 0xeb41 (en: 'clockwise left semicircle arrow', google translation) + - "": [T: "links geöffneter kreis links rechts pfeil"] # 0xeb42 (en: 'left open circle left right arrow', google translation) + - "": [T: "richtiger pfeil über tilde"] # 0xeb44 (en: 'rightwards arrow over tilde', google translation) + - "": [T: "links pfeil über tilde"] # 0xeb45 (en: 'leftwards arrow over tilde', google translation) + - "": [T: "links harpoon über der bar"] # 0xeb48 (en: 'leftwards harpoon over bar', google translation) + - "": [T: "richtige harpoon über bar"] # 0xeb49 (en: 'rightwards harpoon over bar', google translation) + - "": [T: "links harpun unter bar"] # 0xeb4a (en: 'leftwards harpoon under bar', google translation) + - "": [T: "rightwards harpoon unter bar"] # 0xeb4b (en: 'rightwards harpoon under bar', google translation) + - "": [T: "hocke schwarze pfeil nach links"] # 0xeb4c (en: 'squat black leftwards arrow', google translation) + - "": [T: "im uhrzeigersinn rechte halbkreispfeil"] # 0xeb50 (en: 'clockwise right semicircle arrow', google translation) + - "": [T: "gegen den rechten halbkreisspfeil gegen den uhrzeigersinn"] # 0xeb51 (en: 'anticlockwise right semicircle arrow', google translation) + - "": [T: "links offener kreis links rechts harpune"] # 0xeb52 (en: 'left open circle left right harpoon', google translation) + - "": [T: "aufwärtsspurte pfeil links von vertikaler balken"] # 0xeb58 (en: 'upwards arrow leftwards of vertical bar', google translation) + - "": [T: "abwärts links von vertikaler balken nach unten"] # 0xeb59 (en: 'downwards arrow leftwards of vertical bar', google translation) + - "": [T: "aufwärts nach rechts von vertikaler balken"] # 0xeb5a (en: 'upwards arrow rightwards of vertical bar', google translation) + - "": [T: "nach unten pfeil nach rechts von vertikaler balken"] # 0xeb5b (en: 'downwards arrow rightwards of vertical bar', google translation) + - "": [T: "rightwards pfeil mit erweitertem abwärtshaken"] # 0xeb5c (en: 'rightwards arrow with extended downwards hook', google translation) + - "": [T: "pfeil mit linksem pfeil mit verlängertem haken"] # 0xeb5d (en: 'leftwards arrow with extended hook', google translation) + - "": [T: "der pfeil nach links mit einem ausgedehnten abwärtshaken"] # 0xeb5e (en: 'leftwards arrow with extended downwards hook', google translation) + - "": [T: "richtiger pfeil mit verlängertem haken"] # 0xeb5f (en: 'rightwards arrow with extended hook', google translation) + - "": [T: "nicht richtig pfeil wellig"] # 0xeb60 (en: 'not right arrow wavy', google translation) + - "": [T: "nicht richtig pfeil gebogen"] # 0xeb61 (en: 'not right arrow curved', google translation) + - "": [T: "nach oben harpunieren links von vertikaler bar"] # 0xeb68 (en: 'upwards harpoon leftwards of vertical bar', google translation) + - "": [T: "abwärtsharpune links von vertikaler bar"] # 0xeb69 (en: 'downwards harpoon leftwards of vertical bar', google translation) + - "": [T: "nach oben harpoon rechts von vertikaler bar"] # 0xeb6a (en: 'upwards harpoon rightwards of vertical bar', google translation) + - "": [T: "abwärts harpoon rechts von vertikaler bar"] # 0xeb6b (en: 'downwards harpoon rightwards of vertical bar', google translation) + - "": [T: "vertikaler doppelpfeil -extender"] # 0xeb6c (en: 'vertical double arrow extender', google translation) + - "": [T: "vertikale harpune mit barb links extender"] # 0xeb6d (en: 'vertical harpoon with barb left extender', google translation) + - "": [T: "vertikale harpune mit barb right extender"] # 0xeb6e (en: 'vertical harpoon with barb right extender', google translation) + - "": [T: "rechte harpoon über die linke harpoon rechts"] # 0xeb6f (en: 'right harpoon over left harpoon right', google translation) + - "": [T: "rechte harpoon über linker harpoon links"] # 0xeb70 (en: 'right harpoon over left harpoon left', google translation) + - "": [T: "linke harpoon über die rechte harpoon rechts"] # 0xeb71 (en: 'left harpoon over right harpoon right', google translation) + - "": [T: "linke harpoon über die rechte harpoon links"] # 0xeb72 (en: 'left harpoon over right harpoon left', google translation) + - "": [T: "pfeil von links von der bar pfeilspitze"] # 0xeb73 (en: 'leftwards arrow from bar arrowhead', google translation) + - "": [T: "links nach rechts pfeil von bar extender"] # 0xeb74 (en: 'leftwards rightwards arrow from bar extender', google translation) + - "": [T: "links pfeil vom stangenschwanz"] # 0xeb75 (en: 'leftwards arrow from bar tail', google translation) + - "": [T: "richtiger pfeil vom stangenschwanz"] # 0xeb76 (en: 'rightwards arrow from bar tail', google translation) + - "": [T: "rightwards pfeil von der bar pfeilspitze"] # 0xeb77 (en: 'rightwards arrow from bar arrowhead', google translation) + - "": [T: "harpune nach oben aus der bar mit barb links pfeilspitze"] # 0xeb78 (en: 'upwards harpoon from bar with barb leftwards arrowhead', google translation) + - "": [T: "rechten pfeil über den linken pfeil nach rechts"] # 0xeb79 (en: 'rightwards arrow over leftwards arrow right', google translation) + - "": [T: "rechten pfeil über den linken pfeil nach links"] # 0xeb7a (en: 'rightwards arrow over leftwards arrow left', google translation) + - "": [T: "der pfeil nach links nach rechts nach rechts"] # 0xeb7b (en: 'leftwards arrow over rightwards arrow right', google translation) + - "": [T: "der pfeil nach links über den pfeil nach rechts links"] # 0xeb7c (en: 'leftwards arrow over rightwards arrow left', google translation) + - "": [T: "aufwärter pfeil von der bar pfeilspitze"] # 0xeb7d (en: 'upwards arrow from bar arrowhead', google translation) + - "": [T: "aufwärter pfeil vom stangenschwanz"] # 0xeb7e (en: 'upwards arrow from bar tail', google translation) + - "": [T: "nach unten pfeil vom stangenschwanz"] # 0xeb7f (en: 'downwards arrow from bar tail', google translation) + - "": [T: "nach unten pfeil von pfeilspitzen nach unten"] # 0xeb80 (en: 'downwards arrow from bar arrowhead', google translation) + - "": [T: "harpoon nach unten aus der bar mit barb rightwards arrowhead"] # 0xeb81 (en: 'downwards harpoon from bar with barb rightwards arrowhead', google translation) + - "": [T: "harpunen nach oben links von harpunenboden nach unten"] # 0xeb82 (en: 'upwards harpoon to the left of downwards harpoon bottom', google translation) + - "": [T: "harpunen nach oben links von der abwärtsharpoon extender"] # 0xeb83 (en: 'upwards harpoon to the left of downwards harpoon extender', google translation) + - "": [T: "harpoon nach unten links von der harpunenoberseite nach oben"] # 0xeb84 (en: 'downwards harpoon to the left of upwards harpoon top', google translation) + - "": [T: "harpunen nach oben links von der abwärtsharpoon -oberseite"] # 0xeb85 (en: 'upwards harpoon to the left of downwards harpoon top', google translation) + - "": [T: "harpunen nach unten links von der nach oben nach oben genannten harpoon -extender"] # 0xeb86 (en: 'downwards harpoon to the left of the upwards harpoon extender', google translation) + - "": [T: "harpunen nach unten links von der nach oben nach oben genannten harpunenboden"] # 0xeb87 (en: 'downwards harpoon to the left of the upwards harpoon bottom', google translation) + - "": [T: "aufwärts nach links nach unten pfeilboden"] # 0xeb88 (en: 'upwards arrow leftwards of downwards arrow bottom', google translation) + - "": [T: "nach unten pfeil nach oben von pfeiltop nach oben"] # 0xeb89 (en: 'downwards arrow leftwards of upwards arrow top', google translation) + - "": [T: "aufwärts links nach unten pfeiltop"] # 0xeb8a (en: 'upwards arrow leftwards of downwards arrow top', google translation) + - "": [T: "abwärts nach links nach oben am pfeil nach oben"] # 0xeb8b (en: 'downwards arrow leftwards of upwards arrow bottom', google translation) + - "": [T: "links nach rechts pfeile extender"] # 0xeb8c (en: 'leftwards rightwards arrows extender', google translation) + - "": [T: "north east arrow extender"] # 0xeb8d (google translation) + - "": [T: "north west arrow extender"] # 0xeb8e (google translation) + - "": [T: "daunen zeigen, links"] # 0xec00 (en: 'down pointing brace left', google translation) + - "": [T: "daunen zeigen mitte"] # 0xec01 (en: 'down pointing brace mid', google translation) + - "": [T: "runter zeigen klammer richtig"] # 0xec02 (en: 'down pointing brace right', google translation) + - "": [T: "horizontaler klammer -extender"] # 0xec03 (en: 'horizontal brace extender', google translation) + - "": [T: "nach dem zeigen links"] # 0xec04 (en: 'up pointing brace left', google translation) + - "": [T: "mitte zeigende klammer"] # 0xec05 (en: 'up pointing brace mid', google translation) + - "": [T: "ups-taste-klammer rechts"] # 0xec06 (en: 'up-pointing brace right', google translation) + - "": [T: "links vertikale balken"] # 0xec07 (en: 'left vertical bar', google translation) + - "": [T: "rechte vertikale balken"] # 0xec08 (en: 'right vertical bar', google translation) + - "": [T: "links doppelte vertikale balken"] # 0xec09 (en: 'left double vertical bar', google translation) + - "": [T: "rechte doppelte vertikale balken"] # 0xec0a (en: 'right double vertical bar', google translation) + - "": [T: "horizontaler bracket extender"] # 0xec0b (en: 'horizontal bracket extender', google translation) + - "": [T: "unter quadratischer klammer"] # 0xec0c (en: 'under square bracket', google translation) + - "⎵": [T: "Untere eckige Klammer"] # 0x23b5 (en: 'under square bracket', MathPlayer: 'under square bracket', google: 'unter quadratischer klammer') + - "": [T: "über quadratischer klammer"] # 0xec0d (en: 'over square bracket', google translation) + - "⎴": [T: "Obere eckige Klammer"] # 0x23b4 (en: 'over square bracket', MathPlayer: 'over square bracket', google: 'über quadratischer klammer') + - "": [T: "unter der klammer links"] # 0xec0e (en: 'under bracket left', google translation) + - "": [T: "unter der klammer rechts"] # 0xec0f (en: 'under bracket right', google translation) + - "": [T: "über die klammer ging"] # 0xec10 (en: 'over bracket left', google translation) + - "": [T: "über die klammer richtig"] # 0xec11 (en: 'over bracket right', google translation) + - "": [T: "links klammern 1"] # 0xec12 (en: 'left parens 1', google translation) + - "": [T: "links klammern 2"] # 0xec13 (en: 'left parens 2', google translation) + - "": [T: "links klammern 3"] # 0xec14 (en: 'left parens 3', google translation) + - "": [T: "links klammern 4"] # 0xec15 (en: 'left parens 4', google translation) + - "": [T: "rechte klammer 1"] # 0xec16 (en: 'right parens 1', google translation) + - "": [T: "rechte klammer 2"] # 0xec17 (en: 'right parens 2', google translation) + - "": [T: "rechte klammer 3"] # 0xec18 (en: 'right parens 3', google translation) + - "": [T: "rechte klammer 4"] # 0xec19 (en: 'right parens 4', google translation) + - "": [T: "radikal 1"] # 0xec1a (en: 'radical 1', google translation) + - "": [T: "radikal 2"] # 0xec1b (en: 'radical 2', google translation) + - "": [T: "radikal 3"] # 0xec1c (en: 'radical 3', google translation) + - "": [T: "radikal 4"] # 0xec1d (en: 'radical 4', google translation) + - "": [T: "radikal 5"] # 0xec1e (en: 'radical 5', google translation) + - "": [T: "radikaler boden"] # 0xec1f (en: 'radical bottom', google translation) + - "": [T: "radikaler vertikaler erweiterung"] # 0xec20 (en: 'radical vertical extender', google translation) + - "": [T: "radikaler oberteil"] # 0xec21 (en: 'radical top', google translation) + - "": [T: "links weiße halterung"] # 0xec22 (en: 'left white bracket top', google translation) + - "": [T: "links weiße klammer extender"] # 0xec23 (en: 'left white bracket extender', google translation) + - "": [T: "links weiße halterung"] # 0xec24 (en: 'left white bracket bottom', google translation) + - "": [T: "rechte weiße halterung"] # 0xec25 (en: 'right white bracket top', google translation) + - "": [T: "rechte weiße klammer extender"] # 0xec26 (en: 'right white bracket extender', google translation) + - "": [T: "rechte weiße halterung unten"] # 0xec27 (en: 'right white bracket bottom', google translation) + - "": [T: "links weiße lockige klammer"] # 0xec30 (en: 'left white curly bracket', google translation) + - "": [T: "rechte weiße lockige klammer"] # 0xec31 (en: 'right white curly bracket', google translation) + - "": [T: "langes divisionszeichen"] # 0xec32 (en: 'long division sign', google translation) + - "": [T: "langes divisionszeichen extender"] # 0xec33 (en: 'long division sign extender', google translation) + - "": [T: "kurze division"] # 0xec34 (en: 'short division', google translation) + - "": [T: "doppelte südwest nach nordost -em bond"] # 0xec40 (en: 'double southwest to northeast em bond', google translation) + - "": [T: "doppelte nordwestlich nach südost -em bond"] # 0xec41 (en: 'double northwest to southeast em bond', google translation) + - "": [T: "einzelne horizontale em -bindung"] # 0xec42 (en: 'single horizontal em bond', google translation) + - "": [T: "doppelte horizontale em -bindung"] # 0xec43 (en: 'double horizontal em bond', google translation) + - "": [T: "dreifache horizontale em -bond"] # 0xec44 (en: 'triple horizontal em bond', google translation) + - "": [T: "single vertikale em -bindung"] # 0xec45 (en: 'single vertical em bond', google translation) + - "": [T: "doppelte vertikale em -bindung"] # 0xec46 (en: 'double vertical em bond', google translation) + - "": [T: "dreifache vertikale em -bond"] # 0xec47 (en: 'triple vertical em bond', google translation) + - "": [T: "weniger als em bond"] # 0xec48 (en: 'less than em bond', google translation) + - "": [T: "größer als die em -bindung"] # 0xec49 (en: 'greater than em bond', google translation) + - "": [T: "einzelne horizontale bond"] # 0xec4a (en: 'single horizontal en bond', google translation) + - "": [T: "doppelte horizontale bond"] # 0xec4b (en: 'double horizontal en bond', google translation) + - "": [T: "dreifache horizontaler bond"] # 0xec4c (en: 'triple horizontal en bond', google translation) + - "": [T: "oben links rechteck"] # 0xec80 (en: 'top left rectangle', google translation) + - "": [T: "unten links rechteck"] # 0xec81 (en: 'bottom left rectangle', google translation) + - "": [T: "oben rechts rechteck"] # 0xec90 (en: 'top right rectangle', google translation) + - "": [T: "unten rechts rechteck"] # 0xec91 (en: 'bottom right rectangle', google translation) + - "": [T: "synthetische division ecke"] # 0xec92 (en: 'synthetic division corner', google translation) + - "": [T: "horizontale erweiterung der synthetischen teilung"] # 0xec93 (en: 'synthetic division horizontal extender', google translation) + - "": [T: "vertikale extender der synthetischen spaltung"] # 0xec94 (en: 'synthetic division vertical extender', google translation) + - "": [T: "verlängerung des linken deckenbodens"] # 0xec95 (en: 'left ceiling floor extender', google translation) + - "": [T: "rechte deckenboden erweiterung"] # 0xec96 (en: 'right ceiling floor extender', google translation) + - "": [T: "über klammer extender"] # 0xec97 (en: 'over bracket extender', google translation) + - "": [T: "vertikaler balken -erweiterung"] # 0xec98 (en: 'vertical bar extender', google translation) + - "": [T: "links doppelter vertikaler balken -extender"] # 0xec99 (en: 'left double vertical bar extender', google translation) + - "": [T: "horizontaler balken -erweiterung"] # 0xec9a (en: 'horizontal bar extender', google translation) + - "": [T: "unter der klammer extender"] # 0xec9c (en: 'under bracket extender', google translation) + - "": [T: "runter zeigen klammern nach rechts"] # 0xec9d (en: 'down pointing paren right', google translation) + - "": [T: "down -zeigen von klammern extender"] # 0xec9e (en: 'down pointing paren extender', google translation) + - "": [T: "down -zeigen von klammern übrig"] # 0xec9f (en: 'down pointing paren left', google translation) + - "": [T: "überzüge klammer -extender"] # 0xeca0 (en: 'up pointing brace extender', google translation) + - "": [T: "übergreifende klammern übrig"] # 0xeca1 (en: 'up pointing paren left', google translation) + - "": [T: "übergezeigte klammern"] # 0xeca2 (en: 'up pointing paren extender', google translation) + - "": [T: "übereinstimmung mit klammern richtig"] # 0xeca3 (en: 'up pointing paren right', google translation) + - "": [T: "down spointing acker extender"] # 0xeca4 (en: 'down pointing brace extender', google translation) + - "": [T: "planck konstant über zwei pi -bar"] # 0xed00 (en: 'planck constant over two pi bar', google translation) + - "": [T: "spiegel g"] # 0xed01 (en: 'mirror g', google translation) + - "": [T: "dotless j"] # 0xed02 (google translation) + - "": [T: "digamma"] # 0xed03 (google translation) + - "ϝ": [T: "digamma"] # 0x3dd + - "": [T: ""] # 0xed10 (en: 'd', google translation) + - "": [T: ""] # 0xed11 (en: 'e', google translation) + - "": [T: ""] # 0xed12 (en: 'i', google translation) + - "": [T: ""] # 0xed13 (en: 'j', google translation) + - "ⅅ": + - spell: "translate('.', 'ⅅ', 'DD')" # 0xed16, 0x2145 + +# The private use chars are from MathType + - "": [T: "integralschleife gegen den gegensatz zu contour -kontur"] # 0xee00 (en: 'anticlockwise contour integral loop', google translation) + - "": [T: "contour integral loop im uhrzeigersinn"] # 0xee01 (en: 'clockwise contour integral loop', google translation) + - "": [T: ""] # 0xee04 + - "": [T: ""] # 0xee05 + - "": [T: ""] # 0xee06 + - "": [T: ""] # 0xee07 + - "": [T: ""] # 0xee08 + - "": [T: ""] # 0xee09 + - "": [T: ""] # 0xee0a + - "": [T: ""] # 0xee0b + - "": [T: ""] # 0xee0c + - "": [T: "gemeinsame statusverzerrung"] # 0xee0d (en: 'joint status embellishment', google translation) + - "": [T: "gemeinsame statusverzerrung übrig"] # 0xee0e (en: 'joint status embellishment left', google translation) + - "": [T: "gemeinsame statusverzerrung recht"] # 0xee0f (en: 'joint status embellishment right', google translation) + - "": [T: "gemeinsamer statusverzerrungserweiterung"] # 0xee10 (en: 'joint status embellishment extender', google translation) + - "": [T: "integralschleife"] # 0xee11 (en: 'integral loop', google translation) + - "": [T: "integral loop double"] # 0xee12 (google translation) + - "": [T: "integral loop triple"] # 0xee13 (google translation) + - "": [T: "erweiterung integraler schleife doppel"] # 0xee15 (en: 'expanding integral loop double', google translation) + - "": [T: "erweiterung integraler schleife triple"] # 0xee16 (en: 'expanding integral loop triple', google translation) + - "": [T: "asymptotisch gleich dem akzent"] # 0xee17 (en: 'asymptotically equal to accent', google translation) + - "": [T: "gleicher zeichenakzent"] # 0xee18 (en: 'equal sign accent', google translation) + - "": [T: "vierfache prime"] # 0xee19 (en: 'quadruple prime', google translation) + - "": [T: "balkenakzent mit offenem kreis links"] # 0xee1a (en: 'bar accent with open circle left', google translation) + - "": [T: "barakzent mit geschlossenem kreis links"] # 0xee1b (en: 'bar accent with closed circle left', google translation) + - "": [T: "barakzent mit offenem kreis rechts"] # 0xee1c (en: 'bar accent with open circle right', google translation) + - "": [T: "barakzent mit over dot"] # 0xee1d (en: 'bar accent with over dot', google translation) + - "": [T: "barakzent mit under dot"] # 0xee1e (en: 'bar accent with under dot', google translation) + - "": [T: "barakzent mit double over dot"] # 0xee1f (en: 'bar accent with double over dot', google translation) + - "": [T: "barakzent mit double under dot"] # 0xee20 (en: 'bar accent with double under dot', google translation) + - "": [T: "barakzent mit pflege"] # 0xee21 (en: 'bar accent with caret', google translation) + - "": [T: "dick unter dem stabakzent"] # 0xee22 (en: 'thick under bar accent', google translation) + - "": [T: "barakzent mit geschlossenem kreis rechts"] # 0xee23 (en: 'bar accent with closed circle right', google translation) + - "": [T: "großer punkt oben"] # 0xee24 (en: 'large dot above', google translation) + - "": [T: "ausrichtung mark"] # 0xef00 (en: 'alignment mark', google translation) + - "": [T: ""] # 0xef01 + - "​": [T: ""] # 0x200b + - "": [T: ""] # 0xef02 + - " ": [T: ""] # 0x2009 + - "": [T: ""] # 0xef03 + - " ": [T: ""] # 0x205f + - "": [T: ""] # 0xef04 + - "": [T: ""] # 0xef05 + - "": [T: ""] # 0xef06 + - "": [T: ""] # 0xef07 + - "": [T: ""] # 0xef08 + - "": [T: ""] # 0xef09 + - "": [T: ""] # 0xef0a + - " ": [T: ""] # 0x200a + - "": [T: ""] # 0xef22 + - "": [T: ""] # 0xef23 + - "": [T: ""] # 0xef24 + - "": [T: ""] # 0xef29 + - "": [T: "fehlender begriff"] # 0xef41 (en: 'missing term', google translation) + - "": [T: "contour -integralpfeil im uhrzeigersinn links"] # 0xef80 (en: 'clockwise contour integral arrow on left', google translation) + - "": [T: "integral mit quadratisch"] # 0xef81 (en: 'integral with square', google translation) + - "": [T: "integral mit schrägstrich"] # 0xef82 (en: 'integral with slash', google translation) + - "": [T: "umgekehrter integral"] # 0xef83 (en: 'reversed integral', google translation) + - "": [T: "doppelte Null über doppelter Null"] # 0xef90 (en: 'double zero over double zero', google translation) + - "": [T: "null mit schrägstrich"] # 0xef91 (en: 'zero with slash', google translation) + + # fraktur chars in math alphabetic block and also MathType private use area + # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display + - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) + - T: "fraktur" # (google translation) + - spell: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" + + - "-": # 0xf000 - 0xf018 + - T: "fraktur" # (google translation) + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" + + - "𝔞-𝔷": # 0x1d51e - 0x1d537 + - T: "fraktur" # (google translation) + - spell: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf01a - 0xf033 + - T: "fraktur" # (google translation) + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝕬-𝖅": # 0x1D56C - 0x1D585 + - T: "fraktur mutig" # (en: 'fraktur bold', google translation) + - spell: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf040 - 0xf059 + - T: "fraktur mutig" # (en: 'fraktur bold', google translation) + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝖆-𝖟": # 0x1d586 - 0x1d59f + - T: "fraktur mutig" # (en: 'fraktur bold', google translation) + - spell: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf05a - 0xf073 + - T: "fraktur mutig" # (en: 'fraktur bold', google translation) + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area + # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display + - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) + - test: + if: "$Verbosity!='Terse'" + then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) + - spell: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf080 - 0xf098 + - test: + if: "$Verbosity!='Terse'" + then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝕒-𝕫": # 0x1d552 - 0x1d56b + - test: + if: "$Verbosity!='Terse'" + then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) + - spell: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf09a - 0xf0b3 + - test: + if: "$Verbosity!='Terse'" + then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + - "𝟘-𝟡": # 0x1d7d8 - 0x1d7e1 + - test: + if: "$Verbosity!='Terse'" + then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) + - spell: "translate('.', '𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡', '0123456789')" + - "-": # 0xf0c0 - 0xf0c9 + - test: + if: "$Verbosity!='Terse'" + then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) + - spell: "translate('.', '', '0123456789')" + + - "": [T: "doppelt geschlagen nabla"] # 0xf0ca (en: 'double struck nabla', google translation) + - "": [T: "doppelt geschlagene euler konstant"] # 0xf0cb (en: 'double struck euler constant', google translation) + + # script chars in math alphabetic block and also MathType private use area + - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 + - T: "skript" # (en: 'script', google translation) + - spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf100 - 0xf119 + - T: "skript" # (en: 'script', google translation) + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf + - T: "skript" # (en: 'script', google translation) + - spell: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf11a - 0xf133 + - T: "skript" # (en: 'script', google translation) + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + # bold script chars in math alphabetic block and also MathType private use area + - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 + - T: "skript mutig" # (en: 'script bold', google translation) + - spell: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf140 - 0xf159 + - T: "skript mutig" # (en: 'script bold', google translation) + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝓪-𝔃": # 0x1d4ea - 0x1d503 + - T: "skript mutig" # (en: 'script bold', google translation) + - spell: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf15a - 0xf173 + - T: "skript mutig" # (en: 'script bold', google translation) + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf180 - 0xf199 + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "": # 0xf19a + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "großbuchstaben"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [T: "ligatur ae"] # (en: 'ligature ae', google translation) + - "": # 0xf19b + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "großbuchstaben"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [T: "scharfes s"] # (en: 'sharp s', google translation) + - "": # 0xf19c + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "großbuchstaben"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [T: "o mit schlaganfall"] # (en: 'o with stroke', google translation) + + # MathType only has a few of the cap Greek letters in PUA + - "": # 0xf201 - 0xf209 + - test: + if: "$Verbosity!='Terse'" + then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) + - spell: "translate('.', '', 'ΔΨΛΠΣΘΓΩΥ')" + + - "-": # 0xf220 - 0xf236 + - test: + if: "$Verbosity!='Terse'" + then: [T: "doppelt geschlagen"] # (en: 'double struck', google translation) + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "": [T: "doppelt geschlagenes final sigma"] # 0xf237 (en: 'double struck final sigma', google translation) + - "": [T: "doppelte rho geschlagen"] # 0xf250 (en: 'double struck rho', google translation) + - "": [T: "doppelt geschlagen phi"] # 0xf251 (en: 'double struck phi', google translation) + - "𝐀-𝐙": # 0x1d400 - 0x1d419 + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf260 - 0xf279 + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝐚-𝐳": # 0x1d41a - 0x1d433 + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf27a - 0xf293 + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝐴-𝑍": # 0x1d434 - 0x1d44d + - spell: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf294 - 0xf2ad + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝑎-𝑧": # 0x1d44e - 0x1d467 + - spell: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf2ae - 0xf2c7 + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝑨-𝒁": # 0x1d468 - 0x1d481 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf2c8 - 0xf2e1 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝒂-𝒛": # 0x1d482 - 0x1d49b + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf2e2 - 0xf2fb + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 + - spell: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf300 - 0xf319 + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 + - spell: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf31a - 0xf333 + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf334 - 0xf34d + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝗮-𝘇": # 0x1d5ee - 0x1d607 + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf34e - 0xf367 + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + - "𝘈-𝘡": # 0x1d608 - 0x1d621 + # - T: "italic" + - spell: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + - "-": # 0xf368 - 0xf381 + # - T: "italic" + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝘢-𝘻": # 0x1d622 - 0x1d63b + # - T: "italic" + - spell: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf382 - 0xf39b + # - T: "italic" + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝘼-𝙕": # 0x1d63c - 0x1d655 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf39c - 0xf3b5 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝙖-𝙯": # 0x1d656 - 0x1d66f + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf3b6 - 0xf3cf + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝙰-𝚉": # 0x1d670 - 0x1d689 + - spell: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf3d0 - 0xf3e9 + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 + - spell: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf3ea - 0xf403 + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "": [T: "punktloses i"] # 0xf404 (google translation) + - "𝚤": [T: "punktloses i kursiv"] # 0x1d6a4 (en: 'dotless i', google: 'dotless i') + - "𝚥": [T: "punktloses j kursiv"] # 0x1d6a5 (en: 'dotless j', google: 'dotless j') + + - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 + - T: "punktloses j kursiv" # (en: 'bold', google: 'deutlich') + - spell: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf408 - 0xf420 + - T: "punktloses j kursiv" # (en: 'bold', google: 'deutlich') + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da + - T: "punktloses j kursiv" # (en: 'bold', google: 'deutlich') + - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf422 - 0xf43a + - T: "punktloses j kursiv" # (en: 'bold', google: 'deutlich') + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "": [T: "mutiger nabla"] # 0xf421 (en: 'bold nabla', google translation) + - "𝛁": [T: "mutiger nabla"] # 0x1d6c1 (en: 'bold nabla', google translation) + + - "𝛛𝛜𝛝𝛞𝛟𝛠𝛡": # 0x1D6DB - 0x1D6E1 + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠𝛡', '∂εθκφρπ')" + + - "": # 0xF43C - 0xF441 + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', '∂εθκφρπ')" + + - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa + # - T: "italic" + - spell: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf442 - 0xf45a + # - T: "italic" + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝛼-𝜔": # 0x1d6fc - 0x1d714 + # - T: "italic" + - spell: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf45c - 0xf474 + # - T: "italic" + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "": [T: "kursiv nabla"] # 0xf45b (en: 'italic nabla', google translation) + - "𝛻": [T: "kursiv nabla"] # 0x1d6fb (en: 'italic nabla', google translation) + + - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b + # - T: "italic" + - spell: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" + + - "": # 0xf475 - 0xf47b + # - T: "italic" + - spell: "translate('.', '', '∂εθκφρπ')" + + - "𝜜-𝜴": # 0x1d71c - 0x1d734 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf47c - 0xf494 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝜶-𝝎": # 0x1d736 - 0x1d74e + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf496 - 0xf4ae + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝝏𝝐𝝑𝝒𝝓𝝔𝝕": # 0x1d74f - 0x1d755 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔𝝕', '∂εθκφρπ')" + + - "": # 0xf422 - 0xf43a + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', '∂εθκφρπ')" + + - "𝜵": [T: "mutiges kursives nabla"] # 0x1d735 (en: 'bold italic nabla', google translation) + - "": [T: "mutiges kursives nabla"] # 0xf495 (en: 'bold italic nabla', google translation) + + - "𝝖-𝝮": # 0x1d756 - 0x1d76e + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + - "-": # 0xf4b6 - 0xf4ce + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝝰-𝞈": # 0x1d770 - 0x1d788 + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf4d0 - 0xf4e8 + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝞉𝞊𝞋𝞌𝞍𝞎𝞏": # 0x1d789 - 0x1d78f + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎𝞏', '∂εθκφρπ')" + + - "": # 0xf4e9 - 0xf4ef + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', '∂εθκφρπ')" + + - "": [T: "mutiger nabla"] # 0xf4cf (en: 'bold nabla', google translation) + - "𝝯": [T: "mutiger nabla"] # 0x1d76f (en: 'bold nabla', google translation) + + - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf4f0 - 0xf508 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf50a - 0xf522 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝟃𝟄𝟅𝟆𝟇𝟈𝟉": # 0x1d7c3 - 0x1d7c9 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈𝟉', '∂εθκφρπ')" + + - "": # 0xf523 - 0xf529 + # - T: "bold italic" + - T: "deutlich" # (en: 'bold', google translation) + - spell: "translate('.', '', '∂εθκφρπ')" + + - "": [T: "mutiger nabla"] # 0xf509 (en: 'bold nabla', google translation) + - "𝞩": [T: "mutiger nabla"] # 0x1d7a9 (en: 'bold nabla', google translation) + + - "": [T: "fett null"] # 0xf52e (en: 'bold zero', google translation) + - "𝟎": [T: "fett null"] # 0x1d7ce (en: 'bold zero', google translation) + - "": [T: "fett eins"] # 0xf52f (en: 'bold one', google translation) + - "𝟏": [T: "fett eins"] # 0x1d7cf (en: 'bold one', google translation) + - "": [T: "fett zwei"] # 0xf530 (en: 'bold two', google translation) + - "𝟐": [T: "fett zwei"] # 0x1d7d0 (en: 'bold two', google translation) + - "": [T: "fett drei"] # 0xf531 (en: 'bold three', google translation) + - "𝟑": [T: "fett drei"] # 0x1d7d1 (en: 'bold three', google translation) + - "": [T: "fett vier"] # 0xf532 (en: 'bold four', google translation) + - "𝟒": [T: "fett vier"] # 0x1d7d2 (en: 'bold four', google translation) + - "": [T: "fett fünf"] # 0xf533 (en: 'bold five', google translation) + - "𝟓": [T: "fett fünf"] # 0x1d7d3 (en: 'bold five', google translation) + - "": [T: "fett sechs"] # 0xf534 (en: 'bold six', google translation) + - "𝟔": [T: "fett sechs"] # 0x1d7d4 (en: 'bold six', google translation) + - "": [T: "fett sieben"] # 0xf535 (en: 'bold seven', google translation) + - "𝟕": [T: "fett sieben"] # 0x1d7d5 (en: 'bold seven', google translation) + - "": [T: "fett acht"] # 0xf536 (en: 'bold eight', google translation) + - "𝟖": [T: "fett acht"] # 0x1d7d6 (en: 'bold eight', google translation) + - "": [T: "fett neun"] # 0xf537 (en: 'bold nine', google translation) + - "𝟗": [T: "fett neun"] # 0x1d7d7 (en: 'bold nine', google translation) + - "": [T: "null"] # 0xf542 (en: 'zero', google translation) + - "𝟢": [T: "null"] # 0x1d7e2 (en: 'zero', google translation) + - "": [T: "eins"] # 0xf543 (en: 'one', google translation) + - "𝟣": [T: "eins"] # 0x1d7e3 (en: 'one', google translation) + - "": [T: "zwei"] # 0xf544 (en: 'two', google translation) + - "𝟤": [T: "zwei"] # 0x1d7e4 (en: 'two', google translation) + - "": [T: "drei"] # 0xf545 (en: 'three', google translation) + - "𝟥": [T: "drei"] # 0x1d7e5 (en: 'three', google translation) + - "": [T: "vier"] # 0xf546 (en: 'four', google translation) + - "𝟦": [T: "vier"] # 0x1d7e6 (en: 'four', google translation) + - "": [T: "fünf"] # 0xf547 (en: 'five', google translation) + - "𝟧": [T: "fünf"] # 0x1d7e7 (en: 'five', google translation) + - "": [T: "sechs"] # 0xf548 (en: 'six', google translation) + - "𝟨": [T: "sechs"] # 0x1d7e8 (en: 'six', google translation) + - "": [T: "sieben"] # 0xf549 (en: 'seven', google translation) + - "𝟩": [T: "sieben"] # 0x1d7e9 (en: 'seven', google translation) + - "": [T: "acht"] # 0xf54a (en: 'eight', google translation) + - "𝟪": [T: "acht"] # 0x1d7ea (en: 'eight', google translation) + - "": [T: "neun"] # 0xf54b (en: 'nine', google translation) + - "𝟫": [T: "neun"] # 0x1d7eb (en: 'nine', google translation) + - "": [T: "fett null"] # 0xf54c (en: 'bold zero', google translation) + - "𝟬": [T: "fett null"] # 0x1d7ec (en: 'bold zero', google translation) + - "": [T: "fett eins"] # 0xf54d (en: 'bold one', google translation) + - "𝟭": [T: "fett eins"] # 0x1d7ed (en: 'bold one', google translation) + - "": [T: "fett zwei"] # 0xf54e (en: 'bold two', google translation) + - "𝟮": [T: "fett zwei"] # 0x1d7ee (en: 'bold two', google translation) + - "": [T: "fett drei"] # 0xf54f (en: 'bold three', google translation) + - "𝟯": [T: "fett drei"] # 0x1d7ef (en: 'bold three', google translation) + - "": [T: "fett vier"] # 0xf550 (en: 'bold four', google translation) + - "𝟰": [T: "fett vier"] # 0x1d7f0 (en: 'bold four', google translation) + - "": [T: "fett fünf"] # 0xf551 (en: 'bold five', google translation) + - "𝟱": [T: "fett fünf"] # 0x1d7f1 (en: 'bold five', google translation) + - "": [T: "fett sechs"] # 0xf552 (en: 'bold six', google translation) + - "𝟲": [T: "fett sechs"] # 0x1d7f2 (en: 'bold six', google translation) + - "": [T: "fett sieben"] # 0xf553 (en: 'bold seven', google translation) + - "𝟳": [T: "fett sieben"] # 0x1d7f3 (en: 'bold seven', google translation) + - "": [T: "fett acht"] # 0xf554 (en: 'bold eight', google translation) + - "𝟴": [T: "fett acht"] # 0x1d7f4 (en: 'bold eight', google translation) + - "": [T: "fett neun"] # 0xf555 (en: 'bold nine', google translation) + - "𝟵": [T: "fett neun"] # 0x1d7f5 (en: 'bold nine', google translation) + - "": [T: "null"] # 0xf556 (en: 'zero', google translation) + - "𝟶": [T: "null"] # 0x1d7f6 (en: 'zero', google translation) + - "": [T: "eins"] # 0xf557 (en: 'one', google translation) + - "𝟷": [T: "eins"] # 0x1d7f7 (en: 'one', google translation) + - "": [T: "zwei"] # 0xf558 (en: 'two', google translation) + - "𝟸": [T: "zwei"] # 0x1d7f8 (en: 'two', google translation) + - "": [T: "drei"] # 0xf559 (en: 'three', google translation) + - "𝟹": [T: "drei"] # 0x1d7f9 (en: 'three', google translation) + - "": [T: "vier"] # 0xf55a (en: 'four', google translation) + - "𝟺": [T: "vier"] # 0x1d7fa (en: 'four', google translation) + - "": [T: "fünf"] # 0xf55b (en: 'five', google translation) + - "𝟻": [T: "fünf"] # 0x1d7fb (en: 'five', google translation) + - "": [T: "sechs"] # 0xf55c (en: 'six', google translation) + - "𝟼": [T: "sechs"] # 0x1d7fc (en: 'six', google translation) + - "": [T: "sieben"] # 0xf55d (en: 'seven', google translation) + - "𝟽": [T: "sieben"] # 0x1d7fd (en: 'seven', google translation) + - "": [T: "acht"] # 0xf55e (en: 'eight', google translation) + - "𝟾": [T: "acht"] # 0x1d7fe (en: 'eight', google translation) + - "": [T: "neun"] # 0xf55f (en: 'nine', google translation) + - "𝟿": [T: "neun"] # 0x1d7ff (en: 'nine', google translation) + - "": [T: "unbekannter charakter"] # 0xf700 (en: 'unknown character', google translation) + - "": [T: "unter rechts und untere linke dreiecke"] # 0xf726 (en: 'lower right and lower left triangles', google translation) + - "": [T: "horizontaler ellipsis extender"] # 0xf72d (en: 'horizontal ellipsis extender', google translation) + - "": [T: "mittellinienhorizontale ellipsis extender"] # 0xf72e (en: 'midline horizontal ellipsis extender', google translation) + - "": [T: "radikaler erweiterung"] # 0xf8e5 (en: 'radical extender', google translation) + - "": [T: "vertikaler pfeiler extender"] # 0xf8e6 (en: 'vertical arrow extender', google translation) + - "": [T: "horizontaler pfeil extender"] # 0xf8e7 (en: 'horizontal arrow extender', google translation) + - "": [T: "registriertes zeichen sans serif"] # 0xf8e8 (en: 'registered sign sans serif', google translation) + - "": [T: "copyright zeichen sans serif"] # 0xf8e9 (en: 'copyright sign sans serif', google translation) + - "": [T: "markzeichen zeichen ohne serife"] # 0xf8ea (en: 'trade mark sign sans serif', google translation) + - "": [T: "links -klammern"] # 0xf8eb (en: 'left paren top', google translation) + - "": [T: "links -klammern extender"] # 0xf8ec (en: 'left paren extender', google translation) + - "": [T: "linke klammern"] # 0xf8ed (en: 'left paren bottom', google translation) + - "": [T: "linker halterung"] # 0xf8ee (en: 'left bracket top', google translation) + - "": [T: "linke klammer extender"] # 0xf8ef (en: 'left bracket extender', google translation) + - "": [T: "linke halterung unten"] # 0xf8f0 (en: 'left bracket bottom', google translation) + - "": [T: "linke geschweifte klammer oben"] # 0xf8f1 (en: 'left brace top', google translation) + - "": [T: "linke geschweifte klammer mitte"] # 0xf8f2 (en: 'left brace mid', google translation) + - "": [T: "linke geschweifte klammer unten"] # 0xf8f3 (en: 'left brace bottom', google translation) + - "": [T: "erweiterung der geschweiften klammer"] # 0xf8f4 (en: 'brace extender', google translation) + - "": [T: "integral-erweiterung"] # 0xf8f5 (en: 'integral extender', google translation) + - "": [T: "rechte klammer oben"] # 0xf8f6 (en: 'right paren top', google translation) + - "": [T: "rechte klammer-erweiterung"] # 0xf8f7 (en: 'right paren extender', google translation) + - "": [T: "rechte klammer unten"] # 0xf8f8 (en: 'right paren bottom', google translation) + - "": [T: "rechte eckige klammer oben"] # 0xf8f9 (en: 'right bracket top', google translation) + - "": [T: "rechte eckige klammer-erweiterung"] # 0xf8fa (en: 'right bracket extender', google translation) + - "": [T: "rechte eckige klammer unten"] # 0xf8fb (en: 'right bracket bottom', google translation) + - "": [T: "rechte geschweifte klammer oben"] # 0xf8fc (en: 'right brace top', google translation) + - "": [T: "rechte geschweifte klammer mitte"] # 0xf8fd (en: 'right brace mid', google translation) + - "": [T: "rechte geschweifte klammer unten"] # 0xf8fe (en: 'right brace bottom', google translation) + - "": [T: "Apple-Logo"] # 0xf8ff (google translation) + - "ff": [T: "ligatur ff"] # 0xfb00 (en: 'ff', google: 'ff') + - "fi": [T: "ligatur fi"] # 0xfb01 (en: 'fi', google: 'fi') + - "fl": [T: "ligatur fl"] # 0xfb02 (en: 'fl', google: 'fl') + - "ffi": [T: "ligatur ffi"] # 0xfb03 (en: 'ffi', google: 'ffi') + - "ffl": [T: "ligatur ffl"] # 0xfb04 (en: 'ffl', google: 'ffl') + - "ſt": [T: "ligatur ft"] # 0xfb05 (google translation) + - "st": [T: "ligatur st"] # 0xfb06 (google translation) + - "﬩": [T: "hebräischer buchstabe alternatives pluszeichen"] # 0xfb29 (en: 'hebrew letter alternative plus') + - "︠": [T: "ligatur linke halbe verzierung"] # 0xfe20 (en: 'ligature left half embellishment', google translation) + - "︡": [T: "ligatur rechte halbe verzierung"] # 0xfe21 (en: 'ligature right half embellishment', google translation) + - "︢": [T: "doppelte tilde linke halbe verzierung"] # 0xfe22 (en: 'double tilde left half embellishment', google translation) + - "︣": [T: "doppelte tilde rechte halbe verzierung"] # 0xfe23 (en: 'double tilde right half embellishment', google translation) + - "︤": [T: "makron linke halbe verzierung"] # 0xfe24 (en: 'macron left half embellishment', google translation) + - "︥": [T: "makron rechte halbe verzierung"] # 0xfe25 (en: 'macron right half embellishment', google translation) + - "︦": [T: "verbindende makron-verzierung"] # 0xfe26 (en: 'conjoining macron embellishment', google translation) + - "︵": [T: "Präsentationsformular für vertikale linke Klammer"] # 0xfe35 (en: 'over paren', MathPlayer: 'over paren', google: 'über klammern') + - "︶": [T: "Präsentationsformular für vertikale rechte Klammer"] # 0xfe36 (en: 'under paren', MathPlayer: 'under paren', google: 'unter klammern') + - "︷": [T: "Präsentationsformular für vertikale linke geschweifte Klammer"] # 0xfe37 (en: 'over brace', MathPlayer: 'over curly bracket', google: 'über klammer') + - "︸": [T: "Präsentationsformular für vertikale, recht geschweifte Klammer"] # 0xfe38 (en: 'under brace', MathPlayer: 'under curly bracket', google: 'unter klammer') + - "︿": [T: "Präsentationsformular für vertikale linke Winkelhalterung"] # 0xfe3f (en: 'over angle bracket', MathPlayer: 'over angle bracket', google: 'über winkelhalterung') + - "﹀": [T: "Präsentationsformular für vertikale rechtwinklige Halterung"] # 0xfe40 (en: 'under angle bracket', MathPlayer: 'under angle bracket', google: 'unter winkelklasse') + - "﹡": [T: "kleiner asterisk"] # 0xfe61 (en: 'small asterisk') + - "﹢": [T: "kleines plus"] # 0xfe62 (en: 'small plus') + - "﹣": [T: "kleines minus"] # 0xfe63 (en: 'small minus') + - "﹤": [T: "kleines kleiner als"] # 0xfe64 (en: 'small less than') + - "﹥": [T: "kleines größer als"] # 0xfe65 (en: 'small greater than') + - "﹦": [T: "kleines gleichheitszeichen"] # 0xfe66 (en: 'small equals') + - "﹨": [T: "kleiner umgekehrter Schrägstrich"] # 0xfe68 (en: 'integer divide', MathPlayer: 'integer divide', google: 'ganzzahl teilt') + - "<": [T: "kleiner als"] # 0xff1c (en: 'less than') + - "=": [T: "gleichheitszeichen"] # 0xff1d (en: 'equals') + - ">": [T: "größer als"] # 0xff1e (en: 'greater than') + - "\": [T: "rückwärts schrägstrich"] # 0xff3c (en: 'backslash') + - "^": [T: "hut"] # 0xff3e (en: 'hat') + - "|": [T: "vertikale linie"] # 0xff5c (en: 'vertical line') + - "~": [T: "tilde"] # 0xff5e (en: 'tilde') + - "¬": [T: "nicht"] # 0xffe2 (en: 'not') + - "←": [T: "linkspfeil"] # 0xffe9 (en: 'left arrow') + - "↑": [T: "aufwärtspfeil"] # 0xffea (en: 'up arrow') + - "→": [T: "rechtspfeil"] # 0xffeb (en: 'right arrow') + - "↓": [T: "abwärtspfeil"] # 0xffec (en: 'down arrow') + - "": [T: "unbekanntes oder fehlendes objekt"] # 0xfffc (en: 'unknown or missing object', google translation) + - "�": [T: "unbekanntes oder fehlendes Zeichen"] # 0xfffd (google: 'unbekannter oder fehlender charakter') diff --git a/Rules/Languages/de/unicode.yaml b/Rules/Languages/de/unicode.yaml index 142069a4c..bdd89fc76 100644 --- a/Rules/Languages/de/unicode.yaml +++ b/Rules/Languages/de/unicode.yaml @@ -320,9 +320,9 @@ else_test: if: "../../self::m:set or ../../../self::m:set" # inside a set then_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "in"] # (google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "in"] + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' then: [T: "element von"] # (en: 'member of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Element' then: [T: "element von"] # (en: 'element of', google translation) @@ -344,9 +344,9 @@ else_test: if: "../../self::m:set or ../../../self::m:set" # inside a set then_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "nicht in"] # (en: 'not in', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "nicht in"] + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' then: [T: "nicht element von"] # (en: 'not member of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Element' then: [T: "nicht element von"] # (en: 'not element of', google translation) @@ -367,9 +367,9 @@ else_test: if: "../../self::m:set or ../../../self::m:set" # inside a set then_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "in"] # (google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "in"] + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' then: [T: "element von"] # (en: 'member of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Element' then: [T: "element von"] # (en: 'element of', google translation) diff --git a/Rules/Languages/en/navigate.yaml b/Rules/Languages/en/navigate.yaml index 92874f033..a2cf5360b 100644 --- a/Rules/Languages/en/navigate.yaml +++ b/Rules/Languages/en/navigate.yaml @@ -60,38 +60,40 @@ - pause: "medium" else: - test: + # CommandOffset is 1 + length of the English NavCommand stem (Zoom/Move/Read/Describe), + # not the spoken Prefix length — so translations can use a different Prefix word. - if: "starts-with($NavCommand, 'Zoom')" - then: [set_variables: [Prefix: "'zoom'"]] # phrase('zoom' in to see more details) + then: [set_variables: [Prefix: "'zoom'", CommandOffset: "5"]] # phrase('zoom' in to see more details) - else_if: "starts-with($NavCommand, 'Move')" - then: [set_variables: [Prefix: "'move'"]] # phrase('move' to next entry in table) + then: [set_variables: [Prefix: "'move'", CommandOffset: "5"]] # phrase('move' to next entry in table) - else_if: "starts-with($NavCommand, 'Read')" - then: [set_variables: [Prefix: "'read'"]] # phrase('read' to next entry in table) + then: [set_variables: [Prefix: "'read'", CommandOffset: "5"]] # phrase('read' to next entry in table) - else_if: "starts-with($NavCommand, 'Describe')" - then: [set_variables: [Prefix: "'describe'"]] # phrase('describe' to next entry in table) + then: [set_variables: [Prefix: "'describe'", CommandOffset: "9"]] # phrase('describe' to next entry in table) - test: if: "$Prefix != ''" then: - x: "$Prefix" - test: - - if: "substring($NavCommand, string-length($Prefix)+1) = 'In'" + - if: "substring($NavCommand, $CommandOffset) = 'In'" then: [t: "in"] # phrase(zoom 'in' to see more details) - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'InAll'" + - else_if: "substring($NavCommand, $CommandOffset) = 'InAll'" # HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets "ed" concatenated to "zoom" then: [t: "\uF8FEed in all of the way"] # phrase(zoom 'out all of the way' to see more details) - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'Out'" + - else_if: "substring($NavCommand, $CommandOffset) = 'Out'" then: [t: "out"] # phrase(zoom 'out' to see more details) - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'OutAll'" + - else_if: "substring($NavCommand, $CommandOffset) = 'OutAll'" # HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets "ed" concatenated to "zoom" then: [t: "\uF8FEed out all of the way"] # phrase(zoom 'out all of the way' to see more details) - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'Next'" + - else_if: "substring($NavCommand, $CommandOffset) = 'Next'" then: [t: "right"] # phrase(move to the 'right') - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'Previous'" + - else_if: "substring($NavCommand, $CommandOffset) = 'Previous'" then: [t: "left"] # phrase(move to the 'left') - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'Current'" + - else_if: "substring($NavCommand, $CommandOffset) = 'Current'" then: [t: "current"] # phrase(who is the 'current' president) - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'LineStart'" + - else_if: "substring($NavCommand, $CommandOffset) = 'LineStart'" then: [t: "to start of line"] # phrase(move 'to start of line') - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'LineEnd'" + - else_if: "substring($NavCommand, $CommandOffset) = 'LineEnd'" then: [t: "to end of line"] # phrase(move 'to end of line') - pause: "medium" - set_variables: [MatchCounter: "$MatchCounter + 1"] diff --git a/Rules/Languages/en/unicode-full.yaml b/Rules/Languages/en/unicode-full.yaml index 271da2b67..1696dd4ad 100644 --- a/Rules/Languages/en/unicode-full.yaml +++ b/Rules/Languages/en/unicode-full.yaml @@ -1,3626 +1,3625 @@ ---- - - - - "¢": [t: "cents"] # 0xa2 - - "£": [t: "pounds"] # 0xa3 - - "¤": [t: "currency sign"] # 0xa4 - - "¥": [t: "yen"] # 0xa5 - - "¦": [t: "broken bar"] # 0xa6 - - "§": [t: "section"] # 0xa7 - - "¨": [t: "double dot"] # 0xa8 - - "©": [t: "copyright"] # 0xa9 - - "ª": [t: "feminine ordinal indicator"] # 0xaa - - "«": [t: "left-pointing double angle quote mark"] # 0xab - - "¯": # 0xaf - - test: - if: "ancestor::m:modified-variable and preceding-sibling::*[1][self::m:mi]" - then: [t: "bar"] - else: [t: "line"] - - "²": [t: "two"] # 0xb2 - - "³": [t: "three"] # 0xb3 - - "µ": [t: "micro"] # 0xb5 - - "¹": [t: "one"] # 0xb9 - - "º": [t: "masculine ordinal indicator"] # 0xb9 - - "¡": [t: "inverted exclamation mark"] # 0xa1 - - "¶": [t: "paragraph mark"] # 0xb6 - - "¿": [t: "inverted question mark"] # 0xbf - - - "ʰ": [t: "modifier small h"] # 0x2b0 - - "ʱ": [t: "modifier small h with hook"] # 0x2b1 - - "ʲ": [t: "modifier small j"] # 0x2b2 - - "ʳ": [t: "modifier small r"] # 0x2b3 - - "ʴ": [t: "modifier small turned r"] # 0x2b4 - - "ʵ": [t: "modifier small turned r with hook"] # 0x2b5 - - "ʶ": # 0x2b6 - - t: "modifier small inverted" - - spell: "translate('R', 'R', 'R')" - - - "ʷ": [t: "modifier small w"] # 0x2b7 - - "ʸ": [t: "modifier small y"] # 0x2b8 - - "ʹ": [t: "modifier prime"] # 0x2b9 - - "ʺ": [t: "modifier double prime"] # 0x2ba - - "ʻ": [t: "modifier turned comma"] # 0x2bb - - "ʼ": [t: "modifier apostrophe"] # 0x2bc - - "ʽ": [t: "modifier reversed comma"] # 0x2bd - - "ʾ": [t: "modifier right half ring"] # 0x2be - - "ʿ": [t: "modifier left half ring"] # 0x2bf - - "ˀ": [t: "modifier glottal stop"] # 0x2c0 - - "ˁ": [t: "modifier reversed glottal stop"] # 0x2c1 - - "˂": [t: "modifier left arrowhead"] # 0x2c2 - - "˃": [t: "modifier right arrowhead"] # 0x2c3 - - "˄": [t: "modifier up arrowhead"] # 0x2c4 - - "˅": [t: "modifier down arrowhead"] # 0x2c5 - - "ˆ": [t: "modifier circumflex accent"] # 0x2c6 - - "ˇ": [t: "check"] # 0x2c7 - - "ˈ": [t: "modifier vertical line"] # 0x2c8 - - "ˉ": [t: "modifier macron"] # 0x2c9 - - "ˊ": [t: "modifier acute accent"] # 0x2ca - - "ˋ": [t: "modifier grave accent"] # 0x2cb - - "ˌ": [t: "modifier low vertical line"] # 0x2cc - - "ˍ": [t: "modifier low macron"] # 0x2cd - - "ˎ": [t: "modifier low grave accent"] # 0x2ce - - "ˏ": [t: "modifier low acute accent"] # 0x2cf - - "ː": [t: "modifier triangular colon"] # 0x2d0 - - "ˑ": [t: "modifier half triangular colon"] # 0x2d1 - - "˒": [t: "modifier centered right half ring"] # 0x2d2 - - "˓": [t: "modifier centered left half ring"] # 0x2d3 - - "˔": [t: "modifier up tadck"] # 0x2d4 - - "˕": [t: "modifier down tack"] # 0x2d5 - - "˖": [t: "modifier plus sign"] # 0x2d6 - - "˗": [t: "modifier minus sign"] # 0x2d7 - - "˘": [t: "breve"] # 0x2d8 - - "˙": [t: "dot"] # 0x2d9 - - "˚": [t: "ring above"] # 0x2da - - "˛": [t: "ogonek"] # 0x2db - - "˜": [t: "small tilde"] # 0x2dc - - "˝": [t: "double acute accent"] # 0x2dd - - "˞": [t: "modifier rhotic hook"] # 0x2de - - "˟": [t: "modifier cross accent"] # 0x2df - - "ˠ": [t: "modifier small gamma"] # 0x2e0 - - "ˡ": [t: "modifier small l"] # 0x2e1 - - "ˢ": [t: "modifier small s"] # 0x2e2 - - "ˣ": [t: "modifier small x"] # 0x2e3 - - "ˤ": [t: "modifier small reversed glottal stop"] # 0x2e4 - - "˥": [t: "modifier extra-high tone bar"] # 0x2e5 - - "˦": [t: "modifier high tone bar"] # 0x2e6 - - "˧": [t: "modifier mid tone bar"] # 0x2e7 - - "˨": [t: "modifier low tone bar"] # 0x2e8 - - "˩": [t: "modifier extra-low tone bar"] # 0x2e9 - - "˪": [t: "modifier yin departing tone mark"] # 0x2ea - - "˫": [t: "modifier yang departing tone mark"] # 0x2eb - - "ˬ": [t: "modifier voicing"] # 0x2ec - - "˭": [t: "modifier unaspirated"] # 0x2ed - - "ˮ": [t: "modifier double apostrophe"] # 0x2ee - - "˯": [t: "modifier low down arrowhead"] # 0x2ef - - "˰": [t: "modifier low up arrowhead"] # 0x2f0 - - "˱": [t: "modifier low left arrowhead"] # 0x2f1 - - "˲": [t: "modifier low right arrowhead"] # 0x2f2 - - "˳": [t: "modifier low ring"] # 0x2f3 - - "˴": [t: "modifier middle grave accent"] # 0x2f4 - - "˵": [t: "modifier middle double grave accent"] # 0x2f5 - - "˶": [t: "modifier middle double acute accent"] # 0x2f6 - - "˷": [t: "modifier low tilde"] # 0x2f7 - - "˸": [t: "modifier raised colon"] # 0x2f8 - - "˹": [t: "modifier begin high tone"] # 0x2f9 - - "˺": [t: "modifier end high tone"] # 0x2fa - - "˻": [t: "modifier begin low tone"] # 0x2fb - - "˼": [t: "modifier end low tone"] # 0x2fc - - "˽": [t: "modifier shelf"] # 0x2fd - - "˾": [t: "modifier open shelf"] # 0x2fe - - "˿": [t: "modifier low left arrow"] # 0x2ff - - "̈": [t: "diaeresis embellishment"] # 0x308 - - "̉": [t: "hook above embellishment"] # 0x309 - - "̊": [t: "ring above embellishment"] # 0x30a - - "̋": [t: "double acute accent embellishment"] # 0x30b - - "̌": [t: "check"] # 0x30c - - "̍": [t: "vertical line above embellishment"] # 0x30d - - "̎": [t: "double vertical line above embellishment"] # 0x30e - - "̏": [t: "double grave accent embellishment"] # 0x30f - - "̐": [t: "candrabindu embellishment"] # 0x310 - - "̑": [t: "inverted breve embellishment"] # 0x311 - - "̒": [t: "turned comma above embellishment"] # 0x312 - - "̓": [t: "comma above embellishment"] # 0x313 - - "̔": [t: "reversed comma above embellishment"] # 0x314 - - "̕": [t: "comma above right embellishment"] # 0x315 - - "̖": [t: "grave accent below embellishment"] # 0x316 - - "̗": [t: "acute accent below embellishment"] # 0x317 - - "̘": [t: "left tack below embellishment"] # 0x318 - - "̙": [t: "right tack below embellishment"] # 0x319 - - "̚": [t: "left angle above embellishment"] # 0x31a - - "̛": [t: "horn embellishment"] # 0x31b - - "̜": [t: "left half ring below embellishment"] # 0x31c - - "̝": [t: "up tack below embellishment"] # 0x31d - - "̞": [t: "down tack below embellishment"] # 0x31e - - "̟": [t: "plus sign below embellishment"] # 0x31f - - "̠": [t: "minus sign below embellishment"] # 0x320 - - "̡": [t: "palatalized hook below embellishment"] # 0x321 - - "̢": [t: "retroflex hook below embellishment"] # 0x322 - - "̣": [t: "dot below embellishment"] # 0x323 - - "̤": [t: "diaeresis below embellishment"] # 0x324 - - "̥": [t: "ring below embellishment"] # 0x325 - - "̦": [t: "comma below embellishment"] # 0x326 - - "̧": [t: "cedilla embellishment"] # 0x327 - - "̨": [t: "ogonek embellishment"] # 0x328 - - "̩": [t: "vertical line below embellishment"] # 0x329 - - "̪": [t: "bridge below embellishment"] # 0x32a - - "̫": [t: "inverted double arch below embellishment"] # 0x32b - - "̬": [t: "caron below embellishment"] # 0x32c - - "̭": [t: "circumflex accent below embellishment"] # 0x32d - - "̮": [t: "breve below embellishment"] # 0x32e - - "̯": [t: "inverted breve below embellishment"] # 0x32f - - "̰": [t: "tilde below embellishment"] # 0x330 - - "̱": [t: "macron below embellishment"] # 0x331 - - "̲": [t: "low line embellishment"] # 0x332 - - "̳": [t: "double low line embellishment"] # 0x333 - - "̴": [t: "tilde overlay embellishment"] # 0x334 - - "̵": [t: "short stroke overlay embellishment"] # 0x335 - - "̶": [t: "long stroke overlay embellishment"] # 0x336 - - "̷": [t: "short solidus overlay embellishment"] # 0x337 - - "̸": [t: "long solidus overlay embellishment"] # 0x338 - - "̹": [t: "right half ring below embellishment"] # 0x339 - - "̺": [t: "inverted bridge below embellishment"] # 0x33a - - "̻": [t: "square below embellishment"] # 0x33b - - "̼": [t: "seagull below embellishment"] # 0x33c - - "̽": [t: "x above embellishment"] # 0x33d - - "̾": [t: "vertical tilde embellishment"] # 0x33e - - "̿": [t: "double overline embellishment"] # 0x33f - - "̀": [t: "grave tone mark embellishment"] # 0x340 - - "́": [t: "acute tone mark embellishment"] # 0x341 - - "͆": [t: "bridge above"] # 0x346 - - - "ΪΫϏ": # 0x3aa, 0x3ab, 0x3cf - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [t: "cap"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [spell: "translate('.', 'ΪΫϏ', 'ιυϗ')"] - - t: "with dialytika" - - "ϊ": [t: "iota with dialytika"] # 0x3ca - - "ϋ": [t: "upsilon with dialytika"] # 0x3cb - - "ό": [t: "omicron with tonos"] # 0x3cc - - "ύ": [t: "upsilon with tonos"] # 0x3cd - - "ώ": [t: "omega with tonos"] # 0x3ce - - "ϐ": [t: "beta"] # 0x3d0 - - "ϑ": [t: "theta"] # 0x3d1 - - "ϒ": [t: "upsilon with hook"] # 0x3d2 - - "ϓ": [t: "upsilon with acute and hook"] # 0x3d3 - - "ϔ": [t: "upsilon with diaeresis and hook"] # 0x3d4 - - "ϗ": [t: "kai"] # 0x3d7 - - "Ϙ": [t: "cap archaic koppa"] # 0x3d8 - - "ϙ": [t: "archaic koppa"] # 0x3d9 - - "А-Я": # 0x410 - 0x42f - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [t: "cap"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [spell: "translate('.', 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ', 'абвгдежзийклмнопрстуфхцчшщъыьэюя')"] - - "а": [t: "a"] # 0x430 - - "б": [t: "be"] # 0x431 - - "в": [t: "ve"] # 0x432 - - "г": [t: "ghe"] # 0x433 - - "д": [t: "de"] # 0x434 - - "е": [t: "ie"] # 0x435 - - "ж": [t: "zhe"] # 0x436 - - "з": [t: "ze"] # 0x437 - - "и": [t: "i"] # 0x438 - - "й": [t: "short i"] # 0x439 - - "к": [t: "ka"] # 0x43a - - "л": [t: "el"] # 0x43b - - "м": [t: "em"] # 0x43c - - "н": [t: "en"] # 0x43d - - "о": [t: "o"] # 0x43e - - "п": [t: "pe"] # 0x43f - - "р": [t: "er"] # 0x440 - - "с": [t: "es"] # 0x441 - - "т": [t: "te"] # 0x442 - - "у": [t: "u"] # 0x443 - - "ф": [t: "ef"] # 0x444 - - "х": [t: "ha"] # 0x445 - - "ц": [t: "tse"] # 0x446 - - "ч": [t: "che"] # 0x447 - - "ш": [t: "sha"] # 0x448 - - "щ": [t: "shcha"] # 0x449 - - "ъ": [t: "hard sign"] # 0x44a - - "ы": [t: "yeru"] # 0x44b - - "ь": [t: "soft sign"] # 0x44c - - "э": [t: "e"] # 0x44d - - "ю": [t: "yu"] # 0x44e - - "я": [t: "ya"] # 0x44f - - "؆": [t: "Arabic-Indic cube root"] # 0x606 - - "؇": [t: "Arabic-Indic fourth root"] # 0x607 - - "؈": [t: "Arabic ray"] # 0x608 - - "‐": [t: "hyphen"] # 0x2010 - - "‑": [t: "hyphen"] # 0x2011 - - "‒": [t: "figure dash"] # 0x2012 - - "–": [t: "en dash"] # 0x2013 - - "—": [t: "em dash"] # 0x2014 - - "―": [t: "horizontal bar"] # 0x2015 - - "‖": [t: "double vertical line"] # 0x2016 - - "†": [t: "dagger"] # 0x2020 - - "‡": [t: "double dagger"] # 0x2021 - - - " - ": [t: " "] # 0x2000 - 0x2007 - - - "•": # 0x2022 - - test: - if: "@data-chem-formula-op" - then: [t: "dot"] - else: [t: "bullet"] - - - "‰": [t: "per mille"] # 0x2030 - - "‱": [t: "per ten thousand"] # 0x2031 - - "′": [t: "prime"] # 0x2032 - - "″": [t: "double prime"] # 0x2033 - - "‴": [t: "triple prime"] # 0x2034 - - "‵": [t: "reversed prime"] # 0x2035 - - "‶": [t: "reversed double prime"] # 0x2036 - - "‷": [t: "reversed triple prime"] # 0x2037 - - "‸": [t: "to the"] # 0x2038 - - "‹": [t: "single left pointing angle quote mark"] # 0x2039 - - "›": [t: "single right pointing angle quote mark"] # 0x203a - - "‼": # 0x203c - - test: - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" - then: [t: "double exclamation point"] # 0x203c - else: [t: "double factorial"] # 0x203c - - "⁄": # 0x2044 - - test: - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" - then: [t: "large slash"] # 0x203c - else: [t: "divided by"] # 0x203c - - "⁅": [t: "left square bracket with quill"] # 0x2045 - - "⁆": [t: "right square bracket with quill"] # 0x2046 - - "※": [t: "reference mark"] # 0x203b - - "‿": [t: "under tie"] # 0x203F - - "⁀": [t: "tie"] # 0x2040 - - "⁎": [t: "low asterisk"] # 0x204e - - "⁏": [t: "reversed semicolon"] # 0x204f - - "⁐": [t: "close up"] # 0x2050 - - "⁑": [t: "two vertical asterisks"] # 0x2051 - - "⁒": [t: "commercial minus sign"] # 0x2052 - - "⁗": [t: "quadruple prime"] # 0x2057 - - "⁠": [t: ""] # 0x2060 - - "⁰": [t: "to the zeroth power"] # 0x2070 - - "ⁱ": [t: "to the i-th power"] # 0x2071 - - "⁴": [t: "to the fourth power"] # 0x2074 - - "⁵": [t: "to the fifth power"] # 0x2075 - - "⁶": [t: "to the sixth power"] # 0x2076 - - "⁷": [t: "to the seventh power"] # 0x2077 - - "⁸": [t: "to the eighth power"] # 0x2078 - - "⁹": [t: "to the ninth power"] # 0x2079 - - "⁺": [t: "superscript plus sign"] # 0x207a - - "⁻": [t: "superscript minus"] # 0x207b - - "⁼": [t: "superscript equals sign"] # 0x207c - - "⁽": [t: "superscript left parenthesis"] # 0x207d - - "⁾": [t: "superscript right parenthesis"] # 0x207e - - "ⁿ": [t: "to the ennth power"] # 0x207f - - "₀": [t: "sub zero"] # 0x2080 - - "₁": [t: "sub one"] # 0x2081 - - "₂": [t: "sub two"] # 0x2082 - - "₃": [t: "sub three"] # 0x2083 - - "₄": [t: "sub four"] # 0x2084 - - "₅": [t: "sub five"] # 0x2085 - - "₆": [t: "sub six"] # 0x2086 - - "₇": [t: "sub seven"] # 0x2087 - - "₈": [t: "sub eight"] # 0x2088 - - "₉": [t: "sub nine"] # 0x2089 - - "₊": [t: "subscript plus sign"] # 0x208a - - "₋": [t: "subscript minus sign"] # 0x208b - - "₌": [t: "subscript equals sign"] # 0x208c - - "₍": [t: "subscript left parenthesis"] # 0x208d - - "₎": [t: "subscript right parenthesis"] # 0x208e - - "ₐ": [t: "sub A"] # 0x2090 - - "ₑ": [t: "sub E"] # 0x2091 - - "ₒ": [t: "sub O"] # 0x2092 - - "ₓ": [t: "sub X"] # 0x2093 - - "ₕ": [t: "sub H"] # 0x2095 - - "ₖ": [t: "sub K"] # 0x2096 - - "ₗ": [t: "sub L"] # 0x2097 - - "ₘ": [t: "sub M"] # 0x2098 - - "ₙ": [t: "sub N"] # 0x2099 - - "ₚ": [t: "sub P"] # 0x209a - - "ₛ": [t: "sub S"] # 0x209b - - "ₜ": [t: "sub T"] # 0x209c - - "₠": [t: "european currenty units"] # 0x20a0 - - "₡": [t: "colons"] # 0x20a1 - - "₢": [t: "cruzeiro"] # 0x20a2 - - "₣": [t: "franc"] # 0x20a3 - - "₤": [t: "lira"] # 0x20a4 - - "₥": [t: "mills"] # 0x20a5 - - "₦": [t: "naira"] # 0x20a6 - - "₧": [t: "peseta"] # 0x20a7 - - "₨": [t: "rupees"] # 0x20a8 - - "₩": [t: "won"] # 0x20a9 - - "₪": [t: "new sheqels"] # 0x20aa - - "₫": [t: "dong"] # 0x20ab - - "€": [t: "euros"] # 0x20ac - - "₭": [t: "kip"] # 0x20ad - - "₮": [t: "tugrik"] # 0x20ae - - "₯": [t: "drachma"] # 0x20af - - "₰": [t: "german pennies"] # 0x20b0 - - "₱": [t: "pesos"] # 0x20b1 - - "₲": [t: "guaranis"] # 0x20b2 - - "₳": [t: "australs"] # 0x20b3 - - "₴": [t: "hryvnias"] # 0x20b4 - - "₵": [t: "cedis"] # 0x20b5 - - "₶": [t: "livre tournois"] # 0x20b6 - - "₷": [t: "spesmilos"] # 0x20b7 - - "₸": [t: "tenges"] # 0x20b8 - - "₹": [t: "indian rupees"] # 0x20b9 - - "₺": [t: "turkish liras"] # 0x20ba - - "⃐": [t: "left harpoon above embellishment"] # 0x20d0 - - "⃑": [t: "right harpoon above embellishment"] # 0x20d1 - - "⃒": [t: "long vertical line overlay embellishment"] # 0x20d2 - - "⃓": [t: "short vertical line overlay embellishment"] # 0x20d3 - - "⃔": [t: "anticlockwise arrow above embellishment"] # 0x20d4 - - "⃕": [t: "clockwise arrow above embellishment"] # 0x20d5 - - "⃖": [t: "left arrow above embellishment"] # 0x20d6 - - "⃗": [t: "right arrow above embellishment"] # 0x20d7 - - "⃘": [t: "ring overlay embellishment"] # 0x20d8 - - "⃙": [t: "clockwise ring overlay embellishment"] # 0x20d9 - - "⃚": [t: "anticlockwise ring overlay embellishment"] # 0x20da - - "⃛": [t: "triple dot"] # 0x20db - - "⃜": [t: "quadruple dot"] # 0x20dc - - "⃝": [t: "enclosing circle embellishment"] # 0x20dd - - "⃞": [t: "enclosing square embellishment"] # 0x20de - - "⃟": [t: "enclosing diamond embellishment"] # 0x20df - - "⃠": [t: "enclosing circle backslash embellishment"] # 0x20e0 - - "⃡": [t: "left right arrow above embellishment"] # 0x20e1 - - "⃢": [t: "enclosing screen embellishment"] # 0x20e2 - - "⃣": [t: "enclosing keycap embellishment"] # 0x20e3 - - "⃤": [t: "enclosing upward pointing triangle embellishment"] # 0x20e4 - - "⃥": [t: "reverse solidus overlay embellishment"] # 0x20e5 - - "⃦": [t: "double verticle stroke embellishment"] # 0x20e6 - - "⃧": [t: "annuity symbol embellishment"] # 0x20e7 - - "⃨": [t: "triple underdot"] # 0x20e8 - - "⃩": [t: "wide bridge above embellishment"] # 0x20e9 - - "⃪": [t: "left arrow overlay embellishment"] # 0x20ea - - "⃫": [t: "long double solidus overlay embellishment"] # 0x20eb - - "⃬": [t: "right harpoon with barb down embellishment"] # 0x20ec - - "⃭": [t: "left harpoon with barb down embellishment"] # 0x20ed - - "⃮": [t: "left arrow below embellishment"] # 0x20ee - - "⃯": [t: "right arrow below embellishment"] # 0x20ef - - "⃰": [t: "asterisk above embellishment"] # 0x20f0 - - "℄": [t: "center line symbol"] # 0x2104 - - "℅": [t: "care of"] # 0x2105 - - "℆": [t: "cada una"] # 0x2106 - - "ℇ": [t: "euler's constant"] # 0x2107 - - "℈": [t: "scruples"] # 0x2108 - - "℉": [t: "degrees fahrenheit"] # 0x2109 - - "ℊ": [t: "script g"] # 0x210a - - "ℌℑℨℭ": # 0x210c, 0x2111, 0x2128, 0x212d - - t: "fraktur" - - spell: "translate('.', 'ℌℑℨℭ', 'HIZC')" - - - "ℍℙℾℿ": # 0x210d, 0x2119, 0x213e, 0x213f - - t: "double struck" - - spell: "translate('.', 'ℍℙℾℿ', 'HPΓΠ')" - - - "ℎ": [t: "planck constant"] # 0x210e - - "ℏ": [t: "h bar"] # 0x210f - - - "ℐℒ℘ℬℰℱℳ": # 0x2110, 0x2112, 0x2118, 0x2130, 0x2131, 0x2133 - - t: "script" - - spell: "translate('.', 'ℐℒ℘ℬℰℱℳ', 'ILPBEFM')" - - - "℔": [t: "pounds"] # 0x2114 - - "№": [t: "number"] # 0x2116 - - "℥": [t: "ounces"] # 0x2125 - - "Ω": [t: "ohms"] # 0x2126 - - "℧": [t: "mhos"] # 0x2127 - - "℩": [t: "turned iota"] # 0x2129 - - "K": [t: "kelvin"] # 0x212a - - "Å": [t: "angstroms"] # 0x212b - - "ℯ": [t: "script e"] # 0x212f - - # coalesced some chars that use cap letters - - "Ⅎ℺⅁⅂⅃⅄": # 0x2132, 0x213a, 0x2141, 0x2142, 0x2143, 0x2144 - - test: - - if: "'.' = '℺'" - then: [t: "rotated"] - - else_if: "'.' = 'Ⅎ'" - then: [t: "turned"] - - else_if: "'.' = '⅃'" - then: [t: "reversed sans-serif"] - else: [t: "turned sans-serif"] - - spell: "translate('.', 'Ⅎ℺⅁⅂⅃⅄', 'FQGLLY')" - - - "ℴ": [t: "script o"] # 0x2134 - - "ℵ": [t: "first transfinite cardinal"] # 0x2135 - - "ℶ": [t: "second transfinite cardinal"] # 0x2136 - - "ℷ": [t: "third transfinite cardinal"] # 0x2137 - - "ℸ": [t: "fourth transfinite cardinal"] # 0x2138 - - "ℼ": [t: "double struck pi"] # 0x213c - - "ℽ": [t: "double struck gamma"] # 0x213d - - "⅀": [t: "double struck n-ary summation"] # 0x2140 - - "⅋": [t: "turned ampersand"] # 0x214b - - "⅌": [t: "per"] # 0x214c - - "ⅎ": [t: "turned F"] # 0x214e - - "¼": [t: "one quarter"] # 0x00bc - - "½": [t: "one half"] # 0x00bd - - "¾": [t: "three quarters"] # 0x00be - - "⅐": [t: "one seventh"] # 0x2150 - - "⅑": [t: "one ninth"] # 0x2151 - - "⅒": [t: "one tenth"] # 0x2152 - - "⅓": [t: "one third"] # 0x2153 - - "⅔": [t: "two thirds"] # 0x2154 - - "⅕": [t: "one fifth"] # 0x2155 - - "⅖": [t: "two fifths"] # 0x2156 - - "⅗": [t: "three fifths"] # 0x2157 - - "⅘": [t: "four fifths"] # 0x2158 - - "⅙": [t: "one sixth"] # 0x2159 - - "⅚": [t: "five sixths"] # 0x215a - - "⅛": [t: "one eighth"] # 0x215b - - "⅜": [t: "three eighths"] # 0x215c - - "⅝": [t: "five eighths"] # 0x215d - - "⅞": [t: "seven eighths"] # 0x215e - - "⅟": [t: "one over"] # 0x215f - - "Ⅰ": [t: "I"] # 0x2160 - - "Ⅱ": [t: "I I"] # 0x2161 - - "Ⅲ": [t: "I I I"] # 0x2162 - - "Ⅳ": [t: "I V"] # 0x2163 - - "Ⅴ": [t: "V"] # 0x2164 - - "Ⅵ": [t: "V I"] # 0x2165 - - "Ⅶ": [t: "V I I"] # 0x2166 - - "Ⅷ": [t: "V I I I"] # 0x2167 - - "Ⅸ": [t: "I X"] # 0x2168 - - "Ⅹ": [t: "X"] # 0x2169 - - "Ⅺ": [t: "X I"] # 0x216a - - "Ⅻ": [t: "X I I"] # 0x216b - - "Ⅼ": [t: "L"] # 0x216c - - "Ⅽ": [t: "C"] # 0x216d - - "Ⅾ": [t: "D"] # 0x216e - - "Ⅿ": [t: "M"] # 0x216f - - "ⅰ": [t: "I"] # 0x2170 - - "ⅱ": [t: "I I"] # 0x2171 - - "ⅲ": [t: "I I I"] # 0x2172 - - "ⅳ": [t: "I V"] # 0x2173 - - "ⅴ": [t: "V"] # 0x2174 - - "ⅵ": [t: "V I"] # 0x2175 - - "ⅶ": [t: "V I I"] # 0x2176 - - "ⅷ": [t: "V I I I"] # 0x2177 - - "ⅸ": [t: "I X"] # 0x2178 - - "ⅹ": [t: "X"] # 0x2179 - - "ⅺ": [t: "X I"] # 0x217a - - "ⅻ": [t: "X I I"] # 0x217b - - "ⅼ": [t: "L"] # 0x217c - - "ⅽ": [t: "C"] # 0x217d - - "ⅾ": [t: "D"] # 0x217e - - "ⅿ": [t: "M"] # 0x217f - - "↉": [t: "zero thirds"] # 0x2189 - - "↔": [t: "left right arrow"] # 0x2194 - - "↕": [t: "up down arrow"] # 0x2195 - - "↖": [t: "north west arrow"] # 0x2196 - - "↗": # 0x2197 - - test: - if: "ancestor::*[2][self::m:limit]" - then: [t: "approaches from below"] - else: [t: "north east arrow"] - - - "↘": # 0x2198 - - test: - if: "ancestor::*[2][self::m:limit]" - then: [t: "approaches from above"] - else: [t: "south east arrow"] - - - "↙": [t: "south west arrow"] # 0x2199 - - "↚": [t: "left arrow with stroke"] # 0x219a - - "↛": [t: "right arrow with stroke"] # 0x219b - - "↜": [t: "left wave arrow"] # 0x219c - - "↝": [t: "right wave arrow"] # 0x219d - - "↞": [t: "left two headed arrow"] # 0x219e - - "↟": [t: "up two headed arrow"] # 0x219f - - "↠": [t: "right two headed arrow"] # 0x21a0 - - "↡": [t: "down two headed arrow"] # 0x21a1 - - "↢": [t: "left arrow with tail"] # 0x21a2 - - "↣": [t: "right arrow with tail"] # 0x21a3 - - "↤": [t: "left arrow from bar"] # 0x21a4 - - "↥": [t: "up arrow from bar"] # 0x21a5 - - "↦": [t: "right arrow from bar"] # 0x21a6 - - "↧": [t: "down arrow from bar"] # 0x21a7 - - "↨": [t: "up down arrow with base"] # 0x21a8 - - "↩": [t: "left arrow with hook"] # 0x21a9 - - "↪": [t: "right arrow with hook"] # 0x21aa - - "↫": [t: "left arrow with loop"] # 0x21ab - - "↬": [t: "right arrow with loop"] # 0x21ac - - "↭": [t: "left right wave arrow"] # 0x21ad - - "↮": [t: "left right arrow with stroke"] # 0x21ae - - "↯": [t: "down zigzag arrow"] # 0x21af - - "↰": [t: "up arrow with tip left"] # 0x21b0 - - "↱": [t: "up arrow with tip right"] # 0x21b1 - - "↲": [t: "down arrow with tip left"] # 0x21b2 - - "↳": [t: "down arrow with tip right"] # 0x21b3 - - "↴": [t: "right arrow with corner down"] # 0x21b4 - - "↵": [t: "down arrow with corner left"] # 0x21b5 - - "↶": [t: "anticlockwise top semicircle arrow"] # 0x21b6 - - "↷": [t: "clockwise top semicircle arrow"] # 0x21b7 - - "↸": [t: "north west arrow to long bar"] # 0x21b8 - - "↹": [t: "left arrow to bar over right arrow to bar"] # 0x21b9 - - "↺": [t: "anticlockwise open circle arrow"] # 0x21ba - - "↻": [t: "clockwise open circle arrow"] # 0x21bb - - "↼": [t: "left harpoon up"] # 0x21bc - - "↽": [t: "left harpoon down"] # 0x21bd - - "↾": [t: "up harpoon right"] # 0x21be - - "↿": [t: "up harpoon left"] # 0x21bf - - "⇀": [t: "right harpoon up"] # 0x21c0 - - "⇁": [t: "right harpoon down"] # 0x21c1 - - "⇂": [t: "down harpoon right"] # 0x21c2 - - "⇃": [t: "down harpoon left"] # 0x21c3 - - "⇄": [t: "right arrow over left arrow"] # 0x21c4 - - "⇅": [t: "up arrow left of down arrow"] # 0x21c5 - - "⇆": [t: "left arrow over right arrow"] # 0x21c6 - - "⇇": [t: "left paired arrows"] # 0x21c7 - - "⇈": [t: "up paired arrows"] # 0x21c8 - - "⇉": [t: "right paired arrows"] # 0x21c9 - - "⇊": [t: "down paired arrows"] # 0x21ca - - "⇋": [t: "left harpoon over right harpoon"] # 0x21cb - - "⇌": [t: "right harpoon over left harpoon"] # 0x21cc - - "⇍": [t: "left double arrow with stroke"] # 0x21cd - - "⇎": [t: "left right double arrow with stroke"] # 0x21ce - - "⇏": [t: "right double arrow with stroke"] # 0x21cf - - "⇐": [t: "left double arrow"] # 0x21d0 - - "⇑": [t: "up double arrow"] # 0x21d1 - - "⇓": [t: "down double arrow"] # 0x21d3 - - "⇔": [t: "if and only if"] # 0x21d4 - - "⇕": [t: "up down double arrow"] # 0x21d5 - - "⇖": [t: "north west double arrow"] # 0x21d6 - - "⇗": [t: "north east double arrow"] # 0x21d7 - - "⇘": [t: "south east double arrow"] # 0x21d8 - - "⇙": [t: "south west double arrow"] # 0x21d9 - - "⇚": [t: "left triple arrow"] # 0x21da - - "⇛": [t: "right triple arrow"] # 0x21db - - "⇜": [t: "left squiggle arrow"] # 0x21dc - - "⇝": [t: "right squiggle arrow"] # 0x21dd - - "⇞": [t: "up arrow with double stroke"] # 0x21de - - "⇟": [t: "down arrow with double stroke"] # 0x21df - - "⇠": [t: "left dashed arrow"] # 0x21e0 - - "⇡": [t: "up dashed arrow"] # 0x21e1 - - "⇢": [t: "right dashed arrow"] # 0x21e2 - - "⇣": [t: "down dashed arrow"] # 0x21e3 - - "⇤": [t: "left arrow to bar"] # 0x21e4 - - "⇥": [t: "right arrow to bar"] # 0x21e5 - - "⇦": [t: "left white arrow"] # 0x21e6 - - "⇧": [t: "up white arrow"] # 0x21e7 - - "⇨": [t: "right white arrow"] # 0x21e8 - - "⇩": [t: "down white arrow"] # 0x21e9 - - "⇪": [t: "up white arrow from bar"] # 0x21ea - - "⇫": [t: "up white arrow on pedestal"] # 0x21eb - - "⇬": [t: "up white arrow on pedestal with horizontal bar"] # 0x21ec - - "⇭": [t: "up white arrow on pedestal with vertical bar"] # 0x21ed - - "⇮": [t: "up white double arrow"] # 0x21ee - - "⇯": [t: "up white double arrow on pedestal"] # 0x21ef - - "⇰": [t: "right white arrow from wall"] # 0x21f0 - - "⇱": [t: "north west arrow to corner"] # 0x21f1 - - "⇲": [t: "south east arrow to corner"] # 0x21f2 - - "⇳": [t: "up down white arrow"] # 0x21f3 - - "⇴": [t: "right arrow with small circle"] # 0x21f4 - - "⇵": [t: "down arrow left of up arrow"] # 0x21f5 - - "⇶": [t: "three right arrows"] # 0x21f6 - - "⇷": [t: "left arrow with vertical stroke"] # 0x21f7 - - "⇸": [t: "right arrow with vertical stroke"] # 0x21f8 - - "⇹": [t: "left right arrow with vertical stroke"] # 0x21f9 - - "⇺": [t: "left arrow with double vertical stroke"] # 0x21fa - - "⇻": [t: "right arrow with double vertical stroke"] # 0x21fb - - "⇼": [t: "left right arrow with double vertical stroke"] # 0x21fc - - "⇽": [t: "left open headed arrow"] # 0x21fd - - "⇾": [t: "right open headed arrow"] # 0x21fe - - "⇿": [t: "left right open headed arrow"] # 0x21ff - - "∀": [t: "for all"] # 0x2200 - - "∁": # 0x2201 - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "complement of" - - "∃": [t: "there exists"] # 0x2203 - - "∄": [t: "there does not exist"] # 0x2204 - - "∅": [t: "empty set"] # 0x2205 - - "∇": [t: "nahblah"] # 0x2207 - - "∋": [t: "contains the member"] # 0x220b - - "∌": [t: "does not contain the member"] # 0x220c - - "∍": [t: "contains the member"] # 0x220d - - "∎": [t: "end of proof"] # 0x220e - - "∏": [t: "product"] # 0x220f - - "∑": [t: "sum"] # 0x2211 - - "−": [t: "minus"] # 0x2212 - - "∓": [t: "minus or plus"] # 0x2213 - - "∔": [t: "dot plus"] # 0x2214 - - "∕": [t: "divided by"] # 0x2215 - - "∖": [t: "set minus"] # 0x2216 - - "∗": [t: "times"] # 0x2217 - - "∘": [t: "composed with"] # 0x2218 - - "∙": # 0x2219 - - test: - if: "@data-chem-formula-op" - then: [t: "dot"] - else: [t: "times"] - - - "∛": # 0x221b - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "cube root of" - - "∜": # 0x221c - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "fourth root of" - - "∞": [t: "infinity"] # 0x221e - - "∟": [t: "right angle"] # 0x221f - - "∠": [t: "angle"] # 0x2220 - - "∡": [t: "measured angle"] # 0x2221 - - "∢": [t: "spherical angle"] # 0x2222 - - "∣": [t: "divides"] # 0x2223 - - "∤": [t: "does not divide"] # 0x2224 - - "∧": [t: "and"] # 0x2227 - - "∨": [t: "or"] # 0x2228 - - "∩": [t: "intersection"] # 0x2229 - - "∪": [t: "union"] # 0x222a - - "∫": [t: "integral"] # 0x222b - - "∬": [t: "double integral"] # 0x222c - - "∭": [t: "triple integral"] # 0x222d - - "∮": [t: "contour integral"] # 0x222e - - "∯": [t: "surface integral"] # 0x222f - - "∰": [t: "volume integral"] # 0x2230 - - "∱": [t: "clockwise integral"] # 0x2231 - - "∲": [t: "clockwise contour integral"] # 0x2232 - - "∳": [t: "anticlockwise contour integral"] # 0x2233 - - "∴": [t: "therefore"] # 0x2234 - - "∵": [t: "because"] # 0x2235 - - "∷": [t: "as"] # 0x2237 - - "∸": [t: "dot minus"] # 0x2238 - - "∹": [t: "has excess compared to"] # 0x2239 - - "∺": # 0x223a - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "geometrically proportional to" - - "∻": # 0x223b - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "homothetic to" - - "∼": [t: "varies with"] # 0x223c - - "∽": [t: "reversed tilde"] # 0x223d - - "∿": [t: "sine wave"] # 0x223f - - "≀": [t: "wreath product"] # 0x2240 - - "≁": [t: "not tilde"] # 0x2241 - - "≂": [t: "minus tilde"] # 0x2242 - - "≃": # 0x2243 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "asymptotically equal to" - - "≄": # 0x2244 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "not asymptotically equal to" - - "≅": # 0x2245 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "congruent to" - - "≆": # 0x2246 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "approximately but not actually equal to" - - "≇": # 0x2247 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "not congruent to" - - "≈": # 0x2248 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "approximately equal to" - - "≉": # 0x2249 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "not approximately equal to" - - "≊": # 0x224a - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "approximately equal or equal to" - - "≋": [t: "triple tilde"] # 0x224b - - "≌": [t: "are all equal to"] # 0x224c - - "≍": # 0x224d - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "equivalent to" - - "≎": # 0x224e - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "geometrically equivalent to" - - "≏": # 0x224f - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "difference between" - - "≐": [t: "approaches the limit"] # 0x2250 - - "≑": # 0x2251 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "geometrically equal to" - - "≒": # 0x2252 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "approximately equal to or the image of" - - "≓": # 0x2253 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is the"] - - t: "image of or approximately equal to" - - "≔": [t: "colon equals"] # 0x2254 - - "≕": [t: "equals colon"] # 0x2255 - - "≖": [t: "ring in equal to"] # 0x2256 - - "≗": # 0x2257 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "approximately equal to" - - "≘": [t: "corresponds to"] # 0x2258 - - "≙": [t: "estimates"] # 0x2259 - - "≚": # 0x225a - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "equiangular to" - - "≛": [t: "star equals"] # 0x225b - - "≜": [t: "delta equals"] # 0x225c - - "≝": [t: "is defined to be"] # 0x225d - - "≞": # 0x225e - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "measured by" - - "≟": [t: "has an unknown relationship with"] # 0x225f - - "≢": # 0x2262 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "not identical to" - - "≣": # 0x2263 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "strictly equivalent to" - - "≦": [t: "less than over equal to"] # 0x2266 - - "≧": [t: "greater than over equal to"] # 0x2267 - - "≨": # 0x2268 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "less than but not equal to" - - "≩": # 0x2269 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "greater than but not equal to" - - "≪": # 0x226a - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "much less than" - - "≫": # 0x226b - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "much greater than" - - "≬": # 0x226c - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "between" - - "≭": # 0x226d - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "not equivalent to" - - "≮": # 0x226e - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "not less than" - - "≯": # 0x226f - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "not greater than" - - "≰": # 0x2270 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "neither less than nor equal to" - - "≱": # 0x2271 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "neither greater than nor equal to" - - "≲": # 0x2272 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "less than or equivalent to" - - "≳": # 0x2273 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "greater than or equivalent to" - - "≴": # 0x2274 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "neither less than nor equivalent to" - - "≵": # 0x2275 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "neither greater than nor equivalent to" - - "≶": # 0x2276 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "less than or greater than" - - "≷": # 0x2277 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "greater than or less than" - - "≸": # 0x2278 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "neither less than nor greater than" - - "≹": # 0x2279 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "neither greater than nor less than" - - "≺": [t: "precedes"] # 0x227a - - "≻": [t: "succeeds"] # 0x227b - - "≼": [t: "precedes or is equal to"] # 0x227c - - "≽": [t: "succeeds or is equal to"] # 0x227d - - "≾": [t: "precedes or is equivalent to"] # 0x227e - - "≿": [t: "succeeds or is equivalent to"] # 0x227f - - "⊀": [t: "does not precede"] # 0x2280 - - "⊁": [t: "does not succeed"] # 0x2281 - - "⊈": # 0x2288 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "neither a subset of nor equal to" - - "⊉": # 0x2289 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "neither a superset of nor equal to" - - "⊊": [t: "subset of with not equal to"] # 0x228a - - "⊋": [t: "superset of with not equal to"] # 0x228b - - "⊌": [t: "multiset"] # 0x228c - - "⊍": [t: "multiset multiplication"] # 0x228d - - "⊎": [t: "multiset union"] # 0x228e - - "⊏": [t: "square image of"] # 0x228f - - "⊐": [t: "square original of"] # 0x2290 - - "⊑": [t: "square image of or equal to"] # 0x2291 - - "⊒": [t: "square original of or equal to"] # 0x2292 - - "⊓": [t: "square cap"] # 0x2293 - - "⊔": [t: "square cup"] # 0x2294 - - "⊕": [t: "circled plus"] # 0x2295 - - "⊖": [t: "circled minus"] # 0x2296 - - "⊗": [t: "circled times"] # 0x2297 - - "⊘": [t: "circled slash"] # 0x2298 - - "⊙": [t: "circled dot operator"] # 0x2299 - - "⊚": [t: "circled ring"] # 0x229a - - "⊛": [t: "circled asterisk"] # 0x229b - - "⊜": [t: "circled equals"] # 0x229c - - "⊝": [t: "circled dash"] # 0x229d - - "⊞": [t: "squared plus"] # 0x229e - - "⊟": [t: "squared minus"] # 0x229f - - "⊠": [t: "squared times"] # 0x22a0 - - "⊡": [t: "squared dot operator"] # 0x22a1 - - "⊢": [t: "proves"] # 0x22a2 - - "⊣": [t: "does not yield"] # 0x22a3 - - "⊤": [t: "top"] # 0x22a4 - - "⊥": # 0x22a5 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "bottom" - - "⊦": [t: "reduces to"] # 0x22a6 - - "⊧": [t: "models"] # 0x22a7 - - "⊨": # 0x22a8 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "true" - - "⊩": [t: "forces"] # 0x22a9 - - "⊪": [t: "triple vertical bar right turnstile"] # 0x22aa - - "⊫": [t: "double vertical bar double right turnstile"] # 0x22ab - - "⊬": [t: "does not prove"] # 0x22ac - - "⊭": # 0x22ad - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "not true" - - "⊮": [t: "does not force"] # 0x22ae - - "⊯": [t: "negated double vertical bar double right turnstile"] # 0x22af - - "⊰": [t: "precedes under relation"] # 0x22b0 - - "⊱": [t: "succeeds under relation"] # 0x22b1 - - "⊲": # 0x22b2 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "a normal subgroup of" - - "⊳": [t: "contains as a normal subgroup"] # 0x22b3 - - "⊴": # 0x22b4 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "a normal subgroup of or equal to" - - "⊵": [t: "contains as a normal subgroup or equal to"] # 0x22b5 - - "⊶": # 0x22b6 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "the original of" - - "⊷": # 0x22b7 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "an image of" - - "⊸": [t: "multimap"] # 0x22b8 - - "⊹": [t: "hermitian conjugate matrix"] # 0x22b9 - - "⊺": [t: "intercalate"] # 0x22ba - - "⊻": [t: "xor"] # 0x22bb - - "⊼": [t: "nand"] # 0x22bc - - "⊽": [t: "nor"] # 0x22bd - - "⊾": [t: "right angle with arc"] # 0x22be - - "⊿": [t: "right triangle"] # 0x22bf - - "⋀": [t: "logical and"] # 0x22c0 - - "⋁": [t: "logical or"] # 0x22c1 - - "⋂": [t: "intersection"] # 0x22c2 - - "⋃": [t: "union"] # 0x22c3 - - "⋄": [t: "diamond operator"] # 0x22c4 - - "⋅": # 0x22c5 - - test: - if: "@data-chem-formula-op" - then: [t: "dot"] - else: [t: "times"] - - - "⋆": [t: "times"] # 0x22c6 - - "⋇": [t: "division times"] # 0x22c7 - - "⋈": [t: "bowtie"] # 0x22c8 - - "⋉": # 0x22c9 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "the left normal factor semidirect product of" - - "⋊": # 0x22ca - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "the right normal factor semidirect product of" - - "⋋": # 0x22cb - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "the left semidirect product of" - - "⋌": # 0x22cc - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "the right semidirect product of" - - "⋍": [t: "reversed tilde equals"] # 0x22cd - - "⋎": [t: "curly logical or"] # 0x22ce - - "⋏": [t: "curly logical and"] # 0x22cf - - "⋐": # 0x22d0 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "a double subset of" - - "⋑": # 0x22d1 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "a double superset of" - - "⋒": # 0x22d2 - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "double intersection of" - - "⋓": # 0x22d3 - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "double union of" - - "⋔": # 0x22d4 - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "proper intersection of" - - "⋕": # 0x22d5 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "equal to and parallel to" - - "⋖": [t: "less than with dot"] # 0x22d6 - - "⋗": [t: "greater than with dot"] # 0x22d7 - - "⋘": # 0x22d8 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "very much less than" - - "⋙": # 0x22d9 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "very much greater than" - - "⋚": # 0x22da - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "less than equal to or greater than" - - "⋛": # 0x22db - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "greater than equal to or less than" - - "⋜": # 0x22dc - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "equal to or less than" - - "⋝": # 0x22dd - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "equal to or greater than" - - "⋞": # 0x22de - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "equal to or precedes" - - "⋟": # 0x22df - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "equal to or succeeds" - - "⋠": [t: "does not precede nor is equal to"] # 0x22e0 - - "⋡": [t: "does not succeed nor is equal to"] # 0x22e1 - - "⋢": [t: "not square image of or equal to"] # 0x22e2 - - "⋣": [t: "not square original of or equal to"] # 0x22e3 - - "⋤": [t: "square image of or not equal to"] # 0x22e4 - - "⋥": [t: "square original of or not equal to"] # 0x22e5 - - "⋦": # 0x22e6 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "less than but not equivalent to" - - "⋧": # 0x22e7 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "greater than but not equivalent to" - - "⋨": [t: "precedes but is not equivalent to"] # 0x22e8 - - "⋩": [t: "succeeds but is not equivalent to"] # 0x22e9 - - "⋪": # 0x22ea - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "not a normal subgroup of" - - "⋫": [t: "does not contain as a normal subgroup"] # 0x22eb - - "⋬": # 0x22ec - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "not a normal subgroup of nor is equal to" - - "⋭": [t: "does not contain as a normal subgroup nor is equal to"] # 0x22ed - - "⋮": [t: "vertical ellipsis"] # 0x22ee - - "⋯": [t: "dot dot dot"] # 0x22ef - - "⋰": [t: "up diagonal ellipsis"] # 0x22f0 - - "⋱": [t: "diagonal ellipsis"] # 0x22f1 - - "⋲": [t: "element of with long horizontal stroke"] # 0x22f2 - - "⋳": [t: "element of with vertical bar at end of horizontal stroke"] # 0x22f3 - - "⋴": [t: "element of with vertical bar at end of horizontal stroke"] # 0x22f4 - - "⋵": [t: "element of with dot above"] # 0x22f5 - - "⋶": [t: "element of with overbar"] # 0x22f6 - - "⋷": [t: "element of with overbar"] # 0x22f7 - - "⋸": [t: "element of with underbar"] # 0x22f8 - - "⋹": [t: "element of with two horizontal strokes"] # 0x22f9 - - "⋺": [t: "contains with long horizontal stroke"] # 0x22fa - - "⋻": [t: "contains with vertical bar at end of horizontal stroke"] # 0x22fb - - "⋼": [t: "contains with vertical bar at end of horizontal stroke"] # 0x22fc - - "⋽": [t: "contains with overbar"] # 0x22fd - - "⋾": [t: "contains with overbar"] # 0x22fe - - "⋿": [t: "z notation bag membership"] # 0x22ff - - "⌀": [t: "diameter"] # 0x2300 - - "⌁": [t: "electric arrow"] # 0x2301 - - "⌂": [t: "house"] # 0x2302 - - "⌃": [t: "up arrowhead"] # 0x2303 - - "⌄": [t: "down arrowhead"] # 0x2304 - - "⌅": [t: "projective"] # 0x2305 - - "⌆": [t: "perspective"] # 0x2306 - - "⌇": [t: "wavy line"] # 0x2307 - - "⌈": [t: "left ceiling"] # 0x2308 - - "⌉": [t: "right ceiling"] # 0x2309 - - "⌊": [t: "left floor"] # 0x230a - - "⌋": [t: "right floor"] # 0x230b - - "⌌": [t: "bottom right crop"] # 0x230c - - "⌍": [t: "bottom left crop"] # 0x230d - - "⌎": [t: "top right crop"] # 0x230e - - "⌏": [t: "top left crop"] # 0x230f - - "⌐": [t: "reversed not sign"] # 0x2310 - - "⌑": [t: "square lozenge"] # 0x2311 - - "⌒": [t: "arc"] # 0x2312 - - "⌓": [t: "segment"] # 0x2313 - - "⌔": [t: "sector"] # 0x2314 - - "⌕": [t: "telephone recorder"] # 0x2315 - - "⌖": [t: "position indicator crosshairs"] # 0x2316 - - "⌗": [t: "viewdata square"] # 0x2317 - - "⌘": [t: "place of interest sign"] # 0x2318 - - "⌙": [t: "turned not sign"] # 0x2319 - - "⌚": [t: "watch"] # 0x231a - - "⌛": [t: "hourglass"] # 0x231b - - "⌜": [t: "top left corner"] # 0x231c - - "⌝": [t: "top right corner"] # 0x231d - - "⌞": [t: "bottom left corner"] # 0x231e - - "⌟": [t: "bottom right corner"] # 0x231f - - "⌠": [t: "top half integral"] # 0x2320 - - "⌡": [t: "bottom half integral"] # 0x2321 - - "⌢": [t: "frown"] # 0x2322 - - "⌣": [t: "smile"] # 0x2323 - - "⌤": [t: "up arrowhead between two horizontal bars"] # 0x2324 - - "⌥": [t: "option key"] # 0x2325 - - "⌦": [t: "erase to the right"] # 0x2326 - - "⌧": [t: "x in a rectangle box"] # 0x2327 - - "⌨": [t: "keyboard"] # 0x2328 - - "〈": [t: "left pointing angle bracket"] # 0x2329 - - "〉": [t: "right pointing angle bracket"] # 0x232a - - "⌫": [t: "erase to the left"] # 0x232b - - "⌬": [t: "benzene ring"] # 0x232c - - "⌭": [t: "cylindricity"] # 0x232d - - "⌮": [t: "all around profile"] # 0x232e - - "⌯": [t: "symmetry"] # 0x232f - - "⌰": [t: "total runout"] # 0x2330 - - "⌱": [t: "dimension origin"] # 0x2331 - - "⌲": [t: "conical taper"] # 0x2332 - - "⌳": [t: "slope"] # 0x2333 - - "⌴": [t: "counterbore"] # 0x2334 - - "⌵": [t: "countersink"] # 0x2335 - - "⌶": [t: "apl i beam"] # 0x2336 - - "⌽": [t: "apl circle stile"] # 0x233d - - "⌿": [t: "apl slash bar"] # 0x233f - - "⍰": [t: "unknown box"] # 0x2370 - - "⍼": [t: "right angle with down zigzag arrow"] # 0x237c - - "⎔": [t: "hexagon"] # 0x2394 - - "⎕": [t: "box"] # 0x2395 - - "⎶": [t: "bottom square bracket over top square bracket"] # 0x23b6 - - "⏜": [t: "top paren"] # 0x23dc - - "⏝": [t: "bottom paren"] # 0x23dd - - "⏞": [t: "top brace"] # 0x23de - - "⏟": [t: "bottom brace"] # 0x23df - - "⏠": [t: "top tortoise shell bracket"] # 0x23e0 - - "⏡": [t: "bottom tortoise shell bracket"] # 0x23e1 - - "⏢": [t: "white trapezium"] # 0x23e2 - - "⏣": [t: "benzene ring with circle"] # 0x23e3 - - "⏤": [t: "straightness"] # 0x23e4 - - "⏥": [t: "flatness"] # 0x23e5 - - "⏦": # 0x23e6 - - spell: "ac" - - t: "current" - - "⏧": [t: "electrical intersection"] # 0x23e7 - - "①-⑨": # 0x2460 - 0x2469 - - t: "circled" - - spell: "translate('.', '①②③④⑤⑥⑦⑧⑨', '123456789')" - - "⑩": [t: "circled ten"] # 0x2469 - - "⑪": [t: "circled eleven"] # 0x246a - - "⑫": [t: "circled twelve"] # 0x246b - - "⑬": [t: "circled thirteen"] # 0x246c - - "⑭": [t: "circled fourteen"] # 0x246d - - "⑮": [t: "circled fifteen"] # 0x246e - - "⑯": [t: "circled sixteen"] # 0x246f - - "⑰": [t: "circled seventeen"] # 0x2470 - - "⑱": [t: "circled eighteen"] # 0x2471 - - "⑳": [t: "circled twenty"] # 0x2473 - - "⑴-⑼": # 0x2474 - 0x247d - - t: "parenthesized" - - spell: "translate('.', '⑴⑵⑶⑷⑸⑹⑺⑻⑼', '123456789')" - - "⑽": [t: "parenthesized ten"] # 0x247d - - "⑾": [t: "parenthesized eleven"] # 0x247e - - "⑿": [t: "parenthesized twelve"] # 0x247f - - "⒀": [t: "parenthesized thirteen"] # 0x2480 - - "⒁": [t: "parenthesized fourteen"] # 0x2481 - - "⒂": [t: "parenthesized fifteen"] # 0x2482 - - "⒃": [t: "parenthesized sixteen"] # 0x2483 - - "⒄": [t: "parenthesized seventeen"] # 0x2484 - - "⒅": [t: "parenthesized eighteen"] # 0x2485 - - "⒆": [t: "parenthesized nineteen"] # 0x2486 - - "⒇": [t: "parenthesized twenty"] # 0x2487 - - "⒈-⒐": # 0x2488 - 0x2491 - - spell: "translate('.', '⒈⒉⒊⒋⒌⒍⒎⒏⒐', '123456789')" - - t: "with period" - - "⒑": [t: "ten with period"] # 0x2491 - - "⒒": [t: "eleven with period"] # 0x2492 - - "⒓": [t: "twelve with period"] # 0x2493 - - "⒔": [t: "thirteen with period"] # 0x2494 - - "⒕": [t: "fourteen with period"] # 0x2495 - - "⒖": [t: "fifteen with period"] # 0x2496 - - "⒗": [t: "sixteen with period"] # 0x2497 - - "⒘": [t: "seventeen with period"] # 0x2498 - - "⒙": [t: "eighteen with period"] # 0x2499 - - "⒚": [t: "nineteen with period"] # 0x249a - - "⒛": [t: "twenty with period"] # 0x249b - - "⒜-⒵": # 0x249c - 0x24b5 - - t: "parenthesized" - - spell: "translate('.', '⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵', 'abcdefghijklmnopqrstuvwxyz')" - - - "Ⓐ-Ⓩ": # 0x24b6 - 0x24cf - - t: "circled" - - spell: "translate('.', 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "🅐-🅩": # 0x1f150 - 0x1f169 - - t: "black circled" - - spell: "translate('.', '🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "ⓐ-ⓩ": # 0x24d0 - 0x24e9 - - t: "circled" - - spell: "translate('.', 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ', 'abcdefghijklmnopqrstuvwxyz')" - - - "⓪": [t: "circled zero"] # 0x24ea - - "⓫": [t: "black circled eleven"] # 0x24eb - - "⓬": [t: "black circled twelve"] # 0x24ec - - "⓭": [t: "black circled thirteen"] # 0x24ed - - "⓮": [t: "black circled fourteen"] # 0x24ee - - "⓯": [t: "black circled fifteen"] # 0x24ef - - "⓰": [t: "black circled sixteen"] # 0x24f0 - - "⓱": [t: "black circled seventeen"] # 0x24f1 - - "⓲": [t: "black circled eighteen"] # 0x24f2 - - "⓳": [t: "black circled nineteen"] # 0x24f3 - - "⓴": [t: "black circled twenty"] # 0x24f4 - - "⓵-⓽": # 0x24f5 - 0x24fe - - t: "double circled" - - spell: "translate('.', '⓵⓶⓷⓸⓹⓺⓻⓼⓽', '123456789')" - - "⓾": [t: "double circled ten"] # 0x24fe - - "⓿": [t: "black circled zero"] # 0x24ff - - "■": [t: "black square"] # 0x25a0 - - "□": [t: "white square"] # 0x25a1 - - "▢": [t: "white square with rounded corners"] # 0x25a2 - - "▣": [t: "white square containing small black square"] # 0x25a3 - - "▤": [t: "square with horizontal fill"] # 0x25a4 - - "▥": [t: "square with vertical fill"] # 0x25a5 - - "▦": [t: "square with orthogonal crosshatch fill"] # 0x25a6 - - "▧": [t: "square with upper left to lower right fill"] # 0x25a7 - - "▨": [t: "square with upper right to lower left fill"] # 0x25a8 - - "▩": [t: "square with diagonal crosshatch fill"] # 0x25a9 - - "▪": [t: "black small square"] # 0x25aa - - "▫": [t: "white small square"] # 0x25ab - - "▬": [t: "black rectangle"] # 0x25ac - - "▭": [t: "white rectangle"] # 0x25ad - - "▮": [t: "black vertical rectangle"] # 0x25ae - - "▯": [t: "white vertical rectangle"] # 0x25af - - "▰": [t: "black parallelogram"] # 0x25b0 - - "▱": [t: "white parallelogram"] # 0x25b1 - - "▲": [t: "black up pointing triangle"] # 0x25b2 - - "△": [t: "triangle"] # 0x25b3 - - "▴": [t: "black up pointing small triangle"] # 0x25b4 - - "▵": [t: "white up pointing small triangle"] # 0x25b5 - - "▶": [t: "black right pointing triangle"] # 0x25b6 - - "▷": [t: "white right pointing triangle"] # 0x25b7 - - "▸": [t: "black right pointing small triangle"] # 0x25b8 - - "▹": [t: "white right pointing small triangle"] # 0x25b9 - - "►": [t: "black right pointing pointer"] # 0x25ba - - "▻": [t: "white right pointing pointer"] # 0x25bb - - "▼": [t: "black down pointing triangle"] # 0x25bc - - "▽": [t: "white down pointing triangle"] # 0x25bd - - "▾": [t: "black down pointing small triangle"] # 0x25be - - "▿": [t: "white down pointing small triangle"] # 0x25bf - - "◀": [t: "black left pointing triangle"] # 0x25c0 - - "◁": [t: "white left pointing triangle"] # 0x25c1 - - "◂": [t: "black left pointing small triangle"] # 0x25c2 - - "◃": [t: "white left pointing small triangle"] # 0x25c3 - - "◄": [t: "black left pointing pointer"] # 0x25c4 - - "◅": [t: "white left pointing pointer"] # 0x25c5 - - "◆": [t: "black diamond"] # 0x25c6 - - "◇": [t: "white diamond"] # 0x25c7 - - "◈": [t: "white diamond containing black small diamond"] # 0x25c8 - - "◉": [t: "fisheye"] # 0x25c9 - - "◊": [t: "lozenge"] # 0x25ca - - "○": [t: "white circle"] # 0x25cb - - "◌": [t: "dotted circle"] # 0x25cc - - "◍": [t: "circle with vertical fill"] # 0x25cd - - "◎": [t: "bullseye"] # 0x25ce - - "●": [t: "black circle"] # 0x25cf - - "◐": [t: "circle with left half black"] # 0x25d0 - - "◑": [t: "circle with right half black"] # 0x25d1 - - "◒": [t: "circle with lower half black"] # 0x25d2 - - "◓": [t: "circle with upper half black"] # 0x25d3 - - "◔": [t: "circle with upper right quadrant black"] # 0x25d4 - - "◕": [t: "circle with all but upper left quadrant black"] # 0x25d5 - - "◖": [t: "left half black circle"] # 0x25d6 - - "◗": [t: "right half black circle"] # 0x25d7 - - "◘": [t: "inverse bullet"] # 0x25d8 - - "◙": [t: "inverse white circle"] # 0x25d9 - - "◚": [t: "upper half inverse white circle"] # 0x25da - - "◛": [t: "lower half inverse white circle"] # 0x25db - - "◜": [t: "upper left quadrant circular arc"] # 0x25dc - - "◝": [t: "upper right quadrant circular arc"] # 0x25dd - - "◞": [t: "lower right quadrant circular arc"] # 0x25de - - "◟": [t: "lower left quadrant circular arc"] # 0x25df - - "◠": [t: "upper half circle"] # 0x25e0 - - "◡": [t: "lower half circle"] # 0x25e1 - - "◢": [t: "black lower right triangle"] # 0x25e2 - - "◣": [t: "black lower left triangle"] # 0x25e3 - - "◤": [t: "black upper left triangle"] # 0x25e4 - - "◥": [t: "black upper right triangle"] # 0x25e5 - - "◦": [t: "composition"] # 0x25e6 - - "◧": [t: "square with left half black"] # 0x25e7 - - "◨": [t: "square with right half black"] # 0x25e8 - - "◩": [t: "square with upper left half black"] # 0x25e9 - - "◪": [t: "square with lower right half black"] # 0x25ea - - "◫": [t: "white square with bisecting line"] # 0x25eb - - "◬": [t: "white up pointing triangle with dot"] # 0x25ec - - "◭": [t: "up pointing triangle with left half black"] # 0x25ed - - "◮": [t: "up pointing triangle with right half black"] # 0x25ee - - "◯": [t: "large circle"] # 0x25ef - - "◰": [t: "white square with upper left quadrant"] # 0x25f0 - - "◱": [t: "white square with lower left quadrant"] # 0x25f1 - - "◲": [t: "white square with lower right quadrant"] # 0x25f2 - - "◳": [t: "white square with upper right quadrant"] # 0x25f3 - - "◴": [t: "white circle with upper left quadrant"] # 0x25f4 - - "◵": [t: "white circle with lower left quadrant"] # 0x25f5 - - "◶": [t: "white circle with lower right quadrant"] # 0x25f6 - - "◷": [t: "white circle with upper right quadrant"] # 0x25f7 - - "◸": [t: "upper left triangle"] # 0x25f8 - - "◹": [t: "upper right triangle"] # 0x25f9 - - "◺": [t: "lower left triangle"] # 0x25fa - - "◻": [t: "white medium square"] # 0x25fb - - "◼": [t: "black medium square"] # 0x25fc - - "◽": [t: "white medium small square"] # 0x25fd - - "◾": [t: "black medium small square"] # 0x25fe - - "◿": [t: "lower right triangle"] # 0x25ff - - "★": [t: "black star"] # 0x2605 - - "☆": [t: "white star"] # 0x2606 - - "☉": [t: "sun"] # 0x2609 - - "☌": [t: "conjunction"] # 0x260c - - "☒": [t: "ballot box with x"] # 0x2612 - - "☽": [t: "waxing moon"] # 0x263d - - "☾": [t: "waning moon"] # 0x263e - - "☿": [t: "mercury"] # 0x263f - - "♀": [t: "female"] # 0x2640 - - "♁": [t: "earth"] # 0x2641 - - "♂": [t: "male"] # 0x2642 - - "♃": [t: "jupiter"] # 0x2643 - - "♄": [t: "saturn"] # 0x2644 - - "♅": [t: "uranus"] # 0x2645 - - "♆": [t: "neptune"] # 0x2646 - - "♇": [t: "pluto"] # 0x2647 - - "♈": [t: "aries"] # 0x2648 - - "♉": [t: "taurus"] # 0x2649 - - "♩": [t: "quarter note"] # 0x2669 - - "♭": [t: "flat"] # 0x266d - - "♮": [t: "natural"] # 0x266e - - "♯": [t: "sharp"] # 0x266f - - "♠": [t: "black spade suit"] # 0x2660 - - "♡": [t: "white heart suit"] # 0x2661 - - "♢": [t: "white diamond suit"] # 0x2662 - - "♣": [t: "black club suit"] # 0x2663 - - "♤": [t: "white spade suit"] # 0x2664 - - "♥": [t: "black heart suit"] # 0x2665 - - "♦": [t: "black diamond suit"] # 0x2666 - - "♧": [t: "white club suit"] # 0x2667 - - "⚀": [t: "die face 1"] # 0x2680 - - "⚁": [t: "die face 2"] # 0x2681 - - "⚂": [t: "die face 3"] # 0x2682 - - "⚃": [t: "die face 4"] # 0x2683 - - "⚄": [t: "die face 5"] # 0x2684 - - "⚅": [t: "die face 6"] # 0x2685 - - "⚆": [t: "white circle with dot right"] # 0x2686 - - "⚇": [t: "white circle wiht two dots"] # 0x2687 - - "⚈": [t: "black circle with dot right"] # 0x2688 - - "⚉": [t: "black circle with two dots"] # 0x2689 - - "⚪": [t: "medium white circle"] # 0x26aa - - "⚫": [t: "medium black circle"] # 0x26ab - - "⚬": [t: "medium small white circle"] # 0x26ac - - "⚲": [t: "neuter"] # 0x26b2 - - "✓": [t: "check mark"] # 0x2713 - - "✠": [t: "maltese cross"] # 0x2720 - - "✪": [t: "circled white star"] # 0x272a - - "✶": [t: "six pionted black star"] # 0x2736 - - "❨": [t: "medium left parentheses ornament"] # 0x2768 - - "❩": [t: "medium right parentheses ornament"] # 0x2769 - - "❪": [t: "medium flattened left parentheses ornament"] # 0x276a - - "❫": [t: "medium flattened right parentheses ornament"] # 0x276b - - "❬": [t: "medium left-pointing angle bracket ornament"] # 0x276c - - "❭": [t: "medium right-pointing angle bracket ornament"] # 0x276d - - "❮": [t: "heavy left-pointing angle quotation mark ornament"] # 0x276e - - "❯": [t: "heavy right-pointing angle quotation mark ornament"] # 0x276f - - "❰": [t: "heavy left-pointing angle bracket ornament"] # 0x2770 - - "❱": [t: "heavy right-pointing angle bracket ornament"] # 0x2771 - - "❲": [t: "light left tortoise shell bracket ornament"] # 0x2772 - - "❳": [t: "light right tortoise shell bracket ornament"] # 0x2773 - - "❴": [t: "medium left brace ornament"] # 0x2774 - - "❵": [t: "medium right brace ornament"] # 0x2775 - - "❶": [t: "black circled one"] # 0x2776 - - "❷": [t: "black circled two"] # 0x2777 - - "❸": [t: "black circled three"] # 0x2778 - - "❹": [t: "black circled four"] # 0x2779 - - "❺": [t: "black circled five"] # 0x277a - - "❻": [t: "black circled six"] # 0x277b - - "❼": [t: "black circled seven"] # 0x277c - - "❽": [t: "black circled eight"] # 0x277d - - "❾": [t: "black circled nine"] # 0x277e - - "❿": [t: "black circled ten"] # 0x277f - - "➀": [t: "circled sans serif one"] # 0x2780 - - "➁": [t: "circled sans serif two"] # 0x2781 - - "➂": [t: "circled sans serif three"] # 0x2782 - - "➃": [t: "circled sans serif four"] # 0x2783 - - "➄": [t: "circled sans serif five"] # 0x2784 - - "➅": [t: "circled sans serif six"] # 0x2785 - - "➆": [t: "circled sans serif seven"] # 0x2786 - - "➇": [t: "circled sans serif eight"] # 0x2787 - - "➈": [t: "circled sans serif nine"] # 0x2788 - - "➉": [t: "circled sans serif ten"] # 0x2789 - - "➊": [t: "black circled sans serif one"] # 0x278a - - "➋": [t: "black circled sans serif two"] # 0x278b - - "➌": [t: "black circled sans serif three"] # 0x278c - - "➍": [t: "black circled sans serif four"] # 0x278d - - "➎": [t: "black circled sans serif five"] # 0x278e - - "➏": [t: "black circled sans serif six"] # 0x278f - - "➐": [t: "black circled sans serif seven"] # 0x2790 - - "➑": [t: "black circled sans serif eight"] # 0x2791 - - "➒": [t: "black circled sans serif nine"] # 0x2792 - - "➓": [t: "black circled sans serif ten"] # 0x2793 - - "➔": [t: "heavy wide-headed right arrow"] # 0x2794 - - "➕": [t: "heavy plus sign"] # 0x2795 - - "➖": [t: "heavy minus sign"] # 0x2796 - - "➗": [t: "heavy division sign"] # 0x2797 - - "➘": [t: "heavy south east arrow"] # 0x2798 - - "➙": [t: "heavy right arrow"] # 0x2799 - - "➚": [t: "heavy north east arrow"] # 0x279a - - "➛": [t: "drafting point right arrow"] # 0x279b - - "➜": [t: "heavy round-tipped right arrow"] # 0x279c - - "➝": [t: "triangle-headed right arrow"] # 0x279d - - "➞": [t: "heavy triangle-headed right arrow"] # 0x279e - - "➟": [t: "dashed triangle-headed right arrow"] # 0x279f - - "➠": [t: "heavy dashed triangle-headed right arrow"] # 0x27a0 - - "➡": [t: "black right arrow"] # 0x27a1 - - "➢": [t: "three d top lighted right arrow"] # 0x27a2 - - "➣": [t: "three d bottom lighted right arrow"] # 0x27a3 - - "➤": [t: "black right arrowhead"] # 0x27a4 - - "➥": [t: "heavy black curved down and right arrow"] # 0x27a5 - - "➦": [t: "heavy black curved up and right arrow"] # 0x27a6 - - "➧": [t: "squat black right arrow"] # 0x27a7 - - "➨": [t: "heavy concave-pointed black right arrow"] # 0x27a8 - - "➩": [t: "right-shaded white right arrow"] # 0x27a9 - - "➪": [t: "left-shaded white right arrow"] # 0x27aa - - "➫": [t: "back-tilted shadowed white right arrow"] # 0x27ab - - "➬": [t: "front-tilted shadowed white right arrow"] # 0x27ac - - "➭": [t: "heavy lower right-shadowed white right arrow"] # 0x27ad - - "➮": [t: "heavy upper right-shadowed white right arrow"] # 0x27ae - - "➯": [t: "notched lower right-shadowed white right arrow"] # 0x27af - - "➱": [t: "notched upper right-shadowed white right arrow"] # 0x27b1 - - "➲": [t: "circled heavy white right arrow"] # 0x27b2 - - "➳": [t: "white-feathered right arrow"] # 0x27b3 - - "➴": [t: "black-feathered south east arrow"] # 0x27b4 - - "➵": [t: "black-feathered right arrow"] # 0x27b5 - - "➶": [t: "black-feathered north east arrow"] # 0x27b6 - - "➷": [t: "heavy black-feathered south east arrow"] # 0x27b7 - - "➸": [t: "heavy black-feathered right arrow"] # 0x27b8 - - "➹": [t: "heavy black-feathered north east arrow"] # 0x27b9 - - "➺": [t: "teradrop-barbed right arrow"] # 0x27ba - - "➻": [t: "heavy teardrop-shanked right arrow"] # 0x27bb - - "➼": [t: "wedge-tailed right arrow"] # 0x27bc - - "➽": [t: "heavy wedge-tailed right arrow"] # 0x27bd - - "➾": [t: "open-outlined right arrow"] # 0x27be - - "⟀": [t: "three dimensional angle"] # 0x27c0 - - "⟁": [t: "white triangle containing small white triangle"] # 0x27c1 - - "⟂": # 0x27c2 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "perpendicular to" - - "⟃": # 0x27c3 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "an open subset of" - - "⟄": # 0x27c4 - - test: - if: "$Verbosity!='Terse'" - then: [t: "is"] - - t: "an open superset of" - - "⟅": [t: "left s-shaped bag delimiter"] # 0x27c5 - - "⟆": [t: "right s-shaped bag delimiter"] # 0x27c6 - - "⟇": [t: "or with dot inside"] # 0x27c7 - - "⟈": [t: "reverse solidus preceding subset"] # 0x27c8 - - "⟉": [t: "superset preceding solidus"] # 0x27c9 - - "⟊": [t: "vertical bar with horizontal stroke"] # 0x27ca - - "⟋": [t: "mathematical rising diagonal"] # 0x27cb - - "⟌": [t: "long division"] # 0x27cc - - "⟍": [t: "mathematical falling diagonal"] # 0x27cd - - "⟎": [t: "squared logical and"] # 0x27ce - - "⟏": [t: "squared logical or"] # 0x27cf - - "⟐": [t: "white diamond with centered dot"] # 0x27d0 - - "⟑": [t: "and with dot"] # 0x27d1 - - "⟒": [t: "element of opening up"] # 0x27d2 - - "⟓": [t: "lower right corner with dot"] # 0x27d3 - - "⟔": [t: "upper left corner with dot"] # 0x27d4 - - "⟕": [t: "left outer join"] # 0x27d5 - - "⟖": [t: "right outer join"] # 0x27d6 - - "⟗": [t: "full outer join"] # 0x27d7 - - "⟘": [t: "large up tack"] # 0x27d8 - - "⟙": [t: "large down tack"] # 0x27d9 - - "⟚": [t: "left and right double turnstile"] # 0x27da - - "⟛": [t: "left and right tack"] # 0x27db - - "⟜": [t: "left multimap"] # 0x27dc - - "⟝": [t: "long right tack"] # 0x27dd - - "⟞": [t: "long left tack"] # 0x27de - - "⟟": [t: "up tack with circle above"] # 0x27df - - "⟠": [t: "lozenge divided by horizontal rule"] # 0x27e0 - - "⟡": [t: "white concave sided diamond"] # 0x27e1 - - "⟢": [t: "white concave sided diamond with left tick"] # 0x27e2 - - "⟣": [t: "white concave sided diamond with right tick"] # 0x27e3 - - "⟤": [t: "white square with left tick"] # 0x27e4 - - "⟥": [t: "white square with right tick"] # 0x27e5 - - "⟦": [t: "left white square bracket"] # 0x27e6 - - "⟧": [t: "right white square bracket"] # 0x27e7 - - "⟨": [t: "left angle bracket"] # 0x27e8 - - "⟩": [t: "right angle bracket"] # 0x27e9 - - "⟪": [t: "left double angle bracket"] # 0x27ea - - "⟫": [t: "right double angle bracket"] # 0x27eb - - "⟬": [t: "left white tortoise shell bracket"] # 0x27ec - - "⟭": [t: "right white tortoise shell bracket"] # 0x27ed - - "⟮": [t: "left flattened parenthesis"] # 0x27ee - - "⟯": [t: "right flattened parenthesis"] # 0x27ef - - "⟰": [t: "up quadruple arrow"] # 0x27f0 - - "⟱": [t: "down quadruple arrow"] # 0x27f1 - - "⟲": [t: "anticlockwise gapped circle arrow"] # 0x27f2 - - "⟳": [t: "clockwise gapped circle arrow"] # 0x27f3 - - "⟴": [t: "right arrow with circled plus"] # 0x27f4 - - "⟵": [t: "long left arrow"] # 0x27f5 - - "⟶": [t: "long right arrow"] # 0x27f6 - - "⟷": [t: "long left right arrow"] # 0x27f7 - - "⟸": [t: "long left double arrow"] # 0x27f8 - - "⟹": [t: "implies"] # 0x27f9 - - "⟺": [t: "if and only if"] # 0x27fa - - "⟻": [t: "long left arrow from bar"] # 0x27fb - - "⟼": [t: "long right arrow from bar"] # 0x27fc - - "⟽": [t: "long left double arrow from bar"] # 0x27fd - - "⟾": [t: "long right double arrow from bar"] # 0x27fe - - "⟿": [t: "long right squiggle arrow"] # 0x27ff - - "⤀": [t: "right two headed arrow with vertical stroke"] # 0x2900 - - "⤁": [t: "right two headed arrow with double vertical stroke"] # 0x2901 - - "⤂": [t: "left double arrow with vertical stroke"] # 0x2902 - - "⤃": [t: "right double arrow with vertical stroke"] # 0x2903 - - "⤄": [t: "left right double arrow with vertical stroke"] # 0x2904 - - "⤅": [t: "right two headed arrow from bar"] # 0x2905 - - "⤆": [t: "left double arrow from bar"] # 0x2906 - - "⤇": [t: "right double arrow from bar"] # 0x2907 - - "⤈": [t: "down arrow with horizontal stroke"] # 0x2908 - - "⤉": [t: "up arrow with horizontal stroke"] # 0x2909 - - "⤊": [t: "up triple arrow"] # 0x290a - - "⤋": [t: "down triple arrow"] # 0x290b - - "⤌": [t: "left double dash arrow"] # 0x290c - - "⤍": [t: "right double dash arrow"] # 0x290d - - "⤎": [t: "left triple dash arrow"] # 0x290e - - "⤏": [t: "right triple dash arrow"] # 0x290f - - "⤐": [t: "right two headed triple dash arrow"] # 0x2910 - - "⤑": [t: "right arrow with dotted stem"] # 0x2911 - - "⤒": [t: "up arrow to bar"] # 0x2912 - - "⤓": [t: "down arrow to bar"] # 0x2913 - - "⤔": [t: "right arrow with tail and vertical stroke"] # 0x2914 - - "⤕": [t: "right arrow with tail and double vertical stroke"] # 0x2915 - - "⤖": [t: "right two headed arrow with tail"] # 0x2916 - - "⤗": [t: "right two headed arrow with tail with vertical stroke"] # 0x2917 - - "⤘": [t: "right two headed arrow with tail with double vertical stroke"] # 0x2918 - - "⤙": [t: "left arrow tail"] # 0x2919 - - "⤚": [t: "right arrow tail"] # 0x291a - - "⤛": [t: "left double arrow tail"] # 0x291b - - "⤜": [t: "right double arrow tail"] # 0x291c - - "⤝": [t: "left arrow to filled diamond"] # 0x291d - - "⤞": [t: "right arrow to filled diamond"] # 0x291e - - "⤟": [t: "left arrow from bar to filled diamond"] # 0x291f - - "⤠": [t: "right arrow from bar to filled diamond"] # 0x2920 - - "⤡": [t: "north west and south east arrow"] # 0x2921 - - "⤢": [t: "north east and south west arrow"] # 0x2922 - - "⤣": [t: "north west arrow with hook"] # 0x2923 - - "⤤": [t: "north east arrow with hook"] # 0x2924 - - "⤥": [t: "south east arrow with hook"] # 0x2925 - - "⤦": [t: "south west arrow with hook"] # 0x2926 - - "⤧": [t: "north west arrow and north east arrow"] # 0x2927 - - "⤨": [t: "north east arrow and south east arrow"] # 0x2928 - - "⤩": [t: "south east arrow and south west arrow"] # 0x2929 - - "⤪": [t: "south west arrow and north west arrow"] # 0x292a - - "⤫": [t: "rising diagonal crossing falling diagonal"] # 0x292b - - "⤬": [t: "falling diagonal crossing rising diagonal"] # 0x292c - - "⤭": [t: "south east arrow crossing north east arrow"] # 0x292d - - "⤮": [t: "north east arrow crossing south east arrow"] # 0x292e - - "⤯": [t: "falling diagonal crossing north east arrow"] # 0x292f - - "⤰": [t: "rising diagonal crossing south east arrow"] # 0x2930 - - "⤱": [t: "north east arrow crossing north west arrow"] # 0x2931 - - "⤲": [t: "north west arrow crossing north east arrow"] # 0x2932 - - "⤳": [t: "wave arrow pointing directly right"] # 0x2933 - - "⤴": [t: "arrow pointing right then curving up"] # 0x2934 - - "⤵": [t: "arrow pointing right then curving down"] # 0x2935 - - "⤶": [t: "arrow pointing down then curving left"] # 0x2936 - - "⤷": [t: "arrow pointing down then curving right"] # 0x2937 - - "⤸": [t: "right side arc clockwise arrow"] # 0x2938 - - "⤹": [t: "left side arc anticlockwise arrow"] # 0x2939 - - "⤺": [t: "top arc anticlockwise arrow"] # 0x293a - - "⤻": [t: "bottom arc anticlockwise arrow"] # 0x293b - - "⤼": [t: "top arc clockwise arrow with minus"] # 0x293c - - "⤽": [t: "top arc anticlockwise arrow with plus"] # 0x293d - - "⤾": [t: "lower right semicircular clockwise arrow"] # 0x293e - - "⤿": [t: "lower left semicircular anticlockwise arrow"] # 0x293f - - "⥀": [t: "anticlockwise closed circle arrow"] # 0x2940 - - "⥁": [t: "clockwise closed circle arrow"] # 0x2941 - - "⥂": [t: "right arrow above short left arrow"] # 0x2942 - - "⥃": [t: "left arrow above short right arrow"] # 0x2943 - - "⥄": [t: "short right arrow above left arrow"] # 0x2944 - - "⥅": [t: "right arrow with plus below"] # 0x2945 - - "⥆": [t: "left arrow with plus below"] # 0x2946 - - "⥇": [t: "right arrow through x"] # 0x2947 - - "⥈": [t: "left right arrow through circle"] # 0x2948 - - "⥉": [t: "up two headed arrow from circle"] # 0x2949 - - "⥊": [t: "left barb up right barb down harpoon"] # 0x294a - - "⥋": [t: "left barb down right barb up harpoon"] # 0x294b - - "⥌": [t: "up barb right down barb left harpoon"] # 0x294c - - "⥍": [t: "up barb left down barb right harpoon"] # 0x294d - - "⥎": [t: "left barb up right barb up harpoon"] # 0x294e - - "⥏": [t: "up barb right down barb right harpoon"] # 0x294f - - "⥐": [t: "left barb down right barb down harpoon"] # 0x2950 - - "⥑": [t: "up barb left down barb left harpoon"] # 0x2951 - - "⥒": [t: "left harpoon with barb up to bar"] # 0x2952 - - "⥓": [t: "right harpoon with barb up to bar"] # 0x2953 - - "⥔": [t: "up harpoon with barb right to bar"] # 0x2954 - - "⥕": [t: "down harpoon with barb right to bar"] # 0x2955 - - "⥖": [t: "left harpoon with barb down to bar"] # 0x2956 - - "⥗": [t: "right harpoon with barb down to bar"] # 0x2957 - - "⥘": [t: "up harpoon with barb left to bar"] # 0x2958 - - "⥙": [t: "down harpoon with barb left to bar"] # 0x2959 - - "⥚": [t: "left harpoon with barb up from bar"] # 0x295a - - "⥛": [t: "right harpoon with barb up from bar"] # 0x295b - - "⥜": [t: "up harpoon with barb right from bar"] # 0x295c - - "⥝": [t: "down harpoon with barb right from bar"] # 0x295d - - "⥞": [t: "left harpoon with barb down from bar"] # 0x295e - - "⥟": [t: "right harpoon with barb down from bar"] # 0x295f - - "⥠": [t: "up harpoon with barb left from bar"] # 0x2960 - - "⥡": [t: "down harpoon with barb left from bar"] # 0x2961 - - "⥢": [t: "left harpoon with barb up above left harpoon with barb down"] # 0x2962 - - "⥣": [t: "up harpoon with barb left beside up harpoon with barb right"] # 0x2963 - - "⥤": [t: "right harpoon with barb up above right harpoon with barb down"] # 0x2964 - - "⥥": [t: "down harpoon with barb left beside down harpoon with barb right"] # 0x2965 - - "⥦": [t: "left harpoon with barb up above right harpoon with barb up"] # 0x2966 - - "⥧": [t: "left harpoon with barb down above right harpoon with barb down"] # 0x2967 - - "⥨": [t: "right harpoon with barb up above left harpoon with barb up"] # 0x2968 - - "⥩": [t: "right harpoon with barb down above left harpoon with barb down"] # 0x2969 - - "⥪": [t: "left harpoon with barb up above long dash"] # 0x296a - - "⥫": [t: "left harpoon with barb down below long dash"] # 0x296b - - "⥬": [t: "right harpoon with barb up above long dash"] # 0x296c - - "⥭": [t: "right harpoon with barb down below long dash"] # 0x296d - - "⥮": [t: "up harpoon with barb left beside down harpoon with barb right"] # 0x296e - - "⥯": [t: "down harpoon with barb left beside up harpoon with barb right"] # 0x296f - - "⥰": [t: "right double arrow with rounded head"] # 0x2970 - - "⥱": [t: "equals above right arrow"] # 0x2971 - - "⥲": [t: "tilde operator above right arrow"] # 0x2972 - - "⥳": [t: "left arrow above tilde operator"] # 0x2973 - - "⥴": [t: "right arrow above tilde operator"] # 0x2974 - - "⥵": [t: "right arrow above almost equal to"] # 0x2975 - - "⥶": [t: "less than above left arrow"] # 0x2976 - - "⥷": [t: "left arrow through less than"] # 0x2977 - - "⥸": [t: "greater than above right arrow"] # 0x2978 - - "⥹": [t: "subset above right arrow"] # 0x2979 - - "⥺": [t: "left arrow through subset"] # 0x297a - - "⥻": [t: "superset above left arrow"] # 0x297b - - "⥼": [t: "left fish tail"] # 0x297c - - "⥽": [t: "right fish tail"] # 0x297d - - "⥾": [t: "up fish tail"] # 0x297e - - "⥿": [t: "down fish tail"] # 0x297f - - "⦀": [t: "triple vertical bar delimiter"] # 0x2980 - - "⦁": [t: "z notation spot"] # 0x2981 - - "⦂": [t: "z notation type colon"] # 0x2982 - - "⦃": [t: "left white brace"] # 0x2983 - - "⦄": [t: "right white brace"] # 0x2984 - - "⦅": [t: "left white parenthesis"] # 0x2985 - - "⦆": [t: "right white parenthesis"] # 0x2986 - - "⦇": [t: "z notation left image bracket"] # 0x2987 - - "⦈": [t: "z notation right image bracket"] # 0x2988 - - "⦉": [t: "z notation left binding bracket"] # 0x2989 - - "⦊": [t: "z notation right binding bracket"] # 0x298a - - "⦋": [t: "left square bracket with underbar"] # 0x298b - - "⦌": [t: "right square bracket with underbar"] # 0x298c - - "⦍": [t: "left square bracket with tick in top corner"] # 0x298d - - "⦎": [t: "right square bracket with tick in bottom corner"] # 0x298e - - "⦏": [t: "left square bracket with tick in bottom corner"] # 0x298f - - "⦐": [t: "right square bracket with tick in top corner"] # 0x2990 - - "⦑": [t: "left angle bracket with dot"] # 0x2991 - - "⦒": [t: "right angle bracket with dot"] # 0x2992 - - "⦓": [t: "left arc less than bracket"] # 0x2993 - - "⦔": [t: "right arc greater than bracket"] # 0x2994 - - "⦕": [t: "double left arc greater than bracket"] # 0x2995 - - "⦖": [t: "double right arc less than bracket"] # 0x2996 - - "⦗": [t: "left black tortoise shell bracket"] # 0x2997 - - "⦘": [t: "right black tortoise shell bracket"] # 0x2998 - - "⦙": [t: "dotted fence"] # 0x2999 - - "⦚": [t: "vertical zigzag line"] # 0x299a - - "⦛": [t: "measured angle opening left"] # 0x299b - - "⦜": [t: "right angle variant with square"] # 0x299c - - "⦝": [t: "measured right angle with dot"] # 0x299d - - "⦞": [t: "angle with s inside"] # 0x299e - - "⦟": [t: "acute angle"] # 0x299f - - "⦠": [t: "spherical angle opening left"] # 0x29a0 - - "⦡": [t: "spherical angle opening up"] # 0x29a1 - - "⦢": [t: "turned angle"] # 0x29a2 - - "⦣": [t: "reversed angle"] # 0x29a3 - - "⦤": [t: "angle with underbar"] # 0x29a4 - - "⦥": [t: "reversed angle with underbar"] # 0x29a5 - - "⦦": [t: "oblique angle opening up"] # 0x29a6 - - "⦧": [t: "oblique angle opening down"] # 0x29a7 - - "⦨": [t: "measured angle with open arm ending in arrow pointing up and to the right"] # 0x29a8 - - "⦩": [t: "measured angle with open arm ending in arrow pointing up and to the left"] # 0x29a9 - - "⦪": [t: "measured angle with open arm ending in arrow pointing down and to the right"] # 0x29aa - - "⦫": [t: "measured angle with open arm ending in arrow pointing down and to the left"] # 0x29ab - - "⦬": [t: "measured angle with open arm ending in arrow pointing right and up"] # 0x29ac - - "⦭": [t: "measured angle with open arm ending in arrow pointing left and up"] # 0x29ad - - "⦮": [t: "measured angle with open arm ending in arrow pointing right and down"] # 0x29ae - - "⦯": [t: "measured angle with open arm ending in arrow pointing left and down"] # 0x29af - - "⦰": [t: "reversed empty set"] # 0x29b0 - - "⦱": [t: "empty set with overbar"] # 0x29b1 - - "⦲": [t: "empty set with small circle above"] # 0x29b2 - - "⦳": [t: "empty set with right arrow above"] # 0x29b3 - - "⦴": [t: "empty set with left arrow above"] # 0x29b4 - - "⦵": [t: "circle with horizontal bar"] # 0x29b5 - - "⦶": [t: "circled vertical bar"] # 0x29b6 - - "⦷": [t: "circled parallel"] # 0x29b7 - - "⦸": [t: "circled reverse solidus"] # 0x29b8 - - "⦹": [t: "circled perpendicular"] # 0x29b9 - - "⦺": [t: "circled divided by horizontal bar and top half divided by vertical bar"] # 0x29ba - - "⦻": [t: "circle with superimposed x"] # 0x29bb - - "⦼": [t: "circled anticlockwise rotated division sign"] # 0x29bc - - "⦽": [t: "up arrow through circle"] # 0x29bd - - "⦾": [t: "circled white bullet"] # 0x29be - - "⦿": [t: "circled bullet"] # 0x29bf - - "⧀": [t: "circled less than"] # 0x29c0 - - "⧁": [t: "circled greater than"] # 0x29c1 - - "⧂": [t: "circle with small circle to the right"] # 0x29c2 - - "⧃": [t: "circle with two horizontal strokes to the right"] # 0x29c3 - - "⧄": [t: "squared rising diagonal slash"] # 0x29c4 - - "⧅": [t: "squared falling diagonal slash"] # 0x29c5 - - "⧆": [t: "squared asterisk"] # 0x29c6 - - "⧇": [t: "squared small circle"] # 0x29c7 - - "⧈": [t: "squared square"] # 0x29c8 - - "⧉": [t: "two joined squares"] # 0x29c9 - - "⧊": [t: "triangle with dot above"] # 0x29ca - - "⧋": [t: "triangle with underbar"] # 0x29cb - - "⧌": [t: "s in triangle"] # 0x29cc - - "⧍": [t: "triangle with serifs at bottom"] # 0x29cd - - "⧎": [t: "right triangle above left triangle"] # 0x29ce - - "⧏": [t: "left triangle beside vertical bar"] # 0x29cf - - "⧐": [t: "vertical bar beside right triangle"] # 0x29d0 - - "⧑": [t: "bowtie with left half black"] # 0x29d1 - - "⧒": [t: "bowtie with right half black"] # 0x29d2 - - "⧓": [t: "black bowtie"] # 0x29d3 - - "⧔": [t: "times with left half black"] # 0x29d4 - - "⧕": [t: "times with right half black"] # 0x29d5 - - "⧖": [t: "white hourglass"] # 0x29d6 - - "⧗": [t: "black hourglass"] # 0x29d7 - - "⧘": [t: "left wiggly fence"] # 0x29d8 - - "⧙": [t: "right wiggly fence"] # 0x29d9 - - "⧚": [t: "left double wiggly fence"] # 0x29da - - "⧛": [t: "right double wiggly fence"] # 0x29db - - "⧜": [t: "incomplete infinity"] # 0x29dc - - "⧝": [t: "tie over infinity"] # 0x29dd - - "⧞": [t: "infinity negated with vertical bar"] # 0x29de - - "⧟": [t: "double-ended multimap"] # 0x29df - - "⧠": [t: "square with contoured outline"] # 0x29e0 - - "⧡": [t: "increases as"] # 0x29e1 - - "⧢": [t: "shuffle product"] # 0x29e2 - - "⧣": [t: "equals sign and slanted parallel"] # 0x29e3 - - "⧤": [t: "equals sign and slanted parallel with tilde above"] # 0x29e4 - - "⧥": [t: "identical to and slanted parallel"] # 0x29e5 - - "⧦": [t: "gleich stark"] # 0x29e6 - - "⧧": [t: "thermodynamic"] # 0x29e7 - - "⧨": [t: "down pointing triangle with left half black"] # 0x29e8 - - "⧩": [t: "down pointing triangle with right half black"] # 0x29e9 - - "⧪": [t: "black diamond with down arrow"] # 0x29ea - - "⧫": [t: "black lozenge"] # 0x29eb - - "⧬": [t: "white circle with down arrow"] # 0x29ec - - "⧭": [t: "black circle with down arrow"] # 0x29ed - - "⧮": [t: "error-barred white square"] # 0x29ee - - "⧯": [t: "error-barred black square"] # 0x29ef - - "⧰": [t: "error-barred white diamond"] # 0x29f0 - - "⧱": [t: "error-barred black diamond"] # 0x29f1 - - "⧲": [t: "error-barred white circle"] # 0x29f2 - - "⧳": [t: "error-barred black circle"] # 0x29f3 - - "⧴": [t: "rule-delayed"] # 0x29f4 - - "⧵": [t: "reverse solidus operator"] # 0x29f5 - - "⧶": [t: "solidus with overbar"] # 0x29f6 - - "⧷": [t: "reverse solidus with horizontal stroke"] # 0x29f7 - - "⧸": [t: "big solidus"] # 0x29f8 - - "⧹": [t: "big reverse solidus"] # 0x29f9 - - "⧺": [t: "double plus"] # 0x29fa - - "⧻": [t: "triple plus"] # 0x29fb - - "⧼": [t: "left pointing curved angle bracket"] # 0x29fc - - "⧽": [t: "right pointing curved angle bracket"] # 0x29fd - - "⧾": [t: "tiny"] # 0x29fe - - "⧿": [t: "miny"] # 0x29ff - - "⨀": [t: "circled dot operator"] # 0x2a00 - - "⨁": [t: "circled plus operator"] # 0x2a01 - - "⨂": [t: "circled times operator"] # 0x2a02 - - "⨃": [t: "union operator with dot"] # 0x2a03 - - "⨄": [t: "union operator with plus"] # 0x2a04 - - "⨅": [t: "square intersection operator"] # 0x2a05 - - "⨆": [t: "square union operator"] # 0x2a06 - - "⨇": [t: "two logical and operator"] # 0x2a07 - - "⨈": [t: "two logical or operator"] # 0x2a08 - - "⨉": [t: "times operator"] # 0x2a09 - - "⨊": [t: "modulo two sum"] # 0x2a0a - - "⨋": [t: "summation with integral"] # 0x2a0b - - "⨌": [t: "quadruple integral operator"] # 0x2a0c - - "⨍": [t: "finite part integral"] # 0x2a0d - - "⨎": [t: "integral with double stroke"] # 0x2a0e - - "⨏": [t: "integral average with slash"] # 0x2a0f - - "⨐": [t: "circulation function"] # 0x2a10 - - "⨑": [t: "anticlockwise integration"] # 0x2a11 - - "⨒": [t: "line integration with rectangular path around pole"] # 0x2a12 - - "⨓": [t: "line integration with semicircular path around pole"] # 0x2a13 - - "⨔": [t: "line integration not including the pole"] # 0x2a14 - - "⨕": [t: "integral around a point operator"] # 0x2a15 - - "⨖": [t: "quaternion integral operator"] # 0x2a16 - - "⨗": [t: "integral with left arrow with hook"] # 0x2a17 - - "⨘": [t: "integral with times sign"] # 0x2a18 - - "⨙": [t: "integral with intersection"] # 0x2a19 - - "⨚": [t: "integral with union"] # 0x2a1a - - "⨛": [t: "integral with overbar"] # 0x2a1b - - "⨜": [t: "integral with underbar"] # 0x2a1c - - "⨝": [t: "join"] # 0x2a1d - - "⨞": [t: "large left triangle operator"] # 0x2a1e - - "⨟": [t: "z notation schema composition"] # 0x2a1f - - "⨠": [t: "z notation schema piping"] # 0x2a20 - - "⨡": [t: "z notation schema projection"] # 0x2a21 - - "⨢": [t: "plus sign with circle above"] # 0x2a22 - - "⨣": [t: "plus sign with circumflex accent above"] # 0x2a23 - - "⨤": [t: "plus sign with tilde above"] # 0x2a24 - - "⨥": [t: "plus sign with dot below"] # 0x2a25 - - "⨦": [t: "plus sign with tilde below"] # 0x2a26 - - "⨧": [t: "plus sign with subscript two"] # 0x2a27 - - "⨨": [t: "plus sign with black triangle"] # 0x2a28 - - "⨩": [t: "minus sign with comma above"] # 0x2a29 - - "⨪": [t: "minus sign with dot below"] # 0x2a2a - - "⨫": [t: "minus sign with falling dots"] # 0x2a2b - - "⨬": [t: "minus sign with rising dots"] # 0x2a2c - - "⨭": [t: "plus sign in left half circle"] # 0x2a2d - - "⨮": [t: "plus sign in right half circle"] # 0x2a2e - - "⨯": # 0x2a2f - - test: - if: "$Verbosity='Terse'" - then: [t: "cross"] - else: [t: "cross product"] - - "⨰": [t: "multiplication sign with dot above"] # 0x2a30 - - "⨱": [t: "multiplication sign with underbar"] # 0x2a31 - - "⨲": [t: "semidirect product with bottom closed"] # 0x2a32 - - "⨳": [t: "smash product"] # 0x2a33 - - "⨴": [t: "multiplication sign in left half circle"] # 0x2a34 - - "⨵": [t: "multiplication sign in right half circle"] # 0x2a35 - - "⨶": [t: "circled multiplication sign with circumflex accent"] # 0x2a36 - - "⨷": [t: "multiplication sign in double circle"] # 0x2a37 - - "⨸": [t: "circled division sign"] # 0x2a38 - - "⨹": [t: "plus sign in triangle"] # 0x2a39 - - "⨺": [t: "minus sign in triangle"] # 0x2a3a - - "⨻": [t: "multiplication sign in triangle"] # 0x2a3b - - "⨼": [t: "interior product"] # 0x2a3c - - "⨽": [t: "righthand interior product"] # 0x2a3d - - "⨾": [t: "z notation relational composition"] # 0x2a3e - - "⨿": [t: "amalgamation or coproduct"] # 0x2a3f - - "⩀": [t: "intersection with dot"] # 0x2a40 - - "⩁": [t: "union with minus sign"] # 0x2a41 - - "⩂": [t: "union with overbar"] # 0x2a42 - - "⩃": [t: "intersection with overbar"] # 0x2a43 - - "⩄": [t: "intersection with logical and"] # 0x2a44 - - "⩅": [t: "union with logical or"] # 0x2a45 - - "⩆": [t: "union above intersection"] # 0x2a46 - - "⩇": [t: "intersection above union"] # 0x2a47 - - "⩈": [t: "union above bar above intersection"] # 0x2a48 - - "⩉": [t: "intersection above bar above union"] # 0x2a49 - - "⩊": [t: "union beside and joined with union"] # 0x2a4a - - "⩋": [t: "intersection beside and joined with intersection"] # 0x2a4b - - "⩌": [t: "closed union with serifs"] # 0x2a4c - - "⩍": [t: "closed intersection with serifs"] # 0x2a4d - - "⩎": [t: "double square intersection"] # 0x2a4e - - "⩏": [t: "double square union"] # 0x2a4f - - "⩐": [t: "closed union with serifs and smash product"] # 0x2a50 - - "⩑": [t: "logical and with dot above"] # 0x2a51 - - "⩒": [t: "logical or with dot above"] # 0x2a52 - - "⩓": [t: "double logical and"] # 0x2a53 - - "⩔": [t: "double logical or"] # 0x2a54 - - "⩕": [t: "two intersecting logical and"] # 0x2a55 - - "⩖": [t: "two intersecting logical or"] # 0x2a56 - - "⩗": [t: "sloping large or"] # 0x2a57 - - "⩘": [t: "sloping large and"] # 0x2a58 - - "⩙": [t: "logical or overlapping logical and"] # 0x2a59 - - "⩚": [t: "logical and with middle stem"] # 0x2a5a - - "⩛": [t: "logical or with middle stem"] # 0x2a5b - - "⩜": [t: "logical and with horizontal dash"] # 0x2a5c - - "⩝": [t: "logical or with horizontal dash"] # 0x2a5d - - "⩞": [t: "logical and with double overbar"] # 0x2a5e - - "⩟": [t: "logical and with underbar"] # 0x2a5f - - "⩠": [t: "logical and with double underbar"] # 0x2a60 - - "⩡": [t: "small vee with underbar"] # 0x2a61 - - "⩢": [t: "logical or with double overbar"] # 0x2a62 - - "⩣": [t: "logical or with double underbar"] # 0x2a63 - - "⩤": [t: "z notation domain antirestriction"] # 0x2a64 - - "⩥": [t: "z notation range antirestriction"] # 0x2a65 - - "⩦": [t: "equals sign with dot below"] # 0x2a66 - - "⩧": [t: "identical with dot above"] # 0x2a67 - - "⩨": [t: "triple horizontal bar with double vertical stroke"] # 0x2a68 - - "⩩": [t: "triple horizontal bar with triple vertical stroke"] # 0x2a69 - - "⩪": [t: "tilde operator with dot above"] # 0x2a6a - - "⩫": [t: "tilde operator with rising dots"] # 0x2a6b - - "⩬": [t: "similar minus similar"] # 0x2a6c - - "⩭": [t: "congruent with dot above"] # 0x2a6d - - "⩮": [t: "equals with asterisk"] # 0x2a6e - - "⩯": [t: "almost equal to with circumflex accent"] # 0x2a6f - - "⩰": [t: "approximately equal to or equal to"] # 0x2a70 - - "⩱": [t: "equals sign above plus sign"] # 0x2a71 - - "⩲": [t: "plus sign above equals sign"] # 0x2a72 - - "⩳": [t: "equals sign above tilde operator"] # 0x2a73 - - "⩴": [t: "double colon equal"] # 0x2a74 - - "⩵": [t: "two consecutive equals signs"] # 0x2a75 - - "⩶": [t: "three consecutive equals signs"] # 0x2a76 - - "⩷": [t: "equals sign with two dots above and two dots below"] # 0x2a77 - - "⩸": [t: "equivalent with four dots above"] # 0x2a78 - - "⩹": [t: "less than with circle inside"] # 0x2a79 - - "⩺": [t: "greater than with circle inside"] # 0x2a7a - - "⩻": [t: "less than with question mark above"] # 0x2a7b - - "⩼": [t: "greater than with question mark above"] # 0x2a7c - - "⩽": [t: "less than or slanted equal to"] # 0x2a7d - - "⩾": [t: "greater than or slanted equal to"] # 0x2a7e - - "⩿": [t: "less than or slanted equal to with dot inside"] # 0x2a7f - - "⪀": [t: "greater than or slanted equal to with dot inside"] # 0x2a80 - - "⪁": [t: "less than or slanted equal to with dot above"] # 0x2a81 - - "⪂": [t: "greater than or slanted equal to with dot above"] # 0x2a82 - - "⪃": [t: "less than or slanted equal to with dot above right"] # 0x2a83 - - "⪄": [t: "greater than or slanted equal to with dot above left"] # 0x2a84 - - "⪅": [t: "less than or approximate"] # 0x2a85 - - "⪆": [t: "greater than or approximate"] # 0x2a86 - - "⪇": [t: "less than and single line not equal to"] # 0x2a87 - - "⪈": [t: "greater than and single line not equal to"] # 0x2a88 - - "⪉": [t: "less than and not approximate"] # 0x2a89 - - "⪊": [t: "greater than and not approximate"] # 0x2a8a - - "⪋": [t: "less than above double line equal above greater than"] # 0x2a8b - - "⪌": [t: "greater than above double line equal above less than"] # 0x2a8c - - "⪍": [t: "less than above similar or equal"] # 0x2a8d - - "⪎": [t: "greater than above similar or equal"] # 0x2a8e - - "⪏": [t: "less than above similar above greater than"] # 0x2a8f - - "⪐": [t: "greater than above similar above less than"] # 0x2a90 - - "⪑": [t: "less than above greater than above double line equal"] # 0x2a91 - - "⪒": [t: "greater than above less than above double line equal"] # 0x2a92 - - "⪓": [t: "less than above slanted equal above greater than above slanted equal"] # 0x2a93 - - "⪔": [t: "greater than above slanted equal above less than above slanted equal"] # 0x2a94 - - "⪕": [t: "slanted equal to or less than"] # 0x2a95 - - "⪖": [t: "slanted equal to or greater than"] # 0x2a96 - - "⪗": [t: "slanted equal to or less than with dot inside"] # 0x2a97 - - "⪘": [t: "slanted equal to or greater than with dot inside"] # 0x2a98 - - "⪙": [t: "double line equal to or less than"] # 0x2a99 - - "⪚": [t: "double line equal to or greater than"] # 0x2a9a - - "⪛": [t: "double line slanted equal to or less than"] # 0x2a9b - - "⪜": [t: "double line slanted equal to or greater than"] # 0x2a9c - - "⪝": [t: "similar or less than"] # 0x2a9d - - "⪞": [t: "similar or greater than"] # 0x2a9e - - "⪟": [t: "similar above less than above equals sign"] # 0x2a9f - - "⪠": [t: "similar above greater than above equals sign"] # 0x2aa0 - - "⪡": [t: "double nested less than"] # 0x2aa1 - - "⪢": [t: "double nested greater than"] # 0x2aa2 - - "⪣": [t: "double nested less than with underbar"] # 0x2aa3 - - "⪤": [t: "greater than overlapping less than"] # 0x2aa4 - - "⪥": [t: "greater than beside less than"] # 0x2aa5 - - "⪦": [t: "less than closed by curve"] # 0x2aa6 - - "⪧": [t: "greater than closed by curve"] # 0x2aa7 - - "⪨": [t: "less than closed by curve above slanted equal"] # 0x2aa8 - - "⪩": [t: "greater than closed by curve above slanted equal"] # 0x2aa9 - - "⪪": [t: "smaller than"] # 0x2aaa - - "⪫": [t: "larger than"] # 0x2aab - - "⪬": [t: "smaller than or equal to"] # 0x2aac - - "⪭": [t: "larger than or equal to"] # 0x2aad - - "⪮": [t: "equals sign with bumpy above"] # 0x2aae - - "⪯": [t: "precedes above single line equals sign"] # 0x2aaf - - "⪰": [t: "succeeds above single line equals sign"] # 0x2ab0 - - "⪱": [t: "precedes above single line not equal to"] # 0x2ab1 - - "⪲": [t: "succeeds above single line not equal to"] # 0x2ab2 - - "⪳": [t: "precedes above equals sign"] # 0x2ab3 - - "⪴": [t: "succeeds above equals sign"] # 0x2ab4 - - "⪵": [t: "precedes above not equal to"] # 0x2ab5 - - "⪶": [t: "succeeds above not equal to"] # 0x2ab6 - - "⪷": [t: "precedes above almost equal to"] # 0x2ab7 - - "⪸": [t: "succeeds above almost equal to"] # 0x2ab8 - - "⪹": [t: "precedes above not almost equal to"] # 0x2ab9 - - "⪺": [t: "succeeds above not almost equal to"] # 0x2aba - - "⪻": [t: "double precedes"] # 0x2abb - - "⪼": [t: "double succeeds"] # 0x2abc - - "⪽": [t: "subset with dot"] # 0x2abd - - "⪾": [t: "superset with dot"] # 0x2abe - - "⪿": [t: "subset with plus sign below"] # 0x2abf - - "⫀": [t: "superset with plus sign below"] # 0x2ac0 - - "⫁": [t: "subset with multiplication sign below"] # 0x2ac1 - - "⫂": [t: "superset with multiplication sign below"] # 0x2ac2 - - "⫃": [t: "subset of or equal to with dot above"] # 0x2ac3 - - "⫄": [t: "superset of or equal to with dot above"] # 0x2ac4 - - "⫅": [t: "subset of above equals sign"] # 0x2ac5 - - "⫆": [t: "superset of above equals sign"] # 0x2ac6 - - "⫇": [t: "subset of above tilde operator"] # 0x2ac7 - - "⫈": [t: "superset of above tilde operator"] # 0x2ac8 - - "⫉": [t: "subset of above almost equal to"] # 0x2ac9 - - "⫊": [t: "superset of above almost equal to"] # 0x2aca - - "⫋": [t: "subset above not equal to"] # 0x2acb - - "⫌": [t: "superset of above not equal to"] # 0x2acc - - "⫍": [t: "square left open box operator"] # 0x2acd - - "⫎": [t: "square right open box operator"] # 0x2ace - - "⫏": [t: "closed subset"] # 0x2acf - - "⫐": [t: "closed superset"] # 0x2ad0 - - "⫑": [t: "closed subset or equal to"] # 0x2ad1 - - "⫒": [t: "closed superset or equal to"] # 0x2ad2 - - "⫓": [t: "subset above superset"] # 0x2ad3 - - "⫔": [t: "superset above subset"] # 0x2ad4 - - "⫕": [t: "subset above subset"] # 0x2ad5 - - "⫖": [t: "superset above superset"] # 0x2ad6 - - "⫗": [t: "superset beside subset"] # 0x2ad7 - - "⫘": [t: "superset beside and joined by dash with subset"] # 0x2ad8 - - "⫙": [t: "element of opening down"] # 0x2ad9 - - "⫚": [t: "pitchfork with tee top"] # 0x2ada - - "⫛": [t: "transversal intersection"] # 0x2adb - - "⫝̸": [t: "forking"] # 0x2adc - - "⫝": [t: "nonforking"] # 0x2add - - "⫞": [t: "short left tack"] # 0x2ade - - "⫟": [t: "short down tack"] # 0x2adf - - "⫠": [t: "short up tack"] # 0x2ae0 - - "⫡": [t: "perpendicular with s"] # 0x2ae1 - - "⫢": [t: "vertical bar triple right turnstile"] # 0x2ae2 - - "⫣": [t: "double vertical bar left turnstile"] # 0x2ae3 - - "⫤": [t: "vertical bar double left turnstile"] # 0x2ae4 - - "⫥": [t: "double vertical bar double left turnstile"] # 0x2ae5 - - "⫦": [t: "long dash from left member of double vertical"] # 0x2ae6 - - "⫧": [t: "short down tack with overbar"] # 0x2ae7 - - "⫨": [t: "short up tack with underbar"] # 0x2ae8 - - "⫩": [t: "short up tack above short down tack"] # 0x2ae9 - - "⫪": [t: "double down tack"] # 0x2aea - - "⫫": [t: "double up tack"] # 0x2aeb - - "⫬": [t: "double stroke not sign"] # 0x2aec - - "⫭": [t: "reversed double stroke not sign"] # 0x2aed - - "⫮": [t: "does not divide with reversed negation slash"] # 0x2aee - - "⫯": [t: "vertical line with circle above"] # 0x2aef - - "⫰": [t: "vertical line with circle below"] # 0x2af0 - - "⫱": [t: "down tack with circle below"] # 0x2af1 - - "⫲": [t: "parallel with horizontal stroke"] # 0x2af2 - - "⫳": [t: "parallel with tilde operator"] # 0x2af3 - - "⫴": [t: "triple vertical bar binary relation"] # 0x2af4 - - "⫵": [t: "triple vertical bar with horizontal stroke"] # 0x2af5 - - "⫶": [t: "triple colon operator"] # 0x2af6 - - "⫷": [t: "triple nested less than"] # 0x2af7 - - "⫸": [t: "triple nested greater than"] # 0x2af8 - - "⫹": [t: "double line slanted less than or equal to"] # 0x2af9 - - "⫺": [t: "double line slanted greater than or equal to"] # 0x2afa - - "⫻": [t: "triple solidus binary relation"] # 0x2afb - - "⫼": [t: "large triple vertical bar operator"] # 0x2afc - - "⫽": [t: "double solidus operator"] # 0x2afd - - "⫾": [t: "white vertical bar"] # 0x2afe - - "⫿": [t: "white vertical bar"] # 0x2aff - - "⬀": [t: "north east white arrow"] # 0x2b00 - - "⬁": [t: "north west white arrow"] # 0x2b01 - - "⬂": [t: "south east white arrow"] # 0x2b02 - - "⬃": [t: "south west white arrow"] # 0x2b03 - - "⬄": [t: "left right white arrow"] # 0x2b04 - - "⬅": [t: "left black arrow"] # 0x2b05 - - "⬆": [t: "up black arrow"] # 0x2b06 - - "⬇": [t: "down black arrow"] # 0x2b07 - - "⬈": [t: "north east black arrow"] # 0x2b08 - - "⬉": [t: "north west black arrow"] # 0x2b09 - - "⬊": [t: "south east black arrow"] # 0x2b0a - - "⬋": [t: "south west black arrow"] # 0x2b0b - - "⬌": [t: "left right black arrow"] # 0x2b0c - - "⬍": [t: "up down black arrow"] # 0x2b0d - - "⬎": [t: "right arrow with tip down"] # 0x2b0e - - "⬏": [t: "right arrow with tip up"] # 0x2b0f - - "⬐": [t: "left arrow with tip down"] # 0x2b10 - - "⬑": [t: "left arrow with tip up"] # 0x2b11 - - "⬒": [t: "square with top half black"] # 0x2b12 - - "⬓": [t: "square with bottom half black"] # 0x2b13 - - "⬔": [t: "square with upper right diagonal half black"] # 0x2b14 - - "⬕": [t: "square with lower left diagonal half black"] # 0x2b15 - - "⬖": [t: "diamond with left half black"] # 0x2b16 - - "⬗": [t: "diamond with right half black"] # 0x2b17 - - "⬘": [t: "diamond with top half black"] # 0x2b18 - - "⬙": [t: "diamond with bottom half black"] # 0x2b19 - - "⬚": [t: "box"] # 0x2b1a - - "⬛": [t: "black large square"] # 0x2b1b - - "⬜": [t: "white large square"] # 0x2b1c - - "⬝": [t: "black very small square"] # 0x2b1d - - "⬞": [t: "white very small square"] # 0x2b1e - - "⬟": [t: "black pentagon"] # 0x2b1f - - "⬠": [t: "white pentagon"] # 0x2b20 - - "⬡": [t: "white hexagon"] # 0x2b21 - - "⬢": [t: "black hexagon"] # 0x2b22 - - "⬣": [t: "horizontal black hexagon"] # 0x2b23 - - "⬤": [t: "black large circle"] # 0x2b24 - - "⬥": [t: "black medium diamond"] # 0x2b25 - - "⬦": [t: "white medium diamond"] # 0x2b26 - - "⬧": [t: "black medium lozenge"] # 0x2b27 - - "⬨": [t: "white medium lozenge"] # 0x2b28 - - "⬩": [t: "black small diamond"] # 0x2b29 - - "⬪": [t: "black small lozenge"] # 0x2b2a - - "⬫": [t: "white small lozenge"] # 0x2b2b - - "⬬": [t: "black horizontal ellipse"] # 0x2b2c - - "⬭": [t: "white horizontal ellipse"] # 0x2b2d - - "⬮": [t: "black vertical ellipse"] # 0x2b2e - - "⬯": [t: "white vertical ellipse"] # 0x2b2f - - "⬰": [t: "left arrow with small circle"] # 0x2b30 - - "⬱": [t: "three left arrows"] # 0x2b31 - - "⬲": [t: "left arrow with circled plus"] # 0x2b32 - - "⬳": [t: "long left squiggle arrow"] # 0x2b33 - - "⬴": [t: "left two headed arrow with vertical stroke"] # 0x2b34 - - "⬵": [t: "left two headed arrow with double vertical stroke"] # 0x2b35 - - "⬶": [t: "left two headed arrow from bar"] # 0x2b36 - - "⬷": [t: "left two headed triple dash arrow"] # 0x2b37 - - "⬸": [t: "left arrow with dotted stem"] # 0x2b38 - - "⬹": [t: "left arrow with tail with vertical stroke"] # 0x2b39 - - "⬺": [t: "left arrow with tail with double vertical stroke"] # 0x2b3a - - "⬻": [t: "left two headed arrow with tail"] # 0x2b3b - - "⬼": [t: "left two headed arrow with tail with vertical stroke"] # 0x2b3c - - "⬽": [t: "left two headed arrow with tail with double vertical stroke"] # 0x2b3d - - "⬾": [t: "left arrow through x"] # 0x2b3e - - "⬿": [t: "wave arrow pointing directly left"] # 0x2b3f - - "⭀": [t: "equals sign above left arrow"] # 0x2b40 - - "⭁": [t: "reverse tilde operator above left arrow"] # 0x2b41 - - "⭂": [t: "left arrow above reverse almost equal to"] # 0x2b42 - - "⭃": [t: "right arrow through greater than"] # 0x2b43 - - "⭄": [t: "right arrow through superset"] # 0x2b44 - - "⭅": [t: "left quadruple arrow"] # 0x2b45 - - "⭆": [t: "right quadruple arrow"] # 0x2b46 - - "⭇": [t: "reverse tilde operator above right arrow"] # 0x2b47 - - "⭈": [t: "right arrow above reverse almost equal to"] # 0x2b48 - - "⭉": [t: "tilde operator above left arrow"] # 0x2b49 - - "⭊": [t: "left arrow above almost equal to"] # 0x2b4a - - "⭋": [t: "left arrow above reverse tilde operator"] # 0x2b4b - - "⭌": [t: "right arrow above reverse tilde operator"] # 0x2b4c - - "⭐": [t: "white medium star"] # 0x2b50 - - "⭑": [t: "black small star"] # 0x2b51 - - "⭒": [t: "white small star"] # 0x2b52 - - "⭓": [t: "black right pointing pentagon"] # 0x2b53 - - "⭔": [t: "white right pointing pentagon"] # 0x2b54 - - "⭕": [t: "heavy large circle"] # 0x2b55 - - "⭖": [t: "heavy oval with oval inside"] # 0x2b56 - - "⭗": [t: "heavy circle with circle inside"] # 0x2b57 - - "⭘": [t: "heavy circle"] # 0x2b58 - - "⭙": [t: "heavy circled saltire"] # 0x2b59 - - "⸀": [t: "right angle substitution marker"] # 0x2e00 - - "⸁": [t: "right angle dotted substitution marker"] # 0x2e01 - - "⸂": [t: "left substitution bracket"] # 0x2e02 - - "⸃": [t: "right substitution bracket"] # 0x2e03 - - "⸄": [t: "left dotted substitution bracket"] # 0x2e04 - - "⸅": [t: "right dotted substitution bracket"] # 0x2e05 - - "⸆": [t: "raised interpolation marker"] # 0x2e06 - - "⸇": [t: "raised dotted interpolation marker"] # 0x2e07 - - "⸈": [t: "dotted transposition marker marker"] # 0x2e08 - - "⸉": [t: "left transposition bracket"] # 0x2e09 - - "⸊": [t: "right transposition bracket"] # 0x2e0a - - "⸋": [t: "raised square"] # 0x2e0b - - "⸌": [t: "left raised omission bracket"] # 0x2e0c - - "⸍": [t: "right raised omission bracket"] # 0x2e0d - - "⸎": [t: "editorial coronis"] # 0x2e0e - - "⸏": [t: "paragraphos"] # 0x2e0f - - "⸐": [t: "forked paragraphos"] # 0x2e10 - - "⸑": [t: "reversed forked paragraphos"] # 0x2e11 - - "⸒": [t: "hypodiastole"] # 0x2e12 - - "⸓": [t: "dotted obelos"] # 0x2e13 - - "⸔": [t: "down ancora"] # 0x2e14 - - "⸕": [t: "up ancora"] # 0x2e15 - - "⸖": [t: "dotted right pointing angle"] # 0x2e16 - - "⸗": [t: "double oblique hyphen"] # 0x2e17 - - "⸘": [t: "inverted interrobang"] # 0x2e18 - - "⸙": [t: "palm branch"] # 0x2e19 - - "⸚": [t: "hyphen with diaeresis"] # 0x2e1a - - "⸛": [t: "tilde with ring above"] # 0x2e1b - - "⸜": [t: "left low paraphrase bracket"] # 0x2e1c - - "⸝": [t: "right low paraphrase bracket"] # 0x2e1d - - "⸞": [t: "tilde with dot above"] # 0x2e1e - - "⸟": [t: "tilde with dot below"] # 0x2e1f - - "⸠": [t: "left vertical bar with quill"] # 0x2e20 - - "⸡": [t: "right vertical bar with quill"] # 0x2e21 - - "⸢": [t: "top left half bracket"] # 0x2e22 - - "⸣": [t: "top right half bracket"] # 0x2e23 - - "⸤": [t: "bottom left half bracket"] # 0x2e24 - - "⸥": [t: "bottom right half bracket"] # 0x2e25 - - "⸦": [t: "left sideways u bracket"] # 0x2e26 - - "⸧": [t: "right sideways u bracket"] # 0x2e27 - - "⸨": [t: "left double parentheses"] # 0x2e28 - - "⸩": [t: "right double parentheses"] # 0x2e29 - - "⸪": [t: "two dots over one dot punctuation"] # 0x2e2a - - "⸫": [t: "one dot over two dots punctuation"] # 0x2e2b - - "⸬": [t: "squared four dot punctuation"] # 0x2e2c - - "⸭": [t: "five dot mark"] # 0x2e2d - - "⸮": [t: "reversed question mark"] # 0x2e2e - - "ⸯ": [t: "vertical tilde"] # 0x2e2f - - "⸰": [t: "ring point"] # 0x2e30 - - "⸱": [t: "word separator middle dot"] # 0x2e31 - - "⸲": [t: "turned comma"] # 0x2e32 - - "⸳": [t: "raised dot"] # 0x2e33 - - "⸴": [t: "raised comma"] # 0x2e34 - - "⸵": [t: "turned semicolon"] # 0x2e35 - - "⸶": [t: "dagger with left guard"] # 0x2e36 - - "⸷": [t: "dagger with right guard"] # 0x2e37 - - "⸸": [t: "turned dagger"] # 0x2e38 - - "⸹": [t: "top half section sign"] # 0x2e39 - - "⸺": [t: "two em dash"] # 0x2e3a - - "⸻": [t: "three em dash"] # 0x2e3b - - "〃": [t: "ditto mark"] # 0x3003 - - "〈": [t: "left angle bracket"] # 0x3008 - - "〉": [t: "right angle bracket"] # 0x3009 - - "《": [t: "left double angle bracket"] # 0x300a - - "》": [t: "right double angle bracket"] # 0x300b - - "「": [t: "left corner bracket"] # 0x300c - - "」": [t: "right corner bracket"] # 0x300d - - "『": [t: "left white corner bracket"] # 0x300e - - "』": [t: "right white corner bracket"] # 0x300f - - "【": [t: "left black lenticular bracket"] # 0x3010 - - "】": [t: "right black lenticular bracket"] # 0x3011 - - "〔": [t: "left tortoise shell bracket"] # 0x3014 - - "〕": [t: "right tortoise shell bracket"] # 0x3015 - - "〖": [t: "left white lenticular bracket"] # 0x3016 - - "〗": [t: "right white lenticular bracket"] # 0x3017 - - "〘": [t: "left white tortoise shell bracket"] # 0x3018 - - "〙": [t: "right white tortoise shell bracket"] # 0x3019 - - "〚": [t: "left white square bracket"] # 0x301a - - "〛": [t: "right white square bracket"] # 0x301b - - "〜": [t: "wave dash"] # 0x301c - - "〰": [t: "wavy dash"] # 0x3030 - - "㉈": [t: "circled number ten on black square"] # 0x3248 - - "㉉": [t: "circled number twenty on black square"] # 0x3249 - - "㉊": [t: "circled number thirty on black square"] # 0x324a - - "㉋": [t: "circled number forty on blacks square"] # 0x324b - - "㉌": [t: "circled number fifty on black square"] # 0x324c - - "㉍": [t: "circled number sixty on black square"] # 0x324d - - "㉎": [t: "circled number seventy on black square"] # 0x324e - - "㉏": [t: "circled number eighty on black square"] # 0x324f - - "㉑": [t: "circled number twenty one"] # 0x3251 - - "㉒": [t: "circled number twenty two"] # 0x3252 - - "㉓": [t: "circled number twenty three"] # 0x3253 - - "㉔": [t: "circled number twenty four"] # 0x3254 - - "㉕": [t: "circled number twenty five"] # 0x3255 - - "㉖": [t: "circled number twenty six"] # 0x3256 - - "㉗": [t: "circled number twenty seven"] # 0x3257 - - "㉘": [t: "circled number twenty eight"] # 0x3258 - - "㉙": [t: "circled number twenty nine"] # 0x3259 - - "㉚": [t: "circled number thirty"] # 0x325a - - "㉛": [t: "circled number thirty one"] # 0x325b - - "㉜": [t: "circled number thirty two"] # 0x325c - - "㉝": [t: "circled number thirty three"] # 0x325d - - "㉞": [t: "circled number thirty four"] # 0x325e - - "㉟": [t: "circled number thirty five"] # 0x325f - - "㊱": [t: "circled number thirty six"] # 0x32b1 - - "㊲": [t: "circled number thirty seven"] # 0x32b2 (GPT-5.4 translation) - - "㊳": [t: "circled number thirty eight"] # 0x32b3 (GPT-5.4 translation) - - "㊴": [t: "circled number thirty nine"] # 0x32b4 (GPT-5.4 translation) - - "㊵": [t: "circled number forty"] # 0x32b5 (GPT-5.4 translation) - - "㊶": [t: "circled number forty one"] # 0x32b6 (GPT-5.4 translation) - - "㊷": [t: "circled number forty two"] # 0x32b7 (GPT-5.4 translation) - - "㊸": [t: "circled number forty three"] # 0x32b8 (GPT-5.4 translation) - - "㊹": [t: "circled number forty four"] # 0x32b9 (GPT-5.4 translation) - - "㊺": [t: "circled number forty five"] # 0x32ba (GPT-5.4 translation) - - "㊻": [t: "circled number forty six"] # 0x32bb (GPT-5.4 translation) - - "㊼": [t: "circled number forty seven"] # 0x32bc (GPT-5.4 translation) - - "㊽": [t: "circled number forty eight"] # 0x32bd (GPT-5.4 translation) - - "㊾": [t: "circled number forty nine"] # 0x32be (GPT-5.4 translation) - - "㊿": [t: "circled number fifty"] # 0x32bf (GPT-5.4 translation) - - "㋌": [t: "mercury"] # 0x32cc - - "㋍": [t: "ergs"] # 0x32cd - - "㋎": [t: "electron volts"] # 0x32ce - - "㋏": [t: "limited liability sign"] # 0x32cf - - "㍱": [t: "hectopascals"] # 0x3371 - - "㍲": [t: "daltons"] # 0x3372 - - "㍳": [t: "astronomical units"] # 0x3373 - - "㍴": [t: "bars"] # 0x3374 - - "㍵": [t: "o v"] # 0x3375 - - "㍶": [t: "parsecs"] # 0x3376 - - "㍷": [t: "decimeters"] # 0x3377 - - "㍸": [t: "decimeters squared"] # 0x3378 - - "㍹": [t: "decimeters cubed"] # 0x3379 - - "㍺": [t: "instrumental units"] # 0x337a - - "㎀": [t: "picoamps"] # 0x3380 - - "㎁": [t: "nanoamps"] # 0x3381 - - "㎂": [t: "microamps"] # 0x3382 - - "㎃": [t: "milliamps"] # 0x3383 - - "㎄": [t: "kiloamps"] # 0x3384 - - "㎅": [t: "kilobytes"] # 0x3385 - - "㎆": [t: "megabytes"] # 0x3386 - - "㎇": [t: "gigabytes"] # 0x3387 - - "㎈": [t: "calories"] # 0x3388 - - "㎉": [t: "kilocalories"] # 0x3389 - - "㎊": [t: "picofarads"] # 0x338a - - "㎋": [t: "nanofarads"] # 0x338b - - "㎌": [t: "microfarads"] # 0x338c - - "㎍": [t: "micrograms"] # 0x338d - - "㎎": [t: "milligrams"] # 0x338e - - "㎏": [t: "kilograms"] # 0x338f - - "㎐": [t: "hertz"] # 0x3390 - - "㎑": [t: "kilohertz"] # 0x3391 - - "㎒": [t: "megahertz"] # 0x3392 - - "㎓": [t: "gigahertz"] # 0x3393 - - "㎔": [t: "terahertz"] # 0x3394 - - "㎕": [t: "microliters"] # 0x3395 - - "㎖": [t: "milliliters"] # 0x3396 - - "㎗": [t: "deciliters"] # 0x3397 - - "㎘": [t: "kiloliters"] # 0x3398 - - "㎙": [t: "femtometers"] # 0x3399 - - "㎚": [t: "nanometers"] # 0x339a - - "㎛": [t: "micrometers"] # 0x339b - - "㎜": [t: "millimeters"] # 0x339c - - "㎝": [t: "centimeters"] # 0x339d - - "㎞": [t: "kilometers"] # 0x339e - - "㎟": [t: "millimeters squared"] # 0x339f - - "㎠": [t: "centimeters squared"] # 0x33a0 - - "㎡": [t: "meters squared"] # 0x33a1 - - "㎢": [t: "kilometers squared"] # 0x33a2 - - "㎣": [t: "millimeters cubed"] # 0x33a3 - - "㎤": [t: "centimeters cubed"] # 0x33a4 - - "㎥": [t: "meters cubed"] # 0x33a5 - - "㎦": [t: "kilometers cubed"] # 0x33a6 - - "㎧": [t: "meters per second"] # 0x33a7 - - "㎨": [t: "meters per second squared"] # 0x33a8 - - "㎩": [t: "pascals"] # 0x33a9 - - "㎪": [t: "kilopascals"] # 0x33aa - - "㎫": [t: "megapascals"] # 0x33ab - - "㎬": [t: "gigapascals"] # 0x33ac - - "㎭": [t: "rads"] # 0x33ad - - "㎮": [t: "rads per second"] # 0x33ae - - "㎯": [t: "rads per second squared"] # 0x33af - - "㎰": [t: "picoseconds"] # 0x33b0 - - "㎱": [t: "nanoseconds"] # 0x33b1 - - "㎲": [t: "microseconds"] # 0x33b2 - - "㎳": [t: "milliseconds"] # 0x33b3 - - "㎴": [t: "picovolts"] # 0x33b4 - - "㎵": [t: "nanovolts"] # 0x33b5 - - "㎶": [t: "microvolts"] # 0x33b6 - - "㎷": [t: "millivolts"] # 0x33b7 - - "㎸": [t: "kilovolts"] # 0x33b8 - - "㎹": [t: "megavolts"] # 0x33b9 - - "㎺": [t: "picowatts"] # 0x33ba - - "㎻": [t: "nanowatts"] # 0x33bb - - "㎼": [t: "microwatts"] # 0x33bc - - "㎽": [t: "milliwatts"] # 0x33bd - - "㎾": [t: "kilowatts"] # 0x33be - - "㎿": [t: "megawatts"] # 0x33bf - - "㏀": [t: "kilo-ohms"] # 0x33c0 - - "㏁": [t: "megaohms"] # 0x33c1 - - "㏂": [t: "attometers"] # 0x33c2 - - "㏃": [t: "becquerels"] # 0x33c3 - - "㏄": [t: "cubic centimeters"] # 0x33c4 - - "㏅": [t: "candelas"] # 0x33c5 - - "㏆": [t: "coulombs per kilogram"] # 0x33c6 - - "㏇": [t: "cap C, o, period"] # 0x33c7 (I have no idea what this is) - - "㏈": [t: "decibels"] # 0x33c8 - - "㏉": [t: "grays"] # 0x33c9 - - "㏊": [t: "hectares"] # 0x33ca - - "㏋": [t: "horsepower"] # 0x33cb - - "㏌": [t: "inches"] # 0x33cc - - "㏍": [t: "kilokelvins"] # 0x33cd - - "㏎": [t: "kilometers"] # 0x33ce - - "㏏": [t: "knots"] # 0x33cf - - "㏐": [t: "lumens"] # 0x33d0 - - "㏑": [t: "natural log"] # 0x33d1 - - "㏒": [t: "logarithm"] # 0x33d2 - - "㏓": [t: "lux"] # 0x33d3 - - "㏔": [t: "millibarns"] # 0x33d4 - - "㏕": [t: "mills"] # 0x33d5 - - "㏖": [t: "moles"] # 0x33d6 - - "㏗": [t: "p h"] # 0x33d7 - - "㏘": [t: "picometers"] # 0x33d8 - - "㏙": [t: "parts per million"] # 0x33d9 - - "㏚": [t: "petaroentgens"] # 0x33da - - "㏛": [t: "steradians"] # 0x33db - - "㏜": [t: "sieverts"] # 0x33dc - - "㏝": [t: "webers"] # 0x33dd - - "㏞": [t: "volts per meter"] # 0x33de - - "㏟": [t: "amps per meter"] # 0x33df - - "㏿": [t: "gallons"] # 0x33ff - - "": [t: "equals with hat below"] # 0xe900 - - "": [t: "equals with plus above"] # 0xe901 - - "": [t: "equals with plus below"] # 0xe902 - - "": [t: "tilde with plus above"] # 0xe903 - - "": [t: "tilde with plus below"] # 0xe904 - - "": [t: "equal double over greater than"] # 0xe908 - - "": [t: "equal double over less than"] # 0xe909 - - "": [t: "contains or equal to"] # 0xe90a - - "": [t: "superset of or equal to"] # 0xe90b - - "": [t: "subset of or equal to"] # 0xe90c - - "": [t: "equal over less than"] # 0xe90d - - "": [t: "element of or equal to"] # 0xe912 - - "": [t: "equal to or greater than"] # 0xe913 - - "": [t: "approximate superset of"] # 0xe914 - - "": [t: "approximate subset of"] # 0xe915 - - "": [t: "superset of with dot includes as sub relation"] # 0xe916 - - "": [t: "subset of with dot is included in as sub relation"] # 0xe917 - - "": [t: "equal with dot below"] # 0xe918 - - "": [t: "left dot over minus over right dot"] # 0xe919 - - "": [t: "right dot over minus over left dot"] # 0xe91a - - "": [t: "almost equal to minus"] # 0xe91f - - "": [t: "double square cup"] # 0xe920 - - "": [t: "double square cap"] # 0xe921 - - "": [t: "less than equal to or greater than"] # 0xe922 - - "": [t: "tilde with dot"] # 0xe924 - - "": [t: "tilde with two dots"] # 0xe925 - - "": [t: "less than greater than or equal to"] # 0xe926 - - "": [t: "greater than less than or equal to"] # 0xe927 - - "": [t: "equivalent to or less than"] # 0xe928 - - "": [t: "equivalent to or greater than"] # 0xe929 - - "": [t: "left open box operator"] # 0xe92a - - "": [t: "right open box operator"] # 0xe92b - - "": [t: "identical to with dot"] # 0xe92c - - "": [t: "greater than equal to or less than"] # 0xe92d - - "": [t: "bar operator"] # 0xe92e - - "": [t: "double bar operator"] # 0xe92f - - "": [t: "triple bar operator"] # 0xe930 - - "": [t: "less than or approximately equal to"] # 0xe932 - - "": [t: "greater than or approximately equal to"] # 0xe933 - - "": [t: "nested less than"] # 0xe936 - - "": [t: "nested greater than"] # 0xe937 - - "": [t: "precedes or equivalent to"] # 0xe93a - - "": [t: "succeeds or equivalent to"] # 0xe93b - - "": [t: "precedes over equal"] # 0xe940 - - "": [t: "succeeds over equal"] # 0xe941 - - "": [t: "less equal slanted greater"] # 0xe942 - - "": [t: "greater equal slanted less"] # 0xe943 - - "": [t: "satisfied by"] # 0xe948 - - "": [t: "lazy s"] # 0xe949 - - "": [t: "not assertion"] # 0xe94a - - "": [t: "double equal"] # 0xe94b - - "": [t: "triple equal"] # 0xe94c - - "": [t: "rule delayed"] # 0xe94d - - "": [t: "alias delimiter"] # 0xe94e - - "": [t: "normal subgroup of with bar"] # 0xe950 - - "": [t: "contains as normal subgroup with bar"] # 0xe951 - - "": [t: "round implies"] # 0xe954 - - "": [t: "smile under bar"] # 0xe955 - - "": [t: "frown over bar"] # 0xe956 - - "": [t: "superset of or almost equal to"] # 0xe957 - - "": [t: "subset of or almost equal to"] # 0xe958 - - "": [t: "greater than almost equal to or less than"] # 0xe959 - - "": [t: "less than almost equal or greater than"] # 0xe95a - - "": [t: "double logical or"] # 0xe95c - - "": [t: "double logical and"] # 0xe95d - - "": [t: "logical or with double bar below"] # 0xe95e - - "": [t: "logical or with bar below"] # 0xe95f - - "": [t: "almost equal over equal"] # 0xe962 - - "": [t: "left pointing triangle with bisecting bar"] # 0xe964 - - "": [t: "right pointing triangle with bisecting bar"] # 0xe965 - - "": [t: "equals with dotted top line"] # 0xe966 - - "": [t: "precedes with colon"] # 0xe967 - - "": [t: "succeeds with colon"] # 0xe968 - - "": [t: "smaller than or equal slanted"] # 0xe969 - - "": [t: "larger than or equal slanted"] # 0xe96a - - "": [t: "nested very much less than"] # 0xe96b - - "": [t: "nested very much greater than"] # 0xe96c - - "": [t: "difference between variant"] # 0xe96d - - "": [t: "less than greater than overlay"] # 0xe96e - - "": [t: "logical or logical and overlay"] # 0xe96f - - "": [t: "superset over superset"] # 0xe970 - - "": [t: "subset over subset"] # 0xe971 - - "": [t: "superset over subset"] # 0xe972 - - "": [t: "subset over superset"] # 0xe973 - - "": [t: "triple vertical bar"] # 0xe979 - - "": [t: "paired quadruple vertical dots"] # 0xe97a - - "": [t: "perpendicular over bar"] # 0xe97b - - "": [t: "left turnstile double vertical bar"] # 0xe97c - - "": [t: "double left turnstile double vertical bar"] # 0xe97d - - "": [t: "perpendicular over inverted perpendicular"] # 0xe97e - - "": [t: "double left turnstile vertical bar"] # 0xe97f - - "": [t: "spherical angle opening up"] # 0xe980 - - "": [t: "double slash"] # 0xe981 - - "": [t: "right angle with corner"] # 0xe982 - - "": [t: "circled vertical bar"] # 0xe984 - - "": [t: "circled division sign"] # 0xe985 - - "": [t: "dashed solidus"] # 0xe986 - - "": [t: "dashed backslash"] # 0xe987 - - "": [t: "dashed mid line"] # 0xe988 - - "": [t: "dashed vertical bar"] # 0xe989 - - "": [t: "perpendicular with s"] # 0xe98a - - "": [t: "angle with s"] # 0xe98b - - "": [t: "spherical angle opening left"] # 0xe98c - - "": [t: "angle opening left"] # 0xe98d - - "": [t: "vertical bar with double hook"] # 0xe98e - - "": [t: "medium dot operator free radical"] # 0xe98f - - "": [t: "white up pointing triangle above bar"] # 0xe990 - - "": [t: "identical and parallel to"] # 0xe991 - - "": [t: "smash product"] # 0xe992 - - "": [t: "triple bar operator with horizontal bar"] # 0xe993 - - "": [t: "identical to with double slash"] # 0xe994 - - "": [t: "triple crossed bars"] # 0xe995 - - "": [t: "vertical bar over circle"] # 0xe996 - - "": [t: "vertical proportional to"] # 0xe997 - - "": [t: "black last quarter moon"] # 0xe998 - - "": [t: "black first quarter moon"] # 0xe999 - - "": [t: "negative sine wave"] # 0xe9a0 - - "": [t: "parenthesized dot"] # 0xe9a1 - - "": [t: "parens"] # 0xe9a2 - - "": [t: "white smile"] # 0xe9a3 - - "": [t: "white frown"] # 0xe9a4 - - "": [t: "hexagon"] # 0xe9a5 - - "": [t: "equivalent to over plus"] # 0xe9a6 - - "": [t: "plus over equivalent to"] # 0xe9a7 - - "": [t: "intersection serifs"] # 0xe9b0 - - "": [t: "union serifs"] # 0xe9b1 - - "": [t: "square intersection serifs"] # 0xe9b2 - - "": [t: "square union serifs"] # 0xe9b3 - - "": [t: "precedes equivalent to or succeeds"] # 0xe9e0 - - "": [t: "succeeds equivalent to or precedes"] # 0xe9e1 - - "": [t: "precedes almost equal to or succeeds"] # 0xe9e2 - - "": [t: "succeeds almost equal to or precedes"] # 0xe9e3 - - "": [t: "less than equivalent to or greater than"] # 0xe9f0 - - "": [t: "greater than equivalent to or less than"] # 0xe9f1 - - "": [t: "not vert much less than"] # 0xea00 - - "": [t: "not vert much greater than"] # 0xea01 - - "": [t: "not much less than variant"] # 0xea02 - - "": [t: "not much greater than variant"] # 0xea03 - - "": [t: "less vert not double equals"] # 0xea04 - - "": [t: "gt vert not double equals"] # 0xea05 - - "": [t: "not less than or equal to"] # 0xea06 - - "": [t: "not greater than or equal to"] # 0xea07 - - "": [t: "neither equal to nor less than"] # 0xea09 - - "": [t: "does not contain or equal to"] # 0xea0a - - "": [t: "neither superset of nor equal to"] # 0xea0b - - "": [t: "neither subset of nor equal to"] # 0xea0c - - "": [t: "reverse solidus subset"] # 0xea0d - - "": [t: "neither equal to nor greater than"] # 0xea0e - - "": [t: "not minus tilde operator"] # 0xea0f - - "": [t: "neither equal to nor less than"] # 0xea10 - - "": [t: "not tilde operator"] # 0xea11 - - "": [t: "not element of or equal to"] # 0xea12 - - "": [t: "neither equal to nor greater than"] # 0xea13 - - "": [t: "not almost equal"] # 0xea14 - - "": [t: "not succeeds similar"] # 0xea15 - - "": [t: "less than or slanted equal to with slash"] # 0xea16 - - "": [t: "greater than or slanted equal to with slash"] # 0xea17 - - "": [t: "superset solidus"] # 0xea1a - - "": [t: "does not contain"] # 0xea1b - - "": [t: "not less than or equal to"] # 0xea1d - - "": [t: "not greater than or equal to"] # 0xea1e - - "": [t: "not almost equal to minus"] # 0xea1f - - "": [t: "negated set membership dot above"] # 0xea22 - - "": [t: "not vert angle"] # 0xea2c - - "": [t: "not parallel slanted"] # 0xea2d - - "": [t: "not bar operator"] # 0xea2e - - "": [t: "not double bar operator"] # 0xea2f - - "": [t: "not triple bar operator"] # 0xea30 - - "": [t: "less than but not approximately equal to"] # 0xea32 - - "": [t: "greater than but not approximately equal to"] # 0xea33 - - "": [t: "less than or not equal to"] # 0xea34 - - "": [t: "greater than or not equal to"] # 0xea35 - - "": [t: "not nested less than"] # 0xea36 - - "": [t: "not nested greater than"] # 0xea37 - - "": [t: "not much less than"] # 0xea38 - - "": [t: "not much greater than"] # 0xea39 - - "": [t: "precedes but not equivalent to"] # 0xea3a - - "": [t: "succeeds but not equivalent to"] # 0xea3b - - "": [t: "precedes but not equal to"] # 0xea3c - - "": [t: "succeeds but not equal to"] # 0xea3d - - "": [t: "does not equal or precede"] # 0xea3e - - "": [t: "does not equal or succeed"] # 0xea3f - - "": [t: "precedes but not equal to"] # 0xea40 - - "": [t: "succeeds but not equal to"] # 0xea41 - - "": [t: "not subset of nor equal to"] # 0xea42 - - "": [t: "not superset of nor equal to"] # 0xea43 - - "": [t: "subset of or not equal to"] # 0xea44 - - "": [t: "superset of or not equal to"] # 0xea45 - - "": [t: "not subset of nor equal to"] # 0xea46 - - "": [t: "not superset of nor equal to"] # 0xea47 - - "": [t: "not triple less than"] # 0xea48 - - "": [t: "not triple greater than"] # 0xea49 - - "": [t: "not precedes equals"] # 0xea4c - - "": [t: "not succeeds equals"] # 0xea4d - - "": [t: "not normal subgroup of with bar"] # 0xea50 - - "": [t: "does not contain as normal subgroup with bar"] # 0xea51 - - "": [t: "not difference between"] # 0xea52 - - "": [t: "not geometrically equivalent to"] # 0xea53 - - "": [t: "not vert similar"] # 0xea54 - - "": [t: "not equal or similar"] # 0xea55 - - "": [t: "not vert approximate"] # 0xea56 - - "": [t: "not approximately identical to"] # 0xea57 - - "": [t: "not bumpy equals"] # 0xea58 - - "": [t: "not bumpy single equals"] # 0xea59 - - "": [t: "not equal dot"] # 0xea5a - - "": [t: "reverse not equivalent"] # 0xea5b - - "": [t: "not square subset"] # 0xea60 - - "": [t: "not square superset"] # 0xea61 - - "": [t: "not almost equal over equal"] # 0xea62 - - "": [t: "not strictly equivalent to"] # 0xea63 - - "": [t: "not congruent dot"] # 0xea64 - - "": [t: "reverse not equal"] # 0xea65 - - "": [t: "not vert left triangle equals"] # 0xea70 - - "": [t: "not vert right triangle equals"] # 0xea71 - - "": [t: "not partial"] # 0xea80 - - "": [t: "arrow embellishment extender"] # 0xeb00 - - "": [t: "arrow right over arrow left"] # 0xeb01 - - "": [t: "arrow right over arrow left"] # 0xeb02 - - "": [t: "harpoon right over harpoon left"] # 0xeb03 - - "": [t: "harpoon right over harpoon left"] # 0xeb04 - - "": [t: "double arrow northeast southwest"] # 0xeb05 - - "": [t: "double arrow northwest southeast"] # 0xeb06 - - "": [t: "horizontal harpoon extender"] # 0xeb07 - - "": [t: "anticlockwise arc left arrow"] # 0xeb08 - - "": [t: "anticlockwise arc right arrow"] # 0xeb09 - - "": [t: "large right arrow accent"] # 0xeb0b - - "": [t: "large left arrow accent"] # 0xeb0c - - "": [t: "left arrowhead"] # 0xeb0d - - "": [t: "right arrowhead"] # 0xeb0e - - "": [t: "large left right arrow with stroke"] # 0xeb0f - - "": [t: "horizontal double arrow extender"] # 0xeb10 - - "": [t: "large left right double arrow with stroke"] # 0xeb11 - - "": [t: "down arrow left of up arrow"] # 0xeb12 - - "": [t: "left arrow with corner down"] # 0xeb13 - - "": [t: "right arrow with corner up"] # 0xeb14 - - "": [t: "left arrow with corner up"] # 0xeb15 - - "": [t: "anticlockwise top semicircle arrow with plus"] # 0xeb16 - - "": [t: "clockwise top semicircle arrow with minus"] # 0xeb17 - - "": [t: "right arrow with tail with stroke"] # 0xeb18 - - "": [t: "right harpoon down"] # 0xeb19 - - "": [t: "left harpoon down"] # 0xeb1a - - "": [t: "left right harpoon down"] # 0xeb1b - - "": [t: "left right harpoon up"] # 0xeb1c - - "": [t: "up down harpoon left"] # 0xeb1d - - "": [t: "up down harpoon right"] # 0xeb1e - - "": [t: "up arrow to the right of down arrow"] # 0xeb1f - - "": [t: "left harpoon to bar with barb up"] # 0xeb20 - - "": [t: "right harpoon to bar with barb up"] # 0xeb21 - - "": [t: "left harpoon to bar with barb down"] # 0xeb22 - - "": [t: "right harpoon to bar with barb down"] # 0xeb23 - - "": [t: "left harpoon from bar with barb up"] # 0xeb24 - - "": [t: "right harpoon from bar with barb up"] # 0xeb25 - - "": [t: "left harpoon from bar with barb down"] # 0xeb26 - - "": [t: "right harpoon from bar with barb down"] # 0xeb27 - - "": [t: "up harpoon to bar with barb left"] # 0xeb28 - - "": [t: "down harpoon to bar with barb left"] # 0xeb29 - - "": [t: "up harpoon to bar with barb right"] # 0xeb2a - - "": [t: "down harpoon to bar with barb right"] # 0xeb2b - - "": [t: "up harpoon from bar with barb left"] # 0xeb2c - - "": [t: "down harpoon from bar with barb left"] # 0xeb2d - - "": [t: "up harpoon from bar with barb right"] # 0xeb2e - - "": [t: "down harpoon from bar with barb right"] # 0xeb2f - - "": [t: "up arrow to bar"] # 0xeb30 - - "": [t: "down arrow to bar"] # 0xeb31 - - "": [t: "up harpoon to the left of down harpoon"] # 0xeb32 - - "": [t: "up harpoon to the right of down harpoon"] # 0xeb33 - - "": [t: "up arrowhead"] # 0xeb34 - - "": [t: "down arrowhead"] # 0xeb35 - - "": [t: "double harpoon with left barb down right barb up"] # 0xeb36 - - "": [t: "double harpoon with left barb up right barb down"] # 0xeb37 - - "": [t: "left arrow over bar"] # 0xeb38 - - "": [t: "right arrow over bar"] # 0xeb39 - - "": [t: "left arrow under bar"] # 0xeb3a - - "": [t: "right arrow under bar"] # 0xeb3b - - "": [t: "left right triple arrow"] # 0xeb3c - - "": [t: "double arrow northeast southeast"] # 0xeb3f - - "": [t: "anticlockwise left semicircle arrow"] # 0xeb40 - - "": [t: "clockwise left semicircle arrow"] # 0xeb41 - - "": [t: "left open circle left right arrow"] # 0xeb42 - - "": [t: "right arrow over tilde"] # 0xeb44 - - "": [t: "left arrow over tilde"] # 0xeb45 - - "": [t: "left harpoon over bar"] # 0xeb48 - - "": [t: "right harpoon over bar"] # 0xeb49 - - "": [t: "left harpoon under bar"] # 0xeb4a - - "": [t: "right harpoon under bar"] # 0xeb4b - - "": [t: "squat black left arrow"] # 0xeb4c - - "": [t: "clockwise right semicircle arrow"] # 0xeb50 - - "": [t: "anticlockwise right semicircle arrow"] # 0xeb51 - - "": [t: "left open circle left right harpoon"] # 0xeb52 - - "": [t: "up arrow left of vertical bar"] # 0xeb58 - - "": [t: "down arrow left of vertical bar"] # 0xeb59 - - "": [t: "up arrow right of vertical bar"] # 0xeb5a - - "": [t: "down arrow right of vertical bar"] # 0xeb5b - - "": [t: "right arrow with extended down hook"] # 0xeb5c - - "": [t: "left arrow with extended hook"] # 0xeb5d - - "": [t: "left arrow with extended down hook"] # 0xeb5e - - "": [t: "right arrow with extended hook"] # 0xeb5f - - "": [t: "not right arrow wavy"] # 0xeb60 - - "": [t: "not right arrow curved"] # 0xeb61 - - "": [t: "up harpoon left of vertical bar"] # 0xeb68 - - "": [t: "down harpoon left of vertical bar"] # 0xeb69 - - "": [t: "up harpoon right of vertical bar"] # 0xeb6a - - "": [t: "down harpoon right of vertical bar"] # 0xeb6b - - "": [t: "vertical double arrow extender"] # 0xeb6c - - "": [t: "vertical harpoon with barb left extender"] # 0xeb6d - - "": [t: "vertical harpoon with barb right extender"] # 0xeb6e - - "": [t: "right harpoon over left harpoon right"] # 0xeb6f - - "": [t: "right harpoon over left harpoon left"] # 0xeb70 - - "": [t: "left harpoon over right harpoon right"] # 0xeb71 - - "": [t: "left harpoon over right harpoon left"] # 0xeb72 - - "": [t: "left arrow from bar arrowhead"] # 0xeb73 - - "": [t: "left right arrow from bar extender"] # 0xeb74 - - "": [t: "left arrow from bar tail"] # 0xeb75 - - "": [t: "right arrow from bar tail"] # 0xeb76 - - "": [t: "right arrow from bar arrowhead"] # 0xeb77 - - "": [t: "up harpoon from bar with barb left arrowhead"] # 0xeb78 - - "": [t: "right arrow over left arrow right"] # 0xeb79 - - "": [t: "right arrow over left arrow left"] # 0xeb7a - - "": [t: "left arrow over right arrow right"] # 0xeb7b - - "": [t: "left arrow over right arrow left"] # 0xeb7c - - "": [t: "up arrow from bar arrowhead"] # 0xeb7d - - "": [t: "up arrow from bar tail"] # 0xeb7e - - "": [t: "down arrow from bar tail"] # 0xeb7f - - "": [t: "down arrow from bar arrowhead"] # 0xeb80 - - "": [t: "down harpoon from bar with barb right arrowhead"] # 0xeb81 - - "": [t: "up harpoon to the left of down harpoon bottom"] # 0xeb82 - - "": [t: "up harpoon to the left of down harpoon extender"] # 0xeb83 - - "": [t: "down harpoon to the left of up harpoon top"] # 0xeb84 - - "": [t: "up harpoon to the left of down harpoon top"] # 0xeb85 - - "": [t: "down harpoon to the left of the up harpoon extender"] # 0xeb86 - - "": [t: "down harpoon to the left of the up harpoon bottom"] # 0xeb87 - - "": [t: "up arrow left of down arrow bottom"] # 0xeb88 - - "": [t: "down arrow left of up arrow top"] # 0xeb89 - - "": [t: "up arrow left of down arrow top"] # 0xeb8a - - "": [t: "down arrow left of up arrow bottom"] # 0xeb8b - - "": [t: "left right arrows extender"] # 0xeb8c - - "": [t: "north east arrow extender"] # 0xeb8d - - "": [t: "north west arrow extender"] # 0xeb8e - - "": [t: "down pointing brace left"] # 0xec00 - - "": [t: "down pointing brace mid"] # 0xec01 - - "": [t: "down pointing brace right"] # 0xec02 - - "": [t: "horizontal brace extender"] # 0xec03 - - "": [t: "up pointing brace left"] # 0xec04 - - "": [t: "up pointing brace mid"] # 0xec05 - - "": [t: "up-pointing brace right"] # 0xec06 - - "": [t: "left vertical bar"] # 0xec07 - - "": [t: "right vertical bar"] # 0xec08 - - "": [t: "left double vertical bar"] # 0xec09 - - "": [t: "right double vertical bar"] # 0xec0a - - "": [t: "horizontal bracket extender"] # 0xec0b - - "": [t: "under square bracket"] # 0xec0c - - "⎵": [t: "under square bracket"] # 0x23b5 - - "": [t: "over square bracket"] # 0xec0d - - "⎴": [t: "over square bracket"] # 0x23b4 - - "": [t: "under bracket left"] # 0xec0e - - "": [t: "under bracket right"] # 0xec0f - - "": [t: "over bracket left"] # 0xec10 - - "": [t: "over bracket right"] # 0xec11 - - "": [t: "left parens 1"] # 0xec12 - - "": [t: "left parens 2"] # 0xec13 - - "": [t: "left parens 3"] # 0xec14 - - "": [t: "left parens 4"] # 0xec15 - - "": [t: "right parens 1"] # 0xec16 - - "": [t: "right parens 2"] # 0xec17 - - "": [t: "right parens 3"] # 0xec18 - - "": [t: "right parens 4"] # 0xec19 - - "": [t: "radical 1"] # 0xec1a - - "": [t: "radical 2"] # 0xec1b - - "": [t: "radical 3"] # 0xec1c - - "": [t: "radical 4"] # 0xec1d - - "": [t: "radical 5"] # 0xec1e - - "": [t: "radical bottom"] # 0xec1f - - "": [t: "radical vertical extender"] # 0xec20 - - "": [t: "radical top"] # 0xec21 - - "": [t: "left white bracket top"] # 0xec22 - - "": [t: "left white bracket extender"] # 0xec23 - - "": [t: "left white bracket bottom"] # 0xec24 - - "": [t: "right white bracket top"] # 0xec25 - - "": [t: "right white bracket extender"] # 0xec26 - - "": [t: "right white bracket bottom"] # 0xec27 - - "": [t: "left white curly bracket"] # 0xec30 - - "": [t: "right white curly bracket"] # 0xec31 - - "": [t: "long division sign"] # 0xec32 - - "": [t: "long division sign extender"] # 0xec33 - - "": [t: "short division"] # 0xec34 - - "": [t: "double southwest to northeast em bond"] # 0xec40 - - "": [t: "double northwest to southeast em bond"] # 0xec41 - - "": [t: "single horizontal em bond"] # 0xec42 - - "": [t: "double horizontal em bond"] # 0xec43 - - "": [t: "triple horizontal em bond"] # 0xec44 - - "": [t: "single vertical em bond"] # 0xec45 - - "": [t: "double vertical em bond"] # 0xec46 - - "": [t: "triple vertical em bond"] # 0xec47 - - "": [t: "less than em bond"] # 0xec48 - - "": [t: "greater than em bond"] # 0xec49 - - "": [t: "single horizontal en bond"] # 0xec4a - - "": [t: "double horizontal en bond"] # 0xec4b - - "": [t: "triple horizontal en bond"] # 0xec4c - - "": [t: "top left rectangle"] # 0xec80 - - "": [t: "bottom left rectangle"] # 0xec81 - - "": [t: "top right rectangle"] # 0xec90 - - "": [t: "bottom right rectangle"] # 0xec91 - - "": [t: "synthetic division corner"] # 0xec92 - - "": [t: "synthetic division horizontal extender"] # 0xec93 - - "": [t: "synthetic division vertical extender"] # 0xec94 - - "": [t: "left ceiling floor extender"] # 0xec95 - - "": [t: "right ceiling floor extender"] # 0xec96 - - "": [t: "over bracket extender"] # 0xec97 - - "": [t: "vertical bar extender"] # 0xec98 - - "": [t: "left double vertical bar extender"] # 0xec99 - - "": [t: "horizontal bar extender"] # 0xec9a - - "": [t: "under bracket extender"] # 0xec9c - - "": [t: "down pointing paren right"] # 0xec9d - - "": [t: "down pointing paren extender"] # 0xec9e - - "": [t: "down pointing paren left"] # 0xec9f - - "": [t: "up pointing brace extender"] # 0xeca0 - - "": [t: "up pointing paren left"] # 0xeca1 - - "": [t: "up pointing paren extender"] # 0xeca2 - - "": [t: "up pointing paren right"] # 0xeca3 - - "": [t: "down pointing brace extender"] # 0xeca4 - - "": [t: "planck constant over two pi bar"] # 0xed00 - - "": [t: "mirror g"] # 0xed01 - - "": [t: "dotless j"] # 0xed02 - - "": [t: "digamma"] # 0xed03 - - "ϝ": [t: "digamma"] # 0x3dd - - "": [t: "d"] # 0xed10 - - "": [t: "e"] # 0xed11 - - "": [t: "i"] # 0xed12 - - "": [t: "j"] # 0xed13 - - "ⅅ": - - spell: "translate('.', 'ⅅ', 'DD')" # 0xed16, 0x2145 - -# The private use chars are from MathType - - "": [t: "anticlockwise contour integral loop"] # 0xee00 - - "": [t: "clockwise contour integral loop"] # 0xee01 - - "": [t: ""] # 0xee04 - - "": [t: ""] # 0xee05 - - "": [t: ""] # 0xee06 - - "": [t: ""] # 0xee07 - - "": [t: ""] # 0xee08 - - "": [t: ""] # 0xee09 - - "": [t: ""] # 0xee0a - - "": [t: ""] # 0xee0b - - "": [t: ""] # 0xee0c - - "": [t: "joint status embellishment"] # 0xee0d - - "": [t: "joint status embellishment left"] # 0xee0e - - "": [t: "joint status embellishment right"] # 0xee0f - - "": [t: "joint status embellishment extender"] # 0xee10 - - "": [t: "integral loop"] # 0xee11 - - "": [t: "integral loop double"] # 0xee12 - - "": [t: "integral loop triple"] # 0xee13 - - "": [t: "expanding integral loop double"] # 0xee15 - - "": [t: "expanding integral loop triple"] # 0xee16 - - "": [t: "asymptotically equal to accent"] # 0xee17 - - "": [t: "equal sign accent"] # 0xee18 - - "": [t: "quadruple prime"] # 0xee19 - - "": [t: "bar accent with open circle left"] # 0xee1a - - "": [t: "bar accent with closed circle left"] # 0xee1b - - "": [t: "bar accent with open circle right"] # 0xee1c - - "": [t: "bar accent with over dot"] # 0xee1d - - "": [t: "bar accent with under dot"] # 0xee1e - - "": [t: "bar accent with double over dot"] # 0xee1f - - "": [t: "bar accent with double under dot"] # 0xee20 - - "": [t: "bar accent with caret"] # 0xee21 - - "": [t: "thick under bar accent"] # 0xee22 - - "": [t: "bar accent with closed circle right"] # 0xee23 - - "": [t: "large dot above"] # 0xee24 - - "": [t: "alignment mark"] # 0xef00 - - "": [t: ""] # 0xef01 - - "​": [t: ""] # 0x200b - - "": [t: ""] # 0xef02 - - " ": [t: ""] # 0x2009 - - "": [t: ""] # 0xef03 - - " ": [t: ""] # 0x205f - - "": [t: ""] # 0xef04 - - "": [t: ""] # 0xef05 - - "": [t: ""] # 0xef06 - - "": [t: ""] # 0xef07 - - "": [t: ""] # 0xef08 - - "": [t: ""] # 0xef09 - - "": [t: ""] # 0xef0a - - " ": [t: ""] # 0x200a - - "": [t: ""] # 0xef22 - - "": [t: ""] # 0xef23 - - "": [t: ""] # 0xef24 - - "": [t: ""] # 0xef29 - - "": [t: "missing term"] # 0xef41 - - "": [t: "clockwise contour integral arrow on left"] # 0xef80 - - "": [t: "integral with square"] # 0xef81 - - "": [t: "integral with slash"] # 0xef82 - - "": [t: "reversed integral"] # 0xef83 - - "": [t: "double zero over double zero"] # 0xef90 - - "": [t: "zero with slash"] # 0xef91 - - # fraktur chars in math alphabetic block and also MathType private use area - # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display - - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) - - t: "fraktur" - - spell: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" - - - "-": # 0xf000 - 0xf018 - - t: "fraktur" - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" - - - "𝔞-𝔷": # 0x1d51e - 0x1d537 - - t: "fraktur" - - spell: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf01a - 0xf033 - - t: "fraktur" - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝕬-𝖅": # 0x1D56C - 0x1D585 - - t: "fraktur" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf040 - 0xf059 - - t: "fraktur" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝖆-𝖟": # 0x1d586 - 0x1d59f - - t: "fraktur" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf05a - 0xf073 - - t: "fraktur" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area - # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display - - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) - - t: "double struck" - - spell: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf080 - 0xf098 - - t: "double struck" - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝕒-𝕫": # 0x1d552 - 0x1d56b - - t: "double struck" - - spell: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf09a - 0xf0b3 - - t: "double struck" - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - "𝟘-𝟡": # 0x1d7d8 - 0x1d7e1 - - t: "double struck" - - spell: "translate('.', '𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡', '0123456789')" - - "-": # 0xf0c0 - 0xf0c9 - - t: "double struck" - - spell: "translate('.', '', '0123456789')" - - - "": [t: "double struck nahblah"] # 0xf0ca - - "": [t: "double struck euler constant"] # 0xf0cb - - # script chars in math alphabetic block and also MathType private use area - - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 - - t: "script" - - spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf100 - 0xf119 - - t: "script" - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf - - t: "script" - - spell: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf11a - 0xf133 - - t: "script" - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - # bold script chars in math alphabetic block and also MathType private use area - - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 - - t: "script" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf140 - 0xf159 - - t: "script" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝓪-𝔃": # 0x1d4ea - 0x1d503 - - t: "script" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf15a - 0xf173 - - t: "script" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf180 - 0xf199 - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "": # 0xf19a - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [t: "cap"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [t: "ligature ae"] - - "": # 0xf19b - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [t: "cap"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [t: "sharp s"] - - "": # 0xf19c - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [t: "cap"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [t: "o with stroke"] - - # MathType only has a few of the cap Greek letters in PUA - - "": # 0xf201 - 0xf209 - - t: "double struck" - - spell: "translate('.', '', 'ΔΨΛΠΣΘΓΩΥ')" - - - "-": # 0xf220 - 0xf236 - - t: "double struck" - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "": [t: "double struck final sigma"] # 0xf237 - - "": [t: "double struck rho"] # 0xf250 - - "": [t: "double struck phi"] # 0xf251 - - "𝐀-𝐙": # 0x1d400 - 0x1d419 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf260 - 0xf279 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝐚-𝐳": # 0x1d41a - 0x1d433 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf27a - 0xf293 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝐴-𝑍": # 0x1d434 - 0x1d44d - - spell: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf294 - 0xf2ad - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝑎-𝑧": # 0x1d44e - 0x1d467 - - spell: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf2ae - 0xf2c7 - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝑨-𝒁": # 0x1d468 - 0x1d481 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf2c8 - 0xf2e1 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝒂-𝒛": # 0x1d482 - 0x1d49b - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf2e2 - 0xf2fb - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 - - spell: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf300 - 0xf319 - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 - - spell: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf31a - 0xf333 - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf334 - 0xf34d - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝗮-𝘇": # 0x1d5ee - 0x1d607 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf34e - 0xf367 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - "𝘈-𝘡": # 0x1d608 - 0x1d621 - # - t: "italic" - - spell: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - "-": # 0xf368 - 0xf381 - # - t: "italic" - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝘢-𝘻": # 0x1d622 - 0x1d63b - # - t: "italic" - - spell: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf382 - 0xf39b - # - t: "italic" - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝘼-𝙕": # 0x1d63c - 0x1d655 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf39c - 0xf3b5 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝙖-𝙯": # 0x1d656 - 0x1d66f - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf3b6 - 0xf3cf - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝙰-𝚉": # 0x1d670 - 0x1d689 - - spell: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf3d0 - 0xf3e9 - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 - - spell: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf3ea - 0xf403 - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "": [t: "dotless i"] # 0xf404 - - "𝚤": [t: "dotless i"] # 0x1d6a4 - - "𝚥": [t: "dotless j"] # 0x1d6a5 - - - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf408 - 0xf420 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf422 - 0xf43a - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "": [t: "bold nahblah"] # 0xf421 - - "𝛁": [t: "bold nahblah"] # 0x1d6c1 - - - "𝛛𝛜𝛝𝛞𝛟𝛠𝛡": # 0x1D6DB - 0x1D6E1 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠𝛡', '∂εθκφρπ')" - - - "": # 0xF43C - 0xF441 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', '∂εθκφρπ')" - - - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa - # - t: "italic" - - spell: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf442 - 0xf45a - # - t: "italic" - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝛼-𝜔": # 0x1d6fc - 0x1d714 - # - t: "italic" - - spell: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf45c - 0xf474 - # - t: "italic" - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "": [t: "italic nahblah"] # 0xf45b - - "𝛻": [t: "italic nahblah"] # 0x1d6fb - - - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b - # - t: "italic" - - spell: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" - - - "": # 0xf475 - 0xf47b - # - t: "italic" - - spell: "translate('.', '', '∂εθκφρπ')" - - - "𝜜-𝜴": # 0x1d71c - 0x1d734 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf47c - 0xf494 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝜶-𝝎": # 0x1d736 - 0x1d74e - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf496 - 0xf4ae - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝝏𝝐𝝑𝝒𝝓𝝔𝝕": # 0x1d74f - 0x1d755 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔𝝕', '∂εθκφρπ')" - - - "": # 0xf422 - 0xf43a - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', '∂εθκφρπ')" - - - "𝜵": [t: "bold italic nahblah"] # 0x1d735 - - "": [t: "bold italic nahblah"] # 0xf495 - - - "𝝖-𝝮": # 0x1d756 - 0x1d76e - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - "-": # 0xf4b6 - 0xf4ce - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝝰-𝞈": # 0x1d770 - 0x1d788 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf4d0 - 0xf4e8 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝞉𝞊𝞋𝞌𝞍𝞎𝞏": # 0x1d789 - 0x1d78f - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎𝞏', '∂εθκφρπ')" - - - "": # 0xf4e9 - 0xf4ef - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', '∂εθκφρπ')" - - - "": [t: "bold nahblah"] # 0xf4cf - - "𝝯": [t: "bold nahblah"] # 0x1d76f - - - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf4f0 - 0xf508 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf50a - 0xf522 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝟃𝟄𝟅𝟆𝟇𝟈𝟉": # 0x1d7c3 - 0x1d7c9 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈𝟉', '∂εθκφρπ')" - - - "": # 0xf523 - 0xf529 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', '∂εθκφρπ')" - - - "": [t: "bold nahblah"] # 0xf509 - - "𝞩": [t: "bold nahblah"] # 0x1d7a9 - - - "-": # 0xf52e - 0xf537 (old MathType) - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '', '0123456789')" - - - "𝟎-𝟗": # 0x1d7ce - 0x1d7d7 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗', '0123456789')" - - - "𝟬-𝟵": # 0x1D7EC - 0x1D7F5 - - test: - if: "not($IgnoreBold)" - then: [t: "bold"] - - spell: "translate('.', '𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵', '0123456789')" - - - "-": # 0xf556 - 0xf55f (old MathType) - - spell: "translate('.', '', '0123456789')" - - - "𝟢-𝟫": # 0x1d7e2 - 0x1d7eb - - spell: "translate('.', '𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫', '0123456789')" - - - - "𝟶-𝟿": # 0x1d7f6 - 0x1d7ff - - spell: "translate('.', '𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿', '0123456789')" - - - - "": [t: "unknown character"] # 0xf700 - - "": [t: "lower right and lower left triangles"] # 0xf726 - - "": [t: "horizontal ellipsis extender"] # 0xf72d - - "": [t: "midline horizontal ellipsis extender"] # 0xf72e - - "": [t: "radical extender"] # 0xf8e5 - - "": [t: "vertical arrow extender"] # 0xf8e6 - - "": [t: "horizontal arrow extender"] # 0xf8e7 - - "": [t: "registered sign sans serif"] # 0xf8e8 - - "": [t: "copyright sign sans serif"] # 0xf8e9 - - "": [t: "trade mark sign sans serif"] # 0xf8ea - - "": [t: "left paren top"] # 0xf8eb - - "": [t: "left paren extender"] # 0xf8ec - - "": [t: "left paren bottom"] # 0xf8ed - - "": [t: "left bracket top"] # 0xf8ee - - "": [t: "left bracket extender"] # 0xf8ef - - "": [t: "left bracket bottom"] # 0xf8f0 - - "": [t: "left brace top"] # 0xf8f1 - - "": [t: "left brace mid"] # 0xf8f2 - - "": [t: "left brace bottom"] # 0xf8f3 - - "": [t: "brace extender"] # 0xf8f4 - - "": [t: "integral extender"] # 0xf8f5 - - "": [t: "right paren top"] # 0xf8f6 - - "": [t: "right paren extender"] # 0xf8f7 - - "": [t: "right paren bottom"] # 0xf8f8 - - "": [t: "right bracket top"] # 0xf8f9 - - "": [t: "right bracket extender"] # 0xf8fa - - "": [t: "right bracket bottom"] # 0xf8fb - - "": [t: "right brace top"] # 0xf8fc - - "": [t: "right brace mid"] # 0xf8fd - - "": [t: "right brace bottom"] # 0xf8fe - - "": [t: "apple logo"] # 0xf8ff - - "ff": [t: "ff"] # 0xfb00 - - "fi": [t: "fi"] # 0xfb01 - - "fl": [t: "fl"] # 0xfb02 - - "ffi": [t: "ffi"] # 0xfb03 - - "ffl": [t: "ffl"] # 0xfb04 - - "ſt": [t: "ft"] # 0xfb05 - - "st": [t: "st"] # 0xfb06 - - "﬩": [t: "hebrew letter alternative plus"] # 0xfb29 - - "︠": [t: "ligature left half embellishment"] # 0xfe20 - - "︡": [t: "ligature right half embellishment"] # 0xfe21 - - "︢": [t: "double tilde left half embellishment"] # 0xfe22 - - "︣": [t: "double tilde right half embellishment"] # 0xfe23 - - "︤": [t: "macron left half embellishment"] # 0xfe24 - - "︥": [t: "macron right half embellishment"] # 0xfe25 - - "︦": [t: "conjoining macron embellishment"] # 0xfe26 - - "︵": [t: "over paren"] # 0xfe35 - - "︶": [t: "under paren"] # 0xfe36 - - "︷": [t: "over brace"] # 0xfe37 - - "︸": [t: "under brace"] # 0xfe38 - - "︿": [t: "over angle bracket"] # 0xfe3f - - "﹀": [t: "under angle bracket"] # 0xfe40 - - "﹡": [t: "small asterisk"] # 0xfe61 - - "﹢": [t: "small plus"] # 0xfe62 - - "﹣": [t: "small minus"] # 0xfe63 - - "﹤": [t: "small less than"] # 0xfe64 - - "﹥": [t: "small greater than"] # 0xfe65 - - "﹦": [t: "small equals"] # 0xfe66 - - "+": [t: "fullwidth plus sign"] # 0xff0b - - "<": [t: "less than"] # 0xff1c - - "=": [t: "equals"] # 0xff1d - - ">": [t: "greater than"] # 0xff1e - - "\": [t: "backslash"] # 0xff3c - - "^": [t: "hat"] # 0xff3e - - "|": # 0xff5c - # note: for ClearSpeak and SimpleSpeak, "|" inside of sets is handled at the mrow level, same for 'sets' - - with: - variables: [DefaultToGiven: "count(preceding-sibling::*)=1 and count(following-sibling::*)=1 and ../../../*[1][.='P']"] # P(A|B) - replace: - - test: - - if: "$SpeechStyle != 'ClearSpeak'" - then_test: - if: "$DefaultToGiven" - then: [t: "given"] - else: [t: "vertical line"] - - else_if: "not(preceding-sibling::*) or not(following-sibling::*)" - then: [t: "vertical line"] - - else_if: "$ClearSpeak_VerticalLine = 'SuchThat'" - then: [t: "such that"] - - else_if: "$ClearSpeak_VerticalLine = 'Given' or $DefaultToGiven" - then: [t: "given"] - - else: [t: "divides"] - - "~": [t: "tilde"] # 0xff5e - - "¬": [t: "not"] # 0xffe2 - - "←": [t: "left arrow"] # 0xffe9 - - "↑": [t: "up arrow"] # 0xffea - - "→": [t: "right arrow"] # 0xffeb - - "↓": [t: "down arrow"] # 0xffec - - "": [t: "unknown or missing object"] # 0xfffc - - "�": [t: "unknown or missing character"] # 0xfffd - - - "🣑": [t: "is in equilibrium with"] # 0x1F8D1 - - "🣒": [t: "is in equilibrium biased to the right with"] # 0x1F8D2 - - "🣓": [t: "is in equilibrium biased to the left with"] # 0x1F8D3 - -# MathJax v4 has adopted these PUA values for some partial chem bonds that aren't in Unicode - - "\uE410": [t: "partial bond "] # 0xe410 - - "\uE411": [t: "double partial bond "] # 0xe411 - - "\uE412": [t: "triple partial bond "] # 0xe412 - -# MathJax v4 also adopted these PUA values for some arrows thar are in Unicode -# Hopefully these will be exported properly in future versions of MathJax - - "\uE428": [spell: "'⟵'"] # 0xe428 defer to def of arrow - - "\uE429": [spell: "'⟶'"] # 0xe429 defer to def of arrow - - "\uE42A": [spell: "'⟷'"] # 0xe42a defer to def of arrow - - "\uE408": [spell: "'🣑'"] # 0xe408 defer to def of arrow - - "\uE409": [spell: "'🣒'"] # 0xe409 defer to def of arrow - - "\uE40A": [spell: "'🣓'"] # 0xe40a defer to def of arrow - - "\uE42B": [spell: "'⇄'"] # 0xe42b defer to def of arrow - - "\uE42C": [spell: "'←'"] # 0xe42c defer to def of arrow - - "\uE42D": [spell: "'→'"] # 0xe42d defer to def of arrow - - "\uE42E": [spell: "'⇄'"] # 0xe42e defer to def of arrow +--- + + + - "¢": [t: "cents"] # 0xa2 + - "£": [t: "pounds"] # 0xa3 + - "¤": [t: "currency sign"] # 0xa4 + - "¥": [t: "yen"] # 0xa5 + - "¦": [t: "broken bar"] # 0xa6 + - "§": [t: "section"] # 0xa7 + - "¨": [t: "double dot"] # 0xa8 + - "©": [t: "copyright"] # 0xa9 + - "ª": [t: "feminine ordinal indicator"] # 0xaa + - "«": [t: "left-pointing double angle quote mark"] # 0xab + - "¯": # 0xaf + - test: + if: "ancestor::m:modified-variable and preceding-sibling::*[1][self::m:mi]" + then: [t: "bar"] + else: [t: "line"] + - "²": [t: "two"] # 0xb2 + - "³": [t: "three"] # 0xb3 + - "µ": [t: "micro"] # 0xb5 + - "¹": [t: "one"] # 0xb9 + - "º": [t: "masculine ordinal indicator"] # 0xb9 + - "¡": [t: "inverted exclamation mark"] # 0xa1 + - "¶": [t: "paragraph mark"] # 0xb6 + - "¿": [t: "inverted question mark"] # 0xbf + + - "ʰ": [t: "modifier small h"] # 0x2b0 + - "ʱ": [t: "modifier small h with hook"] # 0x2b1 + - "ʲ": [t: "modifier small j"] # 0x2b2 + - "ʳ": [t: "modifier small r"] # 0x2b3 + - "ʴ": [t: "modifier small turned r"] # 0x2b4 + - "ʵ": [t: "modifier small turned r with hook"] # 0x2b5 + - "ʶ": # 0x2b6 + - t: "modifier small inverted" + - spell: "translate('R', 'R', 'R')" + + - "ʷ": [t: "modifier small w"] # 0x2b7 + - "ʸ": [t: "modifier small y"] # 0x2b8 + - "ʹ": [t: "modifier prime"] # 0x2b9 + - "ʺ": [t: "modifier double prime"] # 0x2ba + - "ʻ": [t: "modifier turned comma"] # 0x2bb + - "ʼ": [t: "modifier apostrophe"] # 0x2bc + - "ʽ": [t: "modifier reversed comma"] # 0x2bd + - "ʾ": [t: "modifier right half ring"] # 0x2be + - "ʿ": [t: "modifier left half ring"] # 0x2bf + - "ˀ": [t: "modifier glottal stop"] # 0x2c0 + - "ˁ": [t: "modifier reversed glottal stop"] # 0x2c1 + - "˂": [t: "modifier left arrowhead"] # 0x2c2 + - "˃": [t: "modifier right arrowhead"] # 0x2c3 + - "˄": [t: "modifier up arrowhead"] # 0x2c4 + - "˅": [t: "modifier down arrowhead"] # 0x2c5 + - "ˆ": [t: "modifier circumflex accent"] # 0x2c6 + - "ˇ": [t: "check"] # 0x2c7 + - "ˈ": [t: "modifier vertical line"] # 0x2c8 + - "ˉ": [t: "modifier macron"] # 0x2c9 + - "ˊ": [t: "modifier acute accent"] # 0x2ca + - "ˋ": [t: "modifier grave accent"] # 0x2cb + - "ˌ": [t: "modifier low vertical line"] # 0x2cc + - "ˍ": [t: "modifier low macron"] # 0x2cd + - "ˎ": [t: "modifier low grave accent"] # 0x2ce + - "ˏ": [t: "modifier low acute accent"] # 0x2cf + - "ː": [t: "modifier triangular colon"] # 0x2d0 + - "ˑ": [t: "modifier half triangular colon"] # 0x2d1 + - "˒": [t: "modifier centered right half ring"] # 0x2d2 + - "˓": [t: "modifier centered left half ring"] # 0x2d3 + - "˔": [t: "modifier up tadck"] # 0x2d4 + - "˕": [t: "modifier down tack"] # 0x2d5 + - "˖": [t: "modifier plus sign"] # 0x2d6 + - "˗": [t: "modifier minus sign"] # 0x2d7 + - "˘": [t: "breve"] # 0x2d8 + - "˙": [t: "dot"] # 0x2d9 + - "˚": [t: "ring above"] # 0x2da + - "˛": [t: "ogonek"] # 0x2db + - "˜": [t: "small tilde"] # 0x2dc + - "˝": [t: "double acute accent"] # 0x2dd + - "˞": [t: "modifier rhotic hook"] # 0x2de + - "˟": [t: "modifier cross accent"] # 0x2df + - "ˠ": [t: "modifier small gamma"] # 0x2e0 + - "ˡ": [t: "modifier small l"] # 0x2e1 + - "ˢ": [t: "modifier small s"] # 0x2e2 + - "ˣ": [t: "modifier small x"] # 0x2e3 + - "ˤ": [t: "modifier small reversed glottal stop"] # 0x2e4 + - "˥": [t: "modifier extra-high tone bar"] # 0x2e5 + - "˦": [t: "modifier high tone bar"] # 0x2e6 + - "˧": [t: "modifier mid tone bar"] # 0x2e7 + - "˨": [t: "modifier low tone bar"] # 0x2e8 + - "˩": [t: "modifier extra-low tone bar"] # 0x2e9 + - "˪": [t: "modifier yin departing tone mark"] # 0x2ea + - "˫": [t: "modifier yang departing tone mark"] # 0x2eb + - "ˬ": [t: "modifier voicing"] # 0x2ec + - "˭": [t: "modifier unaspirated"] # 0x2ed + - "ˮ": [t: "modifier double apostrophe"] # 0x2ee + - "˯": [t: "modifier low down arrowhead"] # 0x2ef + - "˰": [t: "modifier low up arrowhead"] # 0x2f0 + - "˱": [t: "modifier low left arrowhead"] # 0x2f1 + - "˲": [t: "modifier low right arrowhead"] # 0x2f2 + - "˳": [t: "modifier low ring"] # 0x2f3 + - "˴": [t: "modifier middle grave accent"] # 0x2f4 + - "˵": [t: "modifier middle double grave accent"] # 0x2f5 + - "˶": [t: "modifier middle double acute accent"] # 0x2f6 + - "˷": [t: "modifier low tilde"] # 0x2f7 + - "˸": [t: "modifier raised colon"] # 0x2f8 + - "˹": [t: "modifier begin high tone"] # 0x2f9 + - "˺": [t: "modifier end high tone"] # 0x2fa + - "˻": [t: "modifier begin low tone"] # 0x2fb + - "˼": [t: "modifier end low tone"] # 0x2fc + - "˽": [t: "modifier shelf"] # 0x2fd + - "˾": [t: "modifier open shelf"] # 0x2fe + - "˿": [t: "modifier low left arrow"] # 0x2ff + - "̈": [t: "diaeresis embellishment"] # 0x308 + - "̉": [t: "hook above embellishment"] # 0x309 + - "̊": [t: "ring above embellishment"] # 0x30a + - "̋": [t: "double acute accent embellishment"] # 0x30b + - "̌": [t: "check"] # 0x30c + - "̍": [t: "vertical line above embellishment"] # 0x30d + - "̎": [t: "double vertical line above embellishment"] # 0x30e + - "̏": [t: "double grave accent embellishment"] # 0x30f + - "̐": [t: "candrabindu embellishment"] # 0x310 + - "̑": [t: "inverted breve embellishment"] # 0x311 + - "̒": [t: "turned comma above embellishment"] # 0x312 + - "̓": [t: "comma above embellishment"] # 0x313 + - "̔": [t: "reversed comma above embellishment"] # 0x314 + - "̕": [t: "comma above right embellishment"] # 0x315 + - "̖": [t: "grave accent below embellishment"] # 0x316 + - "̗": [t: "acute accent below embellishment"] # 0x317 + - "̘": [t: "left tack below embellishment"] # 0x318 + - "̙": [t: "right tack below embellishment"] # 0x319 + - "̚": [t: "left angle above embellishment"] # 0x31a + - "̛": [t: "horn embellishment"] # 0x31b + - "̜": [t: "left half ring below embellishment"] # 0x31c + - "̝": [t: "up tack below embellishment"] # 0x31d + - "̞": [t: "down tack below embellishment"] # 0x31e + - "̟": [t: "plus sign below embellishment"] # 0x31f + - "̠": [t: "minus sign below embellishment"] # 0x320 + - "̡": [t: "palatalized hook below embellishment"] # 0x321 + - "̢": [t: "retroflex hook below embellishment"] # 0x322 + - "̣": [t: "dot below embellishment"] # 0x323 + - "̤": [t: "diaeresis below embellishment"] # 0x324 + - "̥": [t: "ring below embellishment"] # 0x325 + - "̦": [t: "comma below embellishment"] # 0x326 + - "̧": [t: "cedilla embellishment"] # 0x327 + - "̨": [t: "ogonek embellishment"] # 0x328 + - "̩": [t: "vertical line below embellishment"] # 0x329 + - "̪": [t: "bridge below embellishment"] # 0x32a + - "̫": [t: "inverted double arch below embellishment"] # 0x32b + - "̬": [t: "caron below embellishment"] # 0x32c + - "̭": [t: "circumflex accent below embellishment"] # 0x32d + - "̮": [t: "breve below embellishment"] # 0x32e + - "̯": [t: "inverted breve below embellishment"] # 0x32f + - "̰": [t: "tilde below embellishment"] # 0x330 + - "̱": [t: "macron below embellishment"] # 0x331 + - "̲": [t: "low line embellishment"] # 0x332 + - "̳": [t: "double low line embellishment"] # 0x333 + - "̴": [t: "tilde overlay embellishment"] # 0x334 + - "̵": [t: "short stroke overlay embellishment"] # 0x335 + - "̶": [t: "long stroke overlay embellishment"] # 0x336 + - "̷": [t: "short solidus overlay embellishment"] # 0x337 + - "̸": [t: "long solidus overlay embellishment"] # 0x338 + - "̹": [t: "right half ring below embellishment"] # 0x339 + - "̺": [t: "inverted bridge below embellishment"] # 0x33a + - "̻": [t: "square below embellishment"] # 0x33b + - "̼": [t: "seagull below embellishment"] # 0x33c + - "̽": [t: "x above embellishment"] # 0x33d + - "̾": [t: "vertical tilde embellishment"] # 0x33e + - "̿": [t: "double overline embellishment"] # 0x33f + - "̀": [t: "grave tone mark embellishment"] # 0x340 + - "́": [t: "acute tone mark embellishment"] # 0x341 + - "͆": [t: "bridge above"] # 0x346 + + - "ΪΫϏ": # 0x3aa, 0x3ab, 0x3cf + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [t: "cap"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [spell: "translate('.', 'ΪΫϏ', 'ιυϗ')"] + - t: "with dialytika" + - "ϊ": [t: "iota with dialytika"] # 0x3ca + - "ϋ": [t: "upsilon with dialytika"] # 0x3cb + - "ό": [t: "omicron with tonos"] # 0x3cc + - "ύ": [t: "upsilon with tonos"] # 0x3cd + - "ώ": [t: "omega with tonos"] # 0x3ce + - "ϐ": [t: "beta"] # 0x3d0 + - "ϑ": [t: "theta"] # 0x3d1 + - "ϒ": [t: "upsilon with hook"] # 0x3d2 + - "ϓ": [t: "upsilon with acute and hook"] # 0x3d3 + - "ϔ": [t: "upsilon with diaeresis and hook"] # 0x3d4 + - "ϗ": [t: "kai"] # 0x3d7 + - "Ϙ": [t: "cap archaic koppa"] # 0x3d8 + - "ϙ": [t: "archaic koppa"] # 0x3d9 + - "А-Я": # 0x410 - 0x42f + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [t: "cap"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [spell: "translate('.', 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ', 'абвгдежзийклмнопрстуфхцчшщъыьэюя')"] + - "а": [t: "a"] # 0x430 + - "б": [t: "be"] # 0x431 + - "в": [t: "ve"] # 0x432 + - "г": [t: "ghe"] # 0x433 + - "д": [t: "de"] # 0x434 + - "е": [t: "ie"] # 0x435 + - "ж": [t: "zhe"] # 0x436 + - "з": [t: "ze"] # 0x437 + - "и": [t: "i"] # 0x438 + - "й": [t: "short i"] # 0x439 + - "к": [t: "ka"] # 0x43a + - "л": [t: "el"] # 0x43b + - "м": [t: "em"] # 0x43c + - "н": [t: "en"] # 0x43d + - "о": [t: "o"] # 0x43e + - "п": [t: "pe"] # 0x43f + - "р": [t: "er"] # 0x440 + - "с": [t: "es"] # 0x441 + - "т": [t: "te"] # 0x442 + - "у": [t: "u"] # 0x443 + - "ф": [t: "ef"] # 0x444 + - "х": [t: "ha"] # 0x445 + - "ц": [t: "tse"] # 0x446 + - "ч": [t: "che"] # 0x447 + - "ш": [t: "sha"] # 0x448 + - "щ": [t: "shcha"] # 0x449 + - "ъ": [t: "hard sign"] # 0x44a + - "ы": [t: "yeru"] # 0x44b + - "ь": [t: "soft sign"] # 0x44c + - "э": [t: "e"] # 0x44d + - "ю": [t: "yu"] # 0x44e + - "я": [t: "ya"] # 0x44f + - "؆": [t: "Arabic-Indic cube root"] # 0x606 + - "؇": [t: "Arabic-Indic fourth root"] # 0x607 + - "؈": [t: "Arabic ray"] # 0x608 + - "‐": [t: "hyphen"] # 0x2010 + - "‑": [t: "hyphen"] # 0x2011 + - "‒": [t: "figure dash"] # 0x2012 + - "–": [t: "en dash"] # 0x2013 + - "—": [t: "em dash"] # 0x2014 + - "―": [t: "horizontal bar"] # 0x2015 + - "‖": [t: "double vertical line"] # 0x2016 + - "†": [t: "dagger"] # 0x2020 + - "‡": [t: "double dagger"] # 0x2021 + + - " - ": [t: " "] # 0x2000 - 0x2007 + + - "•": # 0x2022 + - test: + if: "@data-chem-formula-op" + then: [t: "dot"] + else: [t: "bullet"] + + - "‰": [t: "per mille"] # 0x2030 + - "‱": [t: "per ten thousand"] # 0x2031 + - "′": [t: "prime"] # 0x2032 + - "″": [t: "double prime"] # 0x2033 + - "‴": [t: "triple prime"] # 0x2034 + - "‵": [t: "reversed prime"] # 0x2035 + - "‶": [t: "reversed double prime"] # 0x2036 + - "‷": [t: "reversed triple prime"] # 0x2037 + - "‸": [t: "to the"] # 0x2038 + - "‹": [t: "single left pointing angle quote mark"] # 0x2039 + - "›": [t: "single right pointing angle quote mark"] # 0x203a + - "‼": # 0x203c + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [t: "double exclamation point"] # 0x203c + else: [t: "double factorial"] # 0x203c + - "⁄": # 0x2044 + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [t: "large slash"] # 0x203c + else: [t: "divided by"] # 0x203c + - "⁅": [t: "left square bracket with quill"] # 0x2045 + - "⁆": [t: "right square bracket with quill"] # 0x2046 + - "※": [t: "reference mark"] # 0x203b + - "‿": [t: "under tie"] # 0x203F + - "⁀": [t: "tie"] # 0x2040 + - "⁎": [t: "low asterisk"] # 0x204e + - "⁏": [t: "reversed semicolon"] # 0x204f + - "⁐": [t: "close up"] # 0x2050 + - "⁑": [t: "two vertical asterisks"] # 0x2051 + - "⁒": [t: "commercial minus sign"] # 0x2052 + - "⁗": [t: "quadruple prime"] # 0x2057 + - "⁠": [t: ""] # 0x2060 + - "⁰": [t: "to the zeroth power"] # 0x2070 + - "ⁱ": [t: "to the i-th power"] # 0x2071 + - "⁴": [t: "to the fourth power"] # 0x2074 + - "⁵": [t: "to the fifth power"] # 0x2075 + - "⁶": [t: "to the sixth power"] # 0x2076 + - "⁷": [t: "to the seventh power"] # 0x2077 + - "⁸": [t: "to the eighth power"] # 0x2078 + - "⁹": [t: "to the ninth power"] # 0x2079 + - "⁺": [t: "superscript plus sign"] # 0x207a + - "⁻": [t: "superscript minus"] # 0x207b + - "⁼": [t: "superscript equals sign"] # 0x207c + - "⁽": [t: "superscript left parenthesis"] # 0x207d + - "⁾": [t: "superscript right parenthesis"] # 0x207e + - "ⁿ": [t: "to the ennth power"] # 0x207f + - "₀": [t: "sub zero"] # 0x2080 + - "₁": [t: "sub one"] # 0x2081 + - "₂": [t: "sub two"] # 0x2082 + - "₃": [t: "sub three"] # 0x2083 + - "₄": [t: "sub four"] # 0x2084 + - "₅": [t: "sub five"] # 0x2085 + - "₆": [t: "sub six"] # 0x2086 + - "₇": [t: "sub seven"] # 0x2087 + - "₈": [t: "sub eight"] # 0x2088 + - "₉": [t: "sub nine"] # 0x2089 + - "₊": [t: "subscript plus sign"] # 0x208a + - "₋": [t: "subscript minus sign"] # 0x208b + - "₌": [t: "subscript equals sign"] # 0x208c + - "₍": [t: "subscript left parenthesis"] # 0x208d + - "₎": [t: "subscript right parenthesis"] # 0x208e + - "ₐ": [t: "sub A"] # 0x2090 + - "ₑ": [t: "sub E"] # 0x2091 + - "ₒ": [t: "sub O"] # 0x2092 + - "ₓ": [t: "sub X"] # 0x2093 + - "ₕ": [t: "sub H"] # 0x2095 + - "ₖ": [t: "sub K"] # 0x2096 + - "ₗ": [t: "sub L"] # 0x2097 + - "ₘ": [t: "sub M"] # 0x2098 + - "ₙ": [t: "sub N"] # 0x2099 + - "ₚ": [t: "sub P"] # 0x209a + - "ₛ": [t: "sub S"] # 0x209b + - "ₜ": [t: "sub T"] # 0x209c + - "₠": [t: "european currenty units"] # 0x20a0 + - "₡": [t: "colons"] # 0x20a1 + - "₢": [t: "cruzeiro"] # 0x20a2 + - "₣": [t: "franc"] # 0x20a3 + - "₤": [t: "lira"] # 0x20a4 + - "₥": [t: "mills"] # 0x20a5 + - "₦": [t: "naira"] # 0x20a6 + - "₧": [t: "peseta"] # 0x20a7 + - "₨": [t: "rupees"] # 0x20a8 + - "₩": [t: "won"] # 0x20a9 + - "₪": [t: "new sheqels"] # 0x20aa + - "₫": [t: "dong"] # 0x20ab + - "€": [t: "euros"] # 0x20ac + - "₭": [t: "kip"] # 0x20ad + - "₮": [t: "tugrik"] # 0x20ae + - "₯": [t: "drachma"] # 0x20af + - "₰": [t: "german pennies"] # 0x20b0 + - "₱": [t: "pesos"] # 0x20b1 + - "₲": [t: "guaranis"] # 0x20b2 + - "₳": [t: "australs"] # 0x20b3 + - "₴": [t: "hryvnias"] # 0x20b4 + - "₵": [t: "cedis"] # 0x20b5 + - "₶": [t: "livre tournois"] # 0x20b6 + - "₷": [t: "spesmilos"] # 0x20b7 + - "₸": [t: "tenges"] # 0x20b8 + - "₹": [t: "indian rupees"] # 0x20b9 + - "₺": [t: "turkish liras"] # 0x20ba + - "⃐": [t: "left harpoon above embellishment"] # 0x20d0 + - "⃑": [t: "right harpoon above embellishment"] # 0x20d1 + - "⃒": [t: "long vertical line overlay embellishment"] # 0x20d2 + - "⃓": [t: "short vertical line overlay embellishment"] # 0x20d3 + - "⃔": [t: "anticlockwise arrow above embellishment"] # 0x20d4 + - "⃕": [t: "clockwise arrow above embellishment"] # 0x20d5 + - "⃖": [t: "left arrow above embellishment"] # 0x20d6 + - "⃗": [t: "right arrow above embellishment"] # 0x20d7 + - "⃘": [t: "ring overlay embellishment"] # 0x20d8 + - "⃙": [t: "clockwise ring overlay embellishment"] # 0x20d9 + - "⃚": [t: "anticlockwise ring overlay embellishment"] # 0x20da + - "⃛": [t: "triple dot"] # 0x20db + - "⃜": [t: "quadruple dot"] # 0x20dc + - "⃝": [t: "enclosing circle embellishment"] # 0x20dd + - "⃞": [t: "enclosing square embellishment"] # 0x20de + - "⃟": [t: "enclosing diamond embellishment"] # 0x20df + - "⃠": [t: "enclosing circle backslash embellishment"] # 0x20e0 + - "⃡": [t: "left right arrow above embellishment"] # 0x20e1 + - "⃢": [t: "enclosing screen embellishment"] # 0x20e2 + - "⃣": [t: "enclosing keycap embellishment"] # 0x20e3 + - "⃤": [t: "enclosing upward pointing triangle embellishment"] # 0x20e4 + - "⃥": [t: "reverse solidus overlay embellishment"] # 0x20e5 + - "⃦": [t: "double verticle stroke embellishment"] # 0x20e6 + - "⃧": [t: "annuity symbol embellishment"] # 0x20e7 + - "⃨": [t: "triple underdot"] # 0x20e8 + - "⃩": [t: "wide bridge above embellishment"] # 0x20e9 + - "⃪": [t: "left arrow overlay embellishment"] # 0x20ea + - "⃫": [t: "long double solidus overlay embellishment"] # 0x20eb + - "⃬": [t: "right harpoon with barb down embellishment"] # 0x20ec + - "⃭": [t: "left harpoon with barb down embellishment"] # 0x20ed + - "⃮": [t: "left arrow below embellishment"] # 0x20ee + - "⃯": [t: "right arrow below embellishment"] # 0x20ef + - "⃰": [t: "asterisk above embellishment"] # 0x20f0 + - "℄": [t: "center line symbol"] # 0x2104 + - "℅": [t: "care of"] # 0x2105 + - "℆": [t: "cada una"] # 0x2106 + - "ℇ": [t: "euler's constant"] # 0x2107 + - "℈": [t: "scruples"] # 0x2108 + - "℉": [t: "degrees fahrenheit"] # 0x2109 + - "ℊ": [t: "script g"] # 0x210a + - "ℌℑℨℭ": # 0x210c, 0x2111, 0x2128, 0x212d + - t: "fraktur" + - spell: "translate('.', 'ℌℑℨℭ', 'HIZC')" + + - "ℍℙℾℿ": # 0x210d, 0x2119, 0x213e, 0x213f + - t: "double struck" + - spell: "translate('.', 'ℍℙℾℿ', 'HPΓΠ')" + + - "ℎ": [t: "planck constant"] # 0x210e + - "ℏ": [t: "h bar"] # 0x210f + + - "ℐℒ℘ℬℰℱℳ": # 0x2110, 0x2112, 0x2118, 0x2130, 0x2131, 0x2133 + - t: "script" + - spell: "translate('.', 'ℐℒ℘ℬℰℱℳ', 'ILPBEFM')" + + - "℔": [t: "pounds"] # 0x2114 + - "№": [t: "number"] # 0x2116 + - "℥": [t: "ounces"] # 0x2125 + - "Ω": [t: "ohms"] # 0x2126 + - "℧": [t: "mhos"] # 0x2127 + - "℩": [t: "turned iota"] # 0x2129 + - "K": [t: "kelvin"] # 0x212a + - "Å": [t: "angstroms"] # 0x212b + - "ℯ": [t: "script e"] # 0x212f + + # coalesced some chars that use cap letters + - "Ⅎ℺⅁⅂⅃⅄": # 0x2132, 0x213a, 0x2141, 0x2142, 0x2143, 0x2144 + - test: + - if: "'.' = '℺'" + then: [t: "rotated"] + - else_if: "'.' = 'Ⅎ'" + then: [t: "turned"] + - else_if: "'.' = '⅃'" + then: [t: "reversed sans-serif"] + else: [t: "turned sans-serif"] + - spell: "translate('.', 'Ⅎ℺⅁⅂⅃⅄', 'FQGLLY')" + + - "ℴ": [t: "script o"] # 0x2134 + - "ℵ": [t: "first transfinite cardinal"] # 0x2135 + - "ℶ": [t: "second transfinite cardinal"] # 0x2136 + - "ℷ": [t: "third transfinite cardinal"] # 0x2137 + - "ℸ": [t: "fourth transfinite cardinal"] # 0x2138 + - "ℼ": [t: "double struck pi"] # 0x213c + - "ℽ": [t: "double struck gamma"] # 0x213d + - "⅀": [t: "double struck n-ary summation"] # 0x2140 + - "⅋": [t: "turned ampersand"] # 0x214b + - "⅌": [t: "per"] # 0x214c + - "ⅎ": [t: "turned F"] # 0x214e + - "¼": [t: "one quarter"] # 0x00bc + - "½": [t: "one half"] # 0x00bd + - "¾": [t: "three quarters"] # 0x00be + - "⅐": [t: "one seventh"] # 0x2150 + - "⅑": [t: "one ninth"] # 0x2151 + - "⅒": [t: "one tenth"] # 0x2152 + - "⅓": [t: "one third"] # 0x2153 + - "⅔": [t: "two thirds"] # 0x2154 + - "⅕": [t: "one fifth"] # 0x2155 + - "⅖": [t: "two fifths"] # 0x2156 + - "⅗": [t: "three fifths"] # 0x2157 + - "⅘": [t: "four fifths"] # 0x2158 + - "⅙": [t: "one sixth"] # 0x2159 + - "⅚": [t: "five sixths"] # 0x215a + - "⅛": [t: "one eighth"] # 0x215b + - "⅜": [t: "three eighths"] # 0x215c + - "⅝": [t: "five eighths"] # 0x215d + - "⅞": [t: "seven eighths"] # 0x215e + - "⅟": [t: "one over"] # 0x215f + - "Ⅰ": [t: "I"] # 0x2160 + - "Ⅱ": [t: "I I"] # 0x2161 + - "Ⅲ": [t: "I I I"] # 0x2162 + - "Ⅳ": [t: "I V"] # 0x2163 + - "Ⅴ": [t: "V"] # 0x2164 + - "Ⅵ": [t: "V I"] # 0x2165 + - "Ⅶ": [t: "V I I"] # 0x2166 + - "Ⅷ": [t: "V I I I"] # 0x2167 + - "Ⅸ": [t: "I X"] # 0x2168 + - "Ⅹ": [t: "X"] # 0x2169 + - "Ⅺ": [t: "X I"] # 0x216a + - "Ⅻ": [t: "X I I"] # 0x216b + - "Ⅼ": [t: "L"] # 0x216c + - "Ⅽ": [t: "C"] # 0x216d + - "Ⅾ": [t: "D"] # 0x216e + - "Ⅿ": [t: "M"] # 0x216f + - "ⅰ": [t: "I"] # 0x2170 + - "ⅱ": [t: "I I"] # 0x2171 + - "ⅲ": [t: "I I I"] # 0x2172 + - "ⅳ": [t: "I V"] # 0x2173 + - "ⅴ": [t: "V"] # 0x2174 + - "ⅵ": [t: "V I"] # 0x2175 + - "ⅶ": [t: "V I I"] # 0x2176 + - "ⅷ": [t: "V I I I"] # 0x2177 + - "ⅸ": [t: "I X"] # 0x2178 + - "ⅹ": [t: "X"] # 0x2179 + - "ⅺ": [t: "X I"] # 0x217a + - "ⅻ": [t: "X I I"] # 0x217b + - "ⅼ": [t: "L"] # 0x217c + - "ⅽ": [t: "C"] # 0x217d + - "ⅾ": [t: "D"] # 0x217e + - "ⅿ": [t: "M"] # 0x217f + - "↉": [t: "zero thirds"] # 0x2189 + - "↔": [t: "left right arrow"] # 0x2194 + - "↕": [t: "up down arrow"] # 0x2195 + - "↖": [t: "north west arrow"] # 0x2196 + - "↗": # 0x2197 + - test: + if: "ancestor::*[2][self::m:limit]" + then: [t: "approaches from below"] + else: [t: "north east arrow"] + + - "↘": # 0x2198 + - test: + if: "ancestor::*[2][self::m:limit]" + then: [t: "approaches from above"] + else: [t: "south east arrow"] + + - "↙": [t: "south west arrow"] # 0x2199 + - "↚": [t: "left arrow with stroke"] # 0x219a + - "↛": [t: "right arrow with stroke"] # 0x219b + - "↜": [t: "left wave arrow"] # 0x219c + - "↝": [t: "right wave arrow"] # 0x219d + - "↞": [t: "left two headed arrow"] # 0x219e + - "↟": [t: "up two headed arrow"] # 0x219f + - "↠": [t: "right two headed arrow"] # 0x21a0 + - "↡": [t: "down two headed arrow"] # 0x21a1 + - "↢": [t: "left arrow with tail"] # 0x21a2 + - "↣": [t: "right arrow with tail"] # 0x21a3 + - "↤": [t: "left arrow from bar"] # 0x21a4 + - "↥": [t: "up arrow from bar"] # 0x21a5 + - "↦": [t: "right arrow from bar"] # 0x21a6 + - "↧": [t: "down arrow from bar"] # 0x21a7 + - "↨": [t: "up down arrow with base"] # 0x21a8 + - "↩": [t: "left arrow with hook"] # 0x21a9 + - "↪": [t: "right arrow with hook"] # 0x21aa + - "↫": [t: "left arrow with loop"] # 0x21ab + - "↬": [t: "right arrow with loop"] # 0x21ac + - "↭": [t: "left right wave arrow"] # 0x21ad + - "↮": [t: "left right arrow with stroke"] # 0x21ae + - "↯": [t: "down zigzag arrow"] # 0x21af + - "↰": [t: "up arrow with tip left"] # 0x21b0 + - "↱": [t: "up arrow with tip right"] # 0x21b1 + - "↲": [t: "down arrow with tip left"] # 0x21b2 + - "↳": [t: "down arrow with tip right"] # 0x21b3 + - "↴": [t: "right arrow with corner down"] # 0x21b4 + - "↵": [t: "down arrow with corner left"] # 0x21b5 + - "↶": [t: "anticlockwise top semicircle arrow"] # 0x21b6 + - "↷": [t: "clockwise top semicircle arrow"] # 0x21b7 + - "↸": [t: "north west arrow to long bar"] # 0x21b8 + - "↹": [t: "left arrow to bar over right arrow to bar"] # 0x21b9 + - "↺": [t: "anticlockwise open circle arrow"] # 0x21ba + - "↻": [t: "clockwise open circle arrow"] # 0x21bb + - "↼": [t: "left harpoon up"] # 0x21bc + - "↽": [t: "left harpoon down"] # 0x21bd + - "↾": [t: "up harpoon right"] # 0x21be + - "↿": [t: "up harpoon left"] # 0x21bf + - "⇀": [t: "right harpoon up"] # 0x21c0 + - "⇁": [t: "right harpoon down"] # 0x21c1 + - "⇂": [t: "down harpoon right"] # 0x21c2 + - "⇃": [t: "down harpoon left"] # 0x21c3 + - "⇄": [t: "right arrow over left arrow"] # 0x21c4 + - "⇅": [t: "up arrow left of down arrow"] # 0x21c5 + - "⇆": [t: "left arrow over right arrow"] # 0x21c6 + - "⇇": [t: "left paired arrows"] # 0x21c7 + - "⇈": [t: "up paired arrows"] # 0x21c8 + - "⇉": [t: "right paired arrows"] # 0x21c9 + - "⇊": [t: "down paired arrows"] # 0x21ca + - "⇋": [t: "left harpoon over right harpoon"] # 0x21cb + - "⇌": [t: "right harpoon over left harpoon"] # 0x21cc + - "⇍": [t: "left double arrow with stroke"] # 0x21cd + - "⇎": [t: "left right double arrow with stroke"] # 0x21ce + - "⇏": [t: "right double arrow with stroke"] # 0x21cf + - "⇐": [t: "left double arrow"] # 0x21d0 + - "⇑": [t: "up double arrow"] # 0x21d1 + - "⇓": [t: "down double arrow"] # 0x21d3 + - "⇔": [t: "if and only if"] # 0x21d4 + - "⇕": [t: "up down double arrow"] # 0x21d5 + - "⇖": [t: "north west double arrow"] # 0x21d6 + - "⇗": [t: "north east double arrow"] # 0x21d7 + - "⇘": [t: "south east double arrow"] # 0x21d8 + - "⇙": [t: "south west double arrow"] # 0x21d9 + - "⇚": [t: "left triple arrow"] # 0x21da + - "⇛": [t: "right triple arrow"] # 0x21db + - "⇜": [t: "left squiggle arrow"] # 0x21dc + - "⇝": [t: "right squiggle arrow"] # 0x21dd + - "⇞": [t: "up arrow with double stroke"] # 0x21de + - "⇟": [t: "down arrow with double stroke"] # 0x21df + - "⇠": [t: "left dashed arrow"] # 0x21e0 + - "⇡": [t: "up dashed arrow"] # 0x21e1 + - "⇢": [t: "right dashed arrow"] # 0x21e2 + - "⇣": [t: "down dashed arrow"] # 0x21e3 + - "⇤": [t: "left arrow to bar"] # 0x21e4 + - "⇥": [t: "right arrow to bar"] # 0x21e5 + - "⇦": [t: "left white arrow"] # 0x21e6 + - "⇧": [t: "up white arrow"] # 0x21e7 + - "⇨": [t: "right white arrow"] # 0x21e8 + - "⇩": [t: "down white arrow"] # 0x21e9 + - "⇪": [t: "up white arrow from bar"] # 0x21ea + - "⇫": [t: "up white arrow on pedestal"] # 0x21eb + - "⇬": [t: "up white arrow on pedestal with horizontal bar"] # 0x21ec + - "⇭": [t: "up white arrow on pedestal with vertical bar"] # 0x21ed + - "⇮": [t: "up white double arrow"] # 0x21ee + - "⇯": [t: "up white double arrow on pedestal"] # 0x21ef + - "⇰": [t: "right white arrow from wall"] # 0x21f0 + - "⇱": [t: "north west arrow to corner"] # 0x21f1 + - "⇲": [t: "south east arrow to corner"] # 0x21f2 + - "⇳": [t: "up down white arrow"] # 0x21f3 + - "⇴": [t: "right arrow with small circle"] # 0x21f4 + - "⇵": [t: "down arrow left of up arrow"] # 0x21f5 + - "⇶": [t: "three right arrows"] # 0x21f6 + - "⇷": [t: "left arrow with vertical stroke"] # 0x21f7 + - "⇸": [t: "right arrow with vertical stroke"] # 0x21f8 + - "⇹": [t: "left right arrow with vertical stroke"] # 0x21f9 + - "⇺": [t: "left arrow with double vertical stroke"] # 0x21fa + - "⇻": [t: "right arrow with double vertical stroke"] # 0x21fb + - "⇼": [t: "left right arrow with double vertical stroke"] # 0x21fc + - "⇽": [t: "left open headed arrow"] # 0x21fd + - "⇾": [t: "right open headed arrow"] # 0x21fe + - "⇿": [t: "left right open headed arrow"] # 0x21ff + - "∀": [t: "for all"] # 0x2200 + - "∁": # 0x2201 + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "complement of" + - "∃": [t: "there exists"] # 0x2203 + - "∄": [t: "there does not exist"] # 0x2204 + - "∅": [t: "empty set"] # 0x2205 + - "∇": [t: "nahblah"] # 0x2207 + - "∋": [t: "contains the member"] # 0x220b + - "∌": [t: "does not contain the member"] # 0x220c + - "∍": [t: "contains the member"] # 0x220d + - "∎": [t: "end of proof"] # 0x220e + - "∏": [t: "product"] # 0x220f + - "∑": [t: "sum"] # 0x2211 + - "−": [t: "minus"] # 0x2212 + - "∓": [t: "minus or plus"] # 0x2213 + - "∔": [t: "dot plus"] # 0x2214 + - "∕": [t: "divided by"] # 0x2215 + - "∖": [t: "set minus"] # 0x2216 + - "∗": [t: "times"] # 0x2217 + - "∘": [t: "composed with"] # 0x2218 + - "∙": # 0x2219 + - test: + if: "@data-chem-formula-op" + then: [t: "dot"] + else: [t: "times"] + + - "∛": # 0x221b + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "cube root of" + - "∜": # 0x221c + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "fourth root of" + - "∞": [t: "infinity"] # 0x221e + - "∟": [t: "right angle"] # 0x221f + - "∠": [t: "angle"] # 0x2220 + - "∡": [t: "measured angle"] # 0x2221 + - "∢": [t: "spherical angle"] # 0x2222 + - "∣": [t: "divides"] # 0x2223 + - "∤": [t: "does not divide"] # 0x2224 + - "∧": [t: "and"] # 0x2227 + - "∨": [t: "or"] # 0x2228 + - "∩": [t: "intersection"] # 0x2229 + - "∪": [t: "union"] # 0x222a + - "∫": [t: "integral"] # 0x222b + - "∬": [t: "double integral"] # 0x222c + - "∭": [t: "triple integral"] # 0x222d + - "∮": [t: "contour integral"] # 0x222e + - "∯": [t: "surface integral"] # 0x222f + - "∰": [t: "volume integral"] # 0x2230 + - "∱": [t: "clockwise integral"] # 0x2231 + - "∲": [t: "clockwise contour integral"] # 0x2232 + - "∳": [t: "anticlockwise contour integral"] # 0x2233 + - "∴": [t: "therefore"] # 0x2234 + - "∵": [t: "because"] # 0x2235 + - "∷": [t: "as"] # 0x2237 + - "∸": [t: "dot minus"] # 0x2238 + - "∹": [t: "has excess compared to"] # 0x2239 + - "∺": # 0x223a + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "geometrically proportional to" + - "∻": # 0x223b + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "homothetic to" + - "∼": [t: "varies with"] # 0x223c + - "∽": [t: "reversed tilde"] # 0x223d + - "∿": [t: "sine wave"] # 0x223f + - "≀": [t: "wreath product"] # 0x2240 + - "≁": [t: "not tilde"] # 0x2241 + - "≂": [t: "minus tilde"] # 0x2242 + - "≃": # 0x2243 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "asymptotically equal to" + - "≄": # 0x2244 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "not asymptotically equal to" + - "≅": # 0x2245 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "congruent to" + - "≆": # 0x2246 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "approximately but not actually equal to" + - "≇": # 0x2247 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "not congruent to" + - "≈": # 0x2248 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "approximately equal to" + - "≉": # 0x2249 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "not approximately equal to" + - "≊": # 0x224a + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "approximately equal or equal to" + - "≋": [t: "triple tilde"] # 0x224b + - "≌": [t: "are all equal to"] # 0x224c + - "≍": # 0x224d + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "equivalent to" + - "≎": # 0x224e + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "geometrically equivalent to" + - "≏": # 0x224f + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "difference between" + - "≐": [t: "approaches the limit"] # 0x2250 + - "≑": # 0x2251 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "geometrically equal to" + - "≒": # 0x2252 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "approximately equal to or the image of" + - "≓": # 0x2253 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is the"] + - t: "image of or approximately equal to" + - "≔": [t: "colon equals"] # 0x2254 + - "≕": [t: "equals colon"] # 0x2255 + - "≖": [t: "ring in equal to"] # 0x2256 + - "≗": # 0x2257 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "approximately equal to" + - "≘": [t: "corresponds to"] # 0x2258 + - "≙": [t: "estimates"] # 0x2259 + - "≚": # 0x225a + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "equiangular to" + - "≛": [t: "star equals"] # 0x225b + - "≜": [t: "delta equals"] # 0x225c + - "≝": [t: "is defined to be"] # 0x225d + - "≞": # 0x225e + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "measured by" + - "≟": [t: "has an unknown relationship with"] # 0x225f + - "≢": # 0x2262 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "not identical to" + - "≣": # 0x2263 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "strictly equivalent to" + - "≦": [t: "less than over equal to"] # 0x2266 + - "≧": [t: "greater than over equal to"] # 0x2267 + - "≨": # 0x2268 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "less than but not equal to" + - "≩": # 0x2269 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "greater than but not equal to" + - "≪": # 0x226a + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "much less than" + - "≫": # 0x226b + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "much greater than" + - "≬": # 0x226c + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "between" + - "≭": # 0x226d + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "not equivalent to" + - "≮": # 0x226e + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "not less than" + - "≯": # 0x226f + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "not greater than" + - "≰": # 0x2270 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "neither less than nor equal to" + - "≱": # 0x2271 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "neither greater than nor equal to" + - "≲": # 0x2272 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "less than or equivalent to" + - "≳": # 0x2273 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "greater than or equivalent to" + - "≴": # 0x2274 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "neither less than nor equivalent to" + - "≵": # 0x2275 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "neither greater than nor equivalent to" + - "≶": # 0x2276 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "less than or greater than" + - "≷": # 0x2277 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "greater than or less than" + - "≸": # 0x2278 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "neither less than nor greater than" + - "≹": # 0x2279 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "neither greater than nor less than" + - "≺": [t: "precedes"] # 0x227a + - "≻": [t: "succeeds"] # 0x227b + - "≼": [t: "precedes or is equal to"] # 0x227c + - "≽": [t: "succeeds or is equal to"] # 0x227d + - "≾": [t: "precedes or is equivalent to"] # 0x227e + - "≿": [t: "succeeds or is equivalent to"] # 0x227f + - "⊀": [t: "does not precede"] # 0x2280 + - "⊁": [t: "does not succeed"] # 0x2281 + - "⊈": # 0x2288 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "neither a subset of nor equal to" + - "⊉": # 0x2289 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "neither a superset of nor equal to" + - "⊊": [t: "subset of with not equal to"] # 0x228a + - "⊋": [t: "superset of with not equal to"] # 0x228b + - "⊌": [t: "multiset"] # 0x228c + - "⊍": [t: "multiset multiplication"] # 0x228d + - "⊎": [t: "multiset union"] # 0x228e + - "⊏": [t: "square image of"] # 0x228f + - "⊐": [t: "square original of"] # 0x2290 + - "⊑": [t: "square image of or equal to"] # 0x2291 + - "⊒": [t: "square original of or equal to"] # 0x2292 + - "⊓": [t: "square cap"] # 0x2293 + - "⊔": [t: "square cup"] # 0x2294 + - "⊕": [t: "circled plus"] # 0x2295 + - "⊖": [t: "circled minus"] # 0x2296 + - "⊗": [t: "circled times"] # 0x2297 + - "⊘": [t: "circled slash"] # 0x2298 + - "⊙": [t: "circled dot operator"] # 0x2299 + - "⊚": [t: "circled ring"] # 0x229a + - "⊛": [t: "circled asterisk"] # 0x229b + - "⊜": [t: "circled equals"] # 0x229c + - "⊝": [t: "circled dash"] # 0x229d + - "⊞": [t: "squared plus"] # 0x229e + - "⊟": [t: "squared minus"] # 0x229f + - "⊠": [t: "squared times"] # 0x22a0 + - "⊡": [t: "squared dot operator"] # 0x22a1 + - "⊢": [t: "proves"] # 0x22a2 + - "⊣": [t: "does not yield"] # 0x22a3 + - "⊤": [t: "top"] # 0x22a4 + - "⊦": [t: "reduces to"] # 0x22a6 + - "⊧": [t: "models"] # 0x22a7 + - "⊨": # 0x22a8 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "true" + - "⊩": [t: "forces"] # 0x22a9 + - "⊪": [t: "triple vertical bar right turnstile"] # 0x22aa + - "⊫": [t: "double vertical bar double right turnstile"] # 0x22ab + - "⊬": [t: "does not prove"] # 0x22ac + - "⊭": # 0x22ad + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "not true" + - "⊮": [t: "does not force"] # 0x22ae + - "⊯": [t: "negated double vertical bar double right turnstile"] # 0x22af + - "⊰": [t: "precedes under relation"] # 0x22b0 + - "⊱": [t: "succeeds under relation"] # 0x22b1 + - "⊲": # 0x22b2 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "a normal subgroup of" + - "⊳": [t: "contains as a normal subgroup"] # 0x22b3 + - "⊴": # 0x22b4 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "a normal subgroup of or equal to" + - "⊵": [t: "contains as a normal subgroup or equal to"] # 0x22b5 + - "⊶": # 0x22b6 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "the original of" + - "⊷": # 0x22b7 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "an image of" + - "⊸": [t: "multimap"] # 0x22b8 + - "⊹": [t: "hermitian conjugate matrix"] # 0x22b9 + - "⊺": [t: "intercalate"] # 0x22ba + - "⊻": [t: "xor"] # 0x22bb + - "⊼": [t: "nand"] # 0x22bc + - "⊽": [t: "nor"] # 0x22bd + - "⊾": [t: "right angle with arc"] # 0x22be + - "⊿": [t: "right triangle"] # 0x22bf + - "⋀": [t: "logical and"] # 0x22c0 + - "⋁": [t: "logical or"] # 0x22c1 + - "⋂": [t: "intersection"] # 0x22c2 + - "⋃": [t: "union"] # 0x22c3 + - "⋄": [t: "diamond operator"] # 0x22c4 + - "⋅": # 0x22c5 + - test: + if: "@data-chem-formula-op" + then: [t: "dot"] + else: [t: "times"] + + - "⋆": [t: "times"] # 0x22c6 + - "⋇": [t: "division times"] # 0x22c7 + - "⋈": [t: "bowtie"] # 0x22c8 + - "⋉": # 0x22c9 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "the left normal factor semidirect product of" + - "⋊": # 0x22ca + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "the right normal factor semidirect product of" + - "⋋": # 0x22cb + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "the left semidirect product of" + - "⋌": # 0x22cc + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "the right semidirect product of" + - "⋍": [t: "reversed tilde equals"] # 0x22cd + - "⋎": [t: "curly logical or"] # 0x22ce + - "⋏": [t: "curly logical and"] # 0x22cf + - "⋐": # 0x22d0 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "a double subset of" + - "⋑": # 0x22d1 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "a double superset of" + - "⋒": # 0x22d2 + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "double intersection of" + - "⋓": # 0x22d3 + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "double union of" + - "⋔": # 0x22d4 + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "proper intersection of" + - "⋕": # 0x22d5 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "equal to and parallel to" + - "⋖": [t: "less than with dot"] # 0x22d6 + - "⋗": [t: "greater than with dot"] # 0x22d7 + - "⋘": # 0x22d8 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "very much less than" + - "⋙": # 0x22d9 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "very much greater than" + - "⋚": # 0x22da + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "less than equal to or greater than" + - "⋛": # 0x22db + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "greater than equal to or less than" + - "⋜": # 0x22dc + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "equal to or less than" + - "⋝": # 0x22dd + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "equal to or greater than" + - "⋞": # 0x22de + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "equal to or precedes" + - "⋟": # 0x22df + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "equal to or succeeds" + - "⋠": [t: "does not precede nor is equal to"] # 0x22e0 + - "⋡": [t: "does not succeed nor is equal to"] # 0x22e1 + - "⋢": [t: "not square image of or equal to"] # 0x22e2 + - "⋣": [t: "not square original of or equal to"] # 0x22e3 + - "⋤": [t: "square image of or not equal to"] # 0x22e4 + - "⋥": [t: "square original of or not equal to"] # 0x22e5 + - "⋦": # 0x22e6 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "less than but not equivalent to" + - "⋧": # 0x22e7 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "greater than but not equivalent to" + - "⋨": [t: "precedes but is not equivalent to"] # 0x22e8 + - "⋩": [t: "succeeds but is not equivalent to"] # 0x22e9 + - "⋪": # 0x22ea + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "not a normal subgroup of" + - "⋫": [t: "does not contain as a normal subgroup"] # 0x22eb + - "⋬": # 0x22ec + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "not a normal subgroup of nor is equal to" + - "⋭": [t: "does not contain as a normal subgroup nor is equal to"] # 0x22ed + - "⋮": [t: "vertical ellipsis"] # 0x22ee + - "⋯": [t: "dot dot dot"] # 0x22ef + - "⋰": [t: "up diagonal ellipsis"] # 0x22f0 + - "⋱": [t: "diagonal ellipsis"] # 0x22f1 + - "⋲": [t: "element of with long horizontal stroke"] # 0x22f2 + - "⋳": [t: "element of with vertical bar at end of horizontal stroke"] # 0x22f3 + - "⋴": [t: "element of with vertical bar at end of horizontal stroke"] # 0x22f4 + - "⋵": [t: "element of with dot above"] # 0x22f5 + - "⋶": [t: "element of with overbar"] # 0x22f6 + - "⋷": [t: "element of with overbar"] # 0x22f7 + - "⋸": [t: "element of with underbar"] # 0x22f8 + - "⋹": [t: "element of with two horizontal strokes"] # 0x22f9 + - "⋺": [t: "contains with long horizontal stroke"] # 0x22fa + - "⋻": [t: "contains with vertical bar at end of horizontal stroke"] # 0x22fb + - "⋼": [t: "contains with vertical bar at end of horizontal stroke"] # 0x22fc + - "⋽": [t: "contains with overbar"] # 0x22fd + - "⋾": [t: "contains with overbar"] # 0x22fe + - "⋿": [t: "z notation bag membership"] # 0x22ff + - "⌀": [t: "diameter"] # 0x2300 + - "⌁": [t: "electric arrow"] # 0x2301 + - "⌂": [t: "house"] # 0x2302 + - "⌃": [t: "up arrowhead"] # 0x2303 + - "⌄": [t: "down arrowhead"] # 0x2304 + - "⌅": [t: "projective"] # 0x2305 + - "⌆": [t: "perspective"] # 0x2306 + - "⌇": [t: "wavy line"] # 0x2307 + - "⌈": [t: "left ceiling"] # 0x2308 + - "⌉": [t: "right ceiling"] # 0x2309 + - "⌊": [t: "left floor"] # 0x230a + - "⌋": [t: "right floor"] # 0x230b + - "⌌": [t: "bottom right crop"] # 0x230c + - "⌍": [t: "bottom left crop"] # 0x230d + - "⌎": [t: "top right crop"] # 0x230e + - "⌏": [t: "top left crop"] # 0x230f + - "⌐": [t: "reversed not sign"] # 0x2310 + - "⌑": [t: "square lozenge"] # 0x2311 + - "⌒": [t: "arc"] # 0x2312 + - "⌓": [t: "segment"] # 0x2313 + - "⌔": [t: "sector"] # 0x2314 + - "⌕": [t: "telephone recorder"] # 0x2315 + - "⌖": [t: "position indicator crosshairs"] # 0x2316 + - "⌗": [t: "viewdata square"] # 0x2317 + - "⌘": [t: "place of interest sign"] # 0x2318 + - "⌙": [t: "turned not sign"] # 0x2319 + - "⌚": [t: "watch"] # 0x231a + - "⌛": [t: "hourglass"] # 0x231b + - "⌜": [t: "top left corner"] # 0x231c + - "⌝": [t: "top right corner"] # 0x231d + - "⌞": [t: "bottom left corner"] # 0x231e + - "⌟": [t: "bottom right corner"] # 0x231f + - "⌠": [t: "top half integral"] # 0x2320 + - "⌡": [t: "bottom half integral"] # 0x2321 + - "⌢": [t: "frown"] # 0x2322 + - "⌣": [t: "smile"] # 0x2323 + - "⌤": [t: "up arrowhead between two horizontal bars"] # 0x2324 + - "⌥": [t: "option key"] # 0x2325 + - "⌦": [t: "erase to the right"] # 0x2326 + - "⌧": [t: "x in a rectangle box"] # 0x2327 + - "⌨": [t: "keyboard"] # 0x2328 + - "〈": [t: "left pointing angle bracket"] # 0x2329 + - "〉": [t: "right pointing angle bracket"] # 0x232a + - "⌫": [t: "erase to the left"] # 0x232b + - "⌬": [t: "benzene ring"] # 0x232c + - "⌭": [t: "cylindricity"] # 0x232d + - "⌮": [t: "all around profile"] # 0x232e + - "⌯": [t: "symmetry"] # 0x232f + - "⌰": [t: "total runout"] # 0x2330 + - "⌱": [t: "dimension origin"] # 0x2331 + - "⌲": [t: "conical taper"] # 0x2332 + - "⌳": [t: "slope"] # 0x2333 + - "⌴": [t: "counterbore"] # 0x2334 + - "⌵": [t: "countersink"] # 0x2335 + - "⌶": [t: "apl i beam"] # 0x2336 + - "⌽": [t: "apl circle stile"] # 0x233d + - "⌿": [t: "apl slash bar"] # 0x233f + - "⍰": [t: "unknown box"] # 0x2370 + - "⍼": [t: "right angle with down zigzag arrow"] # 0x237c + - "⎔": [t: "hexagon"] # 0x2394 + - "⎕": [t: "box"] # 0x2395 + - "⎶": [t: "bottom square bracket over top square bracket"] # 0x23b6 + - "⏜": [t: "top paren"] # 0x23dc + - "⏝": [t: "bottom paren"] # 0x23dd + - "⏞": [t: "top brace"] # 0x23de + - "⏟": [t: "bottom brace"] # 0x23df + - "⏠": [t: "top tortoise shell bracket"] # 0x23e0 + - "⏡": [t: "bottom tortoise shell bracket"] # 0x23e1 + - "⏢": [t: "white trapezium"] # 0x23e2 + - "⏣": [t: "benzene ring with circle"] # 0x23e3 + - "⏤": [t: "straightness"] # 0x23e4 + - "⏥": [t: "flatness"] # 0x23e5 + - "⏦": # 0x23e6 + - spell: "ac" + - t: "current" + - "⏧": [t: "electrical intersection"] # 0x23e7 + - "①-⑨": # 0x2460 - 0x2469 + - t: "circled" + - spell: "translate('.', '①②③④⑤⑥⑦⑧⑨', '123456789')" + - "⑩": [t: "circled ten"] # 0x2469 + - "⑪": [t: "circled eleven"] # 0x246a + - "⑫": [t: "circled twelve"] # 0x246b + - "⑬": [t: "circled thirteen"] # 0x246c + - "⑭": [t: "circled fourteen"] # 0x246d + - "⑮": [t: "circled fifteen"] # 0x246e + - "⑯": [t: "circled sixteen"] # 0x246f + - "⑰": [t: "circled seventeen"] # 0x2470 + - "⑱": [t: "circled eighteen"] # 0x2471 + - "⑳": [t: "circled twenty"] # 0x2473 + - "⑴-⑼": # 0x2474 - 0x247d + - t: "parenthesized" + - spell: "translate('.', '⑴⑵⑶⑷⑸⑹⑺⑻⑼', '123456789')" + - "⑽": [t: "parenthesized ten"] # 0x247d + - "⑾": [t: "parenthesized eleven"] # 0x247e + - "⑿": [t: "parenthesized twelve"] # 0x247f + - "⒀": [t: "parenthesized thirteen"] # 0x2480 + - "⒁": [t: "parenthesized fourteen"] # 0x2481 + - "⒂": [t: "parenthesized fifteen"] # 0x2482 + - "⒃": [t: "parenthesized sixteen"] # 0x2483 + - "⒄": [t: "parenthesized seventeen"] # 0x2484 + - "⒅": [t: "parenthesized eighteen"] # 0x2485 + - "⒆": [t: "parenthesized nineteen"] # 0x2486 + - "⒇": [t: "parenthesized twenty"] # 0x2487 + - "⒈-⒐": # 0x2488 - 0x2491 + - spell: "translate('.', '⒈⒉⒊⒋⒌⒍⒎⒏⒐', '123456789')" + - t: "with period" + - "⒑": [t: "ten with period"] # 0x2491 + - "⒒": [t: "eleven with period"] # 0x2492 + - "⒓": [t: "twelve with period"] # 0x2493 + - "⒔": [t: "thirteen with period"] # 0x2494 + - "⒕": [t: "fourteen with period"] # 0x2495 + - "⒖": [t: "fifteen with period"] # 0x2496 + - "⒗": [t: "sixteen with period"] # 0x2497 + - "⒘": [t: "seventeen with period"] # 0x2498 + - "⒙": [t: "eighteen with period"] # 0x2499 + - "⒚": [t: "nineteen with period"] # 0x249a + - "⒛": [t: "twenty with period"] # 0x249b + - "⒜-⒵": # 0x249c - 0x24b5 + - t: "parenthesized" + - spell: "translate('.', '⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵', 'abcdefghijklmnopqrstuvwxyz')" + + - "Ⓐ-Ⓩ": # 0x24b6 - 0x24cf + - t: "circled" + - spell: "translate('.', 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "🅐-🅩": # 0x1f150 - 0x1f169 + - t: "black circled" + - spell: "translate('.', '🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "ⓐ-ⓩ": # 0x24d0 - 0x24e9 + - t: "circled" + - spell: "translate('.', 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ', 'abcdefghijklmnopqrstuvwxyz')" + + - "⓪": [t: "circled zero"] # 0x24ea + - "⓫": [t: "black circled eleven"] # 0x24eb + - "⓬": [t: "black circled twelve"] # 0x24ec + - "⓭": [t: "black circled thirteen"] # 0x24ed + - "⓮": [t: "black circled fourteen"] # 0x24ee + - "⓯": [t: "black circled fifteen"] # 0x24ef + - "⓰": [t: "black circled sixteen"] # 0x24f0 + - "⓱": [t: "black circled seventeen"] # 0x24f1 + - "⓲": [t: "black circled eighteen"] # 0x24f2 + - "⓳": [t: "black circled nineteen"] # 0x24f3 + - "⓴": [t: "black circled twenty"] # 0x24f4 + - "⓵-⓽": # 0x24f5 - 0x24fe + - t: "double circled" + - spell: "translate('.', '⓵⓶⓷⓸⓹⓺⓻⓼⓽', '123456789')" + - "⓾": [t: "double circled ten"] # 0x24fe + - "⓿": [t: "black circled zero"] # 0x24ff + - "■": [t: "black square"] # 0x25a0 + - "□": [t: "white square"] # 0x25a1 + - "▢": [t: "white square with rounded corners"] # 0x25a2 + - "▣": [t: "white square containing small black square"] # 0x25a3 + - "▤": [t: "square with horizontal fill"] # 0x25a4 + - "▥": [t: "square with vertical fill"] # 0x25a5 + - "▦": [t: "square with orthogonal crosshatch fill"] # 0x25a6 + - "▧": [t: "square with upper left to lower right fill"] # 0x25a7 + - "▨": [t: "square with upper right to lower left fill"] # 0x25a8 + - "▩": [t: "square with diagonal crosshatch fill"] # 0x25a9 + - "▪": [t: "black small square"] # 0x25aa + - "▫": [t: "white small square"] # 0x25ab + - "▬": [t: "black rectangle"] # 0x25ac + - "▭": [t: "white rectangle"] # 0x25ad + - "▮": [t: "black vertical rectangle"] # 0x25ae + - "▯": [t: "white vertical rectangle"] # 0x25af + - "▰": [t: "black parallelogram"] # 0x25b0 + - "▱": [t: "white parallelogram"] # 0x25b1 + - "▲": [t: "black up pointing triangle"] # 0x25b2 + - "△": [t: "triangle"] # 0x25b3 + - "▴": [t: "black up pointing small triangle"] # 0x25b4 + - "▵": [t: "white up pointing small triangle"] # 0x25b5 + - "▶": [t: "black right pointing triangle"] # 0x25b6 + - "▷": [t: "white right pointing triangle"] # 0x25b7 + - "▸": [t: "black right pointing small triangle"] # 0x25b8 + - "▹": [t: "white right pointing small triangle"] # 0x25b9 + - "►": [t: "black right pointing pointer"] # 0x25ba + - "▻": [t: "white right pointing pointer"] # 0x25bb + - "▼": [t: "black down pointing triangle"] # 0x25bc + - "▽": [t: "white down pointing triangle"] # 0x25bd + - "▾": [t: "black down pointing small triangle"] # 0x25be + - "▿": [t: "white down pointing small triangle"] # 0x25bf + - "◀": [t: "black left pointing triangle"] # 0x25c0 + - "◁": [t: "white left pointing triangle"] # 0x25c1 + - "◂": [t: "black left pointing small triangle"] # 0x25c2 + - "◃": [t: "white left pointing small triangle"] # 0x25c3 + - "◄": [t: "black left pointing pointer"] # 0x25c4 + - "◅": [t: "white left pointing pointer"] # 0x25c5 + - "◆": [t: "black diamond"] # 0x25c6 + - "◇": [t: "white diamond"] # 0x25c7 + - "◈": [t: "white diamond containing black small diamond"] # 0x25c8 + - "◉": [t: "fisheye"] # 0x25c9 + - "◊": [t: "lozenge"] # 0x25ca + - "○": [t: "white circle"] # 0x25cb + - "◌": [t: "dotted circle"] # 0x25cc + - "◍": [t: "circle with vertical fill"] # 0x25cd + - "◎": [t: "bullseye"] # 0x25ce + - "●": [t: "black circle"] # 0x25cf + - "◐": [t: "circle with left half black"] # 0x25d0 + - "◑": [t: "circle with right half black"] # 0x25d1 + - "◒": [t: "circle with lower half black"] # 0x25d2 + - "◓": [t: "circle with upper half black"] # 0x25d3 + - "◔": [t: "circle with upper right quadrant black"] # 0x25d4 + - "◕": [t: "circle with all but upper left quadrant black"] # 0x25d5 + - "◖": [t: "left half black circle"] # 0x25d6 + - "◗": [t: "right half black circle"] # 0x25d7 + - "◘": [t: "inverse bullet"] # 0x25d8 + - "◙": [t: "inverse white circle"] # 0x25d9 + - "◚": [t: "upper half inverse white circle"] # 0x25da + - "◛": [t: "lower half inverse white circle"] # 0x25db + - "◜": [t: "upper left quadrant circular arc"] # 0x25dc + - "◝": [t: "upper right quadrant circular arc"] # 0x25dd + - "◞": [t: "lower right quadrant circular arc"] # 0x25de + - "◟": [t: "lower left quadrant circular arc"] # 0x25df + - "◠": [t: "upper half circle"] # 0x25e0 + - "◡": [t: "lower half circle"] # 0x25e1 + - "◢": [t: "black lower right triangle"] # 0x25e2 + - "◣": [t: "black lower left triangle"] # 0x25e3 + - "◤": [t: "black upper left triangle"] # 0x25e4 + - "◥": [t: "black upper right triangle"] # 0x25e5 + - "◦": [t: "composition"] # 0x25e6 + - "◧": [t: "square with left half black"] # 0x25e7 + - "◨": [t: "square with right half black"] # 0x25e8 + - "◩": [t: "square with upper left half black"] # 0x25e9 + - "◪": [t: "square with lower right half black"] # 0x25ea + - "◫": [t: "white square with bisecting line"] # 0x25eb + - "◬": [t: "white up pointing triangle with dot"] # 0x25ec + - "◭": [t: "up pointing triangle with left half black"] # 0x25ed + - "◮": [t: "up pointing triangle with right half black"] # 0x25ee + - "◯": [t: "large circle"] # 0x25ef + - "◰": [t: "white square with upper left quadrant"] # 0x25f0 + - "◱": [t: "white square with lower left quadrant"] # 0x25f1 + - "◲": [t: "white square with lower right quadrant"] # 0x25f2 + - "◳": [t: "white square with upper right quadrant"] # 0x25f3 + - "◴": [t: "white circle with upper left quadrant"] # 0x25f4 + - "◵": [t: "white circle with lower left quadrant"] # 0x25f5 + - "◶": [t: "white circle with lower right quadrant"] # 0x25f6 + - "◷": [t: "white circle with upper right quadrant"] # 0x25f7 + - "◸": [t: "upper left triangle"] # 0x25f8 + - "◹": [t: "upper right triangle"] # 0x25f9 + - "◺": [t: "lower left triangle"] # 0x25fa + - "◻": [t: "white medium square"] # 0x25fb + - "◼": [t: "black medium square"] # 0x25fc + - "◽": [t: "white medium small square"] # 0x25fd + - "◾": [t: "black medium small square"] # 0x25fe + - "◿": [t: "lower right triangle"] # 0x25ff + - "★": [t: "black star"] # 0x2605 + - "☆": [t: "white star"] # 0x2606 + - "☉": [t: "sun"] # 0x2609 + - "☌": [t: "conjunction"] # 0x260c + - "☒": [t: "ballot box with x"] # 0x2612 + - "☽": [t: "waxing moon"] # 0x263d + - "☾": [t: "waning moon"] # 0x263e + - "☿": [t: "mercury"] # 0x263f + - "♀": [t: "female"] # 0x2640 + - "♁": [t: "earth"] # 0x2641 + - "♂": [t: "male"] # 0x2642 + - "♃": [t: "jupiter"] # 0x2643 + - "♄": [t: "saturn"] # 0x2644 + - "♅": [t: "uranus"] # 0x2645 + - "♆": [t: "neptune"] # 0x2646 + - "♇": [t: "pluto"] # 0x2647 + - "♈": [t: "aries"] # 0x2648 + - "♉": [t: "taurus"] # 0x2649 + - "♩": [t: "quarter note"] # 0x2669 + - "♭": [t: "flat"] # 0x266d + - "♮": [t: "natural"] # 0x266e + - "♯": [t: "sharp"] # 0x266f + - "♠": [t: "black spade suit"] # 0x2660 + - "♡": [t: "white heart suit"] # 0x2661 + - "♢": [t: "white diamond suit"] # 0x2662 + - "♣": [t: "black club suit"] # 0x2663 + - "♤": [t: "white spade suit"] # 0x2664 + - "♥": [t: "black heart suit"] # 0x2665 + - "♦": [t: "black diamond suit"] # 0x2666 + - "♧": [t: "white club suit"] # 0x2667 + - "⚀": [t: "die face 1"] # 0x2680 + - "⚁": [t: "die face 2"] # 0x2681 + - "⚂": [t: "die face 3"] # 0x2682 + - "⚃": [t: "die face 4"] # 0x2683 + - "⚄": [t: "die face 5"] # 0x2684 + - "⚅": [t: "die face 6"] # 0x2685 + - "⚆": [t: "white circle with dot right"] # 0x2686 + - "⚇": [t: "white circle wiht two dots"] # 0x2687 + - "⚈": [t: "black circle with dot right"] # 0x2688 + - "⚉": [t: "black circle with two dots"] # 0x2689 + - "⚪": [t: "medium white circle"] # 0x26aa + - "⚫": [t: "medium black circle"] # 0x26ab + - "⚬": [t: "medium small white circle"] # 0x26ac + - "⚲": [t: "neuter"] # 0x26b2 + - "✓": [t: "check mark"] # 0x2713 + - "✠": [t: "maltese cross"] # 0x2720 + - "✪": [t: "circled white star"] # 0x272a + - "✶": [t: "six pionted black star"] # 0x2736 + - "❨": [t: "medium left parentheses ornament"] # 0x2768 + - "❩": [t: "medium right parentheses ornament"] # 0x2769 + - "❪": [t: "medium flattened left parentheses ornament"] # 0x276a + - "❫": [t: "medium flattened right parentheses ornament"] # 0x276b + - "❬": [t: "medium left-pointing angle bracket ornament"] # 0x276c + - "❭": [t: "medium right-pointing angle bracket ornament"] # 0x276d + - "❮": [t: "heavy left-pointing angle quotation mark ornament"] # 0x276e + - "❯": [t: "heavy right-pointing angle quotation mark ornament"] # 0x276f + - "❰": [t: "heavy left-pointing angle bracket ornament"] # 0x2770 + - "❱": [t: "heavy right-pointing angle bracket ornament"] # 0x2771 + - "❲": [t: "light left tortoise shell bracket ornament"] # 0x2772 + - "❳": [t: "light right tortoise shell bracket ornament"] # 0x2773 + - "❴": [t: "medium left brace ornament"] # 0x2774 + - "❵": [t: "medium right brace ornament"] # 0x2775 + - "❶": [t: "black circled one"] # 0x2776 + - "❷": [t: "black circled two"] # 0x2777 + - "❸": [t: "black circled three"] # 0x2778 + - "❹": [t: "black circled four"] # 0x2779 + - "❺": [t: "black circled five"] # 0x277a + - "❻": [t: "black circled six"] # 0x277b + - "❼": [t: "black circled seven"] # 0x277c + - "❽": [t: "black circled eight"] # 0x277d + - "❾": [t: "black circled nine"] # 0x277e + - "❿": [t: "black circled ten"] # 0x277f + - "➀": [t: "circled sans serif one"] # 0x2780 + - "➁": [t: "circled sans serif two"] # 0x2781 + - "➂": [t: "circled sans serif three"] # 0x2782 + - "➃": [t: "circled sans serif four"] # 0x2783 + - "➄": [t: "circled sans serif five"] # 0x2784 + - "➅": [t: "circled sans serif six"] # 0x2785 + - "➆": [t: "circled sans serif seven"] # 0x2786 + - "➇": [t: "circled sans serif eight"] # 0x2787 + - "➈": [t: "circled sans serif nine"] # 0x2788 + - "➉": [t: "circled sans serif ten"] # 0x2789 + - "➊": [t: "black circled sans serif one"] # 0x278a + - "➋": [t: "black circled sans serif two"] # 0x278b + - "➌": [t: "black circled sans serif three"] # 0x278c + - "➍": [t: "black circled sans serif four"] # 0x278d + - "➎": [t: "black circled sans serif five"] # 0x278e + - "➏": [t: "black circled sans serif six"] # 0x278f + - "➐": [t: "black circled sans serif seven"] # 0x2790 + - "➑": [t: "black circled sans serif eight"] # 0x2791 + - "➒": [t: "black circled sans serif nine"] # 0x2792 + - "➓": [t: "black circled sans serif ten"] # 0x2793 + - "➔": [t: "heavy wide-headed right arrow"] # 0x2794 + - "➕": [t: "heavy plus sign"] # 0x2795 + - "➖": [t: "heavy minus sign"] # 0x2796 + - "➗": [t: "heavy division sign"] # 0x2797 + - "➘": [t: "heavy south east arrow"] # 0x2798 + - "➙": [t: "heavy right arrow"] # 0x2799 + - "➚": [t: "heavy north east arrow"] # 0x279a + - "➛": [t: "drafting point right arrow"] # 0x279b + - "➜": [t: "heavy round-tipped right arrow"] # 0x279c + - "➝": [t: "triangle-headed right arrow"] # 0x279d + - "➞": [t: "heavy triangle-headed right arrow"] # 0x279e + - "➟": [t: "dashed triangle-headed right arrow"] # 0x279f + - "➠": [t: "heavy dashed triangle-headed right arrow"] # 0x27a0 + - "➡": [t: "black right arrow"] # 0x27a1 + - "➢": [t: "three d top lighted right arrow"] # 0x27a2 + - "➣": [t: "three d bottom lighted right arrow"] # 0x27a3 + - "➤": [t: "black right arrowhead"] # 0x27a4 + - "➥": [t: "heavy black curved down and right arrow"] # 0x27a5 + - "➦": [t: "heavy black curved up and right arrow"] # 0x27a6 + - "➧": [t: "squat black right arrow"] # 0x27a7 + - "➨": [t: "heavy concave-pointed black right arrow"] # 0x27a8 + - "➩": [t: "right-shaded white right arrow"] # 0x27a9 + - "➪": [t: "left-shaded white right arrow"] # 0x27aa + - "➫": [t: "back-tilted shadowed white right arrow"] # 0x27ab + - "➬": [t: "front-tilted shadowed white right arrow"] # 0x27ac + - "➭": [t: "heavy lower right-shadowed white right arrow"] # 0x27ad + - "➮": [t: "heavy upper right-shadowed white right arrow"] # 0x27ae + - "➯": [t: "notched lower right-shadowed white right arrow"] # 0x27af + - "➱": [t: "notched upper right-shadowed white right arrow"] # 0x27b1 + - "➲": [t: "circled heavy white right arrow"] # 0x27b2 + - "➳": [t: "white-feathered right arrow"] # 0x27b3 + - "➴": [t: "black-feathered south east arrow"] # 0x27b4 + - "➵": [t: "black-feathered right arrow"] # 0x27b5 + - "➶": [t: "black-feathered north east arrow"] # 0x27b6 + - "➷": [t: "heavy black-feathered south east arrow"] # 0x27b7 + - "➸": [t: "heavy black-feathered right arrow"] # 0x27b8 + - "➹": [t: "heavy black-feathered north east arrow"] # 0x27b9 + - "➺": [t: "teradrop-barbed right arrow"] # 0x27ba + - "➻": [t: "heavy teardrop-shanked right arrow"] # 0x27bb + - "➼": [t: "wedge-tailed right arrow"] # 0x27bc + - "➽": [t: "heavy wedge-tailed right arrow"] # 0x27bd + - "➾": [t: "open-outlined right arrow"] # 0x27be + - "⟀": [t: "three dimensional angle"] # 0x27c0 + - "⟁": [t: "white triangle containing small white triangle"] # 0x27c1 + - "⟂⊥": # 0x27c2, 22A5 (22A5 wrongly used for perpendicular by most editors) + - test: + - if: "$SpeechStyle = 'LiteralSpeak' and text()='⊥'" # 22A5 (up tack/bottom) + then: [t: "up tack"] + - else: + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "perpendicular to" + - "⟃": # 0x27c3 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "an open subset of" + - "⟄": # 0x27c4 + - test: + if: "$Verbosity!='Terse'" + then: [t: "is"] + - t: "an open superset of" + - "⟅": [t: "left s-shaped bag delimiter"] # 0x27c5 + - "⟆": [t: "right s-shaped bag delimiter"] # 0x27c6 + - "⟇": [t: "or with dot inside"] # 0x27c7 + - "⟈": [t: "reverse solidus preceding subset"] # 0x27c8 + - "⟉": [t: "superset preceding solidus"] # 0x27c9 + - "⟊": [t: "vertical bar with horizontal stroke"] # 0x27ca + - "⟋": [t: "mathematical rising diagonal"] # 0x27cb + - "⟌": [t: "long division"] # 0x27cc + - "⟍": [t: "mathematical falling diagonal"] # 0x27cd + - "⟎": [t: "squared logical and"] # 0x27ce + - "⟏": [t: "squared logical or"] # 0x27cf + - "⟐": [t: "white diamond with centered dot"] # 0x27d0 + - "⟑": [t: "and with dot"] # 0x27d1 + - "⟒": [t: "element of opening up"] # 0x27d2 + - "⟓": [t: "lower right corner with dot"] # 0x27d3 + - "⟔": [t: "upper left corner with dot"] # 0x27d4 + - "⟕": [t: "left outer join"] # 0x27d5 + - "⟖": [t: "right outer join"] # 0x27d6 + - "⟗": [t: "full outer join"] # 0x27d7 + - "⟘": [t: "large up tack"] # 0x27d8 + - "⟙": [t: "large down tack"] # 0x27d9 + - "⟚": [t: "left and right double turnstile"] # 0x27da + - "⟛": [t: "left and right tack"] # 0x27db + - "⟜": [t: "left multimap"] # 0x27dc + - "⟝": [t: "long right tack"] # 0x27dd + - "⟞": [t: "long left tack"] # 0x27de + - "⟟": [t: "up tack with circle above"] # 0x27df + - "⟠": [t: "lozenge divided by horizontal rule"] # 0x27e0 + - "⟡": [t: "white concave sided diamond"] # 0x27e1 + - "⟢": [t: "white concave sided diamond with left tick"] # 0x27e2 + - "⟣": [t: "white concave sided diamond with right tick"] # 0x27e3 + - "⟤": [t: "white square with left tick"] # 0x27e4 + - "⟥": [t: "white square with right tick"] # 0x27e5 + - "⟦": [t: "left white square bracket"] # 0x27e6 + - "⟧": [t: "right white square bracket"] # 0x27e7 + - "⟨": [t: "left angle bracket"] # 0x27e8 + - "⟩": [t: "right angle bracket"] # 0x27e9 + - "⟪": [t: "left double angle bracket"] # 0x27ea + - "⟫": [t: "right double angle bracket"] # 0x27eb + - "⟬": [t: "left white tortoise shell bracket"] # 0x27ec + - "⟭": [t: "right white tortoise shell bracket"] # 0x27ed + - "⟮": [t: "left flattened parenthesis"] # 0x27ee + - "⟯": [t: "right flattened parenthesis"] # 0x27ef + - "⟰": [t: "up quadruple arrow"] # 0x27f0 + - "⟱": [t: "down quadruple arrow"] # 0x27f1 + - "⟲": [t: "anticlockwise gapped circle arrow"] # 0x27f2 + - "⟳": [t: "clockwise gapped circle arrow"] # 0x27f3 + - "⟴": [t: "right arrow with circled plus"] # 0x27f4 + - "⟵": [t: "long left arrow"] # 0x27f5 + - "⟶": [t: "long right arrow"] # 0x27f6 + - "⟷": [t: "long left right arrow"] # 0x27f7 + - "⟸": [t: "long left double arrow"] # 0x27f8 + - "⟹": [t: "implies"] # 0x27f9 + - "⟺": [t: "if and only if"] # 0x27fa + - "⟻": [t: "long left arrow from bar"] # 0x27fb + - "⟼": [t: "long right arrow from bar"] # 0x27fc + - "⟽": [t: "long left double arrow from bar"] # 0x27fd + - "⟾": [t: "long right double arrow from bar"] # 0x27fe + - "⟿": [t: "long right squiggle arrow"] # 0x27ff + - "⤀": [t: "right two headed arrow with vertical stroke"] # 0x2900 + - "⤁": [t: "right two headed arrow with double vertical stroke"] # 0x2901 + - "⤂": [t: "left double arrow with vertical stroke"] # 0x2902 + - "⤃": [t: "right double arrow with vertical stroke"] # 0x2903 + - "⤄": [t: "left right double arrow with vertical stroke"] # 0x2904 + - "⤅": [t: "right two headed arrow from bar"] # 0x2905 + - "⤆": [t: "left double arrow from bar"] # 0x2906 + - "⤇": [t: "right double arrow from bar"] # 0x2907 + - "⤈": [t: "down arrow with horizontal stroke"] # 0x2908 + - "⤉": [t: "up arrow with horizontal stroke"] # 0x2909 + - "⤊": [t: "up triple arrow"] # 0x290a + - "⤋": [t: "down triple arrow"] # 0x290b + - "⤌": [t: "left double dash arrow"] # 0x290c + - "⤍": [t: "right double dash arrow"] # 0x290d + - "⤎": [t: "left triple dash arrow"] # 0x290e + - "⤏": [t: "right triple dash arrow"] # 0x290f + - "⤐": [t: "right two headed triple dash arrow"] # 0x2910 + - "⤑": [t: "right arrow with dotted stem"] # 0x2911 + - "⤒": [t: "up arrow to bar"] # 0x2912 + - "⤓": [t: "down arrow to bar"] # 0x2913 + - "⤔": [t: "right arrow with tail and vertical stroke"] # 0x2914 + - "⤕": [t: "right arrow with tail and double vertical stroke"] # 0x2915 + - "⤖": [t: "right two headed arrow with tail"] # 0x2916 + - "⤗": [t: "right two headed arrow with tail with vertical stroke"] # 0x2917 + - "⤘": [t: "right two headed arrow with tail with double vertical stroke"] # 0x2918 + - "⤙": [t: "left arrow tail"] # 0x2919 + - "⤚": [t: "right arrow tail"] # 0x291a + - "⤛": [t: "left double arrow tail"] # 0x291b + - "⤜": [t: "right double arrow tail"] # 0x291c + - "⤝": [t: "left arrow to filled diamond"] # 0x291d + - "⤞": [t: "right arrow to filled diamond"] # 0x291e + - "⤟": [t: "left arrow from bar to filled diamond"] # 0x291f + - "⤠": [t: "right arrow from bar to filled diamond"] # 0x2920 + - "⤡": [t: "north west and south east arrow"] # 0x2921 + - "⤢": [t: "north east and south west arrow"] # 0x2922 + - "⤣": [t: "north west arrow with hook"] # 0x2923 + - "⤤": [t: "north east arrow with hook"] # 0x2924 + - "⤥": [t: "south east arrow with hook"] # 0x2925 + - "⤦": [t: "south west arrow with hook"] # 0x2926 + - "⤧": [t: "north west arrow and north east arrow"] # 0x2927 + - "⤨": [t: "north east arrow and south east arrow"] # 0x2928 + - "⤩": [t: "south east arrow and south west arrow"] # 0x2929 + - "⤪": [t: "south west arrow and north west arrow"] # 0x292a + - "⤫": [t: "rising diagonal crossing falling diagonal"] # 0x292b + - "⤬": [t: "falling diagonal crossing rising diagonal"] # 0x292c + - "⤭": [t: "south east arrow crossing north east arrow"] # 0x292d + - "⤮": [t: "north east arrow crossing south east arrow"] # 0x292e + - "⤯": [t: "falling diagonal crossing north east arrow"] # 0x292f + - "⤰": [t: "rising diagonal crossing south east arrow"] # 0x2930 + - "⤱": [t: "north east arrow crossing north west arrow"] # 0x2931 + - "⤲": [t: "north west arrow crossing north east arrow"] # 0x2932 + - "⤳": [t: "wave arrow pointing directly right"] # 0x2933 + - "⤴": [t: "arrow pointing right then curving up"] # 0x2934 + - "⤵": [t: "arrow pointing right then curving down"] # 0x2935 + - "⤶": [t: "arrow pointing down then curving left"] # 0x2936 + - "⤷": [t: "arrow pointing down then curving right"] # 0x2937 + - "⤸": [t: "right side arc clockwise arrow"] # 0x2938 + - "⤹": [t: "left side arc anticlockwise arrow"] # 0x2939 + - "⤺": [t: "top arc anticlockwise arrow"] # 0x293a + - "⤻": [t: "bottom arc anticlockwise arrow"] # 0x293b + - "⤼": [t: "top arc clockwise arrow with minus"] # 0x293c + - "⤽": [t: "top arc anticlockwise arrow with plus"] # 0x293d + - "⤾": [t: "lower right semicircular clockwise arrow"] # 0x293e + - "⤿": [t: "lower left semicircular anticlockwise arrow"] # 0x293f + - "⥀": [t: "anticlockwise closed circle arrow"] # 0x2940 + - "⥁": [t: "clockwise closed circle arrow"] # 0x2941 + - "⥂": [t: "right arrow above short left arrow"] # 0x2942 + - "⥃": [t: "left arrow above short right arrow"] # 0x2943 + - "⥄": [t: "short right arrow above left arrow"] # 0x2944 + - "⥅": [t: "right arrow with plus below"] # 0x2945 + - "⥆": [t: "left arrow with plus below"] # 0x2946 + - "⥇": [t: "right arrow through x"] # 0x2947 + - "⥈": [t: "left right arrow through circle"] # 0x2948 + - "⥉": [t: "up two headed arrow from circle"] # 0x2949 + - "⥊": [t: "left barb up right barb down harpoon"] # 0x294a + - "⥋": [t: "left barb down right barb up harpoon"] # 0x294b + - "⥌": [t: "up barb right down barb left harpoon"] # 0x294c + - "⥍": [t: "up barb left down barb right harpoon"] # 0x294d + - "⥎": [t: "left barb up right barb up harpoon"] # 0x294e + - "⥏": [t: "up barb right down barb right harpoon"] # 0x294f + - "⥐": [t: "left barb down right barb down harpoon"] # 0x2950 + - "⥑": [t: "up barb left down barb left harpoon"] # 0x2951 + - "⥒": [t: "left harpoon with barb up to bar"] # 0x2952 + - "⥓": [t: "right harpoon with barb up to bar"] # 0x2953 + - "⥔": [t: "up harpoon with barb right to bar"] # 0x2954 + - "⥕": [t: "down harpoon with barb right to bar"] # 0x2955 + - "⥖": [t: "left harpoon with barb down to bar"] # 0x2956 + - "⥗": [t: "right harpoon with barb down to bar"] # 0x2957 + - "⥘": [t: "up harpoon with barb left to bar"] # 0x2958 + - "⥙": [t: "down harpoon with barb left to bar"] # 0x2959 + - "⥚": [t: "left harpoon with barb up from bar"] # 0x295a + - "⥛": [t: "right harpoon with barb up from bar"] # 0x295b + - "⥜": [t: "up harpoon with barb right from bar"] # 0x295c + - "⥝": [t: "down harpoon with barb right from bar"] # 0x295d + - "⥞": [t: "left harpoon with barb down from bar"] # 0x295e + - "⥟": [t: "right harpoon with barb down from bar"] # 0x295f + - "⥠": [t: "up harpoon with barb left from bar"] # 0x2960 + - "⥡": [t: "down harpoon with barb left from bar"] # 0x2961 + - "⥢": [t: "left harpoon with barb up above left harpoon with barb down"] # 0x2962 + - "⥣": [t: "up harpoon with barb left beside up harpoon with barb right"] # 0x2963 + - "⥤": [t: "right harpoon with barb up above right harpoon with barb down"] # 0x2964 + - "⥥": [t: "down harpoon with barb left beside down harpoon with barb right"] # 0x2965 + - "⥦": [t: "left harpoon with barb up above right harpoon with barb up"] # 0x2966 + - "⥧": [t: "left harpoon with barb down above right harpoon with barb down"] # 0x2967 + - "⥨": [t: "right harpoon with barb up above left harpoon with barb up"] # 0x2968 + - "⥩": [t: "right harpoon with barb down above left harpoon with barb down"] # 0x2969 + - "⥪": [t: "left harpoon with barb up above long dash"] # 0x296a + - "⥫": [t: "left harpoon with barb down below long dash"] # 0x296b + - "⥬": [t: "right harpoon with barb up above long dash"] # 0x296c + - "⥭": [t: "right harpoon with barb down below long dash"] # 0x296d + - "⥮": [t: "up harpoon with barb left beside down harpoon with barb right"] # 0x296e + - "⥯": [t: "down harpoon with barb left beside up harpoon with barb right"] # 0x296f + - "⥰": [t: "right double arrow with rounded head"] # 0x2970 + - "⥱": [t: "equals above right arrow"] # 0x2971 + - "⥲": [t: "tilde operator above right arrow"] # 0x2972 + - "⥳": [t: "left arrow above tilde operator"] # 0x2973 + - "⥴": [t: "right arrow above tilde operator"] # 0x2974 + - "⥵": [t: "right arrow above almost equal to"] # 0x2975 + - "⥶": [t: "less than above left arrow"] # 0x2976 + - "⥷": [t: "left arrow through less than"] # 0x2977 + - "⥸": [t: "greater than above right arrow"] # 0x2978 + - "⥹": [t: "subset above right arrow"] # 0x2979 + - "⥺": [t: "left arrow through subset"] # 0x297a + - "⥻": [t: "superset above left arrow"] # 0x297b + - "⥼": [t: "left fish tail"] # 0x297c + - "⥽": [t: "right fish tail"] # 0x297d + - "⥾": [t: "up fish tail"] # 0x297e + - "⥿": [t: "down fish tail"] # 0x297f + - "⦀": [t: "triple vertical bar delimiter"] # 0x2980 + - "⦁": [t: "z notation spot"] # 0x2981 + - "⦂": [t: "z notation type colon"] # 0x2982 + - "⦃": [t: "left white brace"] # 0x2983 + - "⦄": [t: "right white brace"] # 0x2984 + - "⦅": [t: "left white parenthesis"] # 0x2985 + - "⦆": [t: "right white parenthesis"] # 0x2986 + - "⦇": [t: "z notation left image bracket"] # 0x2987 + - "⦈": [t: "z notation right image bracket"] # 0x2988 + - "⦉": [t: "z notation left binding bracket"] # 0x2989 + - "⦊": [t: "z notation right binding bracket"] # 0x298a + - "⦋": [t: "left square bracket with underbar"] # 0x298b + - "⦌": [t: "right square bracket with underbar"] # 0x298c + - "⦍": [t: "left square bracket with tick in top corner"] # 0x298d + - "⦎": [t: "right square bracket with tick in bottom corner"] # 0x298e + - "⦏": [t: "left square bracket with tick in bottom corner"] # 0x298f + - "⦐": [t: "right square bracket with tick in top corner"] # 0x2990 + - "⦑": [t: "left angle bracket with dot"] # 0x2991 + - "⦒": [t: "right angle bracket with dot"] # 0x2992 + - "⦓": [t: "left arc less than bracket"] # 0x2993 + - "⦔": [t: "right arc greater than bracket"] # 0x2994 + - "⦕": [t: "double left arc greater than bracket"] # 0x2995 + - "⦖": [t: "double right arc less than bracket"] # 0x2996 + - "⦗": [t: "left black tortoise shell bracket"] # 0x2997 + - "⦘": [t: "right black tortoise shell bracket"] # 0x2998 + - "⦙": [t: "dotted fence"] # 0x2999 + - "⦚": [t: "vertical zigzag line"] # 0x299a + - "⦛": [t: "measured angle opening left"] # 0x299b + - "⦜": [t: "right angle variant with square"] # 0x299c + - "⦝": [t: "measured right angle with dot"] # 0x299d + - "⦞": [t: "angle with s inside"] # 0x299e + - "⦟": [t: "acute angle"] # 0x299f + - "⦠": [t: "spherical angle opening left"] # 0x29a0 + - "⦡": [t: "spherical angle opening up"] # 0x29a1 + - "⦢": [t: "turned angle"] # 0x29a2 + - "⦣": [t: "reversed angle"] # 0x29a3 + - "⦤": [t: "angle with underbar"] # 0x29a4 + - "⦥": [t: "reversed angle with underbar"] # 0x29a5 + - "⦦": [t: "oblique angle opening up"] # 0x29a6 + - "⦧": [t: "oblique angle opening down"] # 0x29a7 + - "⦨": [t: "measured angle with open arm ending in arrow pointing up and to the right"] # 0x29a8 + - "⦩": [t: "measured angle with open arm ending in arrow pointing up and to the left"] # 0x29a9 + - "⦪": [t: "measured angle with open arm ending in arrow pointing down and to the right"] # 0x29aa + - "⦫": [t: "measured angle with open arm ending in arrow pointing down and to the left"] # 0x29ab + - "⦬": [t: "measured angle with open arm ending in arrow pointing right and up"] # 0x29ac + - "⦭": [t: "measured angle with open arm ending in arrow pointing left and up"] # 0x29ad + - "⦮": [t: "measured angle with open arm ending in arrow pointing right and down"] # 0x29ae + - "⦯": [t: "measured angle with open arm ending in arrow pointing left and down"] # 0x29af + - "⦰": [t: "reversed empty set"] # 0x29b0 + - "⦱": [t: "empty set with overbar"] # 0x29b1 + - "⦲": [t: "empty set with small circle above"] # 0x29b2 + - "⦳": [t: "empty set with right arrow above"] # 0x29b3 + - "⦴": [t: "empty set with left arrow above"] # 0x29b4 + - "⦵": [t: "circle with horizontal bar"] # 0x29b5 + - "⦶": [t: "circled vertical bar"] # 0x29b6 + - "⦷": [t: "circled parallel"] # 0x29b7 + - "⦸": [t: "circled reverse solidus"] # 0x29b8 + - "⦹": [t: "circled perpendicular"] # 0x29b9 + - "⦺": [t: "circled divided by horizontal bar and top half divided by vertical bar"] # 0x29ba + - "⦻": [t: "circle with superimposed x"] # 0x29bb + - "⦼": [t: "circled anticlockwise rotated division sign"] # 0x29bc + - "⦽": [t: "up arrow through circle"] # 0x29bd + - "⦾": [t: "circled white bullet"] # 0x29be + - "⦿": [t: "circled bullet"] # 0x29bf + - "⧀": [t: "circled less than"] # 0x29c0 + - "⧁": [t: "circled greater than"] # 0x29c1 + - "⧂": [t: "circle with small circle to the right"] # 0x29c2 + - "⧃": [t: "circle with two horizontal strokes to the right"] # 0x29c3 + - "⧄": [t: "squared rising diagonal slash"] # 0x29c4 + - "⧅": [t: "squared falling diagonal slash"] # 0x29c5 + - "⧆": [t: "squared asterisk"] # 0x29c6 + - "⧇": [t: "squared small circle"] # 0x29c7 + - "⧈": [t: "squared square"] # 0x29c8 + - "⧉": [t: "two joined squares"] # 0x29c9 + - "⧊": [t: "triangle with dot above"] # 0x29ca + - "⧋": [t: "triangle with underbar"] # 0x29cb + - "⧌": [t: "s in triangle"] # 0x29cc + - "⧍": [t: "triangle with serifs at bottom"] # 0x29cd + - "⧎": [t: "right triangle above left triangle"] # 0x29ce + - "⧏": [t: "left triangle beside vertical bar"] # 0x29cf + - "⧐": [t: "vertical bar beside right triangle"] # 0x29d0 + - "⧑": [t: "bowtie with left half black"] # 0x29d1 + - "⧒": [t: "bowtie with right half black"] # 0x29d2 + - "⧓": [t: "black bowtie"] # 0x29d3 + - "⧔": [t: "times with left half black"] # 0x29d4 + - "⧕": [t: "times with right half black"] # 0x29d5 + - "⧖": [t: "white hourglass"] # 0x29d6 + - "⧗": [t: "black hourglass"] # 0x29d7 + - "⧘": [t: "left wiggly fence"] # 0x29d8 + - "⧙": [t: "right wiggly fence"] # 0x29d9 + - "⧚": [t: "left double wiggly fence"] # 0x29da + - "⧛": [t: "right double wiggly fence"] # 0x29db + - "⧜": [t: "incomplete infinity"] # 0x29dc + - "⧝": [t: "tie over infinity"] # 0x29dd + - "⧞": [t: "infinity negated with vertical bar"] # 0x29de + - "⧟": [t: "double-ended multimap"] # 0x29df + - "⧠": [t: "square with contoured outline"] # 0x29e0 + - "⧡": [t: "increases as"] # 0x29e1 + - "⧢": [t: "shuffle product"] # 0x29e2 + - "⧣": [t: "equals sign and slanted parallel"] # 0x29e3 + - "⧤": [t: "equals sign and slanted parallel with tilde above"] # 0x29e4 + - "⧥": [t: "identical to and slanted parallel"] # 0x29e5 + - "⧦": [t: "gleich stark"] # 0x29e6 + - "⧧": [t: "thermodynamic"] # 0x29e7 + - "⧨": [t: "down pointing triangle with left half black"] # 0x29e8 + - "⧩": [t: "down pointing triangle with right half black"] # 0x29e9 + - "⧪": [t: "black diamond with down arrow"] # 0x29ea + - "⧫": [t: "black lozenge"] # 0x29eb + - "⧬": [t: "white circle with down arrow"] # 0x29ec + - "⧭": [t: "black circle with down arrow"] # 0x29ed + - "⧮": [t: "error-barred white square"] # 0x29ee + - "⧯": [t: "error-barred black square"] # 0x29ef + - "⧰": [t: "error-barred white diamond"] # 0x29f0 + - "⧱": [t: "error-barred black diamond"] # 0x29f1 + - "⧲": [t: "error-barred white circle"] # 0x29f2 + - "⧳": [t: "error-barred black circle"] # 0x29f3 + - "⧴": [t: "rule-delayed"] # 0x29f4 + - "⧵": [t: "reverse solidus operator"] # 0x29f5 + - "⧶": [t: "solidus with overbar"] # 0x29f6 + - "⧷": [t: "reverse solidus with horizontal stroke"] # 0x29f7 + - "⧸": [t: "big solidus"] # 0x29f8 + - "⧹": [t: "big reverse solidus"] # 0x29f9 + - "⧺": [t: "double plus"] # 0x29fa + - "⧻": [t: "triple plus"] # 0x29fb + - "⧼": [t: "left pointing curved angle bracket"] # 0x29fc + - "⧽": [t: "right pointing curved angle bracket"] # 0x29fd + - "⧾": [t: "tiny"] # 0x29fe + - "⧿": [t: "miny"] # 0x29ff + - "⨀": [t: "circled dot operator"] # 0x2a00 + - "⨁": [t: "circled plus operator"] # 0x2a01 + - "⨂": [t: "circled times operator"] # 0x2a02 + - "⨃": [t: "union operator with dot"] # 0x2a03 + - "⨄": [t: "union operator with plus"] # 0x2a04 + - "⨅": [t: "square intersection operator"] # 0x2a05 + - "⨆": [t: "square union operator"] # 0x2a06 + - "⨇": [t: "two logical and operator"] # 0x2a07 + - "⨈": [t: "two logical or operator"] # 0x2a08 + - "⨉": [t: "times operator"] # 0x2a09 + - "⨊": [t: "modulo two sum"] # 0x2a0a + - "⨋": [t: "summation with integral"] # 0x2a0b + - "⨌": [t: "quadruple integral operator"] # 0x2a0c + - "⨍": [t: "finite part integral"] # 0x2a0d + - "⨎": [t: "integral with double stroke"] # 0x2a0e + - "⨏": [t: "integral average with slash"] # 0x2a0f + - "⨐": [t: "circulation function"] # 0x2a10 + - "⨑": [t: "anticlockwise integration"] # 0x2a11 + - "⨒": [t: "line integration with rectangular path around pole"] # 0x2a12 + - "⨓": [t: "line integration with semicircular path around pole"] # 0x2a13 + - "⨔": [t: "line integration not including the pole"] # 0x2a14 + - "⨕": [t: "integral around a point operator"] # 0x2a15 + - "⨖": [t: "quaternion integral operator"] # 0x2a16 + - "⨗": [t: "integral with left arrow with hook"] # 0x2a17 + - "⨘": [t: "integral with times sign"] # 0x2a18 + - "⨙": [t: "integral with intersection"] # 0x2a19 + - "⨚": [t: "integral with union"] # 0x2a1a + - "⨛": [t: "integral with overbar"] # 0x2a1b + - "⨜": [t: "integral with underbar"] # 0x2a1c + - "⨝": [t: "join"] # 0x2a1d + - "⨞": [t: "large left triangle operator"] # 0x2a1e + - "⨟": [t: "z notation schema composition"] # 0x2a1f + - "⨠": [t: "z notation schema piping"] # 0x2a20 + - "⨡": [t: "z notation schema projection"] # 0x2a21 + - "⨢": [t: "plus sign with circle above"] # 0x2a22 + - "⨣": [t: "plus sign with circumflex accent above"] # 0x2a23 + - "⨤": [t: "plus sign with tilde above"] # 0x2a24 + - "⨥": [t: "plus sign with dot below"] # 0x2a25 + - "⨦": [t: "plus sign with tilde below"] # 0x2a26 + - "⨧": [t: "plus sign with subscript two"] # 0x2a27 + - "⨨": [t: "plus sign with black triangle"] # 0x2a28 + - "⨩": [t: "minus sign with comma above"] # 0x2a29 + - "⨪": [t: "minus sign with dot below"] # 0x2a2a + - "⨫": [t: "minus sign with falling dots"] # 0x2a2b + - "⨬": [t: "minus sign with rising dots"] # 0x2a2c + - "⨭": [t: "plus sign in left half circle"] # 0x2a2d + - "⨮": [t: "plus sign in right half circle"] # 0x2a2e + - "⨯": # 0x2a2f + - test: + if: "$Verbosity='Terse'" + then: [t: "cross"] + else: [t: "cross product"] + - "⨰": [t: "multiplication sign with dot above"] # 0x2a30 + - "⨱": [t: "multiplication sign with underbar"] # 0x2a31 + - "⨲": [t: "semidirect product with bottom closed"] # 0x2a32 + - "⨳": [t: "smash product"] # 0x2a33 + - "⨴": [t: "multiplication sign in left half circle"] # 0x2a34 + - "⨵": [t: "multiplication sign in right half circle"] # 0x2a35 + - "⨶": [t: "circled multiplication sign with circumflex accent"] # 0x2a36 + - "⨷": [t: "multiplication sign in double circle"] # 0x2a37 + - "⨸": [t: "circled division sign"] # 0x2a38 + - "⨹": [t: "plus sign in triangle"] # 0x2a39 + - "⨺": [t: "minus sign in triangle"] # 0x2a3a + - "⨻": [t: "multiplication sign in triangle"] # 0x2a3b + - "⨼": [t: "interior product"] # 0x2a3c + - "⨽": [t: "righthand interior product"] # 0x2a3d + - "⨾": [t: "z notation relational composition"] # 0x2a3e + - "⨿": [t: "amalgamation or coproduct"] # 0x2a3f + - "⩀": [t: "intersection with dot"] # 0x2a40 + - "⩁": [t: "union with minus sign"] # 0x2a41 + - "⩂": [t: "union with overbar"] # 0x2a42 + - "⩃": [t: "intersection with overbar"] # 0x2a43 + - "⩄": [t: "intersection with logical and"] # 0x2a44 + - "⩅": [t: "union with logical or"] # 0x2a45 + - "⩆": [t: "union above intersection"] # 0x2a46 + - "⩇": [t: "intersection above union"] # 0x2a47 + - "⩈": [t: "union above bar above intersection"] # 0x2a48 + - "⩉": [t: "intersection above bar above union"] # 0x2a49 + - "⩊": [t: "union beside and joined with union"] # 0x2a4a + - "⩋": [t: "intersection beside and joined with intersection"] # 0x2a4b + - "⩌": [t: "closed union with serifs"] # 0x2a4c + - "⩍": [t: "closed intersection with serifs"] # 0x2a4d + - "⩎": [t: "double square intersection"] # 0x2a4e + - "⩏": [t: "double square union"] # 0x2a4f + - "⩐": [t: "closed union with serifs and smash product"] # 0x2a50 + - "⩑": [t: "logical and with dot above"] # 0x2a51 + - "⩒": [t: "logical or with dot above"] # 0x2a52 + - "⩓": [t: "double logical and"] # 0x2a53 + - "⩔": [t: "double logical or"] # 0x2a54 + - "⩕": [t: "two intersecting logical and"] # 0x2a55 + - "⩖": [t: "two intersecting logical or"] # 0x2a56 + - "⩗": [t: "sloping large or"] # 0x2a57 + - "⩘": [t: "sloping large and"] # 0x2a58 + - "⩙": [t: "logical or overlapping logical and"] # 0x2a59 + - "⩚": [t: "logical and with middle stem"] # 0x2a5a + - "⩛": [t: "logical or with middle stem"] # 0x2a5b + - "⩜": [t: "logical and with horizontal dash"] # 0x2a5c + - "⩝": [t: "logical or with horizontal dash"] # 0x2a5d + - "⩞": [t: "logical and with double overbar"] # 0x2a5e + - "⩟": [t: "logical and with underbar"] # 0x2a5f + - "⩠": [t: "logical and with double underbar"] # 0x2a60 + - "⩡": [t: "small vee with underbar"] # 0x2a61 + - "⩢": [t: "logical or with double overbar"] # 0x2a62 + - "⩣": [t: "logical or with double underbar"] # 0x2a63 + - "⩤": [t: "z notation domain antirestriction"] # 0x2a64 + - "⩥": [t: "z notation range antirestriction"] # 0x2a65 + - "⩦": [t: "equals sign with dot below"] # 0x2a66 + - "⩧": [t: "identical with dot above"] # 0x2a67 + - "⩨": [t: "triple horizontal bar with double vertical stroke"] # 0x2a68 + - "⩩": [t: "triple horizontal bar with triple vertical stroke"] # 0x2a69 + - "⩪": [t: "tilde operator with dot above"] # 0x2a6a + - "⩫": [t: "tilde operator with rising dots"] # 0x2a6b + - "⩬": [t: "similar minus similar"] # 0x2a6c + - "⩭": [t: "congruent with dot above"] # 0x2a6d + - "⩮": [t: "equals with asterisk"] # 0x2a6e + - "⩯": [t: "almost equal to with circumflex accent"] # 0x2a6f + - "⩰": [t: "approximately equal to or equal to"] # 0x2a70 + - "⩱": [t: "equals sign above plus sign"] # 0x2a71 + - "⩲": [t: "plus sign above equals sign"] # 0x2a72 + - "⩳": [t: "equals sign above tilde operator"] # 0x2a73 + - "⩴": [t: "double colon equal"] # 0x2a74 + - "⩵": [t: "two consecutive equals signs"] # 0x2a75 + - "⩶": [t: "three consecutive equals signs"] # 0x2a76 + - "⩷": [t: "equals sign with two dots above and two dots below"] # 0x2a77 + - "⩸": [t: "equivalent with four dots above"] # 0x2a78 + - "⩹": [t: "less than with circle inside"] # 0x2a79 + - "⩺": [t: "greater than with circle inside"] # 0x2a7a + - "⩻": [t: "less than with question mark above"] # 0x2a7b + - "⩼": [t: "greater than with question mark above"] # 0x2a7c + - "⩽": [t: "less than or slanted equal to"] # 0x2a7d + - "⩾": [t: "greater than or slanted equal to"] # 0x2a7e + - "⩿": [t: "less than or slanted equal to with dot inside"] # 0x2a7f + - "⪀": [t: "greater than or slanted equal to with dot inside"] # 0x2a80 + - "⪁": [t: "less than or slanted equal to with dot above"] # 0x2a81 + - "⪂": [t: "greater than or slanted equal to with dot above"] # 0x2a82 + - "⪃": [t: "less than or slanted equal to with dot above right"] # 0x2a83 + - "⪄": [t: "greater than or slanted equal to with dot above left"] # 0x2a84 + - "⪅": [t: "less than or approximate"] # 0x2a85 + - "⪆": [t: "greater than or approximate"] # 0x2a86 + - "⪇": [t: "less than and single line not equal to"] # 0x2a87 + - "⪈": [t: "greater than and single line not equal to"] # 0x2a88 + - "⪉": [t: "less than and not approximate"] # 0x2a89 + - "⪊": [t: "greater than and not approximate"] # 0x2a8a + - "⪋": [t: "less than above double line equal above greater than"] # 0x2a8b + - "⪌": [t: "greater than above double line equal above less than"] # 0x2a8c + - "⪍": [t: "less than above similar or equal"] # 0x2a8d + - "⪎": [t: "greater than above similar or equal"] # 0x2a8e + - "⪏": [t: "less than above similar above greater than"] # 0x2a8f + - "⪐": [t: "greater than above similar above less than"] # 0x2a90 + - "⪑": [t: "less than above greater than above double line equal"] # 0x2a91 + - "⪒": [t: "greater than above less than above double line equal"] # 0x2a92 + - "⪓": [t: "less than above slanted equal above greater than above slanted equal"] # 0x2a93 + - "⪔": [t: "greater than above slanted equal above less than above slanted equal"] # 0x2a94 + - "⪕": [t: "slanted equal to or less than"] # 0x2a95 + - "⪖": [t: "slanted equal to or greater than"] # 0x2a96 + - "⪗": [t: "slanted equal to or less than with dot inside"] # 0x2a97 + - "⪘": [t: "slanted equal to or greater than with dot inside"] # 0x2a98 + - "⪙": [t: "double line equal to or less than"] # 0x2a99 + - "⪚": [t: "double line equal to or greater than"] # 0x2a9a + - "⪛": [t: "double line slanted equal to or less than"] # 0x2a9b + - "⪜": [t: "double line slanted equal to or greater than"] # 0x2a9c + - "⪝": [t: "similar or less than"] # 0x2a9d + - "⪞": [t: "similar or greater than"] # 0x2a9e + - "⪟": [t: "similar above less than above equals sign"] # 0x2a9f + - "⪠": [t: "similar above greater than above equals sign"] # 0x2aa0 + - "⪡": [t: "double nested less than"] # 0x2aa1 + - "⪢": [t: "double nested greater than"] # 0x2aa2 + - "⪣": [t: "double nested less than with underbar"] # 0x2aa3 + - "⪤": [t: "greater than overlapping less than"] # 0x2aa4 + - "⪥": [t: "greater than beside less than"] # 0x2aa5 + - "⪦": [t: "less than closed by curve"] # 0x2aa6 + - "⪧": [t: "greater than closed by curve"] # 0x2aa7 + - "⪨": [t: "less than closed by curve above slanted equal"] # 0x2aa8 + - "⪩": [t: "greater than closed by curve above slanted equal"] # 0x2aa9 + - "⪪": [t: "smaller than"] # 0x2aaa + - "⪫": [t: "larger than"] # 0x2aab + - "⪬": [t: "smaller than or equal to"] # 0x2aac + - "⪭": [t: "larger than or equal to"] # 0x2aad + - "⪮": [t: "equals sign with bumpy above"] # 0x2aae + - "⪯": [t: "precedes above single line equals sign"] # 0x2aaf + - "⪰": [t: "succeeds above single line equals sign"] # 0x2ab0 + - "⪱": [t: "precedes above single line not equal to"] # 0x2ab1 + - "⪲": [t: "succeeds above single line not equal to"] # 0x2ab2 + - "⪳": [t: "precedes above equals sign"] # 0x2ab3 + - "⪴": [t: "succeeds above equals sign"] # 0x2ab4 + - "⪵": [t: "precedes above not equal to"] # 0x2ab5 + - "⪶": [t: "succeeds above not equal to"] # 0x2ab6 + - "⪷": [t: "precedes above almost equal to"] # 0x2ab7 + - "⪸": [t: "succeeds above almost equal to"] # 0x2ab8 + - "⪹": [t: "precedes above not almost equal to"] # 0x2ab9 + - "⪺": [t: "succeeds above not almost equal to"] # 0x2aba + - "⪻": [t: "double precedes"] # 0x2abb + - "⪼": [t: "double succeeds"] # 0x2abc + - "⪽": [t: "subset with dot"] # 0x2abd + - "⪾": [t: "superset with dot"] # 0x2abe + - "⪿": [t: "subset with plus sign below"] # 0x2abf + - "⫀": [t: "superset with plus sign below"] # 0x2ac0 + - "⫁": [t: "subset with multiplication sign below"] # 0x2ac1 + - "⫂": [t: "superset with multiplication sign below"] # 0x2ac2 + - "⫃": [t: "subset of or equal to with dot above"] # 0x2ac3 + - "⫄": [t: "superset of or equal to with dot above"] # 0x2ac4 + - "⫅": [t: "subset of above equals sign"] # 0x2ac5 + - "⫆": [t: "superset of above equals sign"] # 0x2ac6 + - "⫇": [t: "subset of above tilde operator"] # 0x2ac7 + - "⫈": [t: "superset of above tilde operator"] # 0x2ac8 + - "⫉": [t: "subset of above almost equal to"] # 0x2ac9 + - "⫊": [t: "superset of above almost equal to"] # 0x2aca + - "⫋": [t: "subset above not equal to"] # 0x2acb + - "⫌": [t: "superset of above not equal to"] # 0x2acc + - "⫍": [t: "square left open box operator"] # 0x2acd + - "⫎": [t: "square right open box operator"] # 0x2ace + - "⫏": [t: "closed subset"] # 0x2acf + - "⫐": [t: "closed superset"] # 0x2ad0 + - "⫑": [t: "closed subset or equal to"] # 0x2ad1 + - "⫒": [t: "closed superset or equal to"] # 0x2ad2 + - "⫓": [t: "subset above superset"] # 0x2ad3 + - "⫔": [t: "superset above subset"] # 0x2ad4 + - "⫕": [t: "subset above subset"] # 0x2ad5 + - "⫖": [t: "superset above superset"] # 0x2ad6 + - "⫗": [t: "superset beside subset"] # 0x2ad7 + - "⫘": [t: "superset beside and joined by dash with subset"] # 0x2ad8 + - "⫙": [t: "element of opening down"] # 0x2ad9 + - "⫚": [t: "pitchfork with tee top"] # 0x2ada + - "⫛": [t: "transversal intersection"] # 0x2adb + - "⫝̸": [t: "forking"] # 0x2adc + - "⫝": [t: "nonforking"] # 0x2add + - "⫞": [t: "short left tack"] # 0x2ade + - "⫟": [t: "short down tack"] # 0x2adf + - "⫠": [t: "short up tack"] # 0x2ae0 + - "⫡": [t: "perpendicular with s"] # 0x2ae1 + - "⫢": [t: "vertical bar triple right turnstile"] # 0x2ae2 + - "⫣": [t: "double vertical bar left turnstile"] # 0x2ae3 + - "⫤": [t: "vertical bar double left turnstile"] # 0x2ae4 + - "⫥": [t: "double vertical bar double left turnstile"] # 0x2ae5 + - "⫦": [t: "long dash from left member of double vertical"] # 0x2ae6 + - "⫧": [t: "short down tack with overbar"] # 0x2ae7 + - "⫨": [t: "short up tack with underbar"] # 0x2ae8 + - "⫩": [t: "short up tack above short down tack"] # 0x2ae9 + - "⫪": [t: "double down tack"] # 0x2aea + - "⫫": [t: "double up tack"] # 0x2aeb + - "⫬": [t: "double stroke not sign"] # 0x2aec + - "⫭": [t: "reversed double stroke not sign"] # 0x2aed + - "⫮": [t: "does not divide with reversed negation slash"] # 0x2aee + - "⫯": [t: "vertical line with circle above"] # 0x2aef + - "⫰": [t: "vertical line with circle below"] # 0x2af0 + - "⫱": [t: "down tack with circle below"] # 0x2af1 + - "⫲": [t: "parallel with horizontal stroke"] # 0x2af2 + - "⫳": [t: "parallel with tilde operator"] # 0x2af3 + - "⫴": [t: "triple vertical bar binary relation"] # 0x2af4 + - "⫵": [t: "triple vertical bar with horizontal stroke"] # 0x2af5 + - "⫶": [t: "triple colon operator"] # 0x2af6 + - "⫷": [t: "triple nested less than"] # 0x2af7 + - "⫸": [t: "triple nested greater than"] # 0x2af8 + - "⫹": [t: "double line slanted less than or equal to"] # 0x2af9 + - "⫺": [t: "double line slanted greater than or equal to"] # 0x2afa + - "⫻": [t: "triple solidus binary relation"] # 0x2afb + - "⫼": [t: "large triple vertical bar operator"] # 0x2afc + - "⫽": [t: "double solidus operator"] # 0x2afd + - "⫾": [t: "white vertical bar"] # 0x2afe + - "⫿": [t: "white vertical bar"] # 0x2aff + - "⬀": [t: "north east white arrow"] # 0x2b00 + - "⬁": [t: "north west white arrow"] # 0x2b01 + - "⬂": [t: "south east white arrow"] # 0x2b02 + - "⬃": [t: "south west white arrow"] # 0x2b03 + - "⬄": [t: "left right white arrow"] # 0x2b04 + - "⬅": [t: "left black arrow"] # 0x2b05 + - "⬆": [t: "up black arrow"] # 0x2b06 + - "⬇": [t: "down black arrow"] # 0x2b07 + - "⬈": [t: "north east black arrow"] # 0x2b08 + - "⬉": [t: "north west black arrow"] # 0x2b09 + - "⬊": [t: "south east black arrow"] # 0x2b0a + - "⬋": [t: "south west black arrow"] # 0x2b0b + - "⬌": [t: "left right black arrow"] # 0x2b0c + - "⬍": [t: "up down black arrow"] # 0x2b0d + - "⬎": [t: "right arrow with tip down"] # 0x2b0e + - "⬏": [t: "right arrow with tip up"] # 0x2b0f + - "⬐": [t: "left arrow with tip down"] # 0x2b10 + - "⬑": [t: "left arrow with tip up"] # 0x2b11 + - "⬒": [t: "square with top half black"] # 0x2b12 + - "⬓": [t: "square with bottom half black"] # 0x2b13 + - "⬔": [t: "square with upper right diagonal half black"] # 0x2b14 + - "⬕": [t: "square with lower left diagonal half black"] # 0x2b15 + - "⬖": [t: "diamond with left half black"] # 0x2b16 + - "⬗": [t: "diamond with right half black"] # 0x2b17 + - "⬘": [t: "diamond with top half black"] # 0x2b18 + - "⬙": [t: "diamond with bottom half black"] # 0x2b19 + - "⬚": [t: "box"] # 0x2b1a + - "⬛": [t: "black large square"] # 0x2b1b + - "⬜": [t: "white large square"] # 0x2b1c + - "⬝": [t: "black very small square"] # 0x2b1d + - "⬞": [t: "white very small square"] # 0x2b1e + - "⬟": [t: "black pentagon"] # 0x2b1f + - "⬠": [t: "white pentagon"] # 0x2b20 + - "⬡": [t: "white hexagon"] # 0x2b21 + - "⬢": [t: "black hexagon"] # 0x2b22 + - "⬣": [t: "horizontal black hexagon"] # 0x2b23 + - "⬤": [t: "black large circle"] # 0x2b24 + - "⬥": [t: "black medium diamond"] # 0x2b25 + - "⬦": [t: "white medium diamond"] # 0x2b26 + - "⬧": [t: "black medium lozenge"] # 0x2b27 + - "⬨": [t: "white medium lozenge"] # 0x2b28 + - "⬩": [t: "black small diamond"] # 0x2b29 + - "⬪": [t: "black small lozenge"] # 0x2b2a + - "⬫": [t: "white small lozenge"] # 0x2b2b + - "⬬": [t: "black horizontal ellipse"] # 0x2b2c + - "⬭": [t: "white horizontal ellipse"] # 0x2b2d + - "⬮": [t: "black vertical ellipse"] # 0x2b2e + - "⬯": [t: "white vertical ellipse"] # 0x2b2f + - "⬰": [t: "left arrow with small circle"] # 0x2b30 + - "⬱": [t: "three left arrows"] # 0x2b31 + - "⬲": [t: "left arrow with circled plus"] # 0x2b32 + - "⬳": [t: "long left squiggle arrow"] # 0x2b33 + - "⬴": [t: "left two headed arrow with vertical stroke"] # 0x2b34 + - "⬵": [t: "left two headed arrow with double vertical stroke"] # 0x2b35 + - "⬶": [t: "left two headed arrow from bar"] # 0x2b36 + - "⬷": [t: "left two headed triple dash arrow"] # 0x2b37 + - "⬸": [t: "left arrow with dotted stem"] # 0x2b38 + - "⬹": [t: "left arrow with tail with vertical stroke"] # 0x2b39 + - "⬺": [t: "left arrow with tail with double vertical stroke"] # 0x2b3a + - "⬻": [t: "left two headed arrow with tail"] # 0x2b3b + - "⬼": [t: "left two headed arrow with tail with vertical stroke"] # 0x2b3c + - "⬽": [t: "left two headed arrow with tail with double vertical stroke"] # 0x2b3d + - "⬾": [t: "left arrow through x"] # 0x2b3e + - "⬿": [t: "wave arrow pointing directly left"] # 0x2b3f + - "⭀": [t: "equals sign above left arrow"] # 0x2b40 + - "⭁": [t: "reverse tilde operator above left arrow"] # 0x2b41 + - "⭂": [t: "left arrow above reverse almost equal to"] # 0x2b42 + - "⭃": [t: "right arrow through greater than"] # 0x2b43 + - "⭄": [t: "right arrow through superset"] # 0x2b44 + - "⭅": [t: "left quadruple arrow"] # 0x2b45 + - "⭆": [t: "right quadruple arrow"] # 0x2b46 + - "⭇": [t: "reverse tilde operator above right arrow"] # 0x2b47 + - "⭈": [t: "right arrow above reverse almost equal to"] # 0x2b48 + - "⭉": [t: "tilde operator above left arrow"] # 0x2b49 + - "⭊": [t: "left arrow above almost equal to"] # 0x2b4a + - "⭋": [t: "left arrow above reverse tilde operator"] # 0x2b4b + - "⭌": [t: "right arrow above reverse tilde operator"] # 0x2b4c + - "⭐": [t: "white medium star"] # 0x2b50 + - "⭑": [t: "black small star"] # 0x2b51 + - "⭒": [t: "white small star"] # 0x2b52 + - "⭓": [t: "black right pointing pentagon"] # 0x2b53 + - "⭔": [t: "white right pointing pentagon"] # 0x2b54 + - "⭕": [t: "heavy large circle"] # 0x2b55 + - "⭖": [t: "heavy oval with oval inside"] # 0x2b56 + - "⭗": [t: "heavy circle with circle inside"] # 0x2b57 + - "⭘": [t: "heavy circle"] # 0x2b58 + - "⭙": [t: "heavy circled saltire"] # 0x2b59 + - "⸀": [t: "right angle substitution marker"] # 0x2e00 + - "⸁": [t: "right angle dotted substitution marker"] # 0x2e01 + - "⸂": [t: "left substitution bracket"] # 0x2e02 + - "⸃": [t: "right substitution bracket"] # 0x2e03 + - "⸄": [t: "left dotted substitution bracket"] # 0x2e04 + - "⸅": [t: "right dotted substitution bracket"] # 0x2e05 + - "⸆": [t: "raised interpolation marker"] # 0x2e06 + - "⸇": [t: "raised dotted interpolation marker"] # 0x2e07 + - "⸈": [t: "dotted transposition marker marker"] # 0x2e08 + - "⸉": [t: "left transposition bracket"] # 0x2e09 + - "⸊": [t: "right transposition bracket"] # 0x2e0a + - "⸋": [t: "raised square"] # 0x2e0b + - "⸌": [t: "left raised omission bracket"] # 0x2e0c + - "⸍": [t: "right raised omission bracket"] # 0x2e0d + - "⸎": [t: "editorial coronis"] # 0x2e0e + - "⸏": [t: "paragraphos"] # 0x2e0f + - "⸐": [t: "forked paragraphos"] # 0x2e10 + - "⸑": [t: "reversed forked paragraphos"] # 0x2e11 + - "⸒": [t: "hypodiastole"] # 0x2e12 + - "⸓": [t: "dotted obelos"] # 0x2e13 + - "⸔": [t: "down ancora"] # 0x2e14 + - "⸕": [t: "up ancora"] # 0x2e15 + - "⸖": [t: "dotted right pointing angle"] # 0x2e16 + - "⸗": [t: "double oblique hyphen"] # 0x2e17 + - "⸘": [t: "inverted interrobang"] # 0x2e18 + - "⸙": [t: "palm branch"] # 0x2e19 + - "⸚": [t: "hyphen with diaeresis"] # 0x2e1a + - "⸛": [t: "tilde with ring above"] # 0x2e1b + - "⸜": [t: "left low paraphrase bracket"] # 0x2e1c + - "⸝": [t: "right low paraphrase bracket"] # 0x2e1d + - "⸞": [t: "tilde with dot above"] # 0x2e1e + - "⸟": [t: "tilde with dot below"] # 0x2e1f + - "⸠": [t: "left vertical bar with quill"] # 0x2e20 + - "⸡": [t: "right vertical bar with quill"] # 0x2e21 + - "⸢": [t: "top left half bracket"] # 0x2e22 + - "⸣": [t: "top right half bracket"] # 0x2e23 + - "⸤": [t: "bottom left half bracket"] # 0x2e24 + - "⸥": [t: "bottom right half bracket"] # 0x2e25 + - "⸦": [t: "left sideways u bracket"] # 0x2e26 + - "⸧": [t: "right sideways u bracket"] # 0x2e27 + - "⸨": [t: "left double parentheses"] # 0x2e28 + - "⸩": [t: "right double parentheses"] # 0x2e29 + - "⸪": [t: "two dots over one dot punctuation"] # 0x2e2a + - "⸫": [t: "one dot over two dots punctuation"] # 0x2e2b + - "⸬": [t: "squared four dot punctuation"] # 0x2e2c + - "⸭": [t: "five dot mark"] # 0x2e2d + - "⸮": [t: "reversed question mark"] # 0x2e2e + - "ⸯ": [t: "vertical tilde"] # 0x2e2f + - "⸰": [t: "ring point"] # 0x2e30 + - "⸱": [t: "word separator middle dot"] # 0x2e31 + - "⸲": [t: "turned comma"] # 0x2e32 + - "⸳": [t: "raised dot"] # 0x2e33 + - "⸴": [t: "raised comma"] # 0x2e34 + - "⸵": [t: "turned semicolon"] # 0x2e35 + - "⸶": [t: "dagger with left guard"] # 0x2e36 + - "⸷": [t: "dagger with right guard"] # 0x2e37 + - "⸸": [t: "turned dagger"] # 0x2e38 + - "⸹": [t: "top half section sign"] # 0x2e39 + - "⸺": [t: "two em dash"] # 0x2e3a + - "⸻": [t: "three em dash"] # 0x2e3b + - "〃": [t: "ditto mark"] # 0x3003 + - "〈": [t: "left angle bracket"] # 0x3008 + - "〉": [t: "right angle bracket"] # 0x3009 + - "《": [t: "left double angle bracket"] # 0x300a + - "》": [t: "right double angle bracket"] # 0x300b + - "「": [t: "left corner bracket"] # 0x300c + - "」": [t: "right corner bracket"] # 0x300d + - "『": [t: "left white corner bracket"] # 0x300e + - "』": [t: "right white corner bracket"] # 0x300f + - "【": [t: "left black lenticular bracket"] # 0x3010 + - "】": [t: "right black lenticular bracket"] # 0x3011 + - "〔": [t: "left tortoise shell bracket"] # 0x3014 + - "〕": [t: "right tortoise shell bracket"] # 0x3015 + - "〖": [t: "left white lenticular bracket"] # 0x3016 + - "〗": [t: "right white lenticular bracket"] # 0x3017 + - "〘": [t: "left white tortoise shell bracket"] # 0x3018 + - "〙": [t: "right white tortoise shell bracket"] # 0x3019 + - "〚": [t: "left white square bracket"] # 0x301a + - "〛": [t: "right white square bracket"] # 0x301b + - "〜": [t: "wave dash"] # 0x301c + - "〰": [t: "wavy dash"] # 0x3030 + - "㉈": [t: "circled number ten on black square"] # 0x3248 + - "㉉": [t: "circled number twenty on black square"] # 0x3249 + - "㉊": [t: "circled number thirty on black square"] # 0x324a + - "㉋": [t: "circled number forty on blacks square"] # 0x324b + - "㉌": [t: "circled number fifty on black square"] # 0x324c + - "㉍": [t: "circled number sixty on black square"] # 0x324d + - "㉎": [t: "circled number seventy on black square"] # 0x324e + - "㉏": [t: "circled number eighty on black square"] # 0x324f + - "㉑": [t: "circled number twenty one"] # 0x3251 + - "㉒": [t: "circled number twenty two"] # 0x3252 + - "㉓": [t: "circled number twenty three"] # 0x3253 + - "㉔": [t: "circled number twenty four"] # 0x3254 + - "㉕": [t: "circled number twenty five"] # 0x3255 + - "㉖": [t: "circled number twenty six"] # 0x3256 + - "㉗": [t: "circled number twenty seven"] # 0x3257 + - "㉘": [t: "circled number twenty eight"] # 0x3258 + - "㉙": [t: "circled number twenty nine"] # 0x3259 + - "㉚": [t: "circled number thirty"] # 0x325a + - "㉛": [t: "circled number thirty one"] # 0x325b + - "㉜": [t: "circled number thirty two"] # 0x325c + - "㉝": [t: "circled number thirty three"] # 0x325d + - "㉞": [t: "circled number thirty four"] # 0x325e + - "㉟": [t: "circled number thirty five"] # 0x325f + - "㊱": [t: "circled number thirty six"] # 0x32b1 + - "㊲": [t: "circled number thirty seven"] # 0x32b2 (GPT-5.4 translation) + - "㊳": [t: "circled number thirty eight"] # 0x32b3 (GPT-5.4 translation) + - "㊴": [t: "circled number thirty nine"] # 0x32b4 (GPT-5.4 translation) + - "㊵": [t: "circled number forty"] # 0x32b5 (GPT-5.4 translation) + - "㊶": [t: "circled number forty one"] # 0x32b6 (GPT-5.4 translation) + - "㊷": [t: "circled number forty two"] # 0x32b7 (GPT-5.4 translation) + - "㊸": [t: "circled number forty three"] # 0x32b8 (GPT-5.4 translation) + - "㊹": [t: "circled number forty four"] # 0x32b9 (GPT-5.4 translation) + - "㊺": [t: "circled number forty five"] # 0x32ba (GPT-5.4 translation) + - "㊻": [t: "circled number forty six"] # 0x32bb (GPT-5.4 translation) + - "㊼": [t: "circled number forty seven"] # 0x32bc (GPT-5.4 translation) + - "㊽": [t: "circled number forty eight"] # 0x32bd (GPT-5.4 translation) + - "㊾": [t: "circled number forty nine"] # 0x32be (GPT-5.4 translation) + - "㊿": [t: "circled number fifty"] # 0x32bf (GPT-5.4 translation) + - "㋌": [t: "mercury"] # 0x32cc + - "㋍": [t: "ergs"] # 0x32cd + - "㋎": [t: "electron volts"] # 0x32ce + - "㋏": [t: "limited liability sign"] # 0x32cf + - "㍱": [t: "hectopascals"] # 0x3371 + - "㍲": [t: "daltons"] # 0x3372 + - "㍳": [t: "astronomical units"] # 0x3373 + - "㍴": [t: "bars"] # 0x3374 + - "㍵": [t: "o v"] # 0x3375 + - "㍶": [t: "parsecs"] # 0x3376 + - "㍷": [t: "decimeters"] # 0x3377 + - "㍸": [t: "decimeters squared"] # 0x3378 + - "㍹": [t: "decimeters cubed"] # 0x3379 + - "㍺": [t: "instrumental units"] # 0x337a + - "㎀": [t: "picoamps"] # 0x3380 + - "㎁": [t: "nanoamps"] # 0x3381 + - "㎂": [t: "microamps"] # 0x3382 + - "㎃": [t: "milliamps"] # 0x3383 + - "㎄": [t: "kiloamps"] # 0x3384 + - "㎅": [t: "kilobytes"] # 0x3385 + - "㎆": [t: "megabytes"] # 0x3386 + - "㎇": [t: "gigabytes"] # 0x3387 + - "㎈": [t: "calories"] # 0x3388 + - "㎉": [t: "kilocalories"] # 0x3389 + - "㎊": [t: "picofarads"] # 0x338a + - "㎋": [t: "nanofarads"] # 0x338b + - "㎌": [t: "microfarads"] # 0x338c + - "㎍": [t: "micrograms"] # 0x338d + - "㎎": [t: "milligrams"] # 0x338e + - "㎏": [t: "kilograms"] # 0x338f + - "㎐": [t: "hertz"] # 0x3390 + - "㎑": [t: "kilohertz"] # 0x3391 + - "㎒": [t: "megahertz"] # 0x3392 + - "㎓": [t: "gigahertz"] # 0x3393 + - "㎔": [t: "terahertz"] # 0x3394 + - "㎕": [t: "microliters"] # 0x3395 + - "㎖": [t: "milliliters"] # 0x3396 + - "㎗": [t: "deciliters"] # 0x3397 + - "㎘": [t: "kiloliters"] # 0x3398 + - "㎙": [t: "femtometers"] # 0x3399 + - "㎚": [t: "nanometers"] # 0x339a + - "㎛": [t: "micrometers"] # 0x339b + - "㎜": [t: "millimeters"] # 0x339c + - "㎝": [t: "centimeters"] # 0x339d + - "㎞": [t: "kilometers"] # 0x339e + - "㎟": [t: "millimeters squared"] # 0x339f + - "㎠": [t: "centimeters squared"] # 0x33a0 + - "㎡": [t: "meters squared"] # 0x33a1 + - "㎢": [t: "kilometers squared"] # 0x33a2 + - "㎣": [t: "millimeters cubed"] # 0x33a3 + - "㎤": [t: "centimeters cubed"] # 0x33a4 + - "㎥": [t: "meters cubed"] # 0x33a5 + - "㎦": [t: "kilometers cubed"] # 0x33a6 + - "㎧": [t: "meters per second"] # 0x33a7 + - "㎨": [t: "meters per second squared"] # 0x33a8 + - "㎩": [t: "pascals"] # 0x33a9 + - "㎪": [t: "kilopascals"] # 0x33aa + - "㎫": [t: "megapascals"] # 0x33ab + - "㎬": [t: "gigapascals"] # 0x33ac + - "㎭": [t: "rads"] # 0x33ad + - "㎮": [t: "rads per second"] # 0x33ae + - "㎯": [t: "rads per second squared"] # 0x33af + - "㎰": [t: "picoseconds"] # 0x33b0 + - "㎱": [t: "nanoseconds"] # 0x33b1 + - "㎲": [t: "microseconds"] # 0x33b2 + - "㎳": [t: "milliseconds"] # 0x33b3 + - "㎴": [t: "picovolts"] # 0x33b4 + - "㎵": [t: "nanovolts"] # 0x33b5 + - "㎶": [t: "microvolts"] # 0x33b6 + - "㎷": [t: "millivolts"] # 0x33b7 + - "㎸": [t: "kilovolts"] # 0x33b8 + - "㎹": [t: "megavolts"] # 0x33b9 + - "㎺": [t: "picowatts"] # 0x33ba + - "㎻": [t: "nanowatts"] # 0x33bb + - "㎼": [t: "microwatts"] # 0x33bc + - "㎽": [t: "milliwatts"] # 0x33bd + - "㎾": [t: "kilowatts"] # 0x33be + - "㎿": [t: "megawatts"] # 0x33bf + - "㏀": [t: "kilo-ohms"] # 0x33c0 + - "㏁": [t: "megaohms"] # 0x33c1 + - "㏂": [t: "attometers"] # 0x33c2 + - "㏃": [t: "becquerels"] # 0x33c3 + - "㏄": [t: "cubic centimeters"] # 0x33c4 + - "㏅": [t: "candelas"] # 0x33c5 + - "㏆": [t: "coulombs per kilogram"] # 0x33c6 + - "㏇": [t: "cap C, o, period"] # 0x33c7 (I have no idea what this is) + - "㏈": [t: "decibels"] # 0x33c8 + - "㏉": [t: "grays"] # 0x33c9 + - "㏊": [t: "hectares"] # 0x33ca + - "㏋": [t: "horsepower"] # 0x33cb + - "㏌": [t: "inches"] # 0x33cc + - "㏍": [t: "kilokelvins"] # 0x33cd + - "㏎": [t: "kilometers"] # 0x33ce + - "㏏": [t: "knots"] # 0x33cf + - "㏐": [t: "lumens"] # 0x33d0 + - "㏑": [t: "natural log"] # 0x33d1 + - "㏒": [t: "logarithm"] # 0x33d2 + - "㏓": [t: "lux"] # 0x33d3 + - "㏔": [t: "millibarns"] # 0x33d4 + - "㏕": [t: "mills"] # 0x33d5 + - "㏖": [t: "moles"] # 0x33d6 + - "㏗": [t: "p h"] # 0x33d7 + - "㏘": [t: "picometers"] # 0x33d8 + - "㏙": [t: "parts per million"] # 0x33d9 + - "㏚": [t: "petaroentgens"] # 0x33da + - "㏛": [t: "steradians"] # 0x33db + - "㏜": [t: "sieverts"] # 0x33dc + - "㏝": [t: "webers"] # 0x33dd + - "㏞": [t: "volts per meter"] # 0x33de + - "㏟": [t: "amps per meter"] # 0x33df + - "㏿": [t: "gallons"] # 0x33ff + - "": [t: "equals with hat below"] # 0xe900 + - "": [t: "equals with plus above"] # 0xe901 + - "": [t: "equals with plus below"] # 0xe902 + - "": [t: "tilde with plus above"] # 0xe903 + - "": [t: "tilde with plus below"] # 0xe904 + - "": [t: "equal double over greater than"] # 0xe908 + - "": [t: "equal double over less than"] # 0xe909 + - "": [t: "contains or equal to"] # 0xe90a + - "": [t: "superset of or equal to"] # 0xe90b + - "": [t: "subset of or equal to"] # 0xe90c + - "": [t: "equal over less than"] # 0xe90d + - "": [t: "element of or equal to"] # 0xe912 + - "": [t: "equal to or greater than"] # 0xe913 + - "": [t: "approximate superset of"] # 0xe914 + - "": [t: "approximate subset of"] # 0xe915 + - "": [t: "superset of with dot includes as sub relation"] # 0xe916 + - "": [t: "subset of with dot is included in as sub relation"] # 0xe917 + - "": [t: "equal with dot below"] # 0xe918 + - "": [t: "left dot over minus over right dot"] # 0xe919 + - "": [t: "right dot over minus over left dot"] # 0xe91a + - "": [t: "almost equal to minus"] # 0xe91f + - "": [t: "double square cup"] # 0xe920 + - "": [t: "double square cap"] # 0xe921 + - "": [t: "less than equal to or greater than"] # 0xe922 + - "": [t: "tilde with dot"] # 0xe924 + - "": [t: "tilde with two dots"] # 0xe925 + - "": [t: "less than greater than or equal to"] # 0xe926 + - "": [t: "greater than less than or equal to"] # 0xe927 + - "": [t: "equivalent to or less than"] # 0xe928 + - "": [t: "equivalent to or greater than"] # 0xe929 + - "": [t: "left open box operator"] # 0xe92a + - "": [t: "right open box operator"] # 0xe92b + - "": [t: "identical to with dot"] # 0xe92c + - "": [t: "greater than equal to or less than"] # 0xe92d + - "": [t: "bar operator"] # 0xe92e + - "": [t: "double bar operator"] # 0xe92f + - "": [t: "triple bar operator"] # 0xe930 + - "": [t: "less than or approximately equal to"] # 0xe932 + - "": [t: "greater than or approximately equal to"] # 0xe933 + - "": [t: "nested less than"] # 0xe936 + - "": [t: "nested greater than"] # 0xe937 + - "": [t: "precedes or equivalent to"] # 0xe93a + - "": [t: "succeeds or equivalent to"] # 0xe93b + - "": [t: "precedes over equal"] # 0xe940 + - "": [t: "succeeds over equal"] # 0xe941 + - "": [t: "less equal slanted greater"] # 0xe942 + - "": [t: "greater equal slanted less"] # 0xe943 + - "": [t: "satisfied by"] # 0xe948 + - "": [t: "lazy s"] # 0xe949 + - "": [t: "not assertion"] # 0xe94a + - "": [t: "double equal"] # 0xe94b + - "": [t: "triple equal"] # 0xe94c + - "": [t: "rule delayed"] # 0xe94d + - "": [t: "alias delimiter"] # 0xe94e + - "": [t: "normal subgroup of with bar"] # 0xe950 + - "": [t: "contains as normal subgroup with bar"] # 0xe951 + - "": [t: "round implies"] # 0xe954 + - "": [t: "smile under bar"] # 0xe955 + - "": [t: "frown over bar"] # 0xe956 + - "": [t: "superset of or almost equal to"] # 0xe957 + - "": [t: "subset of or almost equal to"] # 0xe958 + - "": [t: "greater than almost equal to or less than"] # 0xe959 + - "": [t: "less than almost equal or greater than"] # 0xe95a + - "": [t: "double logical or"] # 0xe95c + - "": [t: "double logical and"] # 0xe95d + - "": [t: "logical or with double bar below"] # 0xe95e + - "": [t: "logical or with bar below"] # 0xe95f + - "": [t: "almost equal over equal"] # 0xe962 + - "": [t: "left pointing triangle with bisecting bar"] # 0xe964 + - "": [t: "right pointing triangle with bisecting bar"] # 0xe965 + - "": [t: "equals with dotted top line"] # 0xe966 + - "": [t: "precedes with colon"] # 0xe967 + - "": [t: "succeeds with colon"] # 0xe968 + - "": [t: "smaller than or equal slanted"] # 0xe969 + - "": [t: "larger than or equal slanted"] # 0xe96a + - "": [t: "nested very much less than"] # 0xe96b + - "": [t: "nested very much greater than"] # 0xe96c + - "": [t: "difference between variant"] # 0xe96d + - "": [t: "less than greater than overlay"] # 0xe96e + - "": [t: "logical or logical and overlay"] # 0xe96f + - "": [t: "superset over superset"] # 0xe970 + - "": [t: "subset over subset"] # 0xe971 + - "": [t: "superset over subset"] # 0xe972 + - "": [t: "subset over superset"] # 0xe973 + - "": [t: "triple vertical bar"] # 0xe979 + - "": [t: "paired quadruple vertical dots"] # 0xe97a + - "": [t: "perpendicular over bar"] # 0xe97b + - "": [t: "left turnstile double vertical bar"] # 0xe97c + - "": [t: "double left turnstile double vertical bar"] # 0xe97d + - "": [t: "perpendicular over inverted perpendicular"] # 0xe97e + - "": [t: "double left turnstile vertical bar"] # 0xe97f + - "": [t: "spherical angle opening up"] # 0xe980 + - "": [t: "double slash"] # 0xe981 + - "": [t: "right angle with corner"] # 0xe982 + - "": [t: "circled vertical bar"] # 0xe984 + - "": [t: "circled division sign"] # 0xe985 + - "": [t: "dashed solidus"] # 0xe986 + - "": [t: "dashed backslash"] # 0xe987 + - "": [t: "dashed mid line"] # 0xe988 + - "": [t: "dashed vertical bar"] # 0xe989 + - "": [t: "perpendicular with s"] # 0xe98a + - "": [t: "angle with s"] # 0xe98b + - "": [t: "spherical angle opening left"] # 0xe98c + - "": [t: "angle opening left"] # 0xe98d + - "": [t: "vertical bar with double hook"] # 0xe98e + - "": [t: "medium dot operator free radical"] # 0xe98f + - "": [t: "white up pointing triangle above bar"] # 0xe990 + - "": [t: "identical and parallel to"] # 0xe991 + - "": [t: "smash product"] # 0xe992 + - "": [t: "triple bar operator with horizontal bar"] # 0xe993 + - "": [t: "identical to with double slash"] # 0xe994 + - "": [t: "triple crossed bars"] # 0xe995 + - "": [t: "vertical bar over circle"] # 0xe996 + - "": [t: "vertical proportional to"] # 0xe997 + - "": [t: "black last quarter moon"] # 0xe998 + - "": [t: "black first quarter moon"] # 0xe999 + - "": [t: "negative sine wave"] # 0xe9a0 + - "": [t: "parenthesized dot"] # 0xe9a1 + - "": [t: "parens"] # 0xe9a2 + - "": [t: "white smile"] # 0xe9a3 + - "": [t: "white frown"] # 0xe9a4 + - "": [t: "hexagon"] # 0xe9a5 + - "": [t: "equivalent to over plus"] # 0xe9a6 + - "": [t: "plus over equivalent to"] # 0xe9a7 + - "": [t: "intersection serifs"] # 0xe9b0 + - "": [t: "union serifs"] # 0xe9b1 + - "": [t: "square intersection serifs"] # 0xe9b2 + - "": [t: "square union serifs"] # 0xe9b3 + - "": [t: "precedes equivalent to or succeeds"] # 0xe9e0 + - "": [t: "succeeds equivalent to or precedes"] # 0xe9e1 + - "": [t: "precedes almost equal to or succeeds"] # 0xe9e2 + - "": [t: "succeeds almost equal to or precedes"] # 0xe9e3 + - "": [t: "less than equivalent to or greater than"] # 0xe9f0 + - "": [t: "greater than equivalent to or less than"] # 0xe9f1 + - "": [t: "not vert much less than"] # 0xea00 + - "": [t: "not vert much greater than"] # 0xea01 + - "": [t: "not much less than variant"] # 0xea02 + - "": [t: "not much greater than variant"] # 0xea03 + - "": [t: "less vert not double equals"] # 0xea04 + - "": [t: "gt vert not double equals"] # 0xea05 + - "": [t: "not less than or equal to"] # 0xea06 + - "": [t: "not greater than or equal to"] # 0xea07 + - "": [t: "neither equal to nor less than"] # 0xea09 + - "": [t: "does not contain or equal to"] # 0xea0a + - "": [t: "neither superset of nor equal to"] # 0xea0b + - "": [t: "neither subset of nor equal to"] # 0xea0c + - "": [t: "reverse solidus subset"] # 0xea0d + - "": [t: "neither equal to nor greater than"] # 0xea0e + - "": [t: "not minus tilde operator"] # 0xea0f + - "": [t: "neither equal to nor less than"] # 0xea10 + - "": [t: "not tilde operator"] # 0xea11 + - "": [t: "not element of or equal to"] # 0xea12 + - "": [t: "neither equal to nor greater than"] # 0xea13 + - "": [t: "not almost equal"] # 0xea14 + - "": [t: "not succeeds similar"] # 0xea15 + - "": [t: "less than or slanted equal to with slash"] # 0xea16 + - "": [t: "greater than or slanted equal to with slash"] # 0xea17 + - "": [t: "superset solidus"] # 0xea1a + - "": [t: "does not contain"] # 0xea1b + - "": [t: "not less than or equal to"] # 0xea1d + - "": [t: "not greater than or equal to"] # 0xea1e + - "": [t: "not almost equal to minus"] # 0xea1f + - "": [t: "negated set membership dot above"] # 0xea22 + - "": [t: "not vert angle"] # 0xea2c + - "": [t: "not parallel slanted"] # 0xea2d + - "": [t: "not bar operator"] # 0xea2e + - "": [t: "not double bar operator"] # 0xea2f + - "": [t: "not triple bar operator"] # 0xea30 + - "": [t: "less than but not approximately equal to"] # 0xea32 + - "": [t: "greater than but not approximately equal to"] # 0xea33 + - "": [t: "less than or not equal to"] # 0xea34 + - "": [t: "greater than or not equal to"] # 0xea35 + - "": [t: "not nested less than"] # 0xea36 + - "": [t: "not nested greater than"] # 0xea37 + - "": [t: "not much less than"] # 0xea38 + - "": [t: "not much greater than"] # 0xea39 + - "": [t: "precedes but not equivalent to"] # 0xea3a + - "": [t: "succeeds but not equivalent to"] # 0xea3b + - "": [t: "precedes but not equal to"] # 0xea3c + - "": [t: "succeeds but not equal to"] # 0xea3d + - "": [t: "does not equal or precede"] # 0xea3e + - "": [t: "does not equal or succeed"] # 0xea3f + - "": [t: "precedes but not equal to"] # 0xea40 + - "": [t: "succeeds but not equal to"] # 0xea41 + - "": [t: "not subset of nor equal to"] # 0xea42 + - "": [t: "not superset of nor equal to"] # 0xea43 + - "": [t: "subset of or not equal to"] # 0xea44 + - "": [t: "superset of or not equal to"] # 0xea45 + - "": [t: "not subset of nor equal to"] # 0xea46 + - "": [t: "not superset of nor equal to"] # 0xea47 + - "": [t: "not triple less than"] # 0xea48 + - "": [t: "not triple greater than"] # 0xea49 + - "": [t: "not precedes equals"] # 0xea4c + - "": [t: "not succeeds equals"] # 0xea4d + - "": [t: "not normal subgroup of with bar"] # 0xea50 + - "": [t: "does not contain as normal subgroup with bar"] # 0xea51 + - "": [t: "not difference between"] # 0xea52 + - "": [t: "not geometrically equivalent to"] # 0xea53 + - "": [t: "not vert similar"] # 0xea54 + - "": [t: "not equal or similar"] # 0xea55 + - "": [t: "not vert approximate"] # 0xea56 + - "": [t: "not approximately identical to"] # 0xea57 + - "": [t: "not bumpy equals"] # 0xea58 + - "": [t: "not bumpy single equals"] # 0xea59 + - "": [t: "not equal dot"] # 0xea5a + - "": [t: "reverse not equivalent"] # 0xea5b + - "": [t: "not square subset"] # 0xea60 + - "": [t: "not square superset"] # 0xea61 + - "": [t: "not almost equal over equal"] # 0xea62 + - "": [t: "not strictly equivalent to"] # 0xea63 + - "": [t: "not congruent dot"] # 0xea64 + - "": [t: "reverse not equal"] # 0xea65 + - "": [t: "not vert left triangle equals"] # 0xea70 + - "": [t: "not vert right triangle equals"] # 0xea71 + - "": [t: "not partial"] # 0xea80 + - "": [t: "arrow embellishment extender"] # 0xeb00 + - "": [t: "arrow right over arrow left"] # 0xeb01 + - "": [t: "arrow right over arrow left"] # 0xeb02 + - "": [t: "harpoon right over harpoon left"] # 0xeb03 + - "": [t: "harpoon right over harpoon left"] # 0xeb04 + - "": [t: "double arrow northeast southwest"] # 0xeb05 + - "": [t: "double arrow northwest southeast"] # 0xeb06 + - "": [t: "horizontal harpoon extender"] # 0xeb07 + - "": [t: "anticlockwise arc left arrow"] # 0xeb08 + - "": [t: "anticlockwise arc right arrow"] # 0xeb09 + - "": [t: "large right arrow accent"] # 0xeb0b + - "": [t: "large left arrow accent"] # 0xeb0c + - "": [t: "left arrowhead"] # 0xeb0d + - "": [t: "right arrowhead"] # 0xeb0e + - "": [t: "large left right arrow with stroke"] # 0xeb0f + - "": [t: "horizontal double arrow extender"] # 0xeb10 + - "": [t: "large left right double arrow with stroke"] # 0xeb11 + - "": [t: "down arrow left of up arrow"] # 0xeb12 + - "": [t: "left arrow with corner down"] # 0xeb13 + - "": [t: "right arrow with corner up"] # 0xeb14 + - "": [t: "left arrow with corner up"] # 0xeb15 + - "": [t: "anticlockwise top semicircle arrow with plus"] # 0xeb16 + - "": [t: "clockwise top semicircle arrow with minus"] # 0xeb17 + - "": [t: "right arrow with tail with stroke"] # 0xeb18 + - "": [t: "right harpoon down"] # 0xeb19 + - "": [t: "left harpoon down"] # 0xeb1a + - "": [t: "left right harpoon down"] # 0xeb1b + - "": [t: "left right harpoon up"] # 0xeb1c + - "": [t: "up down harpoon left"] # 0xeb1d + - "": [t: "up down harpoon right"] # 0xeb1e + - "": [t: "up arrow to the right of down arrow"] # 0xeb1f + - "": [t: "left harpoon to bar with barb up"] # 0xeb20 + - "": [t: "right harpoon to bar with barb up"] # 0xeb21 + - "": [t: "left harpoon to bar with barb down"] # 0xeb22 + - "": [t: "right harpoon to bar with barb down"] # 0xeb23 + - "": [t: "left harpoon from bar with barb up"] # 0xeb24 + - "": [t: "right harpoon from bar with barb up"] # 0xeb25 + - "": [t: "left harpoon from bar with barb down"] # 0xeb26 + - "": [t: "right harpoon from bar with barb down"] # 0xeb27 + - "": [t: "up harpoon to bar with barb left"] # 0xeb28 + - "": [t: "down harpoon to bar with barb left"] # 0xeb29 + - "": [t: "up harpoon to bar with barb right"] # 0xeb2a + - "": [t: "down harpoon to bar with barb right"] # 0xeb2b + - "": [t: "up harpoon from bar with barb left"] # 0xeb2c + - "": [t: "down harpoon from bar with barb left"] # 0xeb2d + - "": [t: "up harpoon from bar with barb right"] # 0xeb2e + - "": [t: "down harpoon from bar with barb right"] # 0xeb2f + - "": [t: "up arrow to bar"] # 0xeb30 + - "": [t: "down arrow to bar"] # 0xeb31 + - "": [t: "up harpoon to the left of down harpoon"] # 0xeb32 + - "": [t: "up harpoon to the right of down harpoon"] # 0xeb33 + - "": [t: "up arrowhead"] # 0xeb34 + - "": [t: "down arrowhead"] # 0xeb35 + - "": [t: "double harpoon with left barb down right barb up"] # 0xeb36 + - "": [t: "double harpoon with left barb up right barb down"] # 0xeb37 + - "": [t: "left arrow over bar"] # 0xeb38 + - "": [t: "right arrow over bar"] # 0xeb39 + - "": [t: "left arrow under bar"] # 0xeb3a + - "": [t: "right arrow under bar"] # 0xeb3b + - "": [t: "left right triple arrow"] # 0xeb3c + - "": [t: "double arrow northeast southeast"] # 0xeb3f + - "": [t: "anticlockwise left semicircle arrow"] # 0xeb40 + - "": [t: "clockwise left semicircle arrow"] # 0xeb41 + - "": [t: "left open circle left right arrow"] # 0xeb42 + - "": [t: "right arrow over tilde"] # 0xeb44 + - "": [t: "left arrow over tilde"] # 0xeb45 + - "": [t: "left harpoon over bar"] # 0xeb48 + - "": [t: "right harpoon over bar"] # 0xeb49 + - "": [t: "left harpoon under bar"] # 0xeb4a + - "": [t: "right harpoon under bar"] # 0xeb4b + - "": [t: "squat black left arrow"] # 0xeb4c + - "": [t: "clockwise right semicircle arrow"] # 0xeb50 + - "": [t: "anticlockwise right semicircle arrow"] # 0xeb51 + - "": [t: "left open circle left right harpoon"] # 0xeb52 + - "": [t: "up arrow left of vertical bar"] # 0xeb58 + - "": [t: "down arrow left of vertical bar"] # 0xeb59 + - "": [t: "up arrow right of vertical bar"] # 0xeb5a + - "": [t: "down arrow right of vertical bar"] # 0xeb5b + - "": [t: "right arrow with extended down hook"] # 0xeb5c + - "": [t: "left arrow with extended hook"] # 0xeb5d + - "": [t: "left arrow with extended down hook"] # 0xeb5e + - "": [t: "right arrow with extended hook"] # 0xeb5f + - "": [t: "not right arrow wavy"] # 0xeb60 + - "": [t: "not right arrow curved"] # 0xeb61 + - "": [t: "up harpoon left of vertical bar"] # 0xeb68 + - "": [t: "down harpoon left of vertical bar"] # 0xeb69 + - "": [t: "up harpoon right of vertical bar"] # 0xeb6a + - "": [t: "down harpoon right of vertical bar"] # 0xeb6b + - "": [t: "vertical double arrow extender"] # 0xeb6c + - "": [t: "vertical harpoon with barb left extender"] # 0xeb6d + - "": [t: "vertical harpoon with barb right extender"] # 0xeb6e + - "": [t: "right harpoon over left harpoon right"] # 0xeb6f + - "": [t: "right harpoon over left harpoon left"] # 0xeb70 + - "": [t: "left harpoon over right harpoon right"] # 0xeb71 + - "": [t: "left harpoon over right harpoon left"] # 0xeb72 + - "": [t: "left arrow from bar arrowhead"] # 0xeb73 + - "": [t: "left right arrow from bar extender"] # 0xeb74 + - "": [t: "left arrow from bar tail"] # 0xeb75 + - "": [t: "right arrow from bar tail"] # 0xeb76 + - "": [t: "right arrow from bar arrowhead"] # 0xeb77 + - "": [t: "up harpoon from bar with barb left arrowhead"] # 0xeb78 + - "": [t: "right arrow over left arrow right"] # 0xeb79 + - "": [t: "right arrow over left arrow left"] # 0xeb7a + - "": [t: "left arrow over right arrow right"] # 0xeb7b + - "": [t: "left arrow over right arrow left"] # 0xeb7c + - "": [t: "up arrow from bar arrowhead"] # 0xeb7d + - "": [t: "up arrow from bar tail"] # 0xeb7e + - "": [t: "down arrow from bar tail"] # 0xeb7f + - "": [t: "down arrow from bar arrowhead"] # 0xeb80 + - "": [t: "down harpoon from bar with barb right arrowhead"] # 0xeb81 + - "": [t: "up harpoon to the left of down harpoon bottom"] # 0xeb82 + - "": [t: "up harpoon to the left of down harpoon extender"] # 0xeb83 + - "": [t: "down harpoon to the left of up harpoon top"] # 0xeb84 + - "": [t: "up harpoon to the left of down harpoon top"] # 0xeb85 + - "": [t: "down harpoon to the left of the up harpoon extender"] # 0xeb86 + - "": [t: "down harpoon to the left of the up harpoon bottom"] # 0xeb87 + - "": [t: "up arrow left of down arrow bottom"] # 0xeb88 + - "": [t: "down arrow left of up arrow top"] # 0xeb89 + - "": [t: "up arrow left of down arrow top"] # 0xeb8a + - "": [t: "down arrow left of up arrow bottom"] # 0xeb8b + - "": [t: "left right arrows extender"] # 0xeb8c + - "": [t: "north east arrow extender"] # 0xeb8d + - "": [t: "north west arrow extender"] # 0xeb8e + - "": [t: "down pointing brace left"] # 0xec00 + - "": [t: "down pointing brace mid"] # 0xec01 + - "": [t: "down pointing brace right"] # 0xec02 + - "": [t: "horizontal brace extender"] # 0xec03 + - "": [t: "up pointing brace left"] # 0xec04 + - "": [t: "up pointing brace mid"] # 0xec05 + - "": [t: "up-pointing brace right"] # 0xec06 + - "": [t: "left vertical bar"] # 0xec07 + - "": [t: "right vertical bar"] # 0xec08 + - "": [t: "left double vertical bar"] # 0xec09 + - "": [t: "right double vertical bar"] # 0xec0a + - "": [t: "horizontal bracket extender"] # 0xec0b + - "": [t: "under square bracket"] # 0xec0c + - "⎵": [t: "under square bracket"] # 0x23b5 + - "": [t: "over square bracket"] # 0xec0d + - "⎴": [t: "over square bracket"] # 0x23b4 + - "": [t: "under bracket left"] # 0xec0e + - "": [t: "under bracket right"] # 0xec0f + - "": [t: "over bracket left"] # 0xec10 + - "": [t: "over bracket right"] # 0xec11 + - "": [t: "left parens 1"] # 0xec12 + - "": [t: "left parens 2"] # 0xec13 + - "": [t: "left parens 3"] # 0xec14 + - "": [t: "left parens 4"] # 0xec15 + - "": [t: "right parens 1"] # 0xec16 + - "": [t: "right parens 2"] # 0xec17 + - "": [t: "right parens 3"] # 0xec18 + - "": [t: "right parens 4"] # 0xec19 + - "": [t: "radical 1"] # 0xec1a + - "": [t: "radical 2"] # 0xec1b + - "": [t: "radical 3"] # 0xec1c + - "": [t: "radical 4"] # 0xec1d + - "": [t: "radical 5"] # 0xec1e + - "": [t: "radical bottom"] # 0xec1f + - "": [t: "radical vertical extender"] # 0xec20 + - "": [t: "radical top"] # 0xec21 + - "": [t: "left white bracket top"] # 0xec22 + - "": [t: "left white bracket extender"] # 0xec23 + - "": [t: "left white bracket bottom"] # 0xec24 + - "": [t: "right white bracket top"] # 0xec25 + - "": [t: "right white bracket extender"] # 0xec26 + - "": [t: "right white bracket bottom"] # 0xec27 + - "": [t: "left white curly bracket"] # 0xec30 + - "": [t: "right white curly bracket"] # 0xec31 + - "": [t: "long division sign"] # 0xec32 + - "": [t: "long division sign extender"] # 0xec33 + - "": [t: "short division"] # 0xec34 + - "": [t: "double southwest to northeast em bond"] # 0xec40 + - "": [t: "double northwest to southeast em bond"] # 0xec41 + - "": [t: "single horizontal em bond"] # 0xec42 + - "": [t: "double horizontal em bond"] # 0xec43 + - "": [t: "triple horizontal em bond"] # 0xec44 + - "": [t: "single vertical em bond"] # 0xec45 + - "": [t: "double vertical em bond"] # 0xec46 + - "": [t: "triple vertical em bond"] # 0xec47 + - "": [t: "less than em bond"] # 0xec48 + - "": [t: "greater than em bond"] # 0xec49 + - "": [t: "single horizontal en bond"] # 0xec4a + - "": [t: "double horizontal en bond"] # 0xec4b + - "": [t: "triple horizontal en bond"] # 0xec4c + - "": [t: "top left rectangle"] # 0xec80 + - "": [t: "bottom left rectangle"] # 0xec81 + - "": [t: "top right rectangle"] # 0xec90 + - "": [t: "bottom right rectangle"] # 0xec91 + - "": [t: "synthetic division corner"] # 0xec92 + - "": [t: "synthetic division horizontal extender"] # 0xec93 + - "": [t: "synthetic division vertical extender"] # 0xec94 + - "": [t: "left ceiling floor extender"] # 0xec95 + - "": [t: "right ceiling floor extender"] # 0xec96 + - "": [t: "over bracket extender"] # 0xec97 + - "": [t: "vertical bar extender"] # 0xec98 + - "": [t: "left double vertical bar extender"] # 0xec99 + - "": [t: "horizontal bar extender"] # 0xec9a + - "": [t: "under bracket extender"] # 0xec9c + - "": [t: "down pointing paren right"] # 0xec9d + - "": [t: "down pointing paren extender"] # 0xec9e + - "": [t: "down pointing paren left"] # 0xec9f + - "": [t: "up pointing brace extender"] # 0xeca0 + - "": [t: "up pointing paren left"] # 0xeca1 + - "": [t: "up pointing paren extender"] # 0xeca2 + - "": [t: "up pointing paren right"] # 0xeca3 + - "": [t: "down pointing brace extender"] # 0xeca4 + - "": [t: "planck constant over two pi bar"] # 0xed00 + - "": [t: "mirror g"] # 0xed01 + - "": [t: "dotless j"] # 0xed02 + - "": [t: "digamma"] # 0xed03 + - "ϝ": [t: "digamma"] # 0x3dd + - "": [t: "d"] # 0xed10 + - "": [t: "e"] # 0xed11 + - "": [t: "i"] # 0xed12 + - "": [t: "j"] # 0xed13 + - "ⅅ": + - spell: "translate('.', 'ⅅ', 'DD')" # 0xed16, 0x2145 + +# The private use chars are from MathType + - "": [t: "anticlockwise contour integral loop"] # 0xee00 + - "": [t: "clockwise contour integral loop"] # 0xee01 + - "": [t: ""] # 0xee04 + - "": [t: ""] # 0xee05 + - "": [t: ""] # 0xee06 + - "": [t: ""] # 0xee07 + - "": [t: ""] # 0xee08 + - "": [t: ""] # 0xee09 + - "": [t: ""] # 0xee0a + - "": [t: ""] # 0xee0b + - "": [t: ""] # 0xee0c + - "": [t: "joint status embellishment"] # 0xee0d + - "": [t: "joint status embellishment left"] # 0xee0e + - "": [t: "joint status embellishment right"] # 0xee0f + - "": [t: "joint status embellishment extender"] # 0xee10 + - "": [t: "integral loop"] # 0xee11 + - "": [t: "integral loop double"] # 0xee12 + - "": [t: "integral loop triple"] # 0xee13 + - "": [t: "expanding integral loop double"] # 0xee15 + - "": [t: "expanding integral loop triple"] # 0xee16 + - "": [t: "asymptotically equal to accent"] # 0xee17 + - "": [t: "equal sign accent"] # 0xee18 + - "": [t: "quadruple prime"] # 0xee19 + - "": [t: "bar accent with open circle left"] # 0xee1a + - "": [t: "bar accent with closed circle left"] # 0xee1b + - "": [t: "bar accent with open circle right"] # 0xee1c + - "": [t: "bar accent with over dot"] # 0xee1d + - "": [t: "bar accent with under dot"] # 0xee1e + - "": [t: "bar accent with double over dot"] # 0xee1f + - "": [t: "bar accent with double under dot"] # 0xee20 + - "": [t: "bar accent with caret"] # 0xee21 + - "": [t: "thick under bar accent"] # 0xee22 + - "": [t: "bar accent with closed circle right"] # 0xee23 + - "": [t: "large dot above"] # 0xee24 + - "": [t: "alignment mark"] # 0xef00 + - "": [t: ""] # 0xef01 + - "​": [t: ""] # 0x200b + - "": [t: ""] # 0xef02 + - " ": [t: ""] # 0x2009 + - "": [t: ""] # 0xef03 + - " ": [t: ""] # 0x205f + - "": [t: ""] # 0xef04 + - "": [t: ""] # 0xef05 + - "": [t: ""] # 0xef06 + - "": [t: ""] # 0xef07 + - "": [t: ""] # 0xef08 + - "": [t: ""] # 0xef09 + - "": [t: ""] # 0xef0a + - " ": [t: ""] # 0x200a + - "": [t: ""] # 0xef22 + - "": [t: ""] # 0xef23 + - "": [t: ""] # 0xef24 + - "": [t: ""] # 0xef29 + - "": [t: "missing term"] # 0xef41 + - "": [t: "clockwise contour integral arrow on left"] # 0xef80 + - "": [t: "integral with square"] # 0xef81 + - "": [t: "integral with slash"] # 0xef82 + - "": [t: "reversed integral"] # 0xef83 + - "": [t: "double zero over double zero"] # 0xef90 + - "": [t: "zero with slash"] # 0xef91 + + # fraktur chars in math alphabetic block and also MathType private use area + # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display + - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) + - t: "fraktur" + - spell: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" + + - "-": # 0xf000 - 0xf018 + - t: "fraktur" + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" + + - "𝔞-𝔷": # 0x1d51e - 0x1d537 + - t: "fraktur" + - spell: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf01a - 0xf033 + - t: "fraktur" + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝕬-𝖅": # 0x1D56C - 0x1D585 + - t: "fraktur" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf040 - 0xf059 + - t: "fraktur" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝖆-𝖟": # 0x1d586 - 0x1d59f + - t: "fraktur" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf05a - 0xf073 + - t: "fraktur" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area + # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display + - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) + - t: "double struck" + - spell: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf080 - 0xf098 + - t: "double struck" + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝕒-𝕫": # 0x1d552 - 0x1d56b + - t: "double struck" + - spell: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf09a - 0xf0b3 + - t: "double struck" + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + - "𝟘-𝟡": # 0x1d7d8 - 0x1d7e1 + - t: "double struck" + - spell: "translate('.', '𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡', '0123456789')" + - "-": # 0xf0c0 - 0xf0c9 + - t: "double struck" + - spell: "translate('.', '', '0123456789')" + + - "": [t: "double struck nahblah"] # 0xf0ca + - "": [t: "double struck euler constant"] # 0xf0cb + + # script chars in math alphabetic block and also MathType private use area + - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 + - t: "script" + - spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf100 - 0xf119 + - t: "script" + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf + - t: "script" + - spell: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf11a - 0xf133 + - t: "script" + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + # bold script chars in math alphabetic block and also MathType private use area + - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 + - t: "script" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf140 - 0xf159 + - t: "script" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝓪-𝔃": # 0x1d4ea - 0x1d503 + - t: "script" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf15a - 0xf173 + - t: "script" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf180 - 0xf199 + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "": # 0xf19a + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [t: "cap"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [t: "ligature ae"] + - "": # 0xf19b + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [t: "cap"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [t: "sharp s"] + - "": # 0xf19c + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [t: "cap"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [t: "o with stroke"] + + # MathType only has a few of the cap Greek letters in PUA + - "": # 0xf201 - 0xf209 + - t: "double struck" + - spell: "translate('.', '', 'ΔΨΛΠΣΘΓΩΥ')" + + - "-": # 0xf220 - 0xf236 + - t: "double struck" + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "": [t: "double struck final sigma"] # 0xf237 + - "": [t: "double struck rho"] # 0xf250 + - "": [t: "double struck phi"] # 0xf251 + - "𝐀-𝐙": # 0x1d400 - 0x1d419 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf260 - 0xf279 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝐚-𝐳": # 0x1d41a - 0x1d433 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf27a - 0xf293 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝐴-𝑍": # 0x1d434 - 0x1d44d + - spell: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf294 - 0xf2ad + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝑎-𝑧": # 0x1d44e - 0x1d467 + - spell: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf2ae - 0xf2c7 + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝑨-𝒁": # 0x1d468 - 0x1d481 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf2c8 - 0xf2e1 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝒂-𝒛": # 0x1d482 - 0x1d49b + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf2e2 - 0xf2fb + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 + - spell: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf300 - 0xf319 + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 + - spell: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf31a - 0xf333 + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf334 - 0xf34d + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝗮-𝘇": # 0x1d5ee - 0x1d607 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf34e - 0xf367 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + - "𝘈-𝘡": # 0x1d608 - 0x1d621 + # - t: "italic" + - spell: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + - "-": # 0xf368 - 0xf381 + # - t: "italic" + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝘢-𝘻": # 0x1d622 - 0x1d63b + # - t: "italic" + - spell: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf382 - 0xf39b + # - t: "italic" + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝘼-𝙕": # 0x1d63c - 0x1d655 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf39c - 0xf3b5 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝙖-𝙯": # 0x1d656 - 0x1d66f + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf3b6 - 0xf3cf + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝙰-𝚉": # 0x1d670 - 0x1d689 + - spell: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf3d0 - 0xf3e9 + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 + - spell: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf3ea - 0xf403 + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "": [t: "dotless i"] # 0xf404 + - "𝚤": [t: "dotless i"] # 0x1d6a4 + - "𝚥": [t: "dotless j"] # 0x1d6a5 + + - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf408 - 0xf420 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf422 - 0xf43a + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "": [t: "bold nahblah"] # 0xf421 + - "𝛁": [t: "bold nahblah"] # 0x1d6c1 + + - "𝛛𝛜𝛝𝛞𝛟𝛠𝛡": # 0x1D6DB - 0x1D6E1 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠𝛡', '∂εθκφρπ')" + + - "": # 0xF43C - 0xF441 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', '∂εθκφρπ')" + + - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa + # - t: "italic" + - spell: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf442 - 0xf45a + # - t: "italic" + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝛼-𝜔": # 0x1d6fc - 0x1d714 + # - t: "italic" + - spell: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf45c - 0xf474 + # - t: "italic" + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "": [t: "italic nahblah"] # 0xf45b + - "𝛻": [t: "italic nahblah"] # 0x1d6fb + + - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b + # - t: "italic" + - spell: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" + + - "": # 0xf475 - 0xf47b + # - t: "italic" + - spell: "translate('.', '', '∂εθκφρπ')" + + - "𝜜-𝜴": # 0x1d71c - 0x1d734 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf47c - 0xf494 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝜶-𝝎": # 0x1d736 - 0x1d74e + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf496 - 0xf4ae + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝝏𝝐𝝑𝝒𝝓𝝔𝝕": # 0x1d74f - 0x1d755 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔𝝕', '∂εθκφρπ')" + + - "": # 0xf422 - 0xf43a + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', '∂εθκφρπ')" + + - "𝜵": [t: "bold italic nahblah"] # 0x1d735 + - "": [t: "bold italic nahblah"] # 0xf495 + + - "𝝖-𝝮": # 0x1d756 - 0x1d76e + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + - "-": # 0xf4b6 - 0xf4ce + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝝰-𝞈": # 0x1d770 - 0x1d788 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf4d0 - 0xf4e8 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝞉𝞊𝞋𝞌𝞍𝞎𝞏": # 0x1d789 - 0x1d78f + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎𝞏', '∂εθκφρπ')" + + - "": # 0xf4e9 - 0xf4ef + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', '∂εθκφρπ')" + + - "": [t: "bold nahblah"] # 0xf4cf + - "𝝯": [t: "bold nahblah"] # 0x1d76f + + - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf4f0 - 0xf508 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf50a - 0xf522 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝟃𝟄𝟅𝟆𝟇𝟈𝟉": # 0x1d7c3 - 0x1d7c9 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈𝟉', '∂εθκφρπ')" + + - "": # 0xf523 - 0xf529 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', '∂εθκφρπ')" + + - "": [t: "bold nahblah"] # 0xf509 + - "𝞩": [t: "bold nahblah"] # 0x1d7a9 + + - "-": # 0xf52e - 0xf537 (old MathType) + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '', '0123456789')" + + - "𝟎-𝟗": # 0x1d7ce - 0x1d7d7 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗', '0123456789')" + + - "𝟬-𝟵": # 0x1D7EC - 0x1D7F5 + - test: + if: "not($IgnoreBold)" + then: [t: "bold"] + - spell: "translate('.', '𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵', '0123456789')" + + - "-": # 0xf556 - 0xf55f (old MathType) + - spell: "translate('.', '', '0123456789')" + + - "𝟢-𝟫": # 0x1d7e2 - 0x1d7eb + - spell: "translate('.', '𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫', '0123456789')" + + + - "𝟶-𝟿": # 0x1d7f6 - 0x1d7ff + - spell: "translate('.', '𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿', '0123456789')" + + + - "": [t: "unknown character"] # 0xf700 + - "": [t: "lower right and lower left triangles"] # 0xf726 + - "": [t: "horizontal ellipsis extender"] # 0xf72d + - "": [t: "midline horizontal ellipsis extender"] # 0xf72e + - "": [t: "radical extender"] # 0xf8e5 + - "": [t: "vertical arrow extender"] # 0xf8e6 + - "": [t: "horizontal arrow extender"] # 0xf8e7 + - "": [t: "registered sign sans serif"] # 0xf8e8 + - "": [t: "copyright sign sans serif"] # 0xf8e9 + - "": [t: "trade mark sign sans serif"] # 0xf8ea + - "": [t: "left paren top"] # 0xf8eb + - "": [t: "left paren extender"] # 0xf8ec + - "": [t: "left paren bottom"] # 0xf8ed + - "": [t: "left bracket top"] # 0xf8ee + - "": [t: "left bracket extender"] # 0xf8ef + - "": [t: "left bracket bottom"] # 0xf8f0 + - "": [t: "left brace top"] # 0xf8f1 + - "": [t: "left brace mid"] # 0xf8f2 + - "": [t: "left brace bottom"] # 0xf8f3 + - "": [t: "brace extender"] # 0xf8f4 + - "": [t: "integral extender"] # 0xf8f5 + - "": [t: "right paren top"] # 0xf8f6 + - "": [t: "right paren extender"] # 0xf8f7 + - "": [t: "right paren bottom"] # 0xf8f8 + - "": [t: "right bracket top"] # 0xf8f9 + - "": [t: "right bracket extender"] # 0xf8fa + - "": [t: "right bracket bottom"] # 0xf8fb + - "": [t: "right brace top"] # 0xf8fc + - "": [t: "right brace mid"] # 0xf8fd + - "": [t: "right brace bottom"] # 0xf8fe + - "": [t: "apple logo"] # 0xf8ff + - "ff": [t: "ff"] # 0xfb00 + - "fi": [t: "fi"] # 0xfb01 + - "fl": [t: "fl"] # 0xfb02 + - "ffi": [t: "ffi"] # 0xfb03 + - "ffl": [t: "ffl"] # 0xfb04 + - "ſt": [t: "ft"] # 0xfb05 + - "st": [t: "st"] # 0xfb06 + - "﬩": [t: "hebrew letter alternative plus"] # 0xfb29 + - "︠": [t: "ligature left half embellishment"] # 0xfe20 + - "︡": [t: "ligature right half embellishment"] # 0xfe21 + - "︢": [t: "double tilde left half embellishment"] # 0xfe22 + - "︣": [t: "double tilde right half embellishment"] # 0xfe23 + - "︤": [t: "macron left half embellishment"] # 0xfe24 + - "︥": [t: "macron right half embellishment"] # 0xfe25 + - "︦": [t: "conjoining macron embellishment"] # 0xfe26 + - "︵": [t: "over paren"] # 0xfe35 + - "︶": [t: "under paren"] # 0xfe36 + - "︷": [t: "over brace"] # 0xfe37 + - "︸": [t: "under brace"] # 0xfe38 + - "︿": [t: "over angle bracket"] # 0xfe3f + - "﹀": [t: "under angle bracket"] # 0xfe40 + - "﹡": [t: "small asterisk"] # 0xfe61 + - "﹢": [t: "small plus"] # 0xfe62 + - "﹣": [t: "small minus"] # 0xfe63 + - "﹤": [t: "small less than"] # 0xfe64 + - "﹥": [t: "small greater than"] # 0xfe65 + - "﹦": [t: "small equals"] # 0xfe66 + - "+": [t: "fullwidth plus sign"] # 0xff0b + - "<": [t: "less than"] # 0xff1c + - "=": [t: "equals"] # 0xff1d + - ">": [t: "greater than"] # 0xff1e + - "\": [t: "backslash"] # 0xff3c + - "^": [t: "hat"] # 0xff3e + - "|": # 0xff5c + # note: for ClearSpeak and SimpleSpeak, "|" inside of sets is handled at the mrow level, same for 'sets' + - with: + variables: [DefaultToGiven: "count(preceding-sibling::*)=1 and count(following-sibling::*)=1 and ../../../*[1][.='P']"] # P(A|B) + replace: + - test: + - if: "$SpeechStyle != 'ClearSpeak'" + then_test: + if: "$DefaultToGiven" + then: [t: "given"] + else: [t: "vertical line"] + - else_if: "not(preceding-sibling::*) or not(following-sibling::*)" + then: [t: "vertical line"] + - else_if: "$ClearSpeak_VerticalLine = 'SuchThat'" + then: [t: "such that"] + - else_if: "$ClearSpeak_VerticalLine = 'Given' or $DefaultToGiven" + then: [t: "given"] + - else: [t: "divides"] + - "~": [t: "tilde"] # 0xff5e + - "¬": [t: "not"] # 0xffe2 + - "←": [t: "left arrow"] # 0xffe9 + - "↑": [t: "up arrow"] # 0xffea + - "→": [t: "right arrow"] # 0xffeb + - "↓": [t: "down arrow"] # 0xffec + - "": [t: "unknown or missing object"] # 0xfffc + - "�": [t: "unknown or missing character"] # 0xfffd + + - "🣑": [t: "is in equilibrium with"] # 0x1F8D1 + - "🣒": [t: "is in equilibrium biased to the right with"] # 0x1F8D2 + - "🣓": [t: "is in equilibrium biased to the left with"] # 0x1F8D3 + +# MathJax v4 has adopted these PUA values for some partial chem bonds that aren't in Unicode + - "\uE410": [t: "partial bond "] # 0xe410 + - "\uE411": [t: "double partial bond "] # 0xe411 + - "\uE412": [t: "triple partial bond "] # 0xe412 + +# MathJax v4 also adopted these PUA values for some arrows thar are in Unicode +# Hopefully these will be exported properly in future versions of MathJax + - "\uE428": [spell: "'⟵'"] # 0xe428 defer to def of arrow + - "\uE429": [spell: "'⟶'"] # 0xe429 defer to def of arrow + - "\uE42A": [spell: "'⟷'"] # 0xe42a defer to def of arrow + - "\uE408": [spell: "'🣑'"] # 0xe408 defer to def of arrow + - "\uE409": [spell: "'🣒'"] # 0xe409 defer to def of arrow + - "\uE40A": [spell: "'🣓'"] # 0xe40a defer to def of arrow + - "\uE42B": [spell: "'⇄'"] # 0xe42b defer to def of arrow + - "\uE42C": [spell: "'←'"] # 0xe42c defer to def of arrow + - "\uE42D": [spell: "'→'"] # 0xe42d defer to def of arrow + - "\uE42E": [spell: "'⇄'"] # 0xe42e defer to def of arrow diff --git a/Rules/Languages/fr/navigate.yaml b/Rules/Languages/fr/navigate.yaml new file mode 100644 index 000000000..32a07e771 --- /dev/null +++ b/Rules/Languages/fr/navigate.yaml @@ -0,0 +1,1520 @@ +--- +# Documentation: +# +# The general form for many rules is: +# 1. Say the command if this is first rule to fire (MatchCounter) and depending upon "NavVerbosity"s value +# 2. Say info about moving into/out of 2D structures +# 3. Set some variables and possibly recurse. +# If recursing, "MatchCounter" should be incremented. +# If stopping, "NavNode" should be set. +# +# The meaning of NavVerbosity: +# * Verbose -- always echo the command and end points (e.g., "can't move right") +# * Medium -- only echo the command for obscure commands like the placemarker commands; also say end points +# * Terse -- no echo of commands or end points +# +# For the second item, a common set of rules is used. These rules require the variable "Move2D" +# to be set along with "Child2D", where "Move2D" is either 'dans' or 'hors de' (spoken). +# +# In addition, the navigation rules make use of two functions: +# +# int DistanceFromLeaf(node, leftSide, treat2DElementsAsTokens) +# Returns the distance (number of children) until a leaf is reached by traversing the leftmost/rightmost child +# If 'treat2DElementsAsTokens' is true, then 2D notations such as fractions are treated like leaves +# A leaf has distance == 0 +# +# EdgeNode(node, "left"/"right", stopNodeName) +# Returns the stopNode if at left/right edge of named ancestor node. 'stopNodeName' can also be "2D" +# If the stopNode isn't found, the original node is returned +# Note: if stopNodeName=="math", then punctuation is taken into account since it isn't really part of the math +# +# A few other variables are of importance to Navigation +# NavMode -- Enhanced, Simple, Character +# ReadZoomLevel -- -1 for Enhanced, otherwise the distance from leaf the rules should maintain +# PlaceMarkerIndex + +# Rules for announcing the command +- name: say-command + tag: "!*" + match: "$SayCommand != ''" # value should be '', 'true', or 'false' + variables: [Prefix: "''"] + replace: + - test: + - if: "$MatchCounter = 0 and $SayCommand = 'true'" + then_test: + - if: "self::m:math and starts-with($NavCommand, 'ZoomOut')" + then: [t: "zoomé complètement en arrière", pause: "medium"] + - else_if: "IsNode(., 'leaf') and starts-with($NavCommand, 'ZoomIn')" + then: + - test: + - if: "string-length(.) = 1" + then: [t: "zoomé complètement en avant"] # phrase('zoomed in all of the way') + - else_if: "$NavNodeOffset = 0" + then: [t: "zoomé sur le premier caractère"] # phrase('zoomed in to first character') + else: [t: "zoomé sur le caractère"] # phrase('zoomed in to character') + - pause: "medium" + else: + - test: + - if: "starts-with($NavCommand, 'Zoom')" + then: [set_variables: [Prefix: "'zoom'", CommandOffset: "5"]] # phrase('zoom' in to see more details) + - else_if: "starts-with($NavCommand, 'Move')" + then: [set_variables: [Prefix: "'aller'", CommandOffset: "5"]] # phrase('move' to next entry in table) + - else_if: "starts-with($NavCommand, 'Read')" + then: [set_variables: [Prefix: "'lire'", CommandOffset: "5"]] # phrase('read' to next entry in table) + - else_if: "starts-with($NavCommand, 'Describe')" + then: [set_variables: [Prefix: "'décrire'", CommandOffset: "9"]] # phrase('describe' to next entry in table) + - test: + if: "$Prefix != ''" + then: + - x: "$Prefix" + - test: + - if: "substring($NavCommand, $CommandOffset) = 'In'" + then: [t: "avant"] # phrase(zoom 'in' to see more details) + - else_if: "substring($NavCommand, $CommandOffset) = 'InAll'" + # HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets "ed" concatenated to "zoom" + then: [t: "\uF8FEé complètement en avant"] # phrase(zoom 'out all of the way' to see more details) + - else_if: "substring($NavCommand, $CommandOffset) = 'Out'" + then: [t: "arrière"] # phrase(zoom 'out' to see more details) + - else_if: "substring($NavCommand, $CommandOffset) = 'OutAll'" + # HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets "ed" concatenated to "zoom" + then: [t: "\uF8FEé complètement en arrière"] # phrase(zoom 'out all of the way' to see more details) + - else_if: "substring($NavCommand, $CommandOffset) = 'Next'" + then: [t: "à droite"] # phrase(move to the 'right') + - else_if: "substring($NavCommand, $CommandOffset) = 'Previous'" + then: [t: "à gauche"] # phrase(move to the 'left') + - else_if: "substring($NavCommand, $CommandOffset) = 'Current'" + then: [t: "actuel"] # phrase(who is the 'current' president) + - else_if: "substring($NavCommand, $CommandOffset) = 'LineStart'" + then: [t: "au début de la ligne"] # phrase(move 'to start of line') + - else_if: "substring($NavCommand, $CommandOffset) = 'LineEnd'" + then: [t: "à la fin de la ligne"] # phrase(move 'to end of line') + - pause: "medium" + - set_variables: [MatchCounter: "$MatchCounter + 1"] + +- name: into-or-out-of-silent + tag: "*" + # saying "out of row n" is not very useful, so skip it + match: "$Move2D != '' and (not(@data-from-mathml) or @data-from-mathml = name(.)) and + (name(.)='mrow' or name(.) = 'mtr' or name(.) = 'mlabeledtr' or @data-from-mathml = 'mtable')" + replace: [] + +- name: into-or-out-of-minus-silent-on-zoom-out + tag: "*" + match: "$Move2D != '' and name(.)='minus' and count(*)=1 and ($NavCommand = 'ZoomOut' or $NavCommand = 'ZoomOutAll')" + replace: [] + +- name: into-or-out-of-mtr + tag: [mtr, mlabeledtr] + match: "$Move2D = 'dans'" # Navigate into a 2D structure. + replace: + - t: "colonne" + - x: "count($Child2D/preceding-sibling::*)+1" # Count number of sibling nodes before Child2D (the node being navigated into) and add 1 to get the column number. + - pause: "medium" + +- name: into-or-out-of-mmultiscripts + tag: "*" + match: "$Move2D != '' and (@data-from-mathml='mmultiscripts' or self::m:mmultiscripts)" # Navigate into a 2D structure that is a mmultiscripts. + replace: + - test: + if: "name($Child2D)!='none'" # Check that the child being navigated into is not empty. + then: + - with: + variables: + - NumPrecedingSiblings: "count($Child2D/preceding-sibling::*)" # Store the number of siblings before the target node. + replace: + - x: "$Move2D" # Say the direction (into/out of) + - test: + - if: "$NumPrecedingSiblings=0" # No siblings before the target node + then: [t: "base"] # phrase(the 'base' of the power) + - else_if: "$Child2D/preceding-sibling::*[self::m:mprescripts]" # Are we after the tag? If so, we are in the prescripts. + then: + - test: # in postscripts -- base shifts by one + if: "$NumPrecedingSiblings mod 2 = 0" + then: [t: "pré-indice"] # phrase(x with 'subscript' 2) + else: [t: "pré-exposant"] # phrase(x with 'superscript' 2) + else: + - test: + if: "$NumPrecedingSiblings mod 2 = 0" + then: [t: "exposant"] # phrase(x with 'pre-superscript' 2) + else: [t: "indice"] # phrase(x with 'pre-subscript' 2) + - pause: "medium" + +# Rules for speaking what happens when moving into or out of a notation +- name: into-or-out-of-default + tag: "*" + # saying "out of row n" is not very useful, so skip it + # match: "$Move2D != '' and @data-from-mathml and @data-from-mathml != name(.) and count(*)>1 and @data-from-mathml != 'mtable'" + match: "$Move2D != '' and not(self::m:math or @data-from-mathml = 'mtable' or @data-from-mathml = 'mtd') " + replace: + - with: + variables: + - PartNumber: "count($Child2D/preceding-sibling::*)" # Count the number of siblings before the target node + - PartName: "GetNavigationPartName(name(.), $PartNumber)" # Find the name of the part. E.g., numerator/denominator, base/exponent + replace: + - x: "$Move2D" # into/out of + - test: + - if: "$PartName != ''" # if a name for the part exists + then: [x: "$PartName"] + - else_if: "count(*) = 1" # if the node has one child + then_test: + if: "$NavVerbosity = 'Verbose'" + then: [x: "translate(name(.), '-_', ' ')"] # e.g., "in absolute value" + else: + - t: "partie" # phrase(the 'part' of the expression) + - x: "count($Child2D/preceding-sibling::*) + 1" + - pause: "medium" + +- name: default-move + # nothing to do (not 2D) -- need to catch $Move2D though so rules based on NavCommand don't trigger + tag: "*" + match: "$Move2D != ''" + replace: [] + +# ********* Go back to last position *************** +# This is first since start/end position shouldn't matter +- name: move-last-location + + + tag: "*" + match: "$NavCommand = 'MoveLastLocation'" + replace: + - test: + if: "$NavVerbosity != 'Terse'" + then: + - test: + - if: "$PreviousNavCommand = 'ZoomIn'" + then: [t: "annuler le zoom avant"] # phrase('undo zoom in') + - else_if: "$PreviousNavCommand = 'ZoomOut'" + then: [t: "annuler le zoom arrière"] # phrase('undo zoom out') + - else_if: "$PreviousNavCommand = 'ZoomInAll'" + then: [t: "annuler le zoom avant complet"] # phrase('undo zooming in all of the way') + - else_if: "$PreviousNavCommand = 'ZoomOutAll'" + then: [t: "annuler le zoom arrière complet"] # phrase('undo zooming out all of the way') + - else_if: "$PreviousNavCommand = 'MovePrevious' or $PreviousNavCommand = 'MovePreviousZoom'" + then: [t: "annuler le déplacement à gauche"] # phrase('undo move left') + - else_if: "$PreviousNavCommand = 'MoveNext' or $PreviousNavCommand = 'MoveNextZoom'" + then: [t: "annuler le déplacement à droite"] # phrase('undo move right') + - else_if: "$PreviousNavCommand = 'None'" + then: [t: "aucune commande précédente"] # phrase('no previous command') + - pause: "medium" + - set_variables: [NavNode: "@id"] + +# many times, for typographic reasons, people include punctuation at the end of a math expr +# these rules detect that and skip speaking it (should be similar regular rule) +- name: skip-punct-at-end-zoom-in + tag: mrow + match: + - "($NavCommand = 'ZoomIn' or $NavCommand = 'ZoomInAll' or $NavCommand = 'MoveNextZoom' or $NavCommand = 'MovePreviousZoom') and" + - " parent::m:math and count(*)=2 and" + - " *[2][translate(.,'.,;:?', '')='']" + replace: + - x: "*[1]" + +# ********* ZoomIn *************** +- name: zoom-in-leaf + tag: "*" + match: "($NavCommand = 'ZoomIn' or $NavCommand = 'ZoomInAll') and IsNode(., 'leaf')" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity != 'Terse')"] + replace: [x: "."] + - test: + if: "$ReadZoomLevel !=-1" + then: + - set_variables: [ReadZoomLevel: "0"] + - set_variables: + - NavNode: "@id" + - NavNodeOffset: "IfThenElse(string-length(.) > 1 and $MatchCounter = 1 and $NavNodeOffset = 0, '1', '0')" + +# special case of zooming into a table -- move to the first row (if only one row, first column) +- name: zoom-in-table + tag: "*" + match: "$NavCommand = 'ZoomIn' and (name(.) = 'mtable' or (count(*)=1 and *[1][@data-from-mathml='mtable']))" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNode: "IfThenElse(count(*)=1, (*[1]/*[1]/@id), (*[1]/@id))"] + +- name: zoom-in-mrow-in-math + # zooming in only once is meaningless because 'math' has only a single child and it was spoken at the math level -- dig inside and do it again + tag: math + match: "$NavCommand = 'ZoomIn' or $NavCommand = 'MoveNextZoom' or $NavCommand = 'MovePreviousZoom'" + replace: + - test: + if: "$NavCommand = 'MovePreviousZoom'" + then: [x: "*[last()]"] + else: [x: "*[1]"] + +- # For msqrt and menclose, if the single child isn't an mrow, don't zoom in + name: zoom-in-again + tag: "*" + match: + - "($NavCommand = 'ZoomIn' or " + - " ($NavCommand = 'MoveNextZoom' or $NavCommand = 'MovePreviousZoom') and $NavMode='Enhanced') and " + - "count(*)=1 and + (*[1][self::m:mrow or @data-from-mathml='mrow'] and + not(@data-from-mathml='msqrt' or self::m:msqrt or @data-from-mathml='menclose' or self::m:menclose))" # current node has one child that is an . The current node is not msqrt or menclose. + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] # if verbosity is verbose, SayCommand is set to true, otherwise false + replace: [x: "."] # continue with the current node + - test: + if: "not(*[1][self::m:mrow or @data-from-mathml='mrow'])" + then: + - with: + # Set Move2D to "dans". + # Set Child2D to the last child if the command is "MovePreviousZoom", otherwise the first child. + variables: [Move2D: "'dans'", Child2D: "IfThenElse($NavCommand = 'MovePreviousZoom', (*[last()]), (*[1]))"] # phrase('in' the denominator) + replace: [x: "IfThenElse($NavCommand = 'MovePreviousZoom', 1, $Child2D)"] + - test: + if: "$NavCommand = 'MovePreviousZoom'" + then: [x: "*[last()]"] + else: [x: "*[1]"] + +- name: zoom-in-enhanced + tag: "*" + match: "$NavCommand = 'ZoomIn' and $NavMode='Enhanced'" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + - if: "self::m:mtr or self::m:mlabeledtr" + then: + - with: + variables: [Move2D: "'dans'", Child2D: "*[1]/*[1]"] # phrase('in' the denominator) + replace: [x: "."] + - set_variables: [NavNode: "*[1]/*[1]/@id"] # skip mtd + - else_if: "*[1][self::m:mrow and (IsBracketed(., '(', ')', false) or IsBracketed(., '[', ']', false))]" # auto zoom + then: + - with: + variables: [Move2D: "'dans'", Child2D: "*[1]"] # phrase('in' the denominator) + replace: [x: "."] + - set_variables: [NavNode: "*[1]/*[2]/@id"] # skip parens/brackets + else: + - with: + variables: [Move2D: "'dans'", Child2D: "*[1]"] # phrase('in' the denominator) + replace: [x: "."] + # "(...)" to get around some weird parse bug" + - set_variables: + - NavNode: "*[1]/@id" + - NavNodeOffset: "IfThenElse(*[1]/@data-id-offset, (*[1]/@data-id-offset), '0')" + +- name: zoom-in-simple + tag: "*" + match: "$NavCommand = 'ZoomIn' and $NavMode='Simple'" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "$MatchCounter > 1 and IsNode(., '2D')" + then: + - set_variables: # time to stop, not going "in" to next thing, so before "Move2D" + - NavNode: "@id" + - NavNodeOffset: "IfThenElse(@data-id-offset, @data-id-offset, '0')" + else: + - with: + variables: [Move2D: "'dans'", Child2D: "*[1]"] # phrase('in' the denominator) + replace: [x: "."] + - x: "*[1]" + + # At this point, we are zooming in on a non-2D element, non-leaf in Character mode +- name: zoom-in-2D-character + tag: "*" + match: "$NavCommand = 'ZoomIn' and (IsNode(., '2D') or not(IsNode(., 'mathml')))" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - with: + variables: [Move2D: "'dans'", Child2D: "*[1]"] # phrase('in' the denominator) + replace: [x: "."] + - test: + if: "$NavMode = 'Simple'" + then: + - set_variables: [NavNode: "*[1]/@id"] + else: + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "*[1]"] + + # At this point, we are zooming in on a non-2D element, non-leaf in Character mode +- name: zoom-in-default + tag: "*" + match: "$NavCommand = 'ZoomIn'" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - x: "*[1]" + +- name: zoom-in-all-default + tag: "*" + match: "$NavCommand = 'ZoomInAll'" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - with: + variables: [Move2D: "'dans'", Child2D: "*[1]"] # phrase('in' the denominator) + replace: [x: "."] + - x: "*[1]" + +- name: zoom-out + tag: math + match: "$NavCommand = 'ZoomOut' or $NavCommand = 'ZoomOutAll'" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity != 'Terse')"] + replace: [x: "."] + - set_variables: [NavNode: "*[1]/@id"] # no-op for $NavCommand = 'ZoomOut' + +- name: skip-punct-at-end-zoom-out + tag: mrow + match: + - "($NavCommand = 'ZoomOut' or $NavCommand = 'ZoomOutAll') and" + - " parent::m:math and count(*)=2 and" + - " *[2][translate(.,'.,;:?', '')='']" + replace: + - x: ".." + +- name: zoom-out-top + tag: "*" + match: + - "($NavCommand = 'ZoomOut' or $NavCommand = 'ZoomOutAll') and" + - "parent::m:math" + replace: + - x: ".." # let math rule deal with it + +- name: zoom-out-all-default + tag: "*" + match: "$NavCommand = 'ZoomOutAll'" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - with: + variables: [Move2D: "'hors de'", Child2D: "."] + replace: [x: ".."] + - x: ".." + +# deal with internal zooming: MoveNextZoom and MovePreviousZoom + +# start with Enhanced mode +- name: move-zoom-enhanced + tag: "*" + match: + - "($NavCommand = 'MoveNextZoom' or $NavCommand = 'MovePreviousZoom') and " + - "$NavMode = 'Enhanced'" + replace: + - with: + variables: [Move2D: "'dans'", Child2D: "*[1]"] # phrase('in' the denominator) + replace: [x: "."] + - test: + - if: "count(*)> 1 or IsNode(., 'leaf') or + @data-from-mathml='msqrt' or self::m:msqrt or @data-from-mathml='menclose' or self::m:menclose" + then: + - set_variables: + - NavNode: "@id" + - NavNodeOffset: "IfThenElse(@data-id-offset, @data-id-offset, '0')" + else: [x: "*[1]"] + +- name: move-next-zoom-not-enhanced + # $ReadZoomLevel must be >= 0 + tag: "*" + match: "$NavCommand = 'MoveNextZoom'" + replace: + #don't bother with MatchCounter since we only get here if > 1 + - test: + if: "IsNode(., 'leaf') or $ReadZoomLevel >= DistanceFromLeaf(., false, $NavMode!='Character')" + then: + # - with: + # variables: [Move2D: "'dans'", Child2D: "following-sibling::*[1]"] # phrase('in' the denominator) + # replace: [x: ".."] + - set_variables: + - NavNode: "@id" + - NavNodeOffset: "IfThenElse(@data-id-offset, @data-id-offset, '0')" + else: + - with: + variables: [Move2D: "'dans'", Child2D: "*[1]"] # phrase('in' the denominator) + replace: [x: "."] + - x: "*[1]" + +- name: move-previous-zoom-not-enhanced + # $ReadZoomLevel must be >= 0 + tag: "*" + match: "$NavCommand = 'MovePreviousZoom'" + replace: + #don't bother with MatchCounter since we only get here if > 1 + - test: + if: "$ReadZoomLevel >= DistanceFromLeaf(., true, $NavMode!='Character')" + then: + # - with: + # variables: [Move2D: "'in'", Child2D: "preceding-sibling::*[1]"] # phrase('in' the denominator) + # replace: [x: ".."] + - set_variables: + - NavNode: "@id" + - NavNodeOffset: "IfThenElse(@data-id-offset, @data-id-offset, '0')" + else: + - with: + variables: [Move2D: "'dans'", Child2D: "*[last()]"] # phrase('in' the denominator) + replace: [x: "."] + - x: "*[last()]" + +# ********* ZoomOut *************** +- name: zoom-out-default + tag: mtd + match: "$Move2D = '' and ($NavCommand = 'ZoomOut')" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + # we need to speak it here + # - t: "ligne" # phrase(the first 'row' of the matrix) + # # if we let the speech rules speak the row, it is given just the MathML for the row, so the row # will always be '1' + # - x: "count(../preceding-sibling::*)+1" + # - pause: medium + - set_variables: + - NavNode: "../@id" + - NavNodeOffset: "IfThenElse(../@data-id-offset, ../@data-id-offset, '0')" + +- name: zoom-out + # a row around a single element -- these might duplicate the position/offset, so we jump an extra level here + tag: "*" + match: "$NavCommand = 'ZoomOut'" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + - if: "$NavNodeOffset > 0 and IsNode(., 'leaf')" # Inside leaf -- just reset offset, intent offset doesn't change + then: + - set_variables: [NavNodeOffset: "0"] + # NavNode remains the same + - else_if: "$NavMode='Enhanced' and parent::*[self::m:mrow and (IsBracketed(., '(', ')', false) or IsBracketed(., '[', ']', false))]" + then: [x: ".."] # auto-zoom: move out a level and retry + else: + - with: + variables: [Move2D: "'hors de'", Child2D: "."] # phrase('out of' the denominator) + replace: [x: ".."] + - test: + if: "parent::m:mtd" + then: [x: ".."] + else: + - test: + if: "DEBUG($ReadZoomLevel)!=-1" + then: [set_variables: [ReadZoomLevel: "DistanceFromLeaf(.., true, $NavMode!='Character')"]] + - set_variables: + - NavNode: "../@id" + - NavNodeOffset: "IfThenElse(../@data-id-offset, ../@data-id-offset, '0')" + +# ********* MoveStart/End *************** +- name: math-move-to-start-or-end + tag: math + match: "$NavCommand = 'MoveStart' or $NavCommand = 'MoveLineStart' or $NavCommand = 'MoveEnd' or $NavCommand = 'MoveLineEnd'" + replace: + - with: + variables: [MatchCounter: "$MatchCounter + 1"] + replace: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - test: + - if: "$NavCommand = 'MoveStart'" + then: [t: "aller au début de l'expression"] # phrase('move to start of math') + - else_if: "$NavCommand = 'MoveLineStart'" + then: [t: "aller au début de la ligne"] # phrase('move to start of line') + - else_if: "$NavCommand = 'MoveEnd'" + then: [t: "aller à la fin de l'expression"] # phrase('move to end of math') + else: [t: "aller à la fin de la ligne"] # "$NavCommand = 'MoveLineEnd'" # phrase('move to end of line') + - pause: "medium" + - test: + if: "$NavCommand = 'MoveStart' or $NavCommand = 'MoveLineStart'" + then: + # move inside of the mrow inside of 'math' or inside the fraction, etc (hence two levels down) + # Note: an apparent bug in the xpath code doesn't let me use IfThenElse for the 2 if: then: below + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: + - test: + if: "*[1]/*[1]" # could be a x, so no grandchild + then: [x: "*[1]/*[1]"] + else: [x: "*[1]"] + else: + - with: + variables: [NavCommand: "'MovePreviousZoom'"] + replace: + - test: + if: "*[last()]/*[last()]" # could be a x, so no grandchild + then: [x: "*[last()]/*[last()]"] + else: [x: "*[last()]"] + +# We stop when the parent is 2d (e.g., frac), but not if in leaf base of msub/msup/msubsup/mmultiscripts because that's really on the same line +- name: move-to-start-or-end-2d + tag: "*" + match: + - "($NavCommand = 'MoveLineStart' or $NavCommand = 'MoveLineEnd') and IsNode(.., '2D') and" + - "not( IsNode(., 'leaf') and" + - " parent::*[1][self::m:msub or self::m:msup or self::m:msubsup or self::m:mmultiscripts or" + - " @data-from-mathml and" + - " (@data-from-mathml='msub' or @data-from-mathml='msup' or" + - " @data-from-mathml='msubsup' or @data-from-mathml='mmultiscripts')" + - " ] )" + replace: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - test: + if: "$NavCommand = 'MoveLineStart'" + then: [t: "aller au début de la ligne"] # phrase('move to start of line') + else: [t: "aller à la fin de la ligne"] # "$NavCommand = 'MoveLineEnd'" # phrase('move to end of line') + - pause: "medium" + - test: + if: "self::m:mrow or @data-from-mathml = 'mrow'" + then_test: + if: "$NavCommand = 'MoveLineStart'" + then: + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "*[1]"] + else: + - with: + variables: [NavCommand: "'MovePreviousZoom'"] + replace: [x: "*[last()]"] + else: [set_variables: [NavNode: "@id"]] + +- name: move-to-start-or-end-default + tag: "*" + match: "$NavCommand = 'MoveStart' or $NavCommand = 'MoveLineStart' or $NavCommand = 'MoveEnd' or $NavCommand = 'MoveLineEnd'" + replace: + - with: + variables: [MatchCounter: "$MatchCounter + 1"] + replace: [x: ".."] + +# Table-related movement +# Typically, we need to zoom out to the mtd level, then we move the appropriate direction +- name: not-in-table + + + tag: math + match: + - "$NavCommand='MoveCellPrevious' or $NavCommand='MoveCellNext' or" + - "$NavCommand='MoveCellUp' or $NavCommand='MoveCellDown' or" + - "$NavCommand='MoveColumnStart' or $NavCommand='MoveColumnEnd' or" + - "$NavCommand='ReadCellCurrent'" + replace: + - t: "pas dans un tableau" # phrase('not in table') + - pause: long + - set_variables: [SpeakExpression: "'false'"] + +- name: move-cell-previous + tag: mtd + match: "$NavCommand='MoveCellPrevious'" + replace: + - test: + if: "preceding-sibling::*" + then: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "aller à gauche" # phrase('move left') + - pause: short + - test: + if: "$NavVerbosity != 'Terse'" + then: + - t: "colonne" # phrase(the first 'column' of the table) + - x: "count(preceding-sibling::*)" + - pause: medium + - test: + if: "$NavMode='Character'" + then: + - with: + variables: [NavCommand: "'MovePreviousZoom'"] + replace: [x: "preceding-sibling::*[1]"] + else: + - set_variables: [NavNode: "preceding-sibling::*[1]/*[1]/@id"] + else: + - t: "aucune colonne précédente" # phrase('no previous column' in the table) + - set_variables: [SpeakExpression: "'false'"] + +- name: move-cell-next + tag: mtd + match: "$NavCommand='MoveCellNext'" + replace: + - test: + if: "following-sibling::*" + then: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "aller à droite" # phrase('move right') + - pause: short + - test: + if: "$NavVerbosity != 'Terse'" + then: + - t: "colonne" # phrase(the first 'column' in the table) + - x: "count(preceding-sibling::*)+2" + - pause: medium + - test: + if: "$NavMode='Character'" + then: + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "following-sibling::*[1]"] + else: + - set_variables: [NavNode: "following-sibling::*[1]/*[1]/@id"] + else: + - t: "aucune colonne suivante" # phrase('no next column' in the table) + - set_variables: [SpeakExpression: "'false'"] + +- name: move-cell-up + tag: mtd + match: "$NavCommand='MoveCellUp'" + replace: + - test: + if: "../preceding-sibling::*" + then: + - with: + variables: [Column: "count(preceding-sibling::*)+1"] # store this because otherwise the value is used in the wrong context below + replace: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "aller en haut" # phrase('move up' to previous row in the table) + - pause: short + - test: + if: "$NavVerbosity != 'Terse'" + then: + - t: "ligne" # phrase(the previous 'row' in the table) + - x: "count(../preceding-sibling::*)" + - pause: short + - t: "colonne" # phrase(the previous 'column' in the table) + - x: "count(preceding-sibling::*)+1" + - pause: medium + - test: + if: "$NavMode='Character'" + then: + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "../preceding-sibling::*[1]/*[$Column]"] + else: + - set_variables: [NavNode: "../preceding-sibling::*[1]/*[$Column]/*[1]/@id"] + else: + - t: "aucune ligne précédente" # phrase('no previous row' in the table) + - set_variables: [SpeakExpression: "'false'"] + +- name: move-cell-down + tag: mtd + match: "$NavCommand='MoveCellDown'" + replace: + - test: + if: "../following-sibling::*" + then: + - with: + variables: [Column: "count(preceding-sibling::*)+1"] # store this because otherwise the value is used in the wrong context below + replace: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "aller en bas" # phrase('move down' to the next row in the table) + - pause: short + - test: + if: "$NavVerbosity != 'Terse'" + then: + - t: "ligne" # phrase(the next 'row' in the table) + - x: "count(../preceding-sibling::*)+2" + - pause: short + - t: "colonne" # phrase(the next 'column' in the table) + - x: "count(preceding-sibling::*)+1" + - pause: medium + - test: + if: "$NavMode='Character'" + then: + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "../following-sibling::*[1]/*[$Column]"] + else: + - set_variables: [NavNode: "../following-sibling::*[1]/*[$Column]/*[1]/@id"] + else: + - t: "aucune ligne suivante" # phrase('no next row' in the table) + - set_variables: [SpeakExpression: "'false'"] + +- name: move-cell-up + tag: [mtr, mlabeledtr] + match: "$NavCommand='MoveCellUp'" + replace: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "aller à la ligne précédente" # phrase('move to previous row' in the table) + - pause: medium + - test: + if: "preceding-sibling::*" + then: + - test: + if: "$NavMode='Character'" + then: + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "preceding-sibling::*[1]"] + else: + - set_variables: [NavNode: "preceding-sibling::*[1]/@id"] + else: + - t: "aucune ligne précédente" # phrase('no previous row' in the table) + - set_variables: [SpeakExpression: "'false'"] + +- name: move-cell-down + tag: [mtr, mlabeledtr] + match: "$NavCommand='MoveCellDown'" + replace: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "aller à la ligne suivante" # phrase('move to next row' in the table) + - pause: medium + - test: + if: "following-sibling::*" + then: + - test: + if: "$NavMode='Character'" + then: + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "following-sibling::*[1]"] + else: + - set_variables: [NavNode: "following-sibling::*[1]/@id"] + else: + - t: "aucune ligne suivante" # phrase('no next row' in the table) + - set_variables: [SpeakExpression: "'false'"] + +- name: move-cell-previous + # if a row is selected, there is no previous/next column, so this is trivial + tag: [mtr, mlabeledtr] + match: "$NavCommand='MoveCellPrevious'" + replace: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "aller à la colonne précédente" # phrase('move to previous column' in the table) + - pause: medium + - t: "aucune colonne précédente" # phrase('no previous column' in the table) + - set_variables: [SpeakExpression: "'false'"] + +- name: move-cell-next + # if a row is selected, there is no previous/next column, so this is trivial + tag: [mtr, mlabeledtr] + match: "$NavCommand='MoveCellNext'" + replace: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "aller à la colonne suivante" # phrase('move to next column' in the table) + - pause: medium + - t: "aucune colonne suivante" # phrase('no next row' in the table) + - set_variables: [SpeakExpression: "'false'"] + +- name: default-read-cell + tag: "*" + match: "$NavCommand='ReadCellCurrent'" + replace: + - with: + variables: [MTD: "ancestor::m:mtd"] + replace: + - test: + if: "$MTD" + then: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "lire la cellule actuelle" # phrase('read current entry' in the table) + - pause: medium + - test: + if: "$NavVerbosity != 'Terse'" + then: + - t: "ligne" # phrase(the previous 'row' in the table) + - x: "count($MTD[1]/../preceding-sibling::*)+1" + - pause: short + - t: "colonne" # phrase(the previous 'column' in the table) + - x: "count($MTD[1]/preceding-sibling::*)+1" + - pause: short + - set_variables: [NavNode: "$MTD[1]/*[1]/@id"] + else: + - t: "pas dans un tableau" # phrase('not in table' or matrix) + - pause: long + - set_variables: [SpeakExpression: "'false'"] + +- name: default-cell-move + + tag: "*" + match: + - "$NavCommand='MoveCellPrevious' or $NavCommand='MoveCellNext' or" + - "$NavCommand='MoveCellUp' or $NavCommand='MoveCellDown' or" + - "$NavCommand='MoveColumnStart' or $NavCommand='MoveColumnEnd' or" + - "$NavCommand='ReadCellCurrent'" + replace: + - test: + if: "ancestor::m:mtd" + then: + - x: "ancestor::m:mtd[1]" # try again on an mtd node + else: + - t: "pas dans un tableau" # phrase('not in table' or matrix) + - pause: long + - set_variables: [SpeakExpression: "'false'"] + +- name: move-next-character + tag: [mn, mi, mtext] + match: + - "($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext' or $NavCommand = 'MoveNextZoom') and" + - "$NavNodeOffset > 0 and" + - "($NavNodeOffset < string-length(.) or name(EdgeNode(., 'right', 'math'))!='math')" # not at edge of math + replace: + - test: + if: "$NavNodeOffset < string-length(.)" + then: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "$NavNodeOffset + 1"] + else: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "0"] + - x: "." + +# skip 'none' +- name: move-next-none + tag: [none, mprescripts] + match: + - "($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext' or $NavCommand = 'DescribePrevious' or $NavCommand = 'MoveNextZoom') and" + - "parent::*[1][name(.)='mmultiscripts'] and following-sibling::*" + replace: + - with: + variables: [Following: "following-sibling::*[1]"] + replace: + # two 'none's in a row -- move over and try again; one 'none', zoom in on next + - test: + if: "$Following[name(.)='none']" + then: [x: "$Following"] + else: + - with: + variables: [Move2D: "'dans'", Child2D: "$Following"] # phrase('in' the denominator) + replace: [x: ".."] + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "$Following"] + +# skip invisible chars except for Enhanced mode when "times" should be read +- name: move-next-invisible + tag: "*" + match: + - "($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext') and" + - "following-sibling::*[1][name(.)='mo' and translate(., '\u2061\u2062\u2063\u2064', '')='']" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "following-sibling::*[1][.='\u2062' or .='\u2064'] and + ($NavMode='Enhanced' or ($NavMode='Simple' and following-sibling::*[2][not(IsNode(., 'mathml'))]))" # invisible times and plus + then: [set_variables: [NavNode: "following-sibling::*[1]/@id"]] + else: [x: "following-sibling::*[1]"] + +- name: move-next-no-auto-zoom-at-edge + # at edge of 2D and in a mode where moving right isn't an option + tag: "*" + variables: [EdgeNode: "EdgeNode(., 'right', '2D')"] + match: "$NavCommand = 'MoveNext' and $NavMode!='Character' and not($AutoZoomOut) and $EdgeNode/@id!=@id" + replace: + - test: + if: "$MatchCounter = 0 and $NavVerbosity = 'Verbose'" + then: + - t: "impossible d'aller à droite" # phrase('cannot move right') + - pause: medium + - with: + variables: + - Move2D: "'fin de'" + - Child2D: "$EdgeNode/*[last()]" + - MatchCounter: $MatchCounter + 1 + replace: [x: "$EdgeNode"] + - pause: long + - set_variables: [SpeakExpression: "'false'"] + +- name: move-next-no-auto-zoom-at-edge-math + # at edge of math -- no where to go (must be after we rule out being at the edge of 2D) because we want to speak that + tag: "*" + match: + - "($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext') and" + - "(self::m:math or name(EdgeNode(., 'right', 'math'))='math')" # at edge of math + replace: + - test: + if: "$MatchCounter = 0 and $NavVerbosity = 'Verbose'" + then: + - t: "ne peut pas" # phrase('cannot' move right in expression) + - test: + - if: "$NavCommand = 'MoveNext'" + then: [t: "aller"] # phrase('move' to next entry in table) + - else_if: "$NavCommand = 'ReadNext'" + then: [t: "lire"] # phrase('read' next entry in table) + else: [t: "décrire"] # phrase('describe' next entry in table) + - t: "à droite" # phrase(move 'right') + - pause: short + - t: "fin de l'expression" # phrase(move 'end of math') + - pause: long + - set_variables: [SpeakExpression: "'false'"] + +- name: move-next-auto-zoom-up-one-level + # Last child or in auto-zoom'd in-- move up a level and try again + # Note: we've already checked the for the case where we are at an edge and should not AutoZoomOut + tag: "*" + match: + - "($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext') and" + - "( not(following-sibling::*) or" + - " ( $NavMode='Enhanced' and " + - " count(following-sibling::*)=1 and (IsBracketed(.., '(', ')') or IsBracketed(.., '[', ']'))" + - " )" + - ")" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "following-sibling::*" + then: + - with: + variables: [Move2D: "'dans'", Child2D: "."] # phrase('in' the denominator) + replace: [x: ".."] + else: + - with: + variables: [Move2D: "'hors de'", Child2D: "."] + replace: [x: ".."] + - x: ".." + +# At this point, if XXXNext, then we know there is must be a right sibling +- name: move-next-default + tag: mtd + match: "$Move2D = '' and ($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext')" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "following-sibling::*" + then: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "colonne" # phrase(the previous 'column' in the table) + - x: "count(preceding-sibling::*)+2" + - pause: short + - test: + if: "$NavMode = 'Character'" + then: + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "following-sibling::*[1]"] + else: [set_variables: [NavNode: "following-sibling::*[1]/*[1]/@id"]] + else: + - x: ".." # try again at the row level + +- name: move-next-default + tag: [mtr, mlabeledtr] + match: "$Move2D = '' and + ($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext') and + following-sibling::*" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "$NavMode = 'Character'" + then: + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "following-sibling::*[1]"] + else: + - set_variables: [NavNode: "following-sibling::*[1]/@id"] + +- name: move-next-auto-zoom-parens + # auto-zoom into next child if next child is parenthesized expr + tag: "*" + match: + - "($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext') and" + - "$NavMode='Enhanced' and" + - "parent::m:mrow and following-sibling::* and" + - "following-sibling::*[1][self::m:mrow and count(*)=3 and " #exclude empty parens + - " (IsBracketed(., '(', ')') or IsBracketed(., '[', ']'))" + - " ]" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNode: "following-sibling::*[1]/*[2]/@id"] + +# normal cases for MoveNext +- name: move-next-locked-zoom-level + # locked zoom level + tag: "*" + match: + - "($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext') and" + - "$ReadZoomLevel>=0" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + # if in base (nothing before), we must be moving to a script, so "in" will be said + if: "preceding-sibling::* and following-sibling::*[1][name(.)='none']" + then: + - with: + variables: [Move2D: "'hors de'", Child2D: "."] + replace: [x: ".."] + - x: "following-sibling::*[1]" + else: + - with: + variables: [Move2D: "'dans'", Child2D: "following-sibling::*[1]"] # phrase('in' the denominator) + replace: [x: ".."] + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "following-sibling::*[1]"] + +- name: move-next-default + tag: "*" + match: "$NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext'" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "following-sibling::*[1][@data-from-mathml='none' or @data-from-mathml='mprescripts']" + then: [x: "following-sibling::*[1]"] + else: + - test: + if: "IsNode(.., '2D') or not(IsNode(.., 'mathml'))" + then: + - with: + variables: [Move2D: "'dans'", Child2D: "following-sibling::*[1]"] # phrase('in' the denominator) + replace: [x: ".."] + - set_variables: [NavNode: "following-sibling::*[1]/@id"] + +# ======== Move/Read/Describe Previous rules ================= + +# skip 'none' +- name: move-previous-none + tag: [none, mprescripts] + match: + - "($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious' or $NavCommand = 'MovePreviousZoom') and" + - "parent::*[1][name(.)='mmultiscripts'] and preceding-sibling::*" + replace: + - with: + variables: [Preceding: "preceding-sibling::*[1]"] + replace: + # two 'none's in a row -- move over and try again; one 'none', zoom in on preceding + - test: + if: "$Preceding[name(.)='none']" + then: [x: "$Preceding"] + else: + - with: + variables: [Move2D: "'dans'", Child2D: "$Preceding"] # phrase('in' the denominator) + replace: [x: ".."] + - with: + variables: [NavCommand: "'MovePreviousZoom'"] + replace: [x: "$Preceding"] + +# skip invisible chars except for Enhanced mode when "times" should be read +- name: move-previous-invisible + tag: "*" + match: + - "($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious') and" + - "preceding-sibling::*[1][name(.)='mo' and translate(., '\u2061\u2062\u2063\u2064', '')='']" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "preceding-sibling::*[1][.='\u2062' or .='\u2064'] and $NavMode='Enhanced'" # invisible times and plus + then: [set_variables: [NavNode: "preceding-sibling::*[1]/@id"]] + else: [x: "preceding-sibling::*[1]"] + +# two rules for when can't move left +- name: move-previous-no-auto-zoom-at-edge + # at edge of 2D and in a mode where moving left isn't an option + tag: "*" + variables: [EdgeNode: "EdgeNode(., 'left', '2D')"] + match: "$NavCommand = 'MovePrevious' and $NavMode!='Character' and not($AutoZoomOut) and $EdgeNode/@id!=@id" + replace: + - test: + if: "$MatchCounter = 0 and $NavVerbosity = 'Verbose' and $NavCommand = 'MovePrevious'" + then: + - t: "impossible d'aller à gauche" # phrase('cannot move left' in expression) + - pause: medium + - with: + variables: + - Move2D: "'fin de'" + - Child2D: "$EdgeNode/*[1]" + - MatchCounter: $MatchCounter + 1 + replace: [x: "$EdgeNode"] + - pause: long + +- name: move-previous-no-auto-zoom-at-edge-of-math + # at edge of math -- no where to go (must be after we rule out being at the edge of 2D) because we want to speak that + tag: "*" + match: + - "($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious') and" + - "(self::m:math or name(EdgeNode(., 'left', 'math'))='math')" + replace: + - t: "début de l'expression" # phrase('start of math') + - pause: long + - set_variables: [SpeakExpression: "'false'"] + +- name: move-previous-at-end + tag: "*" + match: + - "($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious') and" + - "name(EdgeNode(., 'left', 'math'))='math'" # at edge of math + replace: + - test: + if: "$MatchCounter = 0 and $NavVerbosity = 'Verbose'" + then: + - t: "impossible d'aller à gauche" # phrase('cannot move left') + - pause: short + - with: + variables: [Move2D: "'début de'", Child2D: "."] + replace: [x: "."] + - pause: long + - set_variables: [SpeakExpression: "'false'"] + +- name: move-prev-character + tag: [mn, mi, mtext] + match: + - "($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious' or $NavCommand = 'MovePreviousZoom') and" + - "$NavNodeOffset > 0 and" + - "($NavNodeOffset > 1 or name(EdgeNode(., 'left', 'math'))!='math')" # not at edge of math + replace: + - test: + if: "$NavNodeOffset > 1" + then: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "$NavNodeOffset - 1"] + else: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "0"] + - x: "." + +- name: move-previous-auto-zoom-up-one-level + # Last child or in auto-zoom'd in-- move up a level and try again + # Note: we've already checked the for the case where we are at an edge and should not AutoZoomOut + tag: "*" + match: + - "($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious') and" + - "( not(preceding-sibling::*) or" + - " ( $NavMode='Enhanced' and " + - " count(preceding-sibling::*)=1 and (IsBracketed(.., '(', ')') or IsBracketed(.., '[', ']'))" + - " )" + - ")" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "preceding-sibling::*" + then: + - with: + variables: [Move2D: "'dans'", Child2D: "."] # phrase('in' the denominator) + replace: [x: ".."] + else: + - with: + variables: [Move2D: "'hors de'", Child2D: "."] + replace: [x: ".."] + - x: ".." + +- name: move-previous-auto-zoom-parens + # auto-zoom into previous child if previous child is parenthesized expr + # Note: there is an asymmetry here from MoveNext because the base of a scripted might have parens for grouping, but not true for the script + tag: "*" + match: + - "($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious') and" + - "$NavMode='Enhanced' and" + - "preceding-sibling::* and" + - "(parent::m:mrow or parent::m:msub or parent::m:msup or" + - " (count(preceding-sibling::*)=1 and (parent::m:msubsup or parent::m:mmultiscripts))" # make sure moving into base + - ") and" + - "preceding-sibling::*[1][self::m:mrow and count(*)=3 and " #exclude empty parens + - " (IsBracketed(., '(', ')') or IsBracketed(., '[', ']'))" + - " ]" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "not(parent::m:mrow)" + then: + - with: + variables: [Move2D: "'dans'", Child2D: "preceding-sibling::*[1]"] # phrase('in' the denominator) + replace: [x: ".."] + - set_variables: [NavNode: "preceding-sibling::*[1]/*[2]/@id"] + +# normal cases for MovePrevious + +- name: move-previous-default + tag: mtd + match: "$Move2D = '' and + ($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious') and + preceding-sibling::*" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - t: "colonne" # phrase(the first 'column' in the table) + - x: "count(preceding-sibling::*)" + - pause: short + - test: + if: "$NavMode = 'Character'" + then: + - with: + variables: [NavCommand: "'MovePreviousZoom'"] + replace: [x: "preceding-sibling::*[1]"] + else: [set_variables: [NavNode: "preceding-sibling::*[1]/*[last()]/@id"]] + +- name: move-previous-default + tag: [mtr, mlabeledtr] + match: "$Move2D = '' and ($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious')" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "preceding-sibling::*" + then: + - test: + if: "$NavMode = 'Character'" + then: + - with: + variables: [NavCommand: "'MovePreviousZoom'"] + replace: [x: "preceding-sibling::*[1]"] + else: + - set_variables: [NavNode: "preceding-sibling::*[1]/@id"] + else: [x: ".."] # try again for after + +- name: move-previous-locked-zoom-level + # locked zoom level + tag: "*" + match: + - "($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious') and" + - "$ReadZoomLevel>=0" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + # if moving into base (nothing before), we must be moving to the base, so "in" will be said + if: "count(preceding-sibling::*) > 2 and preceding-sibling::*[1][name(.)='none']" + then: + - with: + variables: [Move2D: "'hors de'", Child2D: "."] + replace: [x: ".."] + - x: "preceding-sibling::*[1]" # skip over 'none' + else: + - with: + variables: [Move2D: "'dans'", Child2D: "preceding-sibling::*[1]"] # phrase('in' the denominator) + replace: [x: ".."] + - with: + variables: [NavCommand: "'MovePreviousZoom'"] + replace: [x: "preceding-sibling::*[1]"] + +- name: move-previous-default + tag: "*" + match: "$NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious'" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "preceding-sibling::*[1][@data-from-mathml='none' or @data-from-mathml='mprescripts']" + then: [x: "preceding-sibling::*[1]"] + else: + - test: + if: "IsNode(.., '2D') or not(IsNode(.., 'mathml'))" + then: + - with: + variables: [Move2D: "'dans'", Child2D: "preceding-sibling::*[1]"] # phrase('in' the denominator) + replace: [x: ".."] + - set_variables: [NavNode: "preceding-sibling::*[1]/@id"] + +# ********* ReadZoomLevel toggle *************** +# These set ::NavMode + +- name: toggle-mode-up + tag: "*" + match: "$NavCommand = 'ToggleZoomLockUp'" + replace: + - test: + - if: "$NavMode = 'Enhanced'" + then: + - t: "mode caractère" # phrase(a mathematical 'character') + - set_variables: [NavMode: "'Character'", ReadZoomLevel: "1"] + - else_if: "$NavMode = 'Character'" + then: + - t: "mode simple" # phrase(a 'simple' way to do something) + - set_variables: [NavMode: "'Simple'", ReadZoomLevel: "1"] + - else: + - t: "mode étendu" # phrase(an 'enhanced' way to do something) + - set_variables: [NavMode: "'Enhanced'", ReadZoomLevel: "-1"] + - pause: long + - test: + - if: "$NavMode != 'Enhanced'" # potentially need to zoom to the sibling + then: + - with: + variables: [MatchCounter: "$MatchCounter + 1", NavCommand: "'MoveNextZoom'"] + replace: [x: "."] + +- name: toggle-mode-down + tag: "*" + match: "$NavCommand = 'ToggleZoomLockDown'" + replace: + - test: + - if: "$NavMode = 'Enhanced'" + then: + - t: "mode simple" # phrase(a 'simple' way to do something) + - set_variables: [NavMode: "'Simple'", ReadZoomLevel: "1"] + - else_if: "$NavMode = 'Character'" + then: + - t: "mode étendu" # phrase(an 'enhanced' way to do something) + - set_variables: [NavMode: "'Enhanced'", ReadZoomLevel: "-1"] + - else: + - t: "mode caractère" # phrase(a mathematical 'character') + - set_variables: [NavMode: "'Character'", ReadZoomLevel: "1"] + - pause: long + - test: + - if: "$NavMode != 'Enhanced'" # potentially need to zoom to the sibling + then: + - with: + variables: [MatchCounter: "$MatchCounter + 1", NavCommand: "'MoveNextZoom'"] + replace: [x: "."] + +- name: toggle-speech-describe + tag: "*" + match: "$NavCommand = 'ToggleSpeakMode'" + replace: + - test: + if: "$Overview = 'true'" + then: + - t: "lire l'expression après la navigation" # phrase('speak expression after move') + - pause: long + - set_variables: [Overview: "'false'"] + else: + - t: "aperçu de l'expression après la navigation" # phrase('overview of expression after move') + - pause: long + - set_variables: [Overview: "'true'"] + +- name: current + tag: "*" + match: "$NavCommand = 'ReadCurrent' or $NavCommand = 'DescribeCurrent'" + replace: + - test: + if: "$NavVerbosity = 'Verbose'" + then: + - test: + - if: "$NavCommand = 'ReadCurrent'" + then: [t: "lire"] # phrase('read' next entry in table) + else: [t: "décrire"] # phrase('describe' next entry in table) + - t: "actuel" # phrase('current' entry in table) + - pause: long + - set_variables: [NavNode: "@id"] + +# this needs to be near the end because we only test for 'Describe', "Read", etc., and we don't want to get 'DescribeNext', etc. +- name: placemarker + + tag: "*" + match: + - "starts-with($NavCommand, 'Read') or " + - "starts-with($NavCommand, 'Describe') or " + - "starts-with($NavCommand, 'MoveTo')" + replace: + - test: + if: "$NavVerbosity != 'Terse'" + then: + - test: + - if: "starts-with($NavCommand, 'Read')" + then: [t: "lire"] # phrase('read' next entry in table) + - else_if: "starts-with($NavCommand, 'Describe')" + then: [t: "décrire"] # phrase('describe' next entry in table) + - else_if: "starts-with($NavCommand, 'MoveTo')" + then: [t: "aller à "] # phrase('move to' the next entry in table) + else: [t: "placer"] # phrase('set' the value of the next entry in table) + - t: "marqueur" # phrase('placeholder' for the value) + - x: "$PlaceMarkerIndex" + - pause: long + - set_variables: [NavNode: "$PlaceMarker"] + +- name: set-placemarker + tag: "*" + match: "starts-with($NavCommand, 'SetPlacemarker')" + replace: + - test: + if: "$NavVerbosity != 'Terse'" + then: + - t: "placer le marqueur" # phrase('set placeholder' to the value) + - x: "$PlaceMarkerIndex" + - pause: long + - set_variables: [NavNode: "@id"] + +# ********* WhereAmI *************** + +# FIX: WhereAmI needs support from the Rust code to loop around and do speech at each iteration. +# Alternatively, it could insert a special token that Rust code does a "replace" on with the speech (e.g. SPEECH_AT{id}) +# or a new command "speak" which takes a node id +- name: where-am-i-start + tag: "*" + match: "($NavCommand = 'WhereAmI' or $NavCommand = 'WhereAmIAll') and $MatchCounter = 0" + replace: + - translate: "@id" + - pause: long + - with: + variables: [MatchCounter: "$MatchCounter + 1"] + replace: [x: ".."] + +- name: where-am-i-stop + tag: "*" + match: + - "($NavCommand = 'WhereAmI' or $NavCommand = 'WhereAmIAll') and $MatchCounter > 0 and" + # stopping conditions + - "(self::m:math or " + - " parent::*[self::m:math and (count(*)=1 or (count(*)=2 and *[2][.=',' or .='.' or .=';' or .='?']) ) ] " + - ")" + replace: + - test: + if: "$NavCommand = 'WhereAmI'" + then: + - t: "à l'intérieur, rien de plus" # phrase('inside of nothing more') + - pause: long + - set_variables: [SpeakExpression: "'false'"] + else: + - t: "à l'intérieur" # phrase('inside' a big expression) + - pause: medium + - set_variables: [NavNode: "@id"] + +- name: where-am-i-middle + tag: "*" + match: "$NavCommand = 'WhereAmI' or $NavCommand = 'WhereAmIAll'" + replace: + - t: "à l'intérieur" # phrase('inside' a big expression) + - pause: medium + - test: + - if: "$NavMode='Enhanced' and parent::*[self::m:mrow and (IsBracketed(., '(', ')', false) or IsBracketed(., '[', ']', false))]" + then: [x: ".."] # auto-zoom up + - else_if: "$NavCommand = 'WhereAmI'" + then: [set_variables: [NavNode: "@id"]] + else: + - translate: "@id" + - pause: long + - x: '..' \ No newline at end of file diff --git a/Rules/Languages/hu/ClearSpeak_Rules.yaml b/Rules/Languages/hu/ClearSpeak_Rules.yaml index 02040fc5d..73d8eaf5e 100644 --- a/Rules/Languages/hu/ClearSpeak_Rules.yaml +++ b/Rules/Languages/hu/ClearSpeak_Rules.yaml @@ -623,7 +623,7 @@ - test: if: "starts-with(name(.), 'open')" then: [T: "nem"] # phrase(the interval from a to b 'not' including b) - - T: "tartalmazza a" # phrase(the interval from a to b not 'including' b) + - T: "tartalmazza a(z)" # phrase(the interval from a to b not 'including' b) - x: "*[1]" - T: "elemet" # logic to deal with [not] arg #1 @@ -647,7 +647,7 @@ if: "name(.) = 'open-interval' or name(.) = 'closed-open-interval'" then: [T: "nem"] # phrase(the interval 'not' including a) - T: "tartalmazza" # phrase(the interval not 'including' a) - - T: "a" + - T: "a(z)" - x: "*[2]" - T: "elemet" # onto the [not] [including]... part diff --git a/Rules/Languages/hu/SimpleSpeak_Rules.yaml b/Rules/Languages/hu/SimpleSpeak_Rules.yaml index b5f263c3a..5037a4122 100644 --- a/Rules/Languages/hu/SimpleSpeak_Rules.yaml +++ b/Rules/Languages/hu/SimpleSpeak_Rules.yaml @@ -574,7 +574,7 @@ - test: if: "starts-with(name(.), 'open')" then: [T: "nem"] # phrase(the interval from a to b 'not' including b) - - T: "tartalmazza a" # phrase(the interval from a to b not 'including' b) + - T: "tartalmazza a(z)" # phrase(the interval from a to b not 'including' b) - x: "*[1]" - T: "elemet" # logic to deal with [not] arg #1 @@ -598,7 +598,7 @@ if: "name(.) = 'open-interval' or name(.) = 'closed-open-interval'" then: [T: "nem"] # phrase(the interval 'not' including a) - T: "tartalmazza" # phrase(the interval not 'including' a) - - T: "a" + - T: "a(z)" - x: "*[2]" - T: "elemet" # onto the [not] [including]... part diff --git a/Rules/Languages/hu/definitions.yaml b/Rules/Languages/hu/definitions.yaml index c0e75bee2..bdc649424 100644 --- a/Rules/Languages/hu/definitions.yaml +++ b/Rules/Languages/hu/definitions.yaml @@ -23,28 +23,28 @@ #"closed-open-interval":"function=interval between; included and", #"open-closed-interval":"function=interval between; and included", #"open-interval":"function=open interval between; and", - "inverse":"function=inverse || postfix=inverse", + "inverse":"function=inverz || postfix=inverz", "domain": "function= ; domén", "codomain": "function= ; kodomán", - "image":"function=image", + "image":"function=kép", #"fraction":"function=fraction; over; end fraction", # NOTE: Fails - "mixed-fraction":"infix=and", # NOTE: in website says function, but follow infix speech pattern. - "greatest-common-divisor": "function=gcd: a GCD: a legnagyobb közös osztó", - "quotient":"function=szám rész; osztva ezzel:", # NOTE: Logic somewhere here failing, becomes "divided by of x comma, y" instead of "integer part of x divided by y" - "evaluated-at":"infix=értékelték", - "remainder":"function=a maradék; osztva ezzel:", + "mixed-fraction":"infix=és", # NOTE: in website says function, but follow infix speech pattern. + "greatest-common-divisor": "function=a legnagyobb közös osztó", + "quotient":"function=egész rész osztva", # NOTE: Logic somewhere here failing, becomes "divided by of x comma, y" instead of "integer part of x divided by y" + "evaluated-at":"infix=értékelve || postfix=értékként", + "remainder":"function=a maradék, osztva", "max":"function=max", "min":"function=min", "power":"infix=a hatványra", "root":"function=root", - "imaginary-part": "function=képzeletbeli rész: a képzeletbeli rész: a képzeletbeli rész", + "imaginary-part": "a képzeletbeli rész", "least-common-multiple": "function=lcm: a legkisebb közös többszörös: a legkisebb közös többszörös", "complex-conjugate":"function=Komplex konjugált", "complex-arg":"function=argumentum", - "polar-coordinate":"function=poláris koordináta; vessző", - "spherical-coordinate":"function=gömb koordináta; vessző; vessző", - "cartesian-coordinate":"function=derékszögű koordináta; vessző", - "coordinate":"function=koordináta; vessző", + "polar-coordinate":"function=poláris koordináta", + "spherical-coordinate":"function=gömb koordináta", + "cartesian-coordinate":"function=derékszögű koordináta", + "coordinate":"function=koordináta", "floor":"function=lépcső", "ceiling":"function=mennyezet", "round":"function=kerekített érték", @@ -60,7 +60,7 @@ "dimension": "function=; dimenzió : dimenzió: a dimenzió; dimenzió vége", "homomorphism": "function= ; homomorfizmus : homomorfizmus: a homomorfizmus; homomorfizmus vége", "kernel": "function= ; kernel : kernel: a kernel; kernel vége", - "dot-product": "infix=skaláris szorzat: skaláris szorzat: skaláris szorzat: skaláris szorzat", + "dot-product": "infix=skaláris szorzat", #"divergence": "function= ; dihv: divergencia: divergencia; divergencia vége", #"laplacian": "function=laplaciáns", # speech engines don't do a good job with "laplacian" @@ -69,19 +69,20 @@ ### Calculus "definite-integral":"function=integrál felett || function=integrál innen:; ide:", # Property ??? "derivative":"function=a deriváltja; mely erre vonatkozik:", # Property ??? - "tends-to":"infix=általában", + "tends-to":"infix=ehhez tart", "tends-to-from-above":"infix=általában alulról indul", - + "tends-to-from-below":"infix=alulról indul", ### Sets "set": "function= ; halmaz: a halmaz", + "set-difference":"function=különbséghalmaz || infix=mínusz || postfix=különbséghalmaza", # NOTE: not tested "complement":"function=komplemens", - "empty-set":"nofix=üres halmaz", + "empty-set":"function=üres halmaz", "cardinality":"function=számosság", # NOTE: does not have a defined speech template in website "list":"function=lista", "tuple": "function= ; tuple: a tuple", ### Sequence and Series "sum":"function= ; összegzés : összeg ; ", #: sum over : sum from; to", - "product":"function=produktum || function=produktum vége || function=produktum innen:; ide:", + "product":"function=szorzat || function=szorzat vége || function=szorzat innen ide", ### Elementary classical functions "sine":"function=szinusz: szinusz", @@ -91,23 +92,23 @@ "cosecant":"function=koszekáns: koszekáns", "cotangent":"function=kotangens: kotangens", "arcsine":"function=arkusz szinusz", - #"arccosine":"function=arkusz koszinusz", + "arccosine":"function=arkusz koszinusz", "arctangent":"function=arkusz tangens", "arcsecant":"function=arkusz szekáns", "arccosecant":"function=arkusz koszekáns", "arccotangent":"function=arkusz kotangens", "hyperbolic-sine":"function=hiperbolikus szinusz", "hyperbolic-cosine":"function=hiperbolikus koszinusz", - "hyperbolic-tangent":"function=hiperbolikus tangenstanch", - "hyperbolic-secant":"function=sech", - "hyperbolic-cosecant":"function=cosech", - "hyperbolic-cotangent":"function=coth", - "arc-hyperbolic-sine":"function=arc shine", - "arc-hyperbolic-cosine":"function=arc cosh", - "arc-hyperbolic-tangent":"function=arc tanch", - "arc-hyperbolic-secant":"function=arc sech", - "arc-hyperbolic-cosecant":"function=arc cosech", - "arc-hyperbolic-cotangent":"function=arc coth", + "hyperbolic-tangent":"function=hiperbolikus tangens", + "hyperbolic-secant":"function=hiperbolikus szekáns", + "hyperbolic-cosecant":"function=hiperbolikus koszekáns", + "hyperbolic-cotangent":"function=hiperbolikus kotangens", + "arc-hyperbolic-sine":"function=arkusz hiperbolikus szinusz", + "arc-hyperbolic-cosine":"function=arkusz hiperbolikus koszinusz", + "arc-hyperbolic-tangent":"function=arkusz hiperbolikus tangens", + "arc-hyperbolic-secant":"function=arkusz hiperbolikus szekáns", + "arc-hyperbolic-cosecant":"function=arkusz hiperbolikus koszekáns", + "arc-hyperbolic-cotangent":"function=arkusz hiperbolikus kotangens", "exponential":"function=exponenciális", "natural-logarithm": "function=l n: természetes alapú logaritmus: természetes alapú logaritmus", "logarithm":"function=logaritmus", ##Check arity 2 @@ -138,7 +139,7 @@ ### Constants and Sets "set-of-integers":"nofix=ℤ: az összes egész szám halmaza", - "set-of-reals":"nofix=ℝ: az összes valós szám halmaza", + "set-of-reals":"nofix=valós számok halmaza: az összes valós szám halmaza", "set-of-rationals":"nofix=ℚ: az összes racionális szám halmaza", "set-of-natural-numbers":"nofix=ℕ: az összes természetes szám halmaza", "set-of-complex-numbers":"nofix=ℂ: az összes komplex szám halmaza", @@ -167,13 +168,13 @@ "highlight":"postfix=kiemelt", "least-common-denominator":"function=legkisebb közös nevező", "rate":"infix=per", - "constraint":"infix= ; korlátozással; ", + "constraint":"infix= ; feltétellel; ", "binomial-coefficient":"infix=választ", "pochhammer":"function=permutáció", "permutation-cycle":"function=permutációs ciklus", - "embellished-name":"infix=jegyzetekkel", - + "embellished-name":"infix=megjegyzéssel", + "annotation":"infix= ; ami ;", # NOTE: Follows the same order as indexed-by, in site listed as function. Should it be infix? ### Other ## Default fixity function "curl": "function=rotáció", @@ -185,7 +186,7 @@ "angle": "prefix=szög", "angle-measure": "prefix=szögmérés", "change": "prefix=változás", - "for-all": "prefix=mindenkinek", + "for-all": "prefix=minden", "measured-angle": "prefix=mért szög", "not": "prefix=nem", "number-of": "prefix=száma", @@ -198,7 +199,7 @@ ## Default fixity infix "and": "infix=és", - "applied-to": "infix=alkalmazva erre", + "applied-to": "infix=alkalmazva", "approximately": "infix=hozzávetőlegesen", "congruent": "infix=egybeesik", "cartesian-product": "infix=derékszögű szorzat", @@ -210,7 +211,7 @@ "does-not-belong-to": "infix=nem tartozik hozzá", "does-not-divide": "infix=nem osztja", "downwards-diagonal-ellipsis": "infix=lefelé mutató átlós ellipszis", - "direct-product": "infix=direkt produktum", + "direct-product": "infix=direkt szorzat", "element-of": "infix=eleme", "ellipsis": "infix=ellipszis", "equals": "infix=egyenlő", @@ -222,7 +223,7 @@ "identically-equals": "infix=teljesen egyenlő", "if-and-only-if": "infix=akkor és csak akkor, ha", "implies": "infix=utal", - "inner-product": "infix=belső produktum", + "inner-product": "infix=belső szorzat", "intersection": "infix=keresztezi", "less-than": "infix=kisebb, mint", "less-than-or-equal-to": "infix=kisebb vagy egyenlő, mint", @@ -231,13 +232,13 @@ "member-of": "infix=tagja", "minus-or-plus": "infix=mínusz vagy plusz", "not-subset": "infix=nem részhalmaza", - "not-superset": "infix=nem szuperhalmaz", + "not-superset": "infix=nem szuperhalmaza", "not-equal-to": "infix=nem egyenlő", "not-member-of": "infix=nem tagja", "not-parallel-to": "infix=nem párhuzamos", - "obtained-from": "infix=származó", + "obtained-from": "infix=innen származik", "or": "infix=vagy", - "outer-product": "infix=külső produktum", + "outer-product": "infix=külső szorzata", "parallel-to": "infix=párhuzamos", "perpendicular": "infix=merőleges", "plus": "infix=plusz || prefix=pozitív", # Prefix not tested @@ -246,16 +247,16 @@ "precedes": "infix=megelőzi", "proportional": "infix=arányos", "range-separator": "infix=keresztül", - "ratio": "infix=hányados", + "ratio": "infix=arány", "similar": "infix=hasonló", "subset": "infix=részhalmaza", "subset-or-equal": "infix=részhalmaza vagy egyenlő", - "succeeds": "infix=sikerül", + "succeeds": "infix=követi", "such-that": "infix=úgy, hogy", "superset": "infix=szuperhalmaza", - "superset-or-equal": "infix=szuperhalmaz vagy egyenlő", + "superset-or-equal": "infix=szuperhalmaza vagy egyenlő", "tilde": "infix=tilde", - "times": "infix=szorzata", + "times": "infix=szorozva", "union": "infix=unió", "upwards-diagonal-ellipsis": "infix=felfelé átlós ellipszis", "vertical-ellipsis": "infix=függőleges ellipszis", @@ -270,9 +271,9 @@ "distance":"nofix=távolság; távolság: távolság", "probability":"nofix=P: valószínűség", "radius":"nofix=r: sugár", - "volume":"nofix=V: hangerő || function=", + "volume":"nofix=hangerő: hangerő || function=hangerő", "exponential-e":"nofix=e", - "imaginary-i":"nofix=i", + "imaginary-i":"nofix=képzeletbeli én", "differential-d":"nofix=d", "golden-ratio":"nofix=aranymetszés", @@ -290,11 +291,11 @@ # These are the parts of a formula that can be navigated to "large-op": "base; lower limit; upper limit", "mfrac": "numerator; denominator", - "fraction": "numerator; denominator", - "msqrt": "root", - "square-root": "root", + "fraction": "számláló; nevező", + "msqrt": "gyök", + "square-root": "gyök", "mroot": "root; root index", - "root": "root; root index", + "root": "gyök; gyök index", "msub": "base; subscript", "sub": "base; subscript", "logarithm-with-base": "base", diff --git a/Rules/Languages/hu/navigate.yaml b/Rules/Languages/hu/navigate.yaml index ff4afb8bb..66d104235 100644 --- a/Rules/Languages/hu/navigate.yaml +++ b/Rules/Languages/hu/navigate.yaml @@ -60,38 +60,40 @@ - pause: "medium" else: - test: + # CommandOffset is 1 + length of the English NavCommand stem (Zoom/Move/Read/Describe), + # not the spoken Prefix length — so translations can use a different Prefix word. - if: "starts-with($NavCommand, 'Zoom')" - then: [set_variables: [Prefix: "'zoom'"]] # phrase('zoom' in to see more details) + then: [set_variables: [Prefix: "'zoom'", CommandOffset: "5"]] # phrase('zoom' in to see more details) - else_if: "starts-with($NavCommand, 'Move')" - then: [set_variables: [Prefix: "'move'"]] # phrase('move' to next entry in table) + then: [set_variables: [Prefix: "'move'", CommandOffset: "5"]] # phrase('move' to next entry in table) - else_if: "starts-with($NavCommand, 'Read')" - then: [set_variables: [Prefix: "'read'"]] # phrase('read' to next entry in table) + then: [set_variables: [Prefix: "'read'", CommandOffset: "5"]] # phrase('read' to next entry in table) - else_if: "starts-with($NavCommand, 'Describe')" - then: [set_variables: [Prefix: "'describe'"]] # phrase('describe' to next entry in table) + then: [set_variables: [Prefix: "'describe'", CommandOffset: "9"]] # phrase('describe' to next entry in table) - test: if: "$Prefix != ''" then: - x: "$Prefix" - test: - - if: "substring($NavCommand, string-length($Prefix)+1) = 'In'" + - if: "substring($NavCommand, $CommandOffset) = 'In'" then: [T: "ban"] # phrase(zoom 'in' to see more details) - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'InAll'" + - else_if: "substring($NavCommand, $CommandOffset) = 'InAll'" # HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets "ed" concatenated to "zoom" - then: [T: "Teljesen betáplálva"] # phrase(zoom 'out all of the way' to see more details) - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'Out'" + then: [T: "Teljesen kinagyítva"] # phrase(zoom 'out all of the way' to see more details) + - else_if: "substring($NavCommand, $CommandOffset) = 'Out'" then: [T: "ki"] # phrase(zoom 'out' to see more details) - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'OutAll'" + - else_if: "substring($NavCommand, $CommandOffset) = 'OutAll'" # HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets "ed" concatenated to "zoom" - then: [T: "teljes táblázat megjelenítése\uF8FEe ki egészen"] # phrase(zoom 'out all of the way' to see more details) - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'Next'" + then: [T: "teljes táblázat kinagyítása"] # phrase(zoom 'out all of the way' to see more details) + - else_if: "substring($NavCommand, $CommandOffset) = 'Next'" then: [T: "jobbra"] # phrase(move to the 'right') - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'Previous'" + - else_if: "substring($NavCommand, $CommandOffset) = 'Previous'" then: [T: "balra"] # phrase(move to the 'left') - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'Current'" + - else_if: "substring($NavCommand, $CommandOffset) = 'Current'" then: [T: "jelenlegi"] # phrase(who is the 'current' president) - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'LineStart'" + - else_if: "substring($NavCommand, $CommandOffset) = 'LineStart'" then: [T: "a sor elejére"] # phrase(move 'to start of line') - - else_if: "substring($NavCommand, string-length($Prefix)+1) = 'LineEnd'" + - else_if: "substring($NavCommand, $CommandOffset) = 'LineEnd'" then: [T: "a sor végére"] # phrase(move 'to end of line') - pause: "medium" - set_variables: [MatchCounter: "$MatchCounter + 1"] diff --git a/Rules/Languages/hu/unicode-full.yaml b/Rules/Languages/hu/unicode-full.yaml index 2926422e0..4ab669c7a 100644 --- a/Rules/Languages/hu/unicode-full.yaml +++ b/Rules/Languages/hu/unicode-full.yaml @@ -273,7 +273,7 @@ - "‱": [T: "per tízezer"] # 0x2031 (en: 'per ten thousand', DeepL translation) - "′": [T: "prím"] # 0x2032 (en: 'prime', DeepL translation) - "″": [T: "dupla prím"] # 0x2033 (en: 'double prime', DeepL translation) - - "‴": [T: "hármas ikerprím"] # 0x2034 (en: 'triple prime', DeepL translation) + - "‴": [T: "hármas prím"] # 0x2034 (en: 'triple prime', DeepL translation) - "‵": [T: "fordított prím"] # 0x2035 (en: 'reversed prime', DeepL translation) - "‶": [T: "fordított dupla prím"] # 0x2036 (en: 'reversed double prime', DeepL translation) - "‷": [T: "fordított hármas prím"] # 0x2037 (en: 'reversed triple prime', DeepL translation) @@ -951,11 +951,6 @@ - "⊢": [T: "bizonyítja"] # 0x22a2 (en: 'proves', DeepL translation) - "⊣": [T: "nem enged"] # 0x22a3 (en: 'does not yield', DeepL translation) - "⊤": [T: "felső"] # 0x22a4 (en: 'top', DeepL translation) - - "⊥": # 0x22a5 - - test: - if: "$Verbosity!='Terse'" - then: [T: "a(z)"] # (en: 'is', DeepL translation) - - T: "alul" # (en: 'bottom', DeepL translation) - "⊦": [T: "redukálódik"] # 0x22a6 (en: 'reduces to', DeepL translation) - "⊧": [T: "modellezi"] # 0x22a7 (en: 'models', DeepL translation) - "⊨": # 0x22a8 @@ -1543,11 +1538,15 @@ - "➾": [T: "nyitott körvonalú jobbra mutató nyíl"] # 0x27be (en: 'open-outlined right arrow', DeepL translation) - "⟀": [T: "háromdimenziós szög"] # 0x27c0 (en: 'three dimensional angle', DeepL translation) - "⟁": [T: "fehér háromszög, benne egy kis fehér háromszög"] # 0x27c1 (en: 'white triangle containing small white triangle', DeepL translation) - - "⟂": # 0x27c2 - - test: - if: "$Verbosity!='Terse'" - then: [T: "a(z)"] # (en: 'is', DeepL translation) - - T: "merőleges" # (en: 'perpendicular to', DeepL translation) + - "⟂⊥": # 0x27c2, 22A5 (22A5 wrongly used for perpendicular by most editors) + - test: + - if: "$SpeechStyle = 'LiteralSpeak' and text()='⊥'" # 22A5 (up tack/bottom) + then: [T: "felfelé mutató merőleges"] + - else: + - test: + if: "$Verbosity!='Terse'" + then: [T: "a(z)"] + - T: "merőleges" - "⟃": # 0x27c3 - test: if: "$Verbosity!='Terse'" diff --git a/Rules/Languages/hu/unicode.yaml b/Rules/Languages/hu/unicode.yaml index 41f8263f2..16561b733 100644 --- a/Rules/Languages/hu/unicode.yaml +++ b/Rules/Languages/hu/unicode.yaml @@ -297,7 +297,6 @@ - "⁢": [T: ""] # 0x2062 - "⁣": [T: "láthatatlan elválasztó"] # 0x2063 - "⁤": [T: "és"] # 0x2064 (en: 'and', DeepL translation) - - "‴": [T: "hármas prím"] # 0x2034 (en: 'triple prime', DeepL translation) - "ℂℕℚℝℤ": # here we rely on this running through the table again to speak "cap xxx" - T: "duplán leütött" # (en: 'double-struck', DeepL translation) @@ -418,7 +417,6 @@ then: [T: "benne van ebben:"] # (en: 'is in', DeepL translation) - else: [T: "ebbe a halmazba tartozik:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to', DeepL translation) - "∐": [T: "diszjunkt unió"] # 0x2210 (en: 'co-product', DeepL translation) - - "∗": [T: "csillag operátortimes"] # 0x2217 (DeepL translation) - "√": # 0x221a - test: if: "$Verbosity!='Terse'" @@ -448,7 +446,6 @@ if: "$Verbosity!='Terse'" then: [T: "van"] # (en: 'is', DeepL translation) - T: "hogy" # (DeepL translation) - - "∷": [T: "arány"] # 0x2237 (DeepL translation) - "∾": # 0x223e - test: if: "$Verbosity!='Terse'" @@ -474,8 +471,6 @@ if: "$Verbosity!='Terse'" then: [T: ""] # (en: 'is', DeepL translation) - T: "nagyobb vagy egyenlő" # (en: 'greater than or equal to', DeepL translation) - - "≦": [T: "kisebb, mint egyenlő"] # 0x2266 (en: 'less than over equal to', DeepL translation) - - "≧": [T: "nagyobb, mint az egyenlő"] # 0x2267 (en: 'greater than over equal to', DeepL translation) - "⊂": # 0x2282 - test: if: "$Verbosity!='Terse'" diff --git a/Rules/Languages/id/SimpleSpeak_Rules.yaml b/Rules/Languages/id/SimpleSpeak_Rules.yaml index ce4ac83d7..667025f9c 100644 --- a/Rules/Languages/id/SimpleSpeak_Rules.yaml +++ b/Rules/Languages/id/SimpleSpeak_Rules.yaml @@ -18,9 +18,7 @@ tag: square-root match: "." replace: - - test: - if: "$Verbosity!='Terse'" - then: [T: "akar kuadrat"] + - T: "akar kuadrat" - test: if: "$Verbosity!='Terse'" then: [T: dari] diff --git a/Rules/Languages/ru/SharedRules/calculus.yaml b/Rules/Languages/ru/SharedRules/calculus.yaml index 76fce80f2..cda63fbab 100644 --- a/Rules/Languages/ru/SharedRules/calculus.yaml +++ b/Rules/Languages/ru/SharedRules/calculus.yaml @@ -4,13 +4,13 @@ tag: laplacian match: "count(*) <= 1" # can be on ∇^2 or on enclosing mrow replace: - - t: "лапласиан" # phrase('laplacian' of x) -- "LahPlahsian" sounds better with speech engines tested + - T: "лапласиан" # phrase('laplacian' of x) -- "LahPlahsian" sounds better with speech engines tested - test: if: "count(*) = 1" then: - test: if: "$Verbosity!='Terse'" - then: [t: "от"] # phrase(function 'of' one variable) -- note OneCore voices spell out "div" + then: [T: "от"] # phrase(function 'of' one variable) -- note OneCore voices spell out "div" - test: if: "not(IsNode(*[1], 'leaf'))" then: [pause: short] @@ -22,11 +22,11 @@ replace: - test: if: "$Verbosity='Terse'" - then: [t: "див"] # phrase('div' is short for divergence) - else: [t: "дивергенция"] # phrase('divergence of' this function from the mean) + then: [T: "див"] # phrase('div' is short for divergence) + else: [T: "дивергенция"] # phrase('divergence of' this function from the mean) - test: if: "$Verbosity!='Terse' and *[1][self::m:mi[contains('ABCDEFGHIJKLMNOPQRSTUVWXYZ', text())]]" - then: [t: "заглавной"] + then: [T: "заглавной"] - test: if: "not(IsNode(*[1], 'leaf'))" then: [pause: short] @@ -39,10 +39,10 @@ tag: curl match: "count(*) = 1" replace: - - t: "ротор" # phrase(the 'curl of' a field) + - T: "ротор" # phrase(the 'curl of' a field) - test: if: "$Verbosity!='Terse' and *[1][self::m:mi[contains('ABCDEFGHIJKLMNOPQRSTUVWXYZ', text())]]" - then: [t: "заглавной"] + then: [T: "заглавной"] - test: if: "not(IsNode(*[1], 'leaf'))" then: [pause: short] @@ -57,11 +57,11 @@ replace: - test: if: "$Verbosity!='Terse'" - then: [t: "градиент"] # phrase(the hill has a 'gradient of' five percent) - else: [t: "набла"] # phrase(the delete key is labeled 'del') + then: [T: "градиент"] # phrase(the hill has a 'gradient of' five percent) + else: [T: "набла"] # phrase(the delete key is labeled 'del') - test: if: "$Verbosity!='Terse' and *[1][self::m:mi[contains('ABCDEFGHIJKLMNOPQRSTUVWXYZ', text())]]" - then: [t: "заглавной"] + then: [T: "заглавной"] - test: if: "not(IsNode(*[1], 'leaf'))" then: [pause: short] diff --git a/Rules/Languages/ru/SharedRules/default.yaml b/Rules/Languages/ru/SharedRules/default.yaml index e23171027..36a1a1de3 100644 --- a/Rules/Languages/ru/SharedRules/default.yaml +++ b/Rules/Languages/ru/SharedRules/default.yaml @@ -680,6 +680,15 @@ - x: "*[2]" - pause: short +- name: power-indexed-by + tag: power-indexed-by + match: "." + replace: + - x: "*[1]" + - T: "нижний индекс" + - x: "*[2]" + - pause: short + # otherwise let definitions/default infix handle it - name: literal diff --git a/Rules/Languages/ru/SharedRules/general.yaml b/Rules/Languages/ru/SharedRules/general.yaml index 2b10f1012..13db9ffba 100644 --- a/Rules/Languages/ru/SharedRules/general.yaml +++ b/Rules/Languages/ru/SharedRules/general.yaml @@ -343,6 +343,15 @@ - pause: short +# in terse mode, we just say "m" or "s", etc., not meters or seconds +- name: unit-terse + tag: unit + # audit-ignore: spell text() is an operation, not untranslated speech text. + match: "$Verbosity = 'Terse' and string-length(.)=1" + replace: + - bookmark: "@id" + - spell: "text()" + # the order of matching is # 1. does it match the base of an SI unit # 2. does it match an English unit (if in an English language) @@ -421,6 +430,26 @@ then: [x: "concat('\uF8FE', DefinitionValue($Word, 'Speech', 'PluralForms'))"] else: [x: "concat('\uF8FE', $Word)", ct: "с"] +# need to reverse the order of speech: $ 3 -> 3 dollars +- name: currency + tag: mrow + # audit-ignore: parity placeholder; ru definitions.yaml does not define + # CurrencySymbols yet, so enabling this would change runtime behavior. + match: "false()" + variables: + # If the amount is singular, we don't add the plural ending. + - IsSingular: "*[3][self::m:mn and .=1] and *[2]='\u2062'" + - CurrencyWord: "DefinitionValue(*[1], 'Speech', 'CurrencySymbols')" + replace: + - bookmark: "*[3]/@id" + - x: "*[3]" + - test: + - if: "$IsSingular" + then: [x: "$CurrencyWord"] + - else_if: "DefinitionValue($CurrencyWord, 'Speech', 'PluralForms') != ''" + then: [x: "DefinitionValue($CurrencyWord, 'Speech', 'PluralForms')"] + else: [x: "DefinitionValue(*[1], 'Speech', 'CurrencySymbols')"] + - name: sin tag: mi match: ".='sin'" diff --git a/Rules/Languages/ru/SharedRules/geometry.yaml b/Rules/Languages/ru/SharedRules/geometry.yaml index 000c4e654..b8aa4f2df 100644 --- a/Rules/Languages/ru/SharedRules/geometry.yaml +++ b/Rules/Languages/ru/SharedRules/geometry.yaml @@ -7,16 +7,16 @@ - test: if: "$Verbosity='Verbose'" then: - - t: "линейный сегмент от" # phrase('the line segment from' A to B) + - T: "линейный сегмент от" # phrase('the line segment from' A to B) - x: "*[1]" - - t: "до" # phrase(the line segment from A 'to' B) + - T: "до" # phrase(the line segment from A 'to' B) - x: "*[2]" else: - - t: "отрезок" # phrase(the 'line segment' A B) + - T: "отрезок" # phrase(the 'line segment' A B) - x: "translate(*[1], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" - - t: "большое" + - T: "большое" - x: "translate(*[2], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" - - t: "большое" + - T: "большое" - name: geometry-ray tag: ray @@ -25,16 +25,16 @@ - test: if: "$Verbosity='Verbose'" then: - - t: "луч от " # phrase('the ray from' A to B) + - T: "луч от " # phrase('the ray from' A to B) - x: "*[1]" - - t: "до" # phrase(the ray from A 'to' B) + - T: "до" # phrase(the ray from A 'to' B) - x: "*[2]" else: - - t: "луч" # phrase(the 'ray'A B) + - T: "луч" # phrase(the 'ray'A B) - x: "translate(*[1], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" - - t: "большое" + - T: "большое" - x: "translate(*[2], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" - - t: "большое" + - T: "большое" - name: geometry-arc tag: arc @@ -42,12 +42,12 @@ replace: - test: if: "$Verbosity='Verbose'" - then: [t: "а"] # phrase('the' arc A B C) - - t: "дуга" # phrase(the 'arc' A B C) + then: [T: "а"] # phrase('the' arc A B C) + - T: "дуга" # phrase(the 'arc' A B C) - x: "translate(*[1], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" - - t: "большое" + - T: "большое" - x: "translate(*[2], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" - - t: "большое" + - T: "большое" - name: measure-of-angle tag: measure-of-angle @@ -56,9 +56,9 @@ - test: if: "$Verbosity='Verbose'" then: - - t: "мера угла" # phrase('the measure of the angle' ABC) + - T: "мера угла" # phrase('the measure of the angle' ABC) else: - - t: "мера угла" # phrase('measure of angle' ABC) + - T: "мера угла" # phrase('measure of angle' ABC) - x: "*[1]" - x: "*[2]" - x: "*[3]" @@ -70,16 +70,16 @@ replace: - test: if: "$Verbosity='Verbose'" - then: [t: "а"] # phrase('the' point at 1, 2) - - t: "точка" # phrase(the 'point' at 1, 2) + then: [T: "а"] # phrase('the' point at 1, 2) + - T: "точка" # phrase(the 'point' at 1, 2) - test: if: "$Verbosity='Verbose'" - then: [t: "в"] # phrase('the' point at 1, 2) + then: [T: "в"] # phrase('the' point at 1, 2) - pause: short - insert: nodes: "*" - replace: [t: "запятая", pause: auto] # phrase(f of x 'comma' y) + replace: [T: "запятая", pause: auto] # phrase(f of x 'comma' y) - pause: short - test: if: "($SpeechStyle='ClearSpeak' and $Verbosity='Verbose') or not(IsNode(*[last()],'leaf'))" - then: [t: "конечная точка"] # phrase(start point, 'end point') + then: [T: "конечная точка"] # phrase(start point, 'end point') diff --git a/Rules/Languages/ru/SharedRules/linear-algebra.yaml b/Rules/Languages/ru/SharedRules/linear-algebra.yaml index 974007bba..5117f3292 100644 --- a/Rules/Languages/ru/SharedRules/linear-algebra.yaml +++ b/Rules/Languages/ru/SharedRules/linear-algebra.yaml @@ -7,16 +7,16 @@ - test: if: "$Verbosity='Verbose'" then: - - t: "а" # phrase('the' square root of 25 equals 5) - - t: "определяющий" # phrase(the 'determinant' of a matrix) + - T: "а" # phrase('the' square root of 25 equals 5) + - T: "определяющий" # phrase(the 'determinant' of a matrix) - test: if: "$Verbosity!='Terse'" then: - - t: "из" # phrase(systems 'of' linear equations) + - T: "из" # phrase(systems 'of' linear equations) - x: "*[1]" - test: if: "not(IsNode(*[1], 'simple')) and $Impairment = 'Blindness'" - then: [t: "конец определителя"] # phrase('end determinant' of a matrix) + then: [T: "конец определителя"] # phrase('end determinant' of a matrix) - name: subscripted-norm @@ -26,11 +26,11 @@ - test: if: "$Verbosity='Verbose'" then: - - t: "а" # phrase('the' square root of 25 equals 5) + - T: "а" # phrase('the' square root of 25 equals 5) - x: "*[2]" - - t: "норма" # phrase(the 'norm' can be a measure of distance) + - T: "норма" # phrase(the 'norm' can be a measure of distance) - test: if: "$Verbosity!='Terse'" then: - - t: "из" # phrase(systems 'of' linear equations) + - T: "из" # phrase(systems 'of' linear equations) - x: "*[1]" diff --git a/Rules/Languages/ru/navigate.yaml b/Rules/Languages/ru/navigate.yaml index 745c13857..527dcce60 100644 --- a/Rules/Languages/ru/navigate.yaml +++ b/Rules/Languages/ru/navigate.yaml @@ -346,6 +346,39 @@ match: "$Move2D != ''" replace: [] +- name: into-or-out-of-silent + tag: "*" + # audit-ignore: parity placeholder; Russian navigation keeps existing rules. + # Present for parity with the English navigation rules. Kept after default-move + # so the existing Russian navigation phrasing keeps its historical priority. + match: "false()" + replace: [] + +- name: into-or-out-of-default + tag: "*" + # audit-ignore: parity placeholder; Russian navigation keeps existing rules. + # Present for parity with the English navigation rules. Kept after default-move + # so the existing Russian navigation phrasing keeps its historical priority. + match: "false()" + replace: + - with: + variables: + - PartNumber: "count($Child2D/preceding-sibling::*)" + - PartName: "GetNavigationPartName(name(.), $PartNumber)" + replace: + - x: "$Move2D" + - test: + - if: "$PartName != ''" + then: [x: "$PartName"] + - else_if: "count(*) = 1" + then_test: + if: "$NavVerbosity = 'Verbose'" + then: [x: "translate(name(.), '-_', ' ')"] # e.g., "in absolute value" + else: + - t: "часть" # phrase(the 'part' of the expression) + - x: "count($Child2D/preceding-sibling::*) + 1" + - pause: "medium" + # ********* Go back to last position *************** # This is first since start/end position shouldn't matter - name: move-last-location @@ -402,6 +435,17 @@ - set_variables: [NavNode: "@id"] # special case of zooming into a table -- move to the first row (if only one row, first column) +- name: zoom-in-table + tag: "*" + # audit-ignore: parity placeholder; the existing mtable-specific rule below + # preserves current Russian navigation behavior. + match: "false()" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNode: "IfThenElse(count(*)=1, (*[1]/*[1]/@id), (*[1]/@id))"] + - name: zoom-in-table tag: mtable match: "$NavCommand = 'ZoomIn'" @@ -486,6 +530,46 @@ variables: [NavCommand: "'MoveNextZoom'"] replace: [x: "*[1]"] +- name: zoom-in-simple + tag: "*" + # audit-ignore: parity placeholder; covered by zoom-in-2D-not-enhanced/default. + match: "false()" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - test: + if: "$MatchCounter > 1 and IsNode(., '2D')" + then: + - set_variables: # time to stop, not going "in" to next thing, so before "Move2D" + - NavNode: "@id" + - NavNodeOffset: "IfThenElse(@data-id-offset, @data-id-offset, '0')" + else: + - with: + variables: [Move2D: "'in'", Child2D: "*[1]"] # phrase('in' the denominator) + replace: [x: "."] + - x: "*[1]" + +- name: zoom-in-2D-character + tag: "*" + # audit-ignore: parity placeholder; covered by zoom-in-2D-not-enhanced/default. + match: "false()" + replace: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - with: + variables: [Move2D: "'in'", Child2D: "*[1]"] # phrase('in' the denominator) + replace: [x: "."] + - test: + if: "$NavMode = 'Simple'" + then: + - set_variables: [NavNode: "*[1]/@id"] + else: + - with: + variables: [NavCommand: "'MoveNextZoom'"] + replace: [x: "*[1]"] + - name: zoom-in-default tag: "*" match: "$NavCommand = 'ZoomIn'" @@ -1231,9 +1315,29 @@ # ======== Move/Read/Describe Next rules ================= +- name: move-next-character + tag: [mn, mi, mtext] + # audit-ignore: parity placeholder; current Russian navigation uses whole-token + # movement for these nodes. + match: "false()" + replace: + - test: + if: "$NavNodeOffset < string-length(.)" + then: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "$NavNodeOffset + 1"] + else: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "0"] + - x: "." + # skip 'none' - name: move-next-none - tag: "none" + tag: none match: - "($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext' or $NavCommand = 'DescribePrevious' or $NavCommand = 'MoveNextZoom') and" - "parent::*[1][name(.)='mmultiscripts'] and following-sibling::*" @@ -1253,9 +1357,16 @@ variables: [NavCommand: "'MoveNextZoom'"] replace: [x: "$Following"] +# audit-ignore: parity placeholder for English tag list without changing the +# existing Russian none-specific rule above. +- name: move-next-none + tag: [none, mprescripts] + match: "false()" + replace: [] + # skip 'none' - name: move-previous-none - tag: "none" + tag: none match: - "($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious' or $NavCommand = 'MovePreviousZoom') and" - "parent::*[1][name(.)='mmultiscripts'] and preceding-sibling::*" @@ -1275,6 +1386,13 @@ variables: [NavCommand: "'MovePreviousZoom'"] replace: [x: "$Preceding"] +# audit-ignore: parity placeholder for English tag list without changing the +# existing Russian none-specific rule above. +- name: move-previous-none + tag: [none, mprescripts] + match: "false()" + replace: [] + # skip invisible chars except for Enhanced mode when "times" should be read @@ -1534,6 +1652,26 @@ - pause: long - set_variables: [SpeakExpression: "'false'"] +- name: move-prev-character + tag: [mn, mi, mtext] + # audit-ignore: parity placeholder; current Russian navigation uses whole-token + # movement for these nodes. + match: "false()" + replace: + - test: + if: "$NavNodeOffset > 1" + then: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "$NavNodeOffset - 1"] + else: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "0"] + - x: "." + - name: move-previous-auto-zoom-up-one-level # Last child or in auto-zoom'd in-- move up a level and try again # Note: we've already checked the for the case where we are at an edge and should not AutoZoomOut diff --git a/Rules/Languages/ru/overview.yaml b/Rules/Languages/ru/overview.yaml index 131c9b701..2341d4042 100644 --- a/Rules/Languages/ru/overview.yaml +++ b/Rules/Languages/ru/overview.yaml @@ -21,22 +21,22 @@ if: "IsNode(*[1], 'simple') and IsNode(*[2], 'simple')" then: - x: "*[1]" - - t: "разделить на" # (en: 'over') + - T: "разделить на" # (en: 'over') - x: "*[2]" else: - - t: "дробь, числитель:" # (en: 'fraction') + - T: "дробь, числитель:" # (en: 'fraction') - x: "*[1]" - - t: "знаменатель:" + - T: "знаменатель:" - x: "*[2]" - name: overview-default tag: [msqrt, "square-root"] match: "." replace: - - t: "квадратный корень" + - T: "квадратный корень" - test: if: "$Verbosity!='Terse'" - then: [t: "из"] + then: [T: "из"] - x: "*[1]" - name: overview-default @@ -47,11 +47,11 @@ if: "*[2][self::m:mn]" then_test: - if: "*[2][.='2']" - then: [t: "квадратный корень"] + then: [T: "квадратный корень"] - else_if: "*[2][.='3']" - then: [t: "кубический корень"] # (en: 'cube root') + then: [T: "кубический корень"] # (en: 'cube root') - else_if: "*[2][not(contains(., '.'))]" - then: [x: "ToOrdinal(*[2])", t: "корень"] + then: [x: "ToOrdinal(*[2])", T: "корень"] else: - test: if: "*[2][self::m:mi][string-length(.)=1]" @@ -59,10 +59,10 @@ - x: "*[2]" - pronounce: [{text: "-й"}, {ipa: "j"}, {sapi5: "th"}, {eloquence: "T"}] else: {x: "*[2]"} - - t: "корень" + - T: "корень" - test: if: "$Verbosity!='Terse'" - then: [t: "из"] + then: [T: "из"] - x: "*[1]" - name: matrix-override @@ -71,24 +71,24 @@ - "*[2][self::m:mtable] and" - "(IsBracketed(., '(', ')') or IsBracketed(., '[', ']') or IsBracketed(., '|', '|'))" replace: - - t: "на" # (en: 'a') + - T: "на" # (en: 'a') - x: count(*[2]/*) - - t: "на" # (en: 'by') + - T: "на" # (en: 'by') - x: count(*[2]/*[self::m:mtr][1]/*) - test: if: "*[1][.='|']" # just need to check the first bracket since we know it must be (, [, or | - then: [t: "определитель"] # (en: 'determinant') - else: [t: "матрица"] # (en: 'matrix') + then: [T: "определитель"] # (en: 'determinant') + else: [T: "матрица"] # (en: 'matrix') - name: overview-default tag: mtable match: "." replace: - - t: "на" # (en: 'a') + - T: "на" # (en: 'a') - x: count(*) - - t: "на" # (en: 'by') + - T: "на" # (en: 'by') - x: count(*[self::m:mtr][1]/*) - - t: "таблица" # (en: 'table') + - T: "таблица" # (en: 'table') - name: short-mrow tag: mrow @@ -112,6 +112,6 @@ - pause: auto - x: "*[5]" - pause: auto - - t: "и так далее" # (en: 'and so on') + - T: "и так далее" # (en: 'and so on') - include: "SimpleSpeak_Rules.yaml" diff --git a/Rules/Languages/ru/unicode-full.yaml b/Rules/Languages/ru/unicode-full.yaml index 547c35c61..ae0f67f09 100644 --- a/Rules/Languages/ru/unicode-full.yaml +++ b/Rules/Languages/ru/unicode-full.yaml @@ -1,3630 +1,3824 @@ ---- - - - - "¢": [t: "центы"] # 0xa2 - - "£": [t: "фунты"] # 0xa3 - - "¤": [t: "знак валюты"] # 0xa4 - - "¥": [t: "иена"] # 0xa5 - - "¦": [t: "вертикальная черта с разрывом"] # 0xa6 - - "§": [t: "параграф"] # 0xa7 - - "¨": [t: "две точки"] # 0xa8 - - "©": [t: "авторское право"] # 0xa9 - - "ª": [t: "указатель женского рода"] # 0xaa - - "«": [t: "левая двойная угловая кавычка"] # 0xab - - "¯": # 0xaf - - test: - if: "ancestor::m:modified-variable and preceding-sibling::*[1][self::m:mi]" - then: [t: "черта"] - else: [t: "линия"] - - "²": [t: "два"] # 0xb2 - - "³": [t: "три"] # 0xb3 - - "µ": [t: "микро"] # 0xb5 - - "¹": [t: "один"] # 0xb9 - - "º": [t: "указатель мужского рода"] # 0xb9 - - "¡": [t: "перевёрнутый восклицательный знак"] # 0xa1 - - "¶": [t: "знак абзаца"] # 0xb6 - - "¿": [t: "перевёрнутый вопросительный знак"] # 0xbf - - - "ʰ": [t: "модификатор маленькая h"] # 0x2b0 - - "ʱ": [t: "модификатор маленькая h с крюком"] # 0x2b1 - - "ʲ": [t: "модификатор маленькая j"] # 0x2b2 - - "ʳ": [t: "модификатор маленькая r"] # 0x2b3 - - "ʴ": [t: "модификатор маленькая перевёрнутая r"] # 0x2b4 - - "ʵ": [t: "модификатор маленькая перевёрнутая r с крюком"] # 0x2b5 - - "ʶ": # 0x2b6 - - t: "модификатор маленькая перевёрнутая" - - spell: "translate('R', 'R', 'R')" - - - "ʷ": [t: "модификатор маленькая w"] # 0x2b7 - - "ʸ": [t: "модификатор маленькая y"] # 0x2b8 - - "ʹ": [t: "модификатор штрих"] # 0x2b9 - - "ʺ": [t: "модификатор двойной штрих"] # 0x2ba - - "ʻ": [t: "модификатор перевёрнутая запятая"] # 0x2bb - - "ʼ": [t: "модификатор апостроф"] # 0x2bc - - "ʽ": [t: "модификатор обратная запятая"] # 0x2bd - - "ʾ": [t: "модификатор правое полукольцо"] # 0x2be - - "ʿ": [t: "модификатор левое полукольцо"] # 0x2bf - - "ˀ": [t: "модификатор гортанная смычка"] # 0x2c0 - - "ˁ": [t: "модификатор обратная гортанная смычка"] # 0x2c1 - - "˂": [t: "модификатор левый наконечник стрелки"] # 0x2c2 - - "˃": [t: "модификатор правый наконечник стрелки"] # 0x2c3 - - "˄": [t: "модификатор верхний наконечник стрелки"] # 0x2c4 - - "˅": [t: "модификатор нижний наконечник стрелки"] # 0x2c5 - - "ˆ": [t: "модификатор циркумфлекс"] # 0x2c6 - - "ˇ": [t: "гачек"] # 0x2c7 - - "ˈ": [t: "модификатор вертикальная линия"] # 0x2c8 - - "ˉ": [t: "модификатор макрон"] # 0x2c9 - - "ˊ": [t: "модификатор акут"] # 0x2ca - - "ˋ": [t: "модификатор гравис"] # 0x2cb - - "ˌ": [t: "модификатор нижняя вертикальная линия"] # 0x2cc - - "ˍ": [t: "модификатор нижний макрон"] # 0x2cd - - "ˎ": [t: "модификатор нижний гравис"] # 0x2ce - - "ˏ": [t: "модификатор нижний акут"] # 0x2cf - - "ː": [t: "модификатор треугольное двоеточие"] # 0x2d0 - - "ˑ": [t: "модификатор половинное треугольное двоеточие"] # 0x2d1 - - "˒": [t: "модификатор центральное правое полукольцо"] # 0x2d2 - - "˓": [t: "модификатор центральное левое полукольцо"] # 0x2d3 - - "˔": [t: "модификатор верхний таск"] # 0x2d4 - - "˕": [t: "модификатор нижний таск"] # 0x2d5 - - "˖": [t: "модификатор знак плюс"] # 0x2d6 - - "˗": [t: "модификатор знак минус"] # 0x2d7 - - "˘": [t: "брэвэ"] # 0x2d8 - - "˙": [t: "точка"] # 0x2d9 - - "˚": [t: "кольцо сверху"] # 0x2da - - "˛": [t: "огонек"] # 0x2db - - "˜": [t: "маленькая тильда"] # 0x2dc - - "˝": [t: "двойной акут"] # 0x2dd - - "˞": [t: "модификатор ротический крюк"] # 0x2de - - "˟": [t: "модификатор крестообразный акцент"] # 0x2df - - "ˠ": [t: "модификатор маленькая гамма"] # 0x2e0 - - "ˡ": [t: "модификатор маленькая l"] # 0x2e1 - - "ˢ": [t: "модификатор маленькая s"] # 0x2e2 - - "ˣ": [t: "модификатор маленькая x"] # 0x2e3 - - "ˤ": [t: "модификатор маленькая обратная гортанная смычка"] # 0x2e4 - - "˥": [t: "модификатор сверхвысокий тон"] # 0x2e5 - - "˦": [t: "модификатор высокий тон"] # 0x2e6 - - "˧": [t: "модификатор средний тон"] # 0x2e7 - - "˨": [t: "модификатор низкий тон"] # 0x2e8 - - "˩": [t: "модификатор сверхнизкий тон"] # 0x2e9 - - "˪": [t: "модификатор знак уходящего тона инь"] # 0x2ea - - "˫": [t: "модификатор знак уходящего тона ян"] # 0x2eb - - "ˬ": [t: "модификатор озвончение"] # 0x2ec - - "˭": [t: "модификатор отсутствие придыхания"] # 0x2ed - - "ˮ": [t: "модификатор двойной апостроф"] # 0x2ee - - "˯": [t: "модификатор нижний левый наконечник стрелки"] # 0x2ef - - "˰": [t: "модификатор нижний правый наконечник стрелки"] # 0x2f0 - - "˱": [t: "модификатор нижний левый наконечник стрелки"] # 0x2f1 - - "˲": [t: "модификатор нижний правый наконечник стрелки"] # 0x2f2 - - "˳": [t: "модификатор нижнее кольцо"] # 0x2f3 - - "˴": [t: "модификатор средний гравис"] # 0x2f4 - - "˵": [t: "модификатор средний двойной гравис"] # 0x2f5 - - "˶": [t: "модификатор средний двойной акут"] # 0x2f6 - - "˷": [t: "модификатор нижняя тильда"] # 0x2f7 - - "˸": [t: "модификатор приподнятое двоеточие"] # 0x2f8 - - "˹": [t: "модификатор начало высокого тона"] # 0x2f9 - - "˺": [t: "модификатор конец высокого тона"] # 0x2fa - - "˻": [t: "модификатор начало низкого тона"] # 0x2fb - - "˼": [t: "модификатор конец низкого тона"] # 0x2fc - - "˽": [t: "модификатор полка"] # 0x2fd - - "˾": [t: "модификатор открытая полка"] # 0x2fe - - "˿": [t: "модификатор нижняя левая стрелка"] # 0x2ff - - "̈": [t: "две точки"] # 0x308 - - "̉": [t: "крюк сверху"] # 0x309 - - "̊": [t: "кольцо сверху"] # 0x30a - - "̋": [t: "двойной акут"] # 0x30b - - "̌": [t: "гачек"] # 0x30c - - "̍": [t: "вертикальная линия сверху"] # 0x30d - - "̎": [t: "двойная вертикальная линия сверху"] # 0x30e - - "̏": [t: "двойной гравис"] # 0x30f - - "̐": [t: "чандрабинду"] # 0x310 - - "̑": [t: "перевёрнутое бреве"] # 0x311 - - "̒": [t: "перевёрнутая запятая сверху"] # 0x312 - - "̓": [t: "запятая сверху"] # 0x313 - - "̔": [t: "обратная запятая сверху"] # 0x314 - - "̕": [t: "запятая сверху справа"] # 0x315 - - "̖": [t: "гравис снизу"] # 0x316 - - "̗": [t: "акут снизу"] # 0x317 - - "̘": [t: "левый таск снизу"] # 0x318 - - "̙": [t: "правый таск снизу"] # 0x319 - - "̚": [t: "левый угол сверху"] # 0x31a - - "̛": [t: "рожок"] # 0x31b - - "̜": [t: "левое полукольцо снизу"] # 0x31c - - "̝": [t: "верхний таск снизу"] # 0x31d - - "̞": [t: "нижний таск снизу"] # 0x31e - - "̟": [t: "знак плюс снизу"] # 0x31f - - "̠": [t: "знак минус снизу"] # 0x320 - - "̡": [t: "палатализованный крюк снизу"] # 0x321 - - "̢": [t: "ретрофлексный крюк снизу"] # 0x322 - - "̣": [t: "точка снизу"] # 0x323 - - "̤": [t: "диерезис снизу"] # 0x324 - - "̥": [t: "кольцо снизу"] # 0x325 - - "̦": [t: "запятая снизу"] # 0x326 - - "̧": [t: "седиль"] # 0x327 - - "̨": [t: "огонек"] # 0x328 - - "̩": [t: "вертикальная линия снизу"] # 0x329 - - "̪": [t: "мостик снизу"] # 0x32a - - "̫": [t: "перевёрнутая двойная дуга снизу"] # 0x32b - - "̬": [t: "гачек снизу"] # 0x32c - - "̭": [t: "циркумфлекс снизу"] # 0x32d - - "̮": [t: "бреве снизу"] # 0x32e - - "̯": [t: "перевёрнутое бреве снизу"] # 0x32f - - "̰": [t: "тильда снизу"] # 0x330 - - "̱": [t: "макрон снизу"] # 0x331 - - "̲": [t: "нижнее подчёркивание"] # 0x332 - - "̳": [t: "двойное нижнее подчёркивание"] # 0x333 - - "̴": [t: "тильда поверх"] # 0x334 - - "̵": [t: "короткий штрих поверх"] # 0x335 - - "̶": [t: "длинный штрих поверх"] # 0x336 - - "̷": [t: "короткая косая черта поверх"] # 0x337 - - "̸": [t: "длинная косая черта поверх"] # 0x338 - - "̹": [t: "правое полукольцо снизу"] # 0x339 - - "̺": [t: "перевёрнутый мостик снизу"] # 0x33a - - "̻": [t: "квадрат снизу"] # 0x33b - - "̼": [t: "чайка снизу"] # 0x33c - - "̽": [t: "x сверху"] # 0x33d - - "̾": [t: "вертикальная тильда"] # 0x33e - - "̿": [t: "двойное надчёркивание"] # 0x33f - - "̀": [t: "знак тона гравис"] # 0x340 - - "́": [t: "знак тона акут"] # 0x341 - - "͆": [t: "мостик сверху"] # 0x346 - - - "ΪΫϏ": # 0x3aa, 0x3ab, 0x3cf - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [t: "заглавная"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [spell: "translate('.', 'ΪΫϏ', 'ιυϗ')"] - - t: "с диалитикой" - - "ϊ": [t: "йота с диалитикой"] # 0x3ca - - "ϋ": [t: "ипсилон с диалитикой"] # 0x3cb - - "ό": [t: "омикрон с тоносом"] # 0x3cc - - "ύ": [t: "ипсилон с тоносом"] # 0x3cd - - "ώ": [t: "омега с тоносом"] # 0x3ce - - "ϐ": [t: "бета"] # 0x3d0 - - "ϑ": [t: "тета"] # 0x3d1 - - "ϒ": [t: "ипсилон с крюком"] # 0x3d2 - - "ϓ": [t: "ипсилон с акутом и крюком"] # 0x3d3 - - "ϔ": [t: "ипсилон с диерезисом и крюком"] # 0x3d4 - - "ϗ": [t: "кай"] # 0x3d7 - - "Ϙ": [t: "заглавная архаическая коппа"] # 0x3d8 - - "ϙ": [t: "архаическая коппа"] # 0x3d9 - - "А-Я": # 0x410 - 0x42f - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [t: "заглавная"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [spell: "translate('.', 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ', 'абвгдежзийклмнопрстуфхцчшщъыьэюя')"] - - "а": [t: "а"] # 0x430 - - "б": [t: "бэ"] # 0x431 - - "в": [t: "вэ"] # 0x432 - - "г": [t: "гэ"] # 0x433 - - "д": [t: "дэ"] # 0x434 - - "е": [t: "е"] # 0x435 - - "ж": [t: "жэ"] # 0x436 - - "з": [t: "зэ"] # 0x437 - - "и": [t: "и"] # 0x438 - - "й": [t: "и краткое"] # 0x439 - - "к": [t: "ка"] # 0x43a - - "л": [t: "эль"] # 0x43b - - "м": [t: "эм"] # 0x43c - - "н": [t: "эн"] # 0x43d - - "о": [t: "о"] # 0x43e - - "п": [t: "пэ"] # 0x43f - - "р": [t: "эр"] # 0x440 - - "с": [t: "эс"] # 0x441 - - "т": [t: "тэ"] # 0x442 - - "у": [t: "у"] # 0x443 - - "ф": [t: "эф"] # 0x444 - - "х": [t: "ха"] # 0x445 - - "ц": [t: "цэ"] # 0x446 - - "ч": [t: "чэ"] # 0x447 - - "ш": [t: "ша"] # 0x448 - - "щ": [t: "ща"] # 0x449 - - "ъ": [t: "твёрдый знак"] # 0x44a - - "ы": [t: "ы"] # 0x44b - - "ь": [t: "мягкий знак"] # 0x44c - - "э": [t: "э"] # 0x44d - - "ю": [t: "ю"] # 0x44e - - "я": [t: "я"] # 0x44f - - "؆": [t: "арабско-индийский кубический корень"] # 0x606 - - "؇": [t: "арабско-индийский корень четвёртой степени"] # 0x607 - - "؈": [t: "арабский луч"] # 0x608 - - "‐": [t: "дефис"] # 0x2010 - - "‑": [t: "дефис"] # 0x2011 - - "‒": [t: "цифровое тире"] # 0x2012 - - "–": [t: "короткое тире"] # 0x2013 - - "—": [t: "длинное тире"] # 0x2014 - - "―": [t: "горизонтальная черта"] # 0x2015 - - "†": [t: "крестик"] # 0x2020 - - "‡": [t: "двойной крестик"] # 0x2021 - - - " - ": [t: " "] # 0x2000 - 0x2007 - - - "•": # 0x2022 - - test: - if: "@data-chem-formula-op" - then: [t: "точка"] - else: [t: "буллит"] - - - "‰": [t: "промилле"] # 0x2030 - - "‱": [t: "на десять тысяч"] # 0x2031 - - "′": [t: "штрих"] # 0x2032 - - "″": [t: "двойной штрих"] # 0x2033 - - "‴": [t: "тройной штрих"] # 0x2034 - - "‵": [t: "обратный штрих"] # 0x2035 - - "‶": [t: "обратный двойной штрих"] # 0x2036 - - "‷": [t: "обратный тройной штрих"] # 0x2037 - - "‸": [t: "в степени"] # 0x2038 - - "‹": [t: "одинарная левая угловая кавычка"] # 0x2039 - - "›": [t: "одинарная правая угловая кавычка"] # 0x203a - - "‼": # 0x203c - - test: - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" - then: [t: "двойной восклицательный знак"] # 0x203c - else: [t: "двойной факториал"] # 0x203c - - "⁄": # 0x2044 - - test: - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" - then: [t: "крупная косая черта"] # 0x203c - else: [t: "разделить на"] # 0x203c - - "⁅": [t: "левая квадратная скобка с пером"] # 0x2045 - - "⁆": [t: "правая квадратная скобка с пером"] # 0x2046 - - "※": [t: "знак ссылки"] # 0x203b - - "‿": [t: "нижняя лигатура"] # 0x203F - - "⁀": [t: "лигатура"] # 0x2040 - - "⁎": [t: "нижняя звёздочка"] # 0x204e - - "⁏": [t: "обратная точка с запятой"] # 0x204f - - "⁐": [t: "закрыть вплотную"] # 0x2050 - - "⁑": [t: "две вертикальные звёздочки"] # 0x2051 - - "⁒": [t: "коммерческий минус"] # 0x2052 - - "⁗": [t: "четверной штрих"] # 0x2057 - - "⁠": [t: ""] # 0x2060 - - "⁰": [t: "в нулевой степени"] # 0x2070 - - "ⁱ": [t: "в степени i"] # 0x2071 - - "⁴": [t: "в четвёртой степени"] # 0x2074 - - "⁵": [t: "в пятой степени"] # 0x2075 - - "⁶": [t: "в шестой степени"] # 0x2076 - - "⁷": [t: "в седьмой степени"] # 0x2077 - - "⁸": [t: "в восьмой степени"] # 0x2078 - - "⁹": [t: "в девятой степени"] # 0x2079 - - "⁺": [t: "верхний индекс плюс"] # 0x207a - - "⁻": [t: "верхний индекс минус"] # 0x207b - - "⁼": [t: "верхний индекс знак равенства"] # 0x207c - - "⁽": [t: "верхний индекс левая скобка"] # 0x207d - - "⁾": [t: "верхний индекс правая скобка"] # 0x207e - - "ⁿ": [t: "в энной степени"] # 0x207f - - "₀": [t: "нижний индекс ноль"] # 0x2080 - - "₁": [t: "нижний индекс один"] # 0x2081 - - "₂": [t: "нижний индекс два"] # 0x2082 - - "₃": [t: "нижний индекс три"] # 0x2083 - - "₄": [t: "нижний индекс четыре"] # 0x2084 - - "₅": [t: "нижний индекс пять"] # 0x2085 - - "₆": [t: "нижний индекс шесть"] # 0x2086 - - "₇": [t: "нижний индекс семь"] # 0x2087 - - "₈": [t: "нижний индекс восемь"] # 0x2088 - - "₉": [t: "нижний индекс девять"] # 0x2089 - - "₊": [t: "нижний индекс плюс"] # 0x208a - - "₋": [t: "нижний индекс минус"] # 0x208b - - "₌": [t: "нижний индекс знак равенства"] # 0x208c - - "₍": [t: "нижний индекс левая скобка"] # 0x208d - - "₎": [t: "нижний индекс правая скобка"] # 0x208e - - "ₐ": [t: "нижний индекс A"] # 0x2090 - - "ₑ": [t: "нижний индекс E"] # 0x2091 - - "ₒ": [t: "нижний индекс O"] # 0x2092 - - "ₓ": [t: "нижний индекс X"] # 0x2093 - - "ₕ": [t: "нижний индекс H"] # 0x2095 - - "ₖ": [t: "нижний индекс K"] # 0x2096 - - "ₗ": [t: "нижний индекс L"] # 0x2097 - - "ₘ": [t: "нижний индекс M"] # 0x2098 - - "ₙ": [t: "нижний индекс N"] # 0x2099 - - "ₚ": [t: "нижний индекс P"] # 0x209a - - "ₛ": [t: "нижний индекс S"] # 0x209b - - "ₜ": [t: "нижний индекс T"] # 0x209c - - "₠": [t: "евро для расчётов"] # 0x20a0 - - "₡": [t: "колоны"] # 0x20a1 - - "₢": [t: "крузейро"] # 0x20a2 - - "₣": [t: "франк"] # 0x20a3 - - "₤": [t: "лира"] # 0x20a4 - - "₥": [t: "милль"] # 0x20a5 - - "₦": [t: "найра"] # 0x20a6 - - "₧": [t: "песета"] # 0x20a7 - - "₨": [t: "рупии"] # 0x20a8 - - "₩": [t: "вона"] # 0x20a9 - - "₪": [t: "новый шекель"] # 0x20aa - - "₫": [t: "донг"] # 0x20ab - - "€": [t: "евро"] # 0x20ac - - "₭": [t: "кип"] # 0x20ad - - "₮": [t: "тугрик"] # 0x20ae - - "₯": [t: "драхма"] # 0x20af - - "₰": [t: "немецкий пфенниг"] # 0x20b0 - - "₱": [t: "песо"] # 0x20b1 - - "₲": [t: "гуарани"] # 0x20b2 - - "₳": [t: "аустраль"] # 0x20b3 - - "₴": [t: "гривна"] # 0x20b4 - - "₵": [t: "седи"] # 0x20b5 - - "₶": [t: "ливр турнуа"] # 0x20b6 - - "₷": [t: "спесмило"] # 0x20b7 - - "₸": [t: "тенге"] # 0x20b8 - - "₹": [t: "индийская рупия"] # 0x20b9 - - "₺": [t: "турецкая лира"] # 0x20ba - - "⃐": [t: "левый гарпун сверху"] # 0x20d0 - - "⃑": [t: "правый гарпун сверху"] # 0x20d1 - - "⃒": [t: "длинная вертикальная линия поверх"] # 0x20d2 - - "⃓": [t: "короткая вертикальная линия поверх"] # 0x20d3 - - "⃔": [t: "стрелка против часовой стрелки сверху"] # 0x20d4 - - "⃕": [t: "стрелка по часовой стрелке сверху"] # 0x20d5 - - "⃖": [t: "стрелка влево сверху"] # 0x20d6 - - "⃗": [t: "стрелка вправо сверху"] # 0x20d7 - - "⃘": [t: "кольцо поверх"] # 0x20d8 - - "⃙": [t: "кольцо по часовой стрелке поверх"] # 0x20d9 - - "⃚": [t: "кольцо против часовой стрелки поверх"] # 0x20da - - "⃛": [t: "три точки"] # 0x20db - - "⃜": [t: "четыре точки"] # 0x20dc - - "⃝": [t: "обводящий круг"] # 0x20dd - - "⃞": [t: "обводящий квадрат"] # 0x20de - - "⃟": [t: "обводящий ромб"] # 0x20df - - "⃠": [t: "обводящий круг с обратной косой чертой"] # 0x20e0 - - "⃡": [t: "стрелка влево-вправо сверху"] # 0x20e1 - - "⃢": [t: "обводящий экран"] # 0x20e2 - - "⃣": [t: "обводящая клавиша"] # 0x20e3 - - "⃤": [t: "обводящий треугольник остриём вверх"] # 0x20e4 - - "⃥": [t: "обратная косая черта поверх"] # 0x20e5 - - "⃦": [t: "двойной вертикальный штрих"] # 0x20e6 - - "⃧": [t: "символ аннуитета"] # 0x20e7 - - "⃨": [t: "тройная нижняя точка"] # 0x20e8 - - "⃩": [t: "широкий мостик сверху"] # 0x20e9 - - "⃪": [t: "стрелка влево поверх"] # 0x20ea - - "⃫": [t: "длинная двойная косая черта поверх"] # 0x20eb - - "⃬": [t: "правый гарпун с бородкой вниз"] # 0x20ec - - "⃭": [t: "левый гарпун с бородкой вниз"] # 0x20ed - - "⃮": [t: "стрелка влево снизу"] # 0x20ee - - "⃯": [t: "стрелка вправо снизу"] # 0x20ef - - "⃰": [t: "звёздочка сверху"] # 0x20f0 - - "℄": [t: "символ центральной линии"] # 0x2104 - - "℅": [t: "для передачи"] # 0x2105 - - "℆": [t: "каждая"] # 0x2106 - - "ℇ": [t: "постоянная Эйлера"] # 0x2107 - - "℈": [t: "скрупулы"] # 0x2108 - - "ℊ": [t: "рукописная g"] # 0x210a - - "ℌℑℨℭ": # 0x210c, 0x2111, 0x2128, 0x212d - - t: "фрактурная" - - spell: "translate('.', 'ℌℑℨℭ', 'HIZC')" - - - "ℍℙℾℿ": # 0x210d, 0x2119, 0x213e, 0x213f - - t: "двойная" - - spell: "translate('.', 'ℍℙℾℿ', 'HPΓΠ')" - - - "ℎ": [t: "постоянная Планка"] # 0x210e - - "ℏ": [t: "h с чертой"] # 0x210f - - - "ℐℒ℘ℬℰℱℳ": # 0x2110, 0x2112, 0x2118, 0x2130, 0x2131, 0x2133 - - t: "рукописная" - - spell: "translate('.', 'ℐℒ℘ℬℰℱℳ', 'ILPBEFM')" - - - "℔": [t: "фунты"] # 0x2114 - - "№": [t: "номер"] # 0x2116 - - "℥": [t: "унции"] # 0x2125 - - "℧": [t: "сименсы"] # 0x2127 - - "℩": [t: "перевёрнутая йота"] # 0x2129 - - "K": [t: "кельвин"] # 0x212a - - "ℯ": [t: "рукописная e"] # 0x212f - - # coalesced some chars that use cap letters - - "Ⅎ": - - t: "перевернутая" - - spell: "'F'" - - "⅄": - - t: "перевернутая" - - spell: "'Y'" - - t: "без засечек" - - "℺⅁⅂⅃": # 0x213a, 0x2141, 0x2142, 0x2143 - - test: - - if: "'.' = '℺'" - then: [t: "повёрнутая"] - - else_if: "'.' = 'Ⅎ'" - then: [t: "перевернутая"] - - else_if: "'.' = '⅃'" - then: [t: "обратная без засечек"] - else: [t: "перевернутая без засечек"] - - spell: "translate('.', '℺⅁⅂⅃', 'QGLL')" - - - "ℴ": [t: "рукописная o"] # 0x2134 - - "ℵ": [t: "алеф"] # 0x2135 - - "ℶ": [t: "бет"] # 0x2136 - - "ℷ": [t: "гимель"] # 0x2137 - - "ℸ": [t: "далет"] # 0x2138 - - "ℼ": [t: "пи с двойным контуром"] # 0x213c - - "ℽ": [t: "гамма с двойным контуром"] # 0x213d - - "⅀": [t: "n-арное суммирование с двойным контуром"] # 0x2140 - - "⅋": [t: "перевёрнутый амперсанд"] # 0x214b - - "⅌": [t: "на"] # 0x214c - - "ⅎ": [t: "перевёрнутая F"] # 0x214e - - "¼": [t: "одна четвёртая"] # 0x00bc - - "½": [t: "одна вторая"] # 0x00bd - - "¾": [t: "три четвёртых"] # 0x00be - - "⅐": [t: "одна седьмая"] # 0x2150 - - "⅑": [t: "одна девятая"] # 0x2151 - - "⅒": [t: "одна десятая"] # 0x2152 - - "⅓": [t: "одна треть"] # 0x2153 - - "⅔": [t: "две трети"] # 0x2154 - - "⅕": [t: "одна пятая"] # 0x2155 - - "⅖": [t: "две пятых"] # 0x2156 - - "⅗": [t: "три пятых"] # 0x2157 - - "⅘": [t: "четыре пятых"] # 0x2158 - - "⅙": [t: "одна шестая"] # 0x2159 - - "⅚": [t: "пять шестых"] # 0x215a - - "⅛": [t: "одна восьмая"] # 0x215b - - "⅜": [t: "три восьмых"] # 0x215c - - "⅝": [t: "пять восьмых"] # 0x215d - - "⅞": [t: "семь восьмых"] # 0x215e - - "⅟": [t: "единица делить на"] # 0x215f - - "Ⅰ": [t: "I"] # 0x2160 - - "Ⅱ": [t: "I I"] # 0x2161 - - "Ⅲ": [t: "I I I"] # 0x2162 - - "Ⅳ": [t: "I V"] # 0x2163 - - "Ⅴ": [t: "V"] # 0x2164 - - "Ⅵ": [t: "V I"] # 0x2165 - - "Ⅶ": [t: "V I I"] # 0x2166 - - "Ⅷ": [t: "V I I I"] # 0x2167 - - "Ⅸ": [t: "I X"] # 0x2168 - - "Ⅹ": [t: "X"] # 0x2169 - - "Ⅺ": [t: "X I"] # 0x216a - - "Ⅻ": [t: "X I I"] # 0x216b - - "Ⅼ": [t: "L"] # 0x216c - - "Ⅽ": [t: "C"] # 0x216d - - "Ⅾ": [t: "D"] # 0x216e - - "Ⅿ": [t: "M"] # 0x216f - - "ⅰ": [t: "I"] # 0x2170 - - "ⅱ": [t: "I I"] # 0x2171 - - "ⅲ": [t: "I I I"] # 0x2172 - - "ⅳ": [t: "I V"] # 0x2173 - - "ⅴ": [t: "V"] # 0x2174 - - "ⅵ": [t: "V I"] # 0x2175 - - "ⅶ": [t: "V I I"] # 0x2176 - - "ⅷ": [t: "V I I I"] # 0x2177 - - "ⅸ": [t: "I X"] # 0x2178 - - "ⅹ": [t: "X"] # 0x2179 - - "ⅺ": [t: "X I"] # 0x217a - - "ⅻ": [t: "X I I"] # 0x217b - - "ⅼ": [t: "L"] # 0x217c - - "ⅽ": [t: "C"] # 0x217d - - "ⅾ": [t: "D"] # 0x217e - - "ⅿ": [t: "M"] # 0x217f - - "↉": [t: "ноль третьих"] # 0x2189 - - "↔": [t: "стрелка влево-вправо"] # 0x2194 - - "↕": [t: "стрелка вверх-вниз"] # 0x2195 - - "↖": [t: "стрелка на северо-запад"] # 0x2196 - - "↗": # 0x2197 - - test: - if: "ancestor::*[2][self::m:limit]" - then: [t: "стремящемся к"] - else: [t: "стрелка на северо-восток"] - - - "↘": # 0x2198 - - test: - if: "ancestor::*[2][self::m:limit]" - then: [t: "стремится сверху"] - else: [t: "стрелка на юго-восток"] - - - "↙": [t: "стрелка на юго-запад"] # 0x2199 - - "↚": [t: "стрелка влево со штрихом"] # 0x219a - - "↛": [t: "стрелка вправо со штрихом"] # 0x219b - - "↜": [t: "волнистая стрелка влево"] # 0x219c - - "↝": [t: "волнистая стрелка вправо"] # 0x219d - - "↞": [t: "стрелка влево с двумя наконечниками"] # 0x219e - - "↟": [t: "стрелка вверх с двумя наконечниками"] # 0x219f - - "↠": [t: "стрелка вправо с двумя наконечниками"] # 0x21a0 - - "↡": [t: "стрелка вниз с двумя наконечниками"] # 0x21a1 - - "↢": [t: "стрелка влево с хвостом"] # 0x21a2 - - "↣": [t: "стрелка вправо с хвостом"] # 0x21a3 - - "↤": [t: "стрелка влево от черты"] # 0x21a4 - - "↥": [t: "стрелка вверх от черты"] # 0x21a5 - - "↦": [t: "стрелка вправо от черты"] # 0x21a6 - - "↧": [t: "стрелка вниз от черты"] # 0x21a7 - - "↨": [t: "стрелка вверх-вниз с основанием"] # 0x21a8 - - "↩": [t: "стрелка влево с крюком"] # 0x21a9 - - "↪": [t: "стрелка вправо с крюком"] # 0x21aa - - "↫": [t: "стрелка влево с петлёй"] # 0x21ab - - "↬": [t: "стрелка вправо с петлёй"] # 0x21ac - - "↭": [t: "волнистая стрелка влево-вправо"] # 0x21ad - - "↮": [t: "стрелка влево-вправо со штрихом"] # 0x21ae - - "↯": [t: "зигзагообразная стрелка вниз"] # 0x21af - - "↰": [t: "стрелка вверх с наконечником влево"] # 0x21b0 - - "↱": [t: "стрелка вверх с наконечником вправо"] # 0x21b1 - - "↲": [t: "стрелка вниз с наконечником влево"] # 0x21b2 - - "↳": [t: "стрелка вниз с наконечником вправо"] # 0x21b3 - - "↴": [t: "стрелка вправо с уголком вниз"] # 0x21b4 - - "↵": [t: "стрелка вниз с уголком влево"] # 0x21b5 - - "↶": [t: "верхняя полуокружность против часовой"] # 0x21b6 - - "↷": [t: "верхняя полуокружность по часовой"] # 0x21b7 - - "↸": [t: "стрелка на северо-запад к длинной черте"] # 0x21b8 - - "↹": [t: "стрелка влево к черте над стрелкой вправо к черте"] # 0x21b9 - - "↺": [t: "круговая стрелка против часовой"] # 0x21ba - - "↻": [t: "круговая стрелка по часовой"] # 0x21bb - - "↼": [t: "левый гарпун вверх"] # 0x21bc - - "↽": [t: "левый гарпун вниз"] # 0x21bd - - "↾": [t: "верхний гарпун вправо"] # 0x21be - - "↿": [t: "верхний гарпун влево"] # 0x21bf - - "⇀": [t: "правый гарпун вверх"] # 0x21c0 - - "⇁": [t: "правый гарпун вниз"] # 0x21c1 - - "⇂": [t: "нижний гарпун вправо"] # 0x21c2 - - "⇃": [t: "нижний гарпун влево"] # 0x21c3 - - "⇄": [t: "стрелка вправо над стрелкой влево"] # 0x21c4 - - "⇅": [t: "стрелка вверх слева от стрелки вниз"] # 0x21c5 - - "⇆": [t: "стрелка влево над стрелкой вправо"] # 0x21c6 - - "⇇": [t: "парные стрелки влево"] # 0x21c7 - - "⇈": [t: "парные стрелки вверх"] # 0x21c8 - - "⇉": [t: "парные стрелки вправо"] # 0x21c9 - - "⇊": [t: "парные стрелки вниз"] # 0x21ca - - "⇋": [t: "левый гарпун над правым гарпуном"] # 0x21cb - - "⇌": [t: "правый гарпун над левым гарпуном"] # 0x21cc - - "⇍": [t: "левая двойная стрелка со штрихом"] # 0x21cd - - "⇎": [t: "двойная стрелка влево-вправо со штрихом"] # 0x21ce - - "⇏": [t: "правая двойная стрелка со штрихом"] # 0x21cf - - "⇐": [t: "левая двойная стрелка"] # 0x21d0 - - "⇑": [t: "верхняя двойная стрелка"] # 0x21d1 - - "⇓": [t: "нижняя двойная стрелка"] # 0x21d3 - - "⇔": [t: "тогда и только тогда"] # 0x21d4 - - "⇕": [t: "двойная стрелка вверх-вниз"] # 0x21d5 - - "⇖": [t: "двойная стрелка на северо-запад"] # 0x21d6 - - "⇗": [t: "двойная стрелка на северо-восток"] # 0x21d7 - - "⇘": [t: "двойная стрелка на юго-восток"] # 0x21d8 - - "⇙": [t: "двойная стрелка на юго-запад"] # 0x21d9 - - "⇚": [t: "левая тройная стрелка"] # 0x21da - - "⇛": [t: "правая тройная стрелка"] # 0x21db - - "⇜": [t: "левая волнистая стрелка"] # 0x21dc - - "⇝": [t: "правая волнистая стрелка"] # 0x21dd - - "⇞": [t: "стрелка вверх с двойным штрихом"] # 0x21de - - "⇟": [t: "стрелка вниз с двойным штрихом"] # 0x21df - - "⇠": [t: "левая пунктирная стрелка"] # 0x21e0 - - "⇡": [t: "верхняя пунктирная стрелка"] # 0x21e1 - - "⇢": [t: "правая пунктирная стрелка"] # 0x21e2 - - "⇣": [t: "нижняя пунктирная стрелка"] # 0x21e3 - - "⇤": [t: "стрелка влево к черте"] # 0x21e4 - - "⇥": [t: "стрелка вправо к черте"] # 0x21e5 - - "⇦": [t: "левая белая стрелка"] # 0x21e6 - - "⇧": [t: "верхняя белая стрелка"] # 0x21e7 - - "⇨": [t: "правая белая стрелка"] # 0x21e8 - - "⇩": [t: "нижняя белая стрелка"] # 0x21e9 - - "⇪": [t: "верхняя белая стрелка от черты"] # 0x21ea - - "⇫": [t: "верхняя белая стрелка на пьедестале"] # 0x21eb - - "⇬": [t: "верхняя белая стрелка на пьедестале с горизонтальной чертой"] # 0x21ec - - "⇭": [t: "верхняя белая стрелка на пьедестале с вертикальной чертой"] # 0x21ed - - "⇮": [t: "верхняя белая двойная стрелка"] # 0x21ee - - "⇯": [t: "верхняя белая двойная стрелка на пьедестале"] # 0x21ef - - "⇰": [t: "правая белая стрелка от стены"] # 0x21f0 - - "⇱": [t: "стрелка на северо-запад в угол"] # 0x21f1 - - "⇲": [t: "стрелка на юго-восток в угол"] # 0x21f2 - - "⇳": [t: "белая стрелка вверх-вниз"] # 0x21f3 - - "⇴": [t: "стрелка вправо с маленьким кругом"] # 0x21f4 - - "⇵": [t: "стрелка вниз слева от стрелки вверх"] # 0x21f5 - - "⇶": [t: "три стрелки вправо"] # 0x21f6 - - "⇷": [t: "стрелка влево с вертикальным штрихом"] # 0x21f7 - - "⇸": [t: "стрелка вправо с вертикальным штрихом"] # 0x21f8 - - "⇹": [t: "стрелка влево-вправо с вертикальным штрихом"] # 0x21f9 - - "⇺": [t: "стрелка влево с двойным вертикальным штрихом"] # 0x21fa - - "⇻": [t: "стрелка вправо с двойным вертикальным штрихом"] # 0x21fb - - "⇼": [t: "стрелка влево-вправо с двойным вертикальным штрихом"] # 0x21fc - - "⇽": [t: "левая открытая стрелка"] # 0x21fd - - "⇾": [t: "правая открытая стрелка"] # 0x21fe - - "⇿": [t: "открытая стрелка влево-вправо"] # 0x21ff - - "∀": [t: "для всех"] # 0x2200 - - "∁": # 0x2201 - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "дополнение" - - "∃": [t: "существует"] # 0x2203 - - "∄": [t: "не существует"] # 0x2204 - - "∅": [t: "пустое множество"] # 0x2205 - - "∇": [t: "набла"] # 0x2207 - - "∋": [t: "содержит член"] # 0x220b - - "∌": [t: "не содержит член"] # 0x220c - - "∍": [t: "содержит член"] # 0x220d - - "∎": [t: "конец доказательства"] # 0x220e - - "∏": [t: "произведение"] # 0x220f - - "∑": [t: "сумма"] # 0x2211 - - "−": [t: "минус"] # 0x2212 - - "∔": [t: "точка плюс"] # 0x2214 - - "∕": [t: "разделить на"] # 0x2215 - - "∖": [t: "разность множеств"] # 0x2216 - - "∙": # 0x2219 - - test: - if: "@data-chem-formula-op" - then: [t: "точка"] - else: [t: "умножить"] - - - "∛": # 0x221b - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "кубический корень из" - - "∜": # 0x221c - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "корень четвёртой степени из" - - "∞": [t: "бесконечность"] # 0x221e - - "∟": [t: "прямой угол"] # 0x221f - - "∠": [t: "угол"] # 0x2220 - - "∡": [t: "измеренный угол"] # 0x2221 - - "∢": [t: "сферический угол"] # 0x2222 - - "∣": [t: "делит"] # 0x2223 - - "∤": [t: "не делит"] # 0x2224 - - "∩": [t: "пересечение"] # 0x2229 - - "∪": [t: "объединение"] # 0x222a - - "∫": [t: "интеграл"] # 0x222b - - "∬": [t: "двойной интеграл"] # 0x222c - - "∭": [t: "тройной интеграл"] # 0x222d - - "∯": [t: "поверхностный интеграл"] # 0x222f - - "∰": [t: "объёмный интеграл"] # 0x2230 - - "∱": [t: "интеграл по часовой"] # 0x2231 - - "∲": [t: "контурный интеграл по часовой"] # 0x2232 - - "∳": [t: "контурный интеграл против часовой"] # 0x2233 - - "∴": [t: "следовательно"] # 0x2234 - - "∵": [t: "потому что"] # 0x2235 - - "∸": [t: "точка минус"] # 0x2238 - - "∹": [t: "имеет избыток по сравнению с"] # 0x2239 - - "∺": # 0x223a - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "геометрически пропорционально" - - "∻": # 0x223b - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "гомотетично" - - "∽": [t: "обратная тильда"] # 0x223d - - "≀": [t: "венок"] # 0x2240 - - "≁": [t: "не тильда"] # 0x2241 - - "≂": [t: "минус тильда"] # 0x2242 - - "≃": # 0x2243 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "асимптотически равно" - - "≄": # 0x2244 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "не асимптотически равно" - - "≅": # 0x2245 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "конгруэнтно" - - "≆": # 0x2246 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "приблизительно, но не фактически равно" - - "≇": # 0x2247 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "не конгруэнтно" - - "≈": # 0x2248 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "приблизительно равно" - - "≉": # 0x2249 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "не приблизительно равно" - - "≊": # 0x224a - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "приблизительно равно или равно" - - "≋": [t: "тройная тильда"] # 0x224b - - "≌": [t: "все равны"] # 0x224c - - "≍": # 0x224d - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "эквивалентно" - - "≎": # 0x224e - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "геометрически эквивалентно" - - "≏": # 0x224f - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "разность" - - "≐": [t: "стремится к пределу"] # 0x2250 - - "≑": # 0x2251 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "геометрически равно" - - "≒": # 0x2252 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "приблизительно равно или образ" - - "≓": # 0x2253 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "образ или приблизительно равно" - - "≔": [t: "двоеточие равно"] # 0x2254 - - "≕": [t: "равно двоеточие"] # 0x2255 - - "≖": [t: "кольцо в равно"] # 0x2256 - - "≗": # 0x2257 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "приблизительно равно" - - "≘": [t: "соответствует"] # 0x2258 - - "≙": [t: "оценивает"] # 0x2259 - - "≚": # 0x225a - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "равноугольно" - - "≛": [t: "звезда равно"] # 0x225b - - "≜": [t: "дельта равно"] # 0x225c - - "≝": [t: "определяется как"] # 0x225d - - "≞": # 0x225e - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "измеряется" - - "≟": [t: "имеет неизвестное отношение с"] # 0x225f - - "≢": # 0x2262 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "не тождественно равно" - - "≣": # 0x2263 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "строго эквивалентно" - - "≨": # 0x2268 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "меньше, но не равно" - - "≩": # 0x2269 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "больше, но не равно" - - "≪": # 0x226a - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "много меньше" - - "≫": # 0x226b - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "много больше" - - "≬": # 0x226c - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "между" - - "≭": # 0x226d - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "не эквивалентно" - - "≮": # 0x226e - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "не меньше" - - "≯": # 0x226f - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "не больше" - - "≰": # 0x2270 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "ни меньше, ни равно" - - "≱": # 0x2271 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "ни больше, ни равно" - - "≲": # 0x2272 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "меньше или эквивалентно" - - "≳": # 0x2273 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "больше или эквивалентно" - - "≴": # 0x2274 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "ни меньше, ни эквивалентно" - - "≵": # 0x2275 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "ни больше, ни эквивалентно" - - "≶": # 0x2276 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "меньше или больше" - - "≷": # 0x2277 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "больше или меньше" - - "≸": # 0x2278 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "ни меньше, ни больше" - - "≹": # 0x2279 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "ни больше, ни меньше" - - "≺": [t: "предшествует"] # 0x227a - - "≼": [t: "предшествует или равно"] # 0x227c - - "≽": [t: "следует или равно"] # 0x227d - - "≾": [t: "предшествует или эквивалентно"] # 0x227e - - "≿": [t: "следует или эквивалентно"] # 0x227f - - "⊀": [t: "не предшествует"] # 0x2280 - - "⊁": [t: "не следует"] # 0x2281 - - "⊈": # 0x2288 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "ни подмножеством, ни равно" - - "⊉": # 0x2289 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "ни надмножеством, ни равно" - - "⊊": [t: "подмножество, но не равно"] # 0x228a - - "⊋": [t: "надмножество, но не равно"] # 0x228b - - "⊌": [t: "мультимножество"] # 0x228c - - "⊍": [t: "умножение мультимножеств"] # 0x228d - - "⊎": [t: "объединение мультимножеств"] # 0x228e - - "⊏": [t: "квадратный образ"] # 0x228f - - "⊐": [t: "квадратный прообраз"] # 0x2290 - - "⊑": [t: "квадратный образ или равно"] # 0x2291 - - "⊒": [t: "квадратный прообраз или равно"] # 0x2292 - - "⊓": [t: "квадратное пересечение"] # 0x2293 - - "⊔": [t: "квадратное объединение"] # 0x2294 - - "⊕": [t: "плюс в круге"] # 0x2295 - - "⊖": [t: "минус в круге"] # 0x2296 - - "⊗": [t: "умножить в круге"] # 0x2297 - - "⊘": [t: "косая черта в круге"] # 0x2298 - - "⊙": [t: "точка в круге"] # 0x2299 - - "⊚": [t: "кольцо в круге"] # 0x229a - - "⊛": [t: "звёздочка в круге"] # 0x229b - - "⊜": [t: "равно в круге"] # 0x229c - - "⊝": [t: "тире в круге"] # 0x229d - - "⊞": [t: "плюс в квадрате"] # 0x229e - - "⊟": [t: "минус в квадрате"] # 0x229f - - "⊠": [t: "умножить в квадрате"] # 0x22a0 - - "⊡": [t: "точка в квадрате"] # 0x22a1 - - "⊢": [t: "доказывает"] # 0x22a2 - - "⊣": [t: "не выводит"] # 0x22a3 - - "⊤": [t: "истина"] # 0x22a4 - - "⊥": # 0x22a5 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "ложь" - - "⊦": [t: "сводится к"] # 0x22a6 - - "⊧": [t: "моделирует"] # 0x22a7 - - "⊨": # 0x22a8 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "истинно" - - "⊩": [t: "форсирует"] # 0x22a9 - - "⊪": [t: "тройная вертикальная черта с правым турникетом"] # 0x22aa - - "⊫": [t: "двойная вертикальная черта с двойным правым турникетом"] # 0x22ab - - "⊬": [t: "не доказывает"] # 0x22ac - - "⊭": # 0x22ad - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "не истинно" - - "⊮": [t: "не форсирует"] # 0x22ae - - "⊯": [t: "отрицание двойной вертикальной черты с двойным правым турникетом"] # 0x22af - - "⊰": [t: "предшествует по отношению"] # 0x22b0 - - "⊱": [t: "следует по отношению"] # 0x22b1 - - "⊲": # 0x22b2 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "нормальной подгруппой" - - "⊳": [t: "содержит как нормальную подгруппу"] # 0x22b3 - - "⊴": # 0x22b4 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "нормальной подгруппой или равно" - - "⊵": [t: "содержит как нормальную подгруппу или равно"] # 0x22b5 - - "⊶": # 0x22b6 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "прообразом" - - "⊷": # 0x22b7 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "образом" - - "⊸": [t: "мультиотображение"] # 0x22b8 - - "⊹": [t: "эрмитово сопряжённая матрица"] # 0x22b9 - - "⊺": [t: "интеркалат"] # 0x22ba - - "⊻": [t: "исключающее или"] # 0x22bb - - "⊼": [t: "не-и"] # 0x22bc - - "⊽": [t: "не-или"] # 0x22bd - - "⊾": [t: "прямой угол с дугой"] # 0x22be - - "⊿": [t: "прямоугольный треугольник"] # 0x22bf - - "⋀": [t: "логическое и"] # 0x22c0 - - "⋁": [t: "логическое или"] # 0x22c1 - - "⋂": [t: "пересечение"] # 0x22c2 - - "⋃": [t: "объединение"] # 0x22c3 - - "⋄": [t: "ромб"] # 0x22c4 - - "⋅": # 0x22c5 - - test: - if: "@data-chem-formula-op" - then: [t: "точка"] - else: [t: "умножить"] - - - "⋆": [t: "умножить"] # 0x22c6 - - "⋇": [t: "деление с умножением"] # 0x22c7 - - "⋈": [t: "бантик"] # 0x22c8 - - "⋉": # 0x22c9 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "левым нормальным полупрямым произведением" - - "⋊": # 0x22ca - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "правым нормальным полупрямым произведением" - - "⋋": # 0x22cb - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "левым полупрямым произведением" - - "⋌": # 0x22cc - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "правым полупрямым произведением" - - "⋍": [t: "обратная тильда равно"] # 0x22cd - - "⋎": [t: "фигурное логическое или"] # 0x22ce - - "⋏": [t: "фигурное логическое и"] # 0x22cf - - "⋐": # 0x22d0 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "двойным подмножеством" - - "⋑": # 0x22d1 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "двойным надмножеством" - - "⋒": # 0x22d2 - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "двойное пересечение" - - "⋓": # 0x22d3 - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "двойное объединение" - - "⋔": # 0x22d4 - - test: - if: "$Verbosity!='Terse'" - then: [ot: "the"] - - t: "собственное пересечение" - - "⋕": # 0x22d5 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "равно и параллельно" - - "⋖": [t: "меньше с точкой"] # 0x22d6 - - "⋗": [t: "больше с точкой"] # 0x22d7 - - "⋘": # 0x22d8 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "очень много меньше" - - "⋙": # 0x22d9 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "очень много больше" - - "⋚": # 0x22da - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "меньше, равно или больше" - - "⋛": # 0x22db - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "больше, равно или меньше" - - "⋜": # 0x22dc - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "равно или меньше" - - "⋝": # 0x22dd - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "равно или больше" - - "⋞": # 0x22de - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "равно или предшествует" - - "⋟": # 0x22df - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "равно или следует" - - "⋠": [t: "не предшествует и не равно"] # 0x22e0 - - "⋡": [t: "не следует и не равно"] # 0x22e1 - - "⋢": [t: "не квадратный образ или равно"] # 0x22e2 - - "⋣": [t: "не квадратный прообраз или равно"] # 0x22e3 - - "⋤": [t: "квадратный образ или не равно"] # 0x22e4 - - "⋥": [t: "квадратный прообраз или не равно"] # 0x22e5 - - "⋦": # 0x22e6 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "меньше, но не эквивалентно" - - "⋧": # 0x22e7 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "больше, но не эквивалентно" - - "⋨": [t: "предшествует, но не эквивалентно"] # 0x22e8 - - "⋩": [t: "следует, но не эквивалентно"] # 0x22e9 - - "⋪": # 0x22ea - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "не нормальной подгруппой" - - "⋫": [t: "не содержит как нормальную подгруппу"] # 0x22eb - - "⋬": # 0x22ec - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "не нормальной подгруппой и не равно" - - "⋭": [t: "не содержит как нормальную подгруппу и не равно"] # 0x22ed - - "⋮": [t: "вертикальное многоточие"] # 0x22ee - - "⋯": [t: "точка точка точка"] # 0x22ef - - "⋰": [t: "диагональное многоточие вверх"] # 0x22f0 - - "⋱": [t: "диагональное многоточие"] # 0x22f1 - - "⋲": [t: "элемент с длинным горизонтальным штрихом"] # 0x22f2 - - "⋳": [t: "элемент с вертикальной чертой в конце горизонтального штриха"] # 0x22f3 - - "⋴": [t: "элемент с вертикальной чертой в конце горизонтального штриха"] # 0x22f4 - - "⋵": [t: "элемент с точкой сверху"] # 0x22f5 - - "⋶": [t: "элемент с надчеркиванием"] # 0x22f6 - - "⋷": [t: "элемент с надчеркиванием"] # 0x22f7 - - "⋸": [t: "элемент с подчеркиванием"] # 0x22f8 - - "⋹": [t: "элемент с двумя горизонтальными штрихами"] # 0x22f9 - - "⋺": [t: "содержит с длинным горизонтальным штрихом"] # 0x22fa - - "⋻": [t: "содержит с вертикальной чертой в конце горизонтального штриха"] # 0x22fb - - "⋼": [t: "содержит с вертикальной чертой в конце горизонтального штриха"] # 0x22fc - - "⋽": [t: "содержит с надчеркиванием"] # 0x22fd - - "⋾": [t: "содержит с надчеркиванием"] # 0x22fe - - "⋿": [t: "Z-нотация принадлежность мультимножеству"] # 0x22ff - - "⌀": [t: "диаметр"] # 0x2300 - - "⌁": [t: "электрическая стрелка"] # 0x2301 - - "⌂": [t: "домик"] # 0x2302 - - "⌃": [t: "наконечник стрелки вверх"] # 0x2303 - - "⌄": [t: "наконечник стрелки вниз"] # 0x2304 - - "⌅": [t: "проективный"] # 0x2305 - - "⌆": [t: "перспектива"] # 0x2306 - - "⌇": [t: "волнистая линия"] # 0x2307 - - "⌈": [t: "левый потолок"] # 0x2308 - - "⌉": [t: "правый потолок"] # 0x2309 - - "⌊": [t: "левый пол"] # 0x230a - - "⌋": [t: "правый пол"] # 0x230b - - "⌌": [t: "нижняя правая обрезка"] # 0x230c - - "⌍": [t: "нижняя левая обрезка"] # 0x230d - - "⌎": [t: "верхняя правая обрезка"] # 0x230e - - "⌏": [t: "верхняя левая обрезка"] # 0x230f - - "⌐": [t: "обратный знак отрицания"] # 0x2310 - - "⌑": [t: "квадратная луковица"] # 0x2311 - - "⌒": [t: "дуга"] # 0x2312 - - "⌓": [t: "сегмент"] # 0x2313 - - "⌔": [t: "сектор"] # 0x2314 - - "⌕": [t: "телефонный рекордер"] # 0x2315 - - "⌖": [t: "перекрестие индикатора позиции"] # 0x2316 - - "⌗": [t: "квадрат видеоданных"] # 0x2317 - - "⌘": [t: "знак места интереса"] # 0x2318 - - "⌙": [t: "перевёрнутый знак отрицания"] # 0x2319 - - "⌚": [t: "часы"] # 0x231a - - "⌛": [t: "песочные часы"] # 0x231b - - "⌜": [t: "верхний левый угол"] # 0x231c - - "⌝": [t: "верхний правый угол"] # 0x231d - - "⌞": [t: "нижний левый угол"] # 0x231e - - "⌟": [t: "нижний правый угол"] # 0x231f - - "⌠": [t: "верхняя половина интеграла"] # 0x2320 - - "⌡": [t: "нижняя половина интеграла"] # 0x2321 - - "⌢": [t: "хмурый"] # 0x2322 - - "⌣": [t: "улыбка"] # 0x2323 - - "⌤": [t: "наконечник стрелки вверх между двумя горизонтальными чертами"] # 0x2324 - - "⌥": [t: "клавиша Option"] # 0x2325 - - "⌦": [t: "стереть вправо"] # 0x2326 - - "⌧": [t: "x в прямоугольной рамке"] # 0x2327 - - "⌨": [t: "клавиатура"] # 0x2328 - - "〈": [t: "левая угловая скобка"] # 0x2329 - - "〉": [t: "правая угловая скобка"] # 0x232a - - "⌫": [t: "стереть влево"] # 0x232b - - "⌬": [t: "бензольное кольцо"] # 0x232c - - "⌭": [t: "цилиндричность"] # 0x232d - - "⌮": [t: "профиль по всему контуру"] # 0x232e - - "⌯": [t: "симметрия"] # 0x232f - - "⌰": [t: "полное радиальное биение"] # 0x2330 - - "⌱": [t: "начало размера"] # 0x2331 - - "⌲": [t: "конусность"] # 0x2332 - - "⌳": [t: "уклон"] # 0x2333 - - "⌴": [t: "цековка"] # 0x2334 - - "⌵": [t: "зенковка"] # 0x2335 - - "⌶": [t: "APL двутавр"] # 0x2336 - - "⌽": [t: "APL круговой столбик"] # 0x233d - - "⌿": [t: "APL косая черта"] # 0x233f - - "⍰": [t: "неизвестный ящик"] # 0x2370 - - "⍼": [t: "прямой угол с зигзагообразной стрелкой вниз"] # 0x237c - - "⎔": [t: "шестиугольник"] # 0x2394 - - "⎕": [t: "ящик"] # 0x2395 - - "⎶": [t: "нижняя квадратная скобка над верхней квадратной скобкой"] # 0x23b6 - - "⏜": [t: "верхняя скобка"] # 0x23dc - - "⏝": [t: "нижняя скобка"] # 0x23dd - - "⏞": [t: "верхняя фигурная скобка"] # 0x23de - - "⏟": [t: "нижняя фигурная скобка"] # 0x23df - - "⏠": [t: "верхняя черепашья скобка"] # 0x23e0 - - "⏡": [t: "нижняя черепашья скобка"] # 0x23e1 - - "⏢": [t: "белая трапеция"] # 0x23e2 - - "⏣": [t: "бензол с кругом справа"] # 0x23e3 - - "⏤": [t: "прямолинейность"] # 0x23e4 - - "⏥": [t: "плоскостность"] # 0x23e5 - - "⏦": # 0x23e6 - - spell: "ac" - - t: "ток" - - "⏧": [t: "электрическое пересечение"] # 0x23e7 - - "①": [t: "один в кружке"] - - "⑨": [t: "девять в кружке"] - - "②③④⑤⑥⑦⑧": # 0x2461 - 0x2468 - - t: "в кружке" - - spell: "translate('.', '②③④⑤⑥⑦⑧', '2345678')" - - "⑩": [t: "десять в круге"] # 0x2469 - - "⑪": [t: "одиннадцать в круге"] # 0x246a - - "⑫": [t: "двенадцать в круге"] # 0x246b - - "⑬": [t: "тринадцать в круге"] # 0x246c - - "⑭": [t: "четырнадцать в круге"] # 0x246d - - "⑮": [t: "пятнадцать в круге"] # 0x246e - - "⑯": [t: "шестнадцать в круге"] # 0x246f - - "⑰": [t: "семнадцать в круге"] # 0x2470 - - "⑱": [t: "восемнадцать в круге"] # 0x2471 - - "⑳": [t: "двадцать в круге"] # 0x2473 - - "⑴": [t: "один в скобках"] - - "⑼": [t: "девять в скобках"] - - "⑵⑶⑷⑸⑹⑺⑻": # 0x2475 - 0x247c - - t: "в скобках" - - spell: "translate('.', '⑵⑶⑷⑸⑹⑺⑻', '2345678')" - - "⑽": [t: "десять в скобках"] # 0x247d - - "⑾": [t: "одиннадцать в скобках"] # 0x247e - - "⑿": [t: "двенадцать в скобках"] # 0x247f - - "⒀": [t: "тринадцать в скобках"] # 0x2480 - - "⒁": [t: "четырнадцать в скобках"] # 0x2481 - - "⒂": [t: "пятнадцать в скобках"] # 0x2482 - - "⒃": [t: "шестнадцать в скобках"] # 0x2483 - - "⒄": [t: "семнадцать в скобках"] # 0x2484 - - "⒅": [t: "восемнадцать в скобках"] # 0x2485 - - "⒆": [t: "девятнадцать в скобках"] # 0x2486 - - "⒇": [t: "двадцать в скобках"] # 0x2487 - - "⒈": [t: "один с точкой"] - - "⒐": [t: "девять с точкой"] - - "⒉⒊⒋⒌⒍⒎⒏": # 0x2489 - 0x2490 - - spell: "translate('.', '⒉⒊⒋⒌⒍⒎⒏', '2345678')" - - t: "с точкой" - - "⒑": [t: "десять с точкой"] # 0x2491 - - "⒒": [t: "одиннадцать с точкой"] # 0x2492 - - "⒓": [t: "двенадцать с точкой"] # 0x2493 - - "⒔": [t: "тринадцать с точкой"] # 0x2494 - - "⒕": [t: "четырнадцать с точкой"] # 0x2495 - - "⒖": [t: "пятнадцать с точкой"] # 0x2496 - - "⒗": [t: "шестнадцать с точкой"] # 0x2497 - - "⒘": [t: "семнадцать с точкой"] # 0x2498 - - "⒙": [t: "восемнадцать с точкой"] # 0x2499 - - "⒚": [t: "девятнадцать с точкой"] # 0x249a - - "⒛": [t: "двадцать с точкой"] # 0x249b - - "⒜-⒵": # 0x249c - 0x24b5 - - spell: "translate('.', '⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵', 'abcdefghijklmnopqrstuvwxyz')" - - t: "в скобках" - - - "Ⓐ-ⓩ": # 0x24b6 - 0x24cf - - spell: "translate('.', 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - t: "в кружке" - - - "🅐-🅩": # 0x1f150 - 0x1f169 - - t: "в чёрном круге" - - spell: "translate('.', '🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "ⓐ-ⓩ": # 0x24d0 - 0x24e9 - - spell: "translate('.', 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ', 'abcdefghijklmnopqrstuvwxyz')" - - t: "в кружке" - - "⓪": [t: "ноль в круге"] # 0x24ea - - "⓫": [t: "одиннадцать в чёрном круге"] # 0x24eb - - "⓬": [t: "двенадцать в чёрном круге"] # 0x24ec - - "⓭": [t: "тринадцать в чёрном круге"] # 0x24ed - - "⓮": [t: "четырнадцать в чёрном круге"] # 0x24ee - - "⓯": [t: "пятнадцать в чёрном круге"] # 0x24ef - - "⓰": [t: "шестнадцать в чёрном круге"] # 0x24f0 - - "⓱": [t: "семнадцать в чёрном круге"] # 0x24f1 - - "⓲": [t: "восемнадцать в чёрном круге"] # 0x24f2 - - "⓳": [t: "девятнадцать в чёрном круге"] # 0x24f3 - - "⓴": [t: "двадцать в чёрном круге"] # 0x24f4 - - "⓵": [t: "один в двойном кружке"] - - "⓽": [t: "девять в двойном кружке"] - - "⓶⓷⓸⓹⓺⓻⓼": # 0x24f6 - 0x24fd - - t: "в двойном кружке" - - spell: "translate('.', '⓶⓷⓸⓹⓺⓻⓼', '2345678')" - - "⓾": [t: "десять в двойном круге"] # 0x24fe - - "⓿": [t: "ноль в чёрном круге"] # 0x24ff - - "■": [t: "чёрный квадрат"] # 0x25a0 - - "□": [t: "белый квадрат"] # 0x25a1 - - "▢": [t: "белый квадрат со скруглёнными углами"] # 0x25a2 - - "▣": [t: "белый квадрат, содержащий маленький чёрный квадрат"] # 0x25a3 - - "▤": [t: "квадрат с горизонтальной заливкой"] # 0x25a4 - - "▥": [t: "квадрат с вертикальной заливкой"] # 0x25a5 - - "▦": [t: "квадрат с ортогональной перекрёстной штриховкой"] # 0x25a6 - - "▧": [t: "квадрат с заливкой от верхнего левого к нижнему правому"] # 0x25a7 - - "▨": [t: "квадрат с заливкой от верхнего правого к нижнему левому"] # 0x25a8 - - "▩": [t: "квадрат с диагональной перекрёстной штриховкой"] # 0x25a9 - - "▪": [t: "чёрный маленький квадрат"] # 0x25aa - - "▫": [t: "белый маленький квадрат"] # 0x25ab - - "▬": [t: "чёрный прямоугольник"] # 0x25ac - - "▭": [t: "белый прямоугольник"] # 0x25ad - - "▮": [t: "чёрный вертикальный прямоугольник"] # 0x25ae - - "▯": [t: "белый вертикальный прямоугольник"] # 0x25af - - "▰": [t: "чёрный параллелограмм"] # 0x25b0 - - "▱": [t: "белый параллелограмм"] # 0x25b1 - - "▲": [t: "чёрный треугольник остриём вверх"] # 0x25b2 - - "△": [t: "треугольник"] # 0x25b3 - - "▴": [t: "чёрный маленький треугольник остриём вверх"] # 0x25b4 - - "▵": [t: "белый маленький треугольник остриём вверх"] # 0x25b5 - - "▶": [t: "чёрный треугольник остриём вправо"] # 0x25b6 - - "▷": [t: "белый треугольник остриём вправо"] # 0x25b7 - - "▸": [t: "чёрный маленький треугольник остриём вправо"] # 0x25b8 - - "▹": [t: "белый маленький треугольник остриём вправо"] # 0x25b9 - - "►": [t: "чёрный указатель вправо"] # 0x25ba - - "▻": [t: "белый указатель вправо"] # 0x25bb - - "▼": [t: "чёрный треугольник остриём вниз"] # 0x25bc - - "▽": [t: "белый треугольник остриём вниз"] # 0x25bd - - "▾": [t: "чёрный маленький треугольник остриём вниз"] # 0x25be - - "▿": [t: "белый маленький треугольник остриём вниз"] # 0x25bf - - "◀": [t: "чёрный треугольник остриём влево"] # 0x25c0 - - "◁": [t: "белый треугольник остриём влево"] # 0x25c1 - - "◂": [t: "чёрный маленький треугольник остриём влево"] # 0x25c2 - - "◃": [t: "белый маленький треугольник остриём влево"] # 0x25c3 - - "◄": [t: "чёрный указатель влево"] # 0x25c4 - - "◅": [t: "белый указатель влево"] # 0x25c5 - - "◆": [t: "чёрный ромб"] # 0x25c6 - - "◇": [t: "белый ромб"] # 0x25c7 - - "◈": [t: "белый ромб, содержащий чёрный маленький ромб"] # 0x25c8 - - "◉": [t: "рыбий глаз"] # 0x25c9 - - "◊": [t: "луковица"] # 0x25ca - - "○": [t: "белый круг"] # 0x25cb - - "◌": [t: "пунктирный круг"] # 0x25cc - - "◍": [t: "круг с вертикальной заливкой"] # 0x25cd - - "◎": [t: "мишень"] # 0x25ce - - "●": [t: "чёрный круг"] # 0x25cf - - "◐": [t: "круг с левой половиной чёрной"] # 0x25d0 - - "◑": [t: "круг с правой половиной чёрной"] # 0x25d1 - - "◒": [t: "круг с нижней половиной чёрной"] # 0x25d2 - - "◓": [t: "круг с верхней половиной чёрной"] # 0x25d3 - - "◔": [t: "круг с верхним правым квадрантом чёрным"] # 0x25d4 - - "◕": [t: "круг со всем, кроме верхнего левого квадранта, чёрным"] # 0x25d5 - - "◖": [t: "левая половина чёрного круга"] # 0x25d6 - - "◗": [t: "правая половина чёрного круга"] # 0x25d7 - - "◘": [t: "инверсный буллит"] # 0x25d8 - - "◙": [t: "инверсный белый круг"] # 0x25d9 - - "◚": [t: "верхняя половина инверсного белого круга"] # 0x25da - - "◛": [t: "нижняя половина инверсного белого круга"] # 0x25db - - "◜": [t: "дуга верхнего левого квадранта"] # 0x25dc - - "◝": [t: "дуга верхнего правого квадранта"] # 0x25dd - - "◞": [t: "дуга нижнего правого квадранта"] # 0x25de - - "◟": [t: "дуга нижнего левого квадранта"] # 0x25df - - "◠": [t: "верхняя половина круга"] # 0x25e0 - - "◡": [t: "нижняя половина круга"] # 0x25e1 - - "◢": [t: "чёрный нижний правый треугольник"] # 0x25e2 - - "◣": [t: "чёрный нижний левый треугольник"] # 0x25e3 - - "◤": [t: "чёрный верхний левый треугольник"] # 0x25e4 - - "◥": [t: "чёрный верхний правый треугольник"] # 0x25e5 - - "◦": [t: "композиция"] # 0x25e6 - - "◧": [t: "квадрат с левой половиной чёрной"] # 0x25e7 - - "◨": [t: "квадрат с правой половиной чёрной"] # 0x25e8 - - "◩": [t: "квадрат с верхней левой половиной чёрной"] # 0x25e9 - - "◪": [t: "квадрат с нижней правой половиной чёрной"] # 0x25ea - - "◫": [t: "белый квадрат с биссектрисой"] # 0x25eb - - "◬": [t: "белый треугольник остриём вверх с точкой"] # 0x25ec - - "◭": [t: "треугольник остриём вверх с левой половиной чёрной"] # 0x25ed - - "◮": [t: "треугольник остриём вверх с правой половиной чёрной"] # 0x25ee - - "◯": [t: "большой круг"] # 0x25ef - - "◰": [t: "белый квадрат с верхним левым квадрантом"] # 0x25f0 - - "◱": [t: "белый квадрат с нижним левым квадрантом"] # 0x25f1 - - "◲": [t: "белый квадрат с нижним правым квадрантом"] # 0x25f2 - - "◳": [t: "белый квадрат с верхним правым квадрантом"] # 0x25f3 - - "◴": [t: "белый круг с верхним левым квадрантом"] # 0x25f4 - - "◵": [t: "белый круг с нижним левым квадрантом"] # 0x25f5 - - "◶": [t: "белый круг с нижним правым квадрантом"] # 0x25f6 - - "◷": [t: "белый круг с верхним правым квадрантом"] # 0x25f7 - - "◸": [t: "верхний левый треугольник"] # 0x25f8 - - "◹": [t: "верхний правый треугольник"] # 0x25f9 - - "◺": [t: "нижний левый треугольник"] # 0x25fa - - "◻": [t: "белый средний квадрат"] # 0x25fb - - "◼": [t: "чёрный средний квадрат"] # 0x25fc - - "◽": [t: "белый средне-маленький квадрат"] # 0x25fd - - "◾": [t: "чёрный средне-маленький квадрат"] # 0x25fe - - "◿": [t: "нижний правый треугольник"] # 0x25ff - - "★": [t: "чёрная звезда"] # 0x2605 - - "☆": [t: "белая звезда"] # 0x2606 - - "☉": [t: "солнце"] # 0x2609 - - "☌": [t: "соединение"] # 0x260c - - "☒": [t: "бюллетень с крестиком"] # 0x2612 - - "☽": [t: "растущая луна"] # 0x263d - - "☾": [t: "убывающая луна"] # 0x263e - - "☿": [t: "Меркурий"] # 0x263f - - "♀": [t: "женский"] # 0x2640 - - "♁": [t: "Земля"] # 0x2641 - - "♂": [t: "мужской"] # 0x2642 - - "♃": [t: "Юпитер"] # 0x2643 - - "♄": [t: "Сатурн"] # 0x2644 - - "♅": [t: "Уран"] # 0x2645 - - "♆": [t: "Нептун"] # 0x2646 - - "♇": [t: "Плутон"] # 0x2647 - - "♈": [t: "Овен"] # 0x2648 - - "♉": [t: "Телец"] # 0x2649 - - "♩": [t: "четвертная нота"] # 0x2669 - - "♭": [t: "бемоль"] # 0x266d - - "♮": [t: "бекар"] # 0x266e - - "♯": [t: "диез"] # 0x266f - - "♠": [t: "чёрная масть пики"] # 0x2660 - - "♡": [t: "белая масть червы"] # 0x2661 - - "♢": [t: "белая масть бубны"] # 0x2662 - - "♣": [t: "чёрная масть трефы"] # 0x2663 - - "♤": [t: "белая масть пики"] # 0x2664 - - "♥": [t: "чёрная масть червы"] # 0x2665 - - "♦": [t: "чёрная масть бубны"] # 0x2666 - - "♧": [t: "белая масть трефы"] # 0x2667 - - "⚀": [t: "кость 1"] # 0x2680 - - "⚁": [t: "кость 2"] # 0x2681 - - "⚂": [t: "кость 3"] # 0x2682 - - "⚃": [t: "кость 4"] # 0x2683 - - "⚄": [t: "кость 5"] # 0x2684 - - "⚅": [t: "кость 6"] # 0x2685 - - "⚆": [t: "белый круг с точкой справа"] # 0x2686 - - "⚇": [t: "белый круг с двумя точками"] # 0x2687 - - "⚈": [t: "чёрный круг с точкой справа"] # 0x2688 - - "⚉": [t: "чёрный круг с двумя точками"] # 0x2689 - - "⚪": [t: "средний белый круг"] # 0x26aa - - "⚫": [t: "средний чёрный круг"] # 0x26ab - - "⚬": [t: "средний маленький белый круг"] # 0x26ac - - "⚲": [t: "средний род"] # 0x26b2 - - "✓": [t: "галочка"] # 0x2713 - - "✠": [t: "мальтийский крест"] # 0x2720 - - "✪": [t: "белая звезда в круге"] # 0x272a - - "✶": [t: "шестиконечная чёрная звезда"] # 0x2736 - - "❨": [t: "средний левый круглый орнамент"] # 0x2768 - - "❩": [t: "средний правый круглый орнамент"] # 0x2769 - - "❪": [t: "средний уплощённый левый круглый орнамент"] # 0x276a - - "❫": [t: "средний уплощённый правый круглый орнамент"] # 0x276b - - "❬": [t: "средний левый угловой орнамент"] # 0x276c - - "❭": [t: "средний правый угловой орнамент"] # 0x276d - - "❮": [t: "жирный левый угловой кавычковый орнамент"] # 0x276e - - "❯": [t: "жирный правый угловой кавычковый орнамент"] # 0x276f - - "❰": [t: "жирный левый угловой орнамент"] # 0x2770 - - "❱": [t: "жирный правый угловой орнамент"] # 0x2771 - - "❲": [t: "лёгкий левый черепаший орнамент"] # 0x2772 - - "❳": [t: "лёгкий правый черепаший орнамент"] # 0x2773 - - "❴": [t: "средний левый фигурный орнамент"] # 0x2774 - - "❵": [t: "средний правый фигурный орнамент"] # 0x2775 - - "❶": [t: "один в чёрном круге"] # 0x2776 - - "❷": [t: "два в чёрном круге"] # 0x2777 - - "❸": [t: "три в чёрном круге"] # 0x2778 - - "❹": [t: "четыре в чёрном круге"] # 0x2779 - - "❺": [t: "пять в чёрном круге"] # 0x277a - - "❻": [t: "шесть в чёрном круге"] # 0x277b - - "❼": [t: "семь в чёрном круге"] # 0x277c - - "❽": [t: "восемь в чёрном круге"] # 0x277d - - "❾": [t: "девять в чёрном круге"] # 0x277e - - "❿": [t: "десять в чёрном круге"] # 0x277f - - "➀": [t: "один в круге без засечек"] # 0x2780 - - "➁": [t: "два в круге без засечек"] # 0x2781 - - "➂": [t: "три в круге без засечек"] # 0x2782 - - "➃": [t: "четыре в круге без засечек"] # 0x2783 - - "➄": [t: "пять в круге без засечек"] # 0x2784 - - "➅": [t: "шесть в круге без засечек"] # 0x2785 - - "➆": [t: "семь в круге без засечек"] # 0x2786 - - "➇": [t: "восемь в круге без засечек"] # 0x2787 - - "➈": [t: "девять в круге без засечек"] # 0x2788 - - "➉": [t: "десять в круге без засечек"] # 0x2789 - - "➊": [t: "один в чёрном круге без засечек"] # 0x278a - - "➋": [t: "два в чёрном круге без засечек"] # 0x278b - - "➌": [t: "три в чёрном круге без засечек"] # 0x278c - - "➍": [t: "четыре в чёрном круге без засечек"] # 0x278d - - "➎": [t: "пять в чёрном круге без засечек"] # 0x278e - - "➏": [t: "шесть в чёрном круге без засечек"] # 0x278f - - "➐": [t: "семь в чёрном круге без засечек"] # 0x2790 - - "➑": [t: "восемь в чёрном круге без засечек"] # 0x2791 - - "➒": [t: "девять в чёрном круге без засечек"] # 0x2792 - - "➓": [t: "десять в чёрном круге без засечек"] # 0x2793 - - "➔": [t: "жирная широкая стрелка вправо"] # 0x2794 - - "➕": [t: "жирный знак плюс"] # 0x2795 - - "➖": [t: "жирный знак минус"] # 0x2796 - - "➗": [t: "жирный знак деления"] # 0x2797 - - "➘": [t: "жирная стрелка на юго-восток"] # 0x2798 - - "➙": [t: "жирная стрелка вправо"] # 0x2799 - - "➚": [t: "жирная стрелка на северо-восток"] # 0x279a - - "➛": [t: "стрелка вправо с чертёжным наконечником"] # 0x279b - - "➜": [t: "жирная стрелка вправо с закруглённым наконечником"] # 0x279c - - "➝": [t: "стрелка вправо с треугольным наконечником"] # 0x279d - - "➞": [t: "жирная стрелка вправо с треугольным наконечником"] # 0x279e - - "➟": [t: "пунктирная стрелка вправо с треугольным наконечником"] # 0x279f - - "➠": [t: "жирная пунктирная стрелка вправо с треугольным наконечником"] # 0x27a0 - - "➡": [t: "чёрная стрелка вправо"] # 0x27a1 - - "➢": [t: "трёхмерная стрелка вправо с верхней подсветкой"] # 0x27a2 - - "➣": [t: "трёхмерная стрелка вправо с нижней подсветкой"] # 0x27a3 - - "➤": [t: "чёрный наконечник стрелки вправо"] # 0x27a4 - - "➥": [t: "жирная чёрная изогнутая вниз и вправо стрелка"] # 0x27a5 - - "➦": [t: "жирная чёрная изогнутая вверх и вправо стрелка"] # 0x27a6 - - "➧": [t: "приземистая чёрная стрелка вправо"] # 0x27a7 - - "➨": [t: "жирная чёрная стрелка вправо с вогнутым наконечником"] # 0x27a8 - - "➩": [t: "белая стрелка вправо с правой тенью"] # 0x27a9 - - "➪": [t: "белая стрелка вправо с левой тенью"] # 0x27aa - - "➫": [t: "белая стрелка вправо с задней наклонной тенью"] # 0x27ab - - "➬": [t: "белая стрелка вправо с передней наклонной тенью"] # 0x27ac - - "➭": [t: "белая стрелка вправо с жирной нижней правой тенью"] # 0x27ad - - "➮": [t: "белая стрелка вправо с жирной верхней правой тенью"] # 0x27ae - - "➯": [t: "белая стрелка вправо с нижней правой тенью и зарубкой"] # 0x27af - - "➱": [t: "белая стрелка вправо с верхней правой тенью и зарубкой"] # 0x27b1 - - "➲": [t: "жирная белая стрелка вправо в круге"] # 0x27b2 - - "➳": [t: "белая оперённая стрелка вправо"] # 0x27b3 - - "➴": [t: "чёрная оперённая стрелка на юго-восток"] # 0x27b4 - - "➵": [t: "чёрная оперённая стрелка вправо"] # 0x27b5 - - "➶": [t: "чёрная оперённая стрелка на северо-восток"] # 0x27b6 - - "➷": [t: "жирная чёрная оперённая стрелка на юго-восток"] # 0x27b7 - - "➸": [t: "жирная чёрная оперённая стрелка вправо"] # 0x27b8 - - "➹": [t: "жирная чёрная оперённая стрелка на северо-восток"] # 0x27b9 - - "➺": [t: "стрелка вправо с каплевидным наконечником"] # 0x27ba - - "➻": [t: "жирная стрелка вправо с каплевидным древком"] # 0x27bb - - "➼": [t: "стрелка вправо с клиновидным хвостом"] # 0x27bc - - "➽": [t: "жирная стрелка вправо с клиновидным хвостом"] # 0x27bd - - "➾": [t: "контурная стрелка вправо"] # 0x27be - - "⟀": [t: "трёхмерный угол"] # 0x27c0 - - "⟁": [t: "белый треугольник, содержащий маленький белый треугольник"] # 0x27c1 - - "⟂": # 0x27c2 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "перпендикуляром к" - - "⟃": # 0x27c3 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "открытым подмножеством" - - "⟄": # 0x27c4 - - test: - if: "$Verbosity!='Terse'" - then: [t: "является"] - - t: "открытым надмножеством" - - "⟅": [t: "левый S-образный разделитель"] # 0x27c5 - - "⟆": [t: "правый S-образный разделитель"] # 0x27c6 - - "⟇": [t: "или с точкой внутри"] # 0x27c7 - - "⟈": [t: "обратная косая перед подмножеством"] # 0x27c8 - - "⟉": [t: "надмножество перед косой"] # 0x27c9 - - "⟊": [t: "вертикальная черта с горизонтальным штрихом"] # 0x27ca - - "⟋": [t: "математическая восходящая диагональ"] # 0x27cb - - "⟌": [t: "длинное деление"] # 0x27cc - - "⟍": [t: "математическая нисходящая диагональ"] # 0x27cd - - "⟎": [t: "квадратное логическое и"] # 0x27ce - - "⟏": [t: "квадратное логическое или"] # 0x27cf - - "⟐": [t: "белый ромб с центральной точкой"] # 0x27d0 - - "⟑": [t: "и с точкой"] # 0x27d1 - - "⟒": [t: "элемент, открывающийся вверх"] # 0x27d2 - - "⟓": [t: "нижний правый угол с точкой"] # 0x27d3 - - "⟔": [t: "верхний левый угол с точкой"] # 0x27d4 - - "⟕": [t: "левое внешнее соединение"] # 0x27d5 - - "⟖": [t: "правое внешнее соединение"] # 0x27d6 - - "⟗": [t: "полное внешнее соединение"] # 0x27d7 - - "⟘": [t: "большой верхний таск"] # 0x27d8 - - "⟙": [t: "большой нижний таск"] # 0x27d9 - - "⟚": [t: "левый и правый двойной турникет"] # 0x27da - - "⟛": [t: "левый и правый таск"] # 0x27db - - "⟜": [t: "левое мультиотображение"] # 0x27dc - - "⟝": [t: "длинный правый таск"] # 0x27dd - - "⟞": [t: "длинный левый таск"] # 0x27de - - "⟟": [t: "верхний таск с кругом сверху"] # 0x27df - - "⟠": [t: "луковица, разделённая горизонтальной линией"] # 0x27e0 - - "⟡": [t: "белый вогнутый ромб"] # 0x27e1 - - "⟢": [t: "белый вогнутый ромб с левой отметкой"] # 0x27e2 - - "⟣": [t: "белый вогнутый ромб с правой отметкой"] # 0x27e3 - - "⟤": [t: "белый квадрат с левой отметкой"] # 0x27e4 - - "⟥": [t: "белый квадрат с правой отметкой"] # 0x27e5 - - "⟦": [t: "левая белая квадратная скобка"] # 0x27e6 - - "⟧": [t: "правая белая квадратная скобка"] # 0x27e7 - - "⟨": [t: "левая угловая скобка"] # 0x27e8 - - "⟩": [t: "правая угловая скобка"] # 0x27e9 - - "⟪": [t: "левая двойная угловая скобка"] # 0x27ea - - "⟫": [t: "правая двойная угловая скобка"] # 0x27eb - - "⟬": [t: "левая белая черепашья скобка"] # 0x27ec - - "⟭": [t: "правая белая черепашья скобка"] # 0x27ed - - "⟮": [t: "левая уплощённая скобка"] # 0x27ee - - "⟯": [t: "правая уплощённая скобка"] # 0x27ef - - "⟰": [t: "верхняя четверная стрелка"] # 0x27f0 - - "⟱": [t: "нижняя четверная стрелка"] # 0x27f1 - - "⟲": [t: "круговая стрелка против часовой с разрывом"] # 0x27f2 - - "⟳": [t: "круговая стрелка по часовой с разрывом"] # 0x27f3 - - "⟴": [t: "стрелка вправо с плюсом в круге"] # 0x27f4 - - "⟵": [t: "длинная стрелка влево"] # 0x27f5 - - "⟶": [t: "длинная стрелка вправо"] # 0x27f6 - - "⟷": [t: "длинная стрелка влево-вправо"] # 0x27f7 - - "⟸": [t: "длинная левая двойная стрелка"] # 0x27f8 - - "⟹": [t: "следует"] # 0x27f9 - - "⟺": [t: "тогда и только тогда"] # 0x27fa - - "⟻": [t: "длинная стрелка влево от черты"] # 0x27fb - - "⟼": [t: "длинная стрелка вправо от черты"] # 0x27fc - - "⟽": [t: "длинная левая двойная стрелка от черты"] # 0x27fd - - "⟾": [t: "длинная правая двойная стрелка от черты"] # 0x27fe - - "⟿": [t: "длинная волнистая стрелка вправо"] # 0x27ff - - "⤀": [t: "стрелка вправо с двумя наконечниками и вертикальным штрихом"] # 0x2900 - - "⤁": [t: "стрелка вправо с двумя наконечниками и двойным вертикальным штрихом"] # 0x2901 - - "⤂": [t: "левая двойная стрелка с вертикальным штрихом"] # 0x2902 - - "⤃": [t: "правая двойная стрелка с вертикальным штрихом"] # 0x2903 - - "⤄": [t: "двойная стрелка влево-вправо с вертикальным штрихом"] # 0x2904 - - "⤅": [t: "стрелка вправо с двумя наконечниками от черты"] # 0x2905 - - "⤆": [t: "левая двойная стрелка от черты"] # 0x2906 - - "⤇": [t: "правая двойная стрелка от черты"] # 0x2907 - - "⤈": [t: "стрелка вниз с горизонтальным штрихом"] # 0x2908 - - "⤉": [t: "стрелка вверх с горизонтальным штрихом"] # 0x2909 - - "⤊": [t: "верхняя тройная стрелка"] # 0x290a - - "⤋": [t: "нижняя тройная стрелка"] # 0x290b - - "⤌": [t: "левая двойная пунктирная стрелка"] # 0x290c - - "⤍": [t: "правая двойная пунктирная стрелка"] # 0x290d - - "⤎": [t: "левая тройная пунктирная стрелка"] # 0x290e - - "⤏": [t: "правая тройная пунктирная стрелка"] # 0x290f - - "⤐": [t: "стрелка вправо с двумя наконечниками и тройным пунктиром"] # 0x2910 - - "⤑": [t: "стрелка вправо с пунктирным стволом"] # 0x2911 - - "⤒": [t: "стрелка вверх к черте"] # 0x2912 - - "⤓": [t: "стрелка вниз к черте"] # 0x2913 - - "⤔": [t: "стрелка вправо с хвостом и вертикальным штрихом"] # 0x2914 - - "⤕": [t: "стрелка вправо с хвостом и двойным вертикальным штрихом"] # 0x2915 - - "⤖": [t: "стрелка вправо с двумя наконечниками и хвостом"] # 0x2916 - - "⤗": [t: "стрелка вправо с двумя наконечниками, хвостом и вертикальным штрихом"] # 0x2917 - - "⤘": [t: "стрелка вправо с двумя наконечниками, хвостом и двойным вертикальным штрихом"] # 0x2918 - - "⤙": [t: "хвост стрелки влево"] # 0x2919 - - "⤚": [t: "хвост стрелки вправо"] # 0x291a - - "⤛": [t: "хвост левой двойной стрелки"] # 0x291b - - "⤜": [t: "хвост правой двойной стрелки"] # 0x291c - - "⤝": [t: "стрелка влево к залитому ромбу"] # 0x291d - - "⤞": [t: "стрелка вправо к залитому ромбу"] # 0x291e - - "⤟": [t: "стрелка влево от черты к залитому ромбу"] # 0x291f - - "⤠": [t: "стрелка вправо от черты к залитому ромбу"] # 0x2920 - - "⤡": [t: "стрелка на северо-запад и юго-восток"] # 0x2921 - - "⤢": [t: "стрелка на северо-восток и юго-запад"] # 0x2922 - - "⤣": [t: "стрелка на северо-запад с крюком"] # 0x2923 - - "⤤": [t: "стрелка на северо-восток с крюком"] # 0x2924 - - "⤥": [t: "стрелка на юго-восток с крюком"] # 0x2925 - - "⤦": [t: "стрелка на юго-запад с крюком"] # 0x2926 - - "⤧": [t: "стрелка на северо-запад и северо-восток"] # 0x2927 - - "⤨": [t: "стрелка на северо-восток и юго-восток"] # 0x2928 - - "⤩": [t: "стрелка на юго-восток и юго-запад"] # 0x2929 - - "⤪": [t: "стрелка на юго-запад и северо-запад"] # 0x292a - - "⤫": [t: "восходящая диагональ пересекает нисходящую"] # 0x292b - - "⤬": [t: "нисходящая диагональ пересекает восходящую"] # 0x292c - - "⤭": [t: "стрелка на юго-восток пересекает стрелку на северо-восток"] # 0x292d - - "⤮": [t: "стрелка на северо-восток пересекает стрелку на юго-восток"] # 0x292e - - "⤯": [t: "нисходящая диагональ пересекает стрелку на северо-восток"] # 0x292f - - "⤰": [t: "восходящая диагональ пересекает стрелку на юго-восток"] # 0x2930 - - "⤱": [t: "стрелка на северо-восток пересекает стрелку на северо-запад"] # 0x2931 - - "⤲": [t: "стрелка на северо-запад пересекает стрелку на северо-восток"] # 0x2932 - - "⤳": [t: "волновая стрелка, указывающая прямо вправо"] # 0x2933 - - "⤴": [t: "стрелка вправо, затем изгибается вверх"] # 0x2934 - - "⤵": [t: "стрелка вправо, затем изгибается вниз"] # 0x2935 - - "⤶": [t: "стрелка вниз, затем изгибается влево"] # 0x2936 - - "⤷": [t: "стрелка вниз, затем изгибается вправо"] # 0x2937 - - "⤸": [t: "дуговая стрелка по часовой с правой стороны"] # 0x2938 - - "⤹": [t: "дуговая стрелка против часовой с левой стороны"] # 0x2939 - - "⤺": [t: "верхняя дуговая стрелка против часовой"] # 0x293a - - "⤻": [t: "нижняя дуговая стрелка против часовой"] # 0x293b - - "⤼": [t: "верхняя дуговая стрелка по часовой с минусом"] # 0x293c - - "⤽": [t: "верхняя дуговая стрелка против часовой с плюсом"] # 0x293d - - "⤾": [t: "нижняя правая полукруглая стрелка по часовой"] # 0x293e - - "⤿": [t: "нижняя левая полукруглая стрелка против часовой"] # 0x293f - - "⥀": [t: "замкнутая круговая стрелка против часовой"] # 0x2940 - - "⥁": [t: "замкнутая круговая стрелка по часовой"] # 0x2941 - - "⥂": [t: "стрелка вправо над короткой стрелкой влево"] # 0x2942 - - "⥃": [t: "стрелка влево над короткой стрелкой вправо"] # 0x2943 - - "⥄": [t: "короткая стрелка вправо над стрелкой влево"] # 0x2944 - - "⥅": [t: "стрелка вправо с плюсом снизу"] # 0x2945 - - "⥆": [t: "стрелка влево с плюсом снизу"] # 0x2946 - - "⥇": [t: "стрелка вправо сквозь x"] # 0x2947 - - "⥈": [t: "стрелка влево-вправо сквозь круг"] # 0x2948 - - "⥉": [t: "стрелка вверх с двумя наконечниками из круга"] # 0x2949 - - "⥊": [t: "левый гарпун вверх, правый гарпун вниз"] # 0x294a - - "⥋": [t: "левый гарпун вниз, правый гарпун вверх"] # 0x294b - - "⥌": [t: "верхний гарпун вправо, нижний гарпун влево"] # 0x294c - - "⥍": [t: "верхний гарпун влево, нижний гарпун вправо"] # 0x294d - - "⥎": [t: "левый гарпун вверх, правый гарпун вверх"] # 0x294e - - "⥏": [t: "верхний гарпун вправо, нижний гарпун вправо"] # 0x294f - - "⥐": [t: "левый гарпун вниз, правый гарпун вниз"] # 0x2950 - - "⥑": [t: "верхний гарпун влево, нижний гарпун влево"] # 0x2951 - - "⥒": [t: "левый гарпун вверх к черте"] # 0x2952 - - "⥓": [t: "правый гарпун вверх к черте"] # 0x2953 - - "⥔": [t: "верхний гарпун вправо к черте"] # 0x2954 - - "⥕": [t: "нижний гарпун вправо к черте"] # 0x2955 - - "⥖": [t: "левый гарпун вниз к черте"] # 0x2956 - - "⥗": [t: "правый гарпун вниз к черте"] # 0x2957 - - "⥘": [t: "верхний гарпун влево к черте"] # 0x2958 - - "⥙": [t: "нижний гарпун влево к черте"] # 0x2959 - - "⥚": [t: "левый гарпун вверх от черты"] # 0x295a - - "⥛": [t: "правый гарпун вверх от черты"] # 0x295b - - "⥜": [t: "верхний гарпун вправо от черты"] # 0x295c - - "⥝": [t: "нижний гарпун вправо от черты"] # 0x295d - - "⥞": [t: "левый гарпун вниз от черты"] # 0x295e - - "⥟": [t: "правый гарпун вниз от черты"] # 0x295f - - "⥠": [t: "верхний гарпун влево от черты"] # 0x2960 - - "⥡": [t: "нижний гарпун влево от черты"] # 0x2961 - - "⥢": [t: "левый гарпун вверх над левым гарпуном вниз"] # 0x2962 - - "⥣": [t: "верхний гарпун влево рядом с верхним гарпуном вправо"] # 0x2963 - - "⥤": [t: "правый гарпун вверх над правым гарпуном вниз"] # 0x2964 - - "⥥": [t: "нижний гарпун влево рядом с нижним гарпуном вправо"] # 0x2965 - - "⥦": [t: "левый гарпун вверх над правым гарпуном вверх"] # 0x2966 - - "⥧": [t: "левый гарпун вниз над правым гарпуном вниз"] # 0x2967 - - "⥨": [t: "правый гарпун вверх над левым гарпуном вверх"] # 0x2968 - - "⥩": [t: "правый гарпун вниз над левым гарпуном вниз"] # 0x2969 - - "⥪": [t: "левый гарпун вверх над длинным тире"] # 0x296a - - "⥫": [t: "левый гарпун вниз под длинным тире"] # 0x296b - - "⥬": [t: "правый гарпун вверх над длинным тире"] # 0x296c - - "⥭": [t: "правый гарпун вниз под длинным тире"] # 0x296d - - "⥮": [t: "верхний гарпун влево рядом с нижним гарпуном вправо"] # 0x296e - - "⥯": [t: "нижний гарпун влево рядом с верхним гарпуном вправо"] # 0x296f - - "⥰": [t: "правая двойная стрелка с закруглённой головкой"] # 0x2970 - - "⥱": [t: "равно над стрелкой вправо"] # 0x2971 - - "⥲": [t: "тильда над стрелкой вправо"] # 0x2972 - - "⥳": [t: "стрелка влево над тильдой"] # 0x2973 - - "⥴": [t: "стрелка вправо над тильдой"] # 0x2974 - - "⥵": [t: "стрелка вправо над почти равно"] # 0x2975 - - "⥶": [t: "меньше над стрелкой влево"] # 0x2976 - - "⥷": [t: "стрелка влево сквозь меньше"] # 0x2977 - - "⥸": [t: "больше над стрелкой вправо"] # 0x2978 - - "⥹": [t: "подмножество над стрелкой вправо"] # 0x2979 - - "⥺": [t: "стрелка влево сквозь подмножество"] # 0x297a - - "⥻": [t: "надмножество над стрелкой влево"] # 0x297b - - "⥼": [t: "левый рыбий хвост"] # 0x297c - - "⥽": [t: "правый рыбий хвост"] # 0x297d - - "⥾": [t: "верхний рыбий хвост"] # 0x297e - - "⥿": [t: "нижний рыбий хвост"] # 0x297f - - "⦀": [t: "тройная вертикальная черта-разделитель"] # 0x2980 - - "⦁": [t: "Z-нотация пятно"] # 0x2981 - - "⦂": [t: "Z-нотация типовое двоеточие"] # 0x2982 - - "⦃": [t: "левая белая фигурная скобка"] # 0x2983 - - "⦄": [t: "правая белая фигурная скобка"] # 0x2984 - - "⦅": [t: "левая белая скобка"] # 0x2985 - - "⦆": [t: "правая белая скобка"] # 0x2986 - - "⦇": [t: "Z-нотация левая скобка образа"] # 0x2987 - - "⦈": [t: "Z-нотация правая скобка образа"] # 0x2988 - - "⦉": [t: "Z-нотация левая скобка связывания"] # 0x2989 - - "⦊": [t: "Z-нотация правая скобка связывания"] # 0x298a - - "⦋": [t: "левая квадратная скобка с подчёркиванием"] # 0x298b - - "⦌": [t: "правая квадратная скобка с подчёркиванием"] # 0x298c - - "⦍": [t: "левая квадратная скобка с отметкой в верхнем углу"] # 0x298d - - "⦎": [t: "правая квадратная скобка с отметкой в нижнем углу"] # 0x298e - - "⦏": [t: "левая квадратная скобка с отметкой в нижнем углу"] # 0x298f - - "⦐": [t: "правая квадратная скобка с отметкой в верхнем углу"] # 0x2990 - - "⦑": [t: "левая угловая скобка с точкой"] # 0x2991 - - "⦒": [t: "правая угловая скобка с точкой"] # 0x2992 - - "⦓": [t: "левая дуговая скобка меньше"] # 0x2993 - - "⦔": [t: "правая дуговая скобка больше"] # 0x2994 - - "⦕": [t: "двойная левая дуговая скобка больше"] # 0x2995 - - "⦖": [t: "двойная правая дуговая скобка меньше"] # 0x2996 - - "⦗": [t: "левая чёрная черепашья скобка"] # 0x2997 - - "⦘": [t: "правая чёрная черепашья скобка"] # 0x2998 - - "⦙": [t: "пунктирный забор"] # 0x2999 - - "⦚": [t: "вертикальная зигзагообразная линия"] # 0x299a - - "⦛": [t: "измеренный угол, открытый влево"] # 0x299b - - "⦜": [t: "вариант прямого угла с квадратом"] # 0x299c - - "⦝": [t: "измеренный прямой угол с точкой"] # 0x299d - - "⦞": [t: "угол с s внутри"] # 0x299e - - "⦟": [t: "острый угол"] # 0x299f - - "⦠": [t: "сферический угол, открытый влево"] # 0x29a0 - - "⦡": [t: "сферический угол, открытый вверх"] # 0x29a1 - - "⦢": [t: "перевёрнутый угол"] # 0x29a2 - - "⦣": [t: "обратный угол"] # 0x29a3 - - "⦤": [t: "угол с подчёркиванием"] # 0x29a4 - - "⦥": [t: "обратный угол с подчёркиванием"] # 0x29a5 - - "⦦": [t: "косой угол, открытый вверх"] # 0x29a6 - - "⦧": [t: "косой угол, открытый вниз"] # 0x29a7 - - "⦨": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вверх и вправо"] # 0x29a8 - - "⦩": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вверх и влево"] # 0x29a9 - - "⦪": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вниз и вправо"] # 0x29aa - - "⦫": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вниз и влево"] # 0x29ab - - "⦬": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вправо и вверх"] # 0x29ac - - "⦭": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой влево и вверх"] # 0x29ad - - "⦮": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вправо и вниз"] # 0x29ae - - "⦯": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой влево и вниз"] # 0x29af - - "⦰": [t: "обратное пустое множество"] # 0x29b0 - - "⦱": [t: "пустое множество с надчёркиванием"] # 0x29b1 - - "⦲": [t: "пустое множество с маленьким кругом сверху"] # 0x29b2 - - "⦳": [t: "пустое множество со стрелкой вправо сверху"] # 0x29b3 - - "⦴": [t: "пустое множество со стрелкой влево сверху"] # 0x29b4 - - "⦵": [t: "круг с горизонтальной чертой"] # 0x29b5 - - "⦶": [t: "вертикальная черта в круге"] # 0x29b6 - - "⦷": [t: "параллельность в круге"] # 0x29b7 - - "⦸": [t: "обратная косая черта в круге"] # 0x29b8 - - "⦹": [t: "перпендикуляр в круге"] # 0x29b9 - - "⦺": [t: "круг, разделённый горизонтальной чертой, верхняя половина разделена вертикальной чертой"] # 0x29ba - - "⦻": [t: "круг с наложенным x"] # 0x29bb - - "⦼": [t: "знак деления, повёрнутый против часовой в круге"] # 0x29bc - - "⦽": [t: "стрелка вверх сквозь круг"] # 0x29bd - - "⦾": [t: "белый буллит в круге"] # 0x29be - - "⦿": [t: "буллит в круге"] # 0x29bf - - "⧀": [t: "меньше в круге"] # 0x29c0 - - "⧁": [t: "больше в круге"] # 0x29c1 - - "⧂": [t: "круг с маленьким кругом справа"] # 0x29c2 - - "⧃": [t: "круг с двумя горизонтальными штрихами справа"] # 0x29c3 - - "⧄": [t: "квадратная восходящая диагональная черта"] # 0x29c4 - - "⧅": [t: "квадратная нисходящая диагональная черта"] # 0x29c5 - - "⧆": [t: "звёздочка в квадрате"] # 0x29c6 - - "⧇": [t: "маленький круг в квадрате"] # 0x29c7 - - "⧈": [t: "квадрат в квадрате"] # 0x29c8 - - "⧉": [t: "два соединённых квадрата"] # 0x29c9 - - "⧊": [t: "треугольник с точкой сверху"] # 0x29ca - - "⧋": [t: "треугольник с подчёркиванием"] # 0x29cb - - "⧌": [t: "s в треугольнике"] # 0x29cc - - "⧍": [t: "треугольник с засечками внизу"] # 0x29cd - - "⧎": [t: "правый треугольник над левым треугольником"] # 0x29ce - - "⧏": [t: "левый треугольник рядом с вертикальной чертой"] # 0x29cf - - "⧐": [t: "вертикальная черта рядом с правым треугольником"] # 0x29d0 - - "⧑": [t: "бантик с левой половиной чёрной"] # 0x29d1 - - "⧒": [t: "бантик с правой половиной чёрной"] # 0x29d2 - - "⧓": [t: "чёрный бантик"] # 0x29d3 - - "⧔": [t: "крест с левой половиной чёрной"] # 0x29d4 - - "⧕": [t: "крест с правой половиной чёрной"] # 0x29d5 - - "⧖": [t: "белые песочные часы"] # 0x29d6 - - "⧗": [t: "чёрные песочные часы"] # 0x29d7 - - "⧘": [t: "левый волнистый забор"] # 0x29d8 - - "⧙": [t: "правый волнистый забор"] # 0x29d9 - - "⧚": [t: "левый двойной волнистый забор"] # 0x29da - - "⧛": [t: "правый двойной волнистый забор"] # 0x29db - - "⧜": [t: "неполная бесконечность"] # 0x29dc - - "⧝": [t: "лигатура над бесконечностью"] # 0x29dd - - "⧞": [t: "бесконечность, перечёркнутая вертикальной чертой"] # 0x29de - - "⧟": [t: "двустороннее мультиотображение"] # 0x29df - - "⧠": [t: "квадрат с контурным очертанием"] # 0x29e0 - - "⧡": [t: "возрастает как"] # 0x29e1 - - "⧢": [t: "шаффл-произведение"] # 0x29e2 - - "⧣": [t: "знак равенства и наклонная параллельность"] # 0x29e3 - - "⧤": [t: "знак равенства и наклонная параллельность с тильдой сверху"] # 0x29e4 - - "⧥": [t: "тождественно и наклонная параллельность"] # 0x29e5 - - "⧦": [t: "равносильно"] # 0x29e6 - - "⧧": [t: "термодинамический"] # 0x29e7 - - "⧨": [t: "треугольник остриём вниз с левой половиной чёрной"] # 0x29e8 - - "⧩": [t: "треугольник остриём вниз с правой половиной чёрной"] # 0x29e9 - - "⧪": [t: "чёрный ромб со стрелкой вниз"] # 0x29ea - - "⧫": [t: "чёрная луковица"] # 0x29eb - - "⧬": [t: "белый круг со стрелкой вниз"] # 0x29ec - - "⧭": [t: "чёрный круг со стрелкой вниз"] # 0x29ed - - "⧮": [t: "белый квадрат с планками погрешностей"] # 0x29ee - - "⧯": [t: "чёрный квадрат с планками погрешностей"] # 0x29ef - - "⧰": [t: "белый ромб с планками погрешностей"] # 0x29f0 - - "⧱": [t: "чёрный ромб с планками погрешностей"] # 0x29f1 - - "⧲": [t: "белый круг с планками погрешностей"] # 0x29f2 - - "⧳": [t: "чёрный круг с планками погрешностей"] # 0x29f3 - - "⧴": [t: "отложенное правило"] # 0x29f4 - - "⧵": [t: "оператор обратная косая черта"] # 0x29f5 - - "⧶": [t: "косая черта с надчёркиванием"] # 0x29f6 - - "⧷": [t: "обратная косая черта с горизонтальным штрихом"] # 0x29f7 - - "⧸": [t: "большая косая черта"] # 0x29f8 - - "⧹": [t: "большая обратная косая черта"] # 0x29f9 - - "⧺": [t: "двойной плюс"] # 0x29fa - - "⧻": [t: "тройной плюс"] # 0x29fb - - "⧼": [t: "левая изогнутая угловая скобка"] # 0x29fc - - "⧽": [t: "правая изогнутая угловая скобка"] # 0x29fd - - "⧾": [t: "крошечный"] # 0x29fe - - "⧿": [t: "малюсенький"] # 0x29ff - - "⨀": [t: "оператор точка в круге"] # 0x2a00 - - "⨁": [t: "оператор плюс в круге"] # 0x2a01 - - "⨂": [t: "оператор умножить в круге"] # 0x2a02 - - "⨃": [t: "оператор объединение с точкой"] # 0x2a03 - - "⨄": [t: "оператор объединение с плюсом"] # 0x2a04 - - "⨅": [t: "оператор квадратное пересечение"] # 0x2a05 - - "⨆": [t: "оператор квадратное объединение"] # 0x2a06 - - "⨇": [t: "оператор двойное логическое и"] # 0x2a07 - - "⨈": [t: "оператор двойное логическое или"] # 0x2a08 - - "⨉": [t: "оператор умножения"] # 0x2a09 - - "⨊": [t: "сумма по модулю два"] # 0x2a0a - - "⨋": [t: "суммирование с интегралом"] # 0x2a0b - - "⨌": [t: "оператор четверной интеграл"] # 0x2a0c - - "⨍": [t: "интеграл конечной части"] # 0x2a0d - - "⨎": [t: "интеграл с двойным штрихом"] # 0x2a0e - - "⨏": [t: "интегральное среднее с косой чертой"] # 0x2a0f - - "⨐": [t: "функция циркуляции"] # 0x2a10 - - "⨑": [t: "интеграл против часовой"] # 0x2a11 - - "⨒": [t: "линейный интеграл с прямоугольным путём вокруг полюса"] # 0x2a12 - - "⨓": [t: "линейный интеграл с полукруглым путём вокруг полюса"] # 0x2a13 - - "⨔": [t: "линейный интеграл, не включающий полюс"] # 0x2a14 - - "⨕": [t: "оператор интеграл вокруг точки"] # 0x2a15 - - "⨖": [t: "оператор интеграл кватерниона"] # 0x2a16 - - "⨗": [t: "интеграл со стрелкой влево с крюком"] # 0x2a17 - - "⨘": [t: "интеграл со знаком умножения"] # 0x2a18 - - "⨙": [t: "интеграл с пересечением"] # 0x2a19 - - "⨚": [t: "интеграл с объединением"] # 0x2a1a - - "⨛": [t: "интеграл с надчёркиванием"] # 0x2a1b - - "⨜": [t: "интеграл с подчёркиванием"] # 0x2a1c - - "⨝": [t: "соединение"] # 0x2a1d - - "⨞": [t: "оператор большой левый треугольник"] # 0x2a1e - - "⨟": [t: "Z-нотация композиция схемы"] # 0x2a1f - - "⨠": [t: "Z-нотация конвейер схемы"] # 0x2a20 - - "⨡": [t: "Z-нотация проекция схемы"] # 0x2a21 - - "⨢": [t: "знак плюс с кругом сверху"] # 0x2a22 - - "⨣": [t: "знак плюс с циркумфлексом сверху"] # 0x2a23 - - "⨤": [t: "знак плюс с тильдой сверху"] # 0x2a24 - - "⨥": [t: "знак плюс с точкой снизу"] # 0x2a25 - - "⨦": [t: "знак плюс с тильдой снизу"] # 0x2a26 - - "⨧": [t: "знак плюс с индексом два"] # 0x2a27 - - "⨨": [t: "знак плюс с чёрным треугольником"] # 0x2a28 - - "⨩": [t: "знак минус с запятой сверху"] # 0x2a29 - - "⨪": [t: "знак минус с точкой снизу"] # 0x2a2a - - "⨫": [t: "знак минус с падающими точками"] # 0x2a2b - - "⨬": [t: "знак минус с растущими точками"] # 0x2a2c - - "⨭": [t: "знак плюс в левой половине круга"] # 0x2a2d - - "⨮": [t: "знак плюс в правой половине круга"] # 0x2a2e - - "⨯": # 0x2a2f - - test: - if: "$Verbosity='Terse'" - then: [t: "крест"] - else: [t: "векторное произведение"] - - "⨰": [t: "знак умножения с точкой сверху"] # 0x2a30 - - "⨱": [t: "знак умножения с подчёркиванием"] # 0x2a31 - - "⨲": [t: "полупрямое произведение с замкнутым низом"] # 0x2a32 - - "⨳": [t: "разбивающее произведение"] # 0x2a33 - - "⨴": [t: "знак умножения в левой половине круга"] # 0x2a34 - - "⨵": [t: "знак умножения в правой половине круга"] # 0x2a35 - - "⨶": [t: "знак умножения в круге с циркумфлексом"] # 0x2a36 - - "⨷": [t: "знак умножения в двойном круге"] # 0x2a37 - - "⨸": [t: "знак деления в круге"] # 0x2a38 - - "⨹": [t: "знак плюс в треугольнике"] # 0x2a39 - - "⨺": [t: "знак минус в треугольнике"] # 0x2a3a - - "⨻": [t: "знак умножения в треугольнике"] # 0x2a3b - - "⨼": [t: "внутреннее произведение"] # 0x2a3c - - "⨽": [t: "правое внутреннее произведение"] # 0x2a3d - - "⨾": [t: "Z-нотация реляционная композиция"] # 0x2a3e - - "⨿": [t: "амальгама или копроизведение"] # 0x2a3f - - "⩀": [t: "пересечение с точкой"] # 0x2a40 - - "⩁": [t: "объединение со знаком минус"] # 0x2a41 - - "⩂": [t: "объединение с надчёркиванием"] # 0x2a42 - - "⩃": [t: "пересечение с надчёркиванием"] # 0x2a43 - - "⩄": [t: "пересечение с логическим и"] # 0x2a44 - - "⩅": [t: "объединение с логическим или"] # 0x2a45 - - "⩆": [t: "объединение над пересечением"] # 0x2a46 - - "⩇": [t: "пересечение над объединением"] # 0x2a47 - - "⩈": [t: "объединение над чертой над пересечением"] # 0x2a48 - - "⩉": [t: "пересечение над чертой над объединением"] # 0x2a49 - - "⩊": [t: "объединение рядом и соединённое с объединением"] # 0x2a4a - - "⩋": [t: "пересечение рядом и соединённое с пересечением"] # 0x2a4b - - "⩌": [t: "замкнутое объединение с засечками"] # 0x2a4c - - "⩍": [t: "замкнутое пересечение с засечками"] # 0x2a4d - - "⩎": [t: "двойное квадратное пересечение"] # 0x2a4e - - "⩏": [t: "двойное квадратное объединение"] # 0x2a4f - - "⩐": [t: "замкнутое объединение с засечками и разбивающим произведением"] # 0x2a50 - - "⩑": [t: "логическое и с точкой сверху"] # 0x2a51 - - "⩒": [t: "логическое или с точкой сверху"] # 0x2a52 - - "⩓": [t: "двойное логическое и"] # 0x2a53 - - "⩔": [t: "двойное логическое или"] # 0x2a54 - - "⩕": [t: "два пересекающихся логических и"] # 0x2a55 - - "⩖": [t: "два пересекающихся логических или"] # 0x2a56 - - "⩗": [t: "наклонное большое или"] # 0x2a57 - - "⩘": [t: "наклонное большое и"] # 0x2a58 - - "⩙": [t: "логическое или перекрывает логическое и"] # 0x2a59 - - "⩚": [t: "логическое и со средним стержнем"] # 0x2a5a - - "⩛": [t: "логическое или со средним стержнем"] # 0x2a5b - - "⩜": [t: "логическое и с горизонтальным тире"] # 0x2a5c - - "⩝": [t: "логическое или с горизонтальным тире"] # 0x2a5d - - "⩞": [t: "логическое и с двойным надчёркиванием"] # 0x2a5e - - "⩟": [t: "логическое и с подчёркиванием"] # 0x2a5f - - "⩠": [t: "логическое и с двойным подчёркиванием"] # 0x2a60 - - "⩡": [t: "маленькая галочка с подчёркиванием"] # 0x2a61 - - "⩢": [t: "логическое или с двойным надчёркиванием"] # 0x2a62 - - "⩣": [t: "логическое или с двойным подчёркиванием"] # 0x2a63 - - "⩤": [t: "Z-нотация антиограничение области"] # 0x2a64 - - "⩥": [t: "Z-нотация антиограничение диапазона"] # 0x2a65 - - "⩦": [t: "знак равенства с точкой снизу"] # 0x2a66 - - "⩧": [t: "тождественно с точкой сверху"] # 0x2a67 - - "⩨": [t: "тройная горизонтальная черта с двойным вертикальным штрихом"] # 0x2a68 - - "⩩": [t: "тройная горизонтальная черта с тройным вертикальным штрихом"] # 0x2a69 - - "⩪": [t: "тильда с точкой сверху"] # 0x2a6a - - "⩫": [t: "тильда с растущими точками"] # 0x2a6b - - "⩬": [t: "похоже минус похоже"] # 0x2a6c - - "⩭": [t: "конгруэнтно с точкой сверху"] # 0x2a6d - - "⩮": [t: "равно со звёздочкой"] # 0x2a6e - - "⩯": [t: "почти равно с циркумфлексом"] # 0x2a6f - - "⩰": [t: "приблизительно равно или равно"] # 0x2a70 - - "⩱": [t: "знак равенства над знаком плюс"] # 0x2a71 - - "⩲": [t: "знак плюс над знаком равенства"] # 0x2a72 - - "⩳": [t: "знак равенства над тильдой"] # 0x2a73 - - "⩴": [t: "двойное двоеточие равно"] # 0x2a74 - - "⩵": [t: "два последовательных знака равенства"] # 0x2a75 - - "⩶": [t: "три последовательных знака равенства"] # 0x2a76 - - "⩷": [t: "знак равенства с двумя точками сверху и двумя точками снизу"] # 0x2a77 - - "⩸": [t: "эквивалентно с четырьмя точками сверху"] # 0x2a78 - - "⩹": [t: "меньше с кругом внутри"] # 0x2a79 - - "⩺": [t: "больше с кругом внутри"] # 0x2a7a - - "⩻": [t: "меньше с вопросительным знаком сверху"] # 0x2a7b - - "⩼": [t: "больше с вопросительным знаком сверху"] # 0x2a7c - - "⩽": [t: "меньше или наклонно равно"] # 0x2a7d - - "⩾": [t: "больше или наклонно равно"] # 0x2a7e - - "⩿": [t: "меньше или наклонно равно с точкой внутри"] # 0x2a7f - - "⪀": [t: "больше или наклонно равно с точкой внутри"] # 0x2a80 - - "⪁": [t: "меньше или наклонно равно с точкой сверху"] # 0x2a81 - - "⪂": [t: "больше или наклонно равно с точкой сверху"] # 0x2a82 - - "⪃": [t: "меньше или наклонно равно с точкой сверху справа"] # 0x2a83 - - "⪄": [t: "больше или наклонно равно с точкой сверху слева"] # 0x2a84 - - "⪅": [t: "меньше или приблизительно"] # 0x2a85 - - "⪆": [t: "больше или приблизительно"] # 0x2a86 - - "⪇": [t: "меньше и одинарная линия не равно"] # 0x2a87 - - "⪈": [t: "больше и одинарная линия не равно"] # 0x2a88 - - "⪉": [t: "меньше и не приблизительно"] # 0x2a89 - - "⪊": [t: "больше и не приблизительно"] # 0x2a8a - - "⪋": [t: "меньше над двойной линией равно над больше"] # 0x2a8b - - "⪌": [t: "больше над двойной линией равно над меньше"] # 0x2a8c - - "⪍": [t: "меньше над похоже или равно"] # 0x2a8d - - "⪎": [t: "больше над похоже или равно"] # 0x2a8e - - "⪏": [t: "меньше над похоже над больше"] # 0x2a8f - - "⪐": [t: "больше над похоже над меньше"] # 0x2a90 - - "⪑": [t: "меньше над больше над двойной линией равно"] # 0x2a91 - - "⪒": [t: "больше над меньше над двойной линией равно"] # 0x2a92 - - "⪓": [t: "меньше над наклонным равно над больше над наклонным равно"] # 0x2a93 - - "⪔": [t: "больше над наклонным равно над меньше над наклонным равно"] # 0x2a94 - - "⪕": [t: "наклонно равно или меньше"] # 0x2a95 - - "⪖": [t: "наклонно равно или больше"] # 0x2a96 - - "⪗": [t: "наклонно равно или меньше с точкой внутри"] # 0x2a97 - - "⪘": [t: "наклонно равно или больше с точкой внутри"] # 0x2a98 - - "⪙": [t: "двойная линия равно или меньше"] # 0x2a99 - - "⪚": [t: "двойная линия равно или больше"] # 0x2a9a - - "⪛": [t: "двойная линия наклонно равно или меньше"] # 0x2a9b - - "⪜": [t: "двойная линия наклонно равно или больше"] # 0x2a9c - - "⪝": [t: "похоже или меньше"] # 0x2a9d - - "⪞": [t: "похоже или больше"] # 0x2a9e - - "⪟": [t: "похоже над меньше над знаком равенства"] # 0x2a9f - - "⪠": [t: "похоже над больше над знаком равенства"] # 0x2aa0 - - "⪡": [t: "двойное вложенное меньше"] # 0x2aa1 - - "⪢": [t: "двойное вложенное больше"] # 0x2aa2 - - "⪣": [t: "двойное вложенное меньше с подчёркиванием"] # 0x2aa3 - - "⪤": [t: "больше перекрывает меньше"] # 0x2aa4 - - "⪥": [t: "больше рядом с меньше"] # 0x2aa5 - - "⪦": [t: "меньше замкнутое кривой"] # 0x2aa6 - - "⪧": [t: "больше замкнутое кривой"] # 0x2aa7 - - "⪨": [t: "меньше замкнутое кривой над наклонным равно"] # 0x2aa8 - - "⪩": [t: "больше замкнутое кривой над наклонным равно"] # 0x2aa9 - - "⪪": [t: "меньше чем"] # 0x2aaa - - "⪫": [t: "больше чем"] # 0x2aab - - "⪬": [t: "меньше чем или равно"] # 0x2aac - - "⪭": [t: "больше чем или равно"] # 0x2aad - - "⪮": [t: "знак равенства с бугром сверху"] # 0x2aae - - "⪯": [t: "предшествует над одинарной линией равенства"] # 0x2aaf - - "⪰": [t: "следует над одинарной линией равенства"] # 0x2ab0 - - "⪱": [t: "предшествует над одинарной линией не равно"] # 0x2ab1 - - "⪲": [t: "следует над одинарной линией не равно"] # 0x2ab2 - - "⪳": [t: "предшествует над знаком равенства"] # 0x2ab3 - - "⪴": [t: "следует над знаком равенства"] # 0x2ab4 - - "⪵": [t: "предшествует над не равно"] # 0x2ab5 - - "⪶": [t: "следует над не равно"] # 0x2ab6 - - "⪷": [t: "предшествует над почти равно"] # 0x2ab7 - - "⪸": [t: "следует над почти равно"] # 0x2ab8 - - "⪹": [t: "предшествует над не почти равно"] # 0x2ab9 - - "⪺": [t: "следует над не почти равно"] # 0x2aba - - "⪻": [t: "двойное предшествует"] # 0x2abb - - "⪼": [t: "двойное следует"] # 0x2abc - - "⪽": [t: "подмножество с точкой"] # 0x2abd - - "⪾": [t: "надмножество с точкой"] # 0x2abe - - "⪿": [t: "подмножество со знаком плюс снизу"] # 0x2abf - - "⫀": [t: "надмножество со знаком плюс снизу"] # 0x2ac0 - - "⫁": [t: "подмножество со знаком умножения снизу"] # 0x2ac1 - - "⫂": [t: "надмножество со знаком умножения снизу"] # 0x2ac2 - - "⫃": [t: "подмножество или равно с точкой сверху"] # 0x2ac3 - - "⫄": [t: "надмножество или равно с точкой сверху"] # 0x2ac4 - - "⫅": [t: "подмножество над знаком равенства"] # 0x2ac5 - - "⫆": [t: "надмножество над знаком равенства"] # 0x2ac6 - - "⫇": [t: "подмножество над тильдой"] # 0x2ac7 - - "⫈": [t: "надмножество над тильдой"] # 0x2ac8 - - "⫉": [t: "подмножество над почти равно"] # 0x2ac9 - - "⫊": [t: "надмножество над почти равно"] # 0x2aca - - "⫋": [t: "подмножество над не равно"] # 0x2acb - - "⫌": [t: "надмножество над не равно"] # 0x2acc - - "⫍": [t: "квадратный левый открытый ящик"] # 0x2acd - - "⫎": [t: "квадратный правый открытый ящик"] # 0x2ace - - "⫏": [t: "замкнутое подмножество"] # 0x2acf - - "⫐": [t: "замкнутое надмножество"] # 0x2ad0 - - "⫑": [t: "замкнутое подмножество или равно"] # 0x2ad1 - - "⫒": [t: "замкнутое надмножество или равно"] # 0x2ad2 - - "⫓": [t: "подмножество над надмножеством"] # 0x2ad3 - - "⫔": [t: "надмножество над подмножеством"] # 0x2ad4 - - "⫕": [t: "подмножество над подмножеством"] # 0x2ad5 - - "⫖": [t: "надмножество над надмножеством"] # 0x2ad6 - - "⫗": [t: "надмножество рядом с подмножеством"] # 0x2ad7 - - "⫘": [t: "надмножество рядом и соединённое тире с подмножеством"] # 0x2ad8 - - "⫙": [t: "элемент, открытый вниз"] # 0x2ad9 - - "⫚": [t: "вилы с тройником сверху"] # 0x2ada - - "⫛": [t: "трансверсальное пересечение"] # 0x2adb - - "⫝̸": [t: "ветвление"] # 0x2adc - - "⫝": [t: "неветвление"] # 0x2add - - "⫞": [t: "короткий левый таск"] # 0x2ade - - "⫟": [t: "короткий нижний таск"] # 0x2adf - - "⫠": [t: "короткий верхний таск"] # 0x2ae0 - - "⫡": [t: "перпендикуляр с s"] # 0x2ae1 - - "⫢": [t: "вертикальная черта тройной правый турникет"] # 0x2ae2 - - "⫣": [t: "двойная вертикальная черта левый турникет"] # 0x2ae3 - - "⫤": [t: "вертикальная черта двойной левый турникет"] # 0x2ae4 - - "⫥": [t: "двойная вертикальная черта двойной левый турникет"] # 0x2ae5 - - "⫦": [t: "длинное тире от левого члена двойной вертикальной"] # 0x2ae6 - - "⫧": [t: "короткий нижний таск с надчёркиванием"] # 0x2ae7 - - "⫨": [t: "короткий верхний таск с подчёркиванием"] # 0x2ae8 - - "⫩": [t: "короткий верхний таск над коротким нижним таском"] # 0x2ae9 - - "⫪": [t: "двойной нижний таск"] # 0x2aea - - "⫫": [t: "двойной верхний таск"] # 0x2aeb - - "⫬": [t: "знак не с двойным штрихом"] # 0x2aec - - "⫭": [t: "обратный знак не с двойным штрихом"] # 0x2aed - - "⫮": [t: "не делит с обратной перечёркивающей косой"] # 0x2aee - - "⫯": [t: "вертикальная линия с кругом сверху"] # 0x2aef - - "⫰": [t: "вертикальная линия с кругом снизу"] # 0x2af0 - - "⫱": [t: "нижний таск с кругом снизу"] # 0x2af1 - - "⫲": [t: "параллельно с горизонтальным штрихом"] # 0x2af2 - - "⫳": [t: "параллельно с тильдой"] # 0x2af3 - - "⫴": [t: "тройная вертикальная черта бинарное отношение"] # 0x2af4 - - "⫵": [t: "тройная вертикальная черта с горизонтальным штрихом"] # 0x2af5 - - "⫶": [t: "оператор тройное двоеточие"] # 0x2af6 - - "⫷": [t: "тройное вложенное меньше"] # 0x2af7 - - "⫸": [t: "тройное вложенное больше"] # 0x2af8 - - "⫹": [t: "двойная линия наклонно меньше или равно"] # 0x2af9 - - "⫺": [t: "двойная линия наклонно больше или равно"] # 0x2afa - - "⫻": [t: "тройная косая черта бинарное отношение"] # 0x2afb - - "⫼": [t: "оператор большая тройная вертикальная черта"] # 0x2afc - - "⫽": [t: "оператор двойная косая черта"] # 0x2afd - - "⫾": [t: "белая вертикальная черта"] # 0x2afe - - "⫿": [t: "белая вертикальная черта"] # 0x2aff - - "⬀": [t: "белая стрелка на северо-восток"] # 0x2b00 - - "⬁": [t: "белая стрелка на северо-запад"] # 0x2b01 - - "⬂": [t: "белая стрелка на юго-восток"] # 0x2b02 - - "⬃": [t: "белая стрелка на юго-запад"] # 0x2b03 - - "⬄": [t: "белая стрелка влево-вправо"] # 0x2b04 - - "⬅": [t: "чёрная стрелка влево"] # 0x2b05 - - "⬆": [t: "чёрная стрелка вверх"] # 0x2b06 - - "⬇": [t: "чёрная стрелка вниз"] # 0x2b07 - - "⬈": [t: "чёрная стрелка на северо-восток"] # 0x2b08 - - "⬉": [t: "чёрная стрелка на северо-запад"] # 0x2b09 - - "⬊": [t: "чёрная стрелка на юго-восток"] # 0x2b0a - - "⬋": [t: "чёрная стрелка на юго-запад"] # 0x2b0b - - "⬌": [t: "чёрная стрелка влево-вправо"] # 0x2b0c - - "⬍": [t: "чёрная стрелка вверх-вниз"] # 0x2b0d - - "⬎": [t: "стрелка вправо с наконечником вниз"] # 0x2b0e - - "⬏": [t: "стрелка вправо с наконечником вверх"] # 0x2b0f - - "⬐": [t: "стрелка влево с наконечником вниз"] # 0x2b10 - - "⬑": [t: "стрелка влево с наконечником вверх"] # 0x2b11 - - "⬒": [t: "квадрат с верхней половиной чёрной"] # 0x2b12 - - "⬓": [t: "квадрат с нижней половиной чёрной"] # 0x2b13 - - "⬔": [t: "квадрат с верхней правой диагональной половиной чёрной"] # 0x2b14 - - "⬕": [t: "квадрат с нижней левой диагональной половиной чёрной"] # 0x2b15 - - "⬖": [t: "ромб с левой половиной чёрной"] # 0x2b16 - - "⬗": [t: "ромб с правой половиной чёрной"] # 0x2b17 - - "⬘": [t: "ромб с верхней половиной чёрной"] # 0x2b18 - - "⬙": [t: "ромб с нижней половиной чёрной"] # 0x2b19 - - "⬚": [t: "ящик"] # 0x2b1a - - "⬛": [t: "чёрный большой квадрат"] # 0x2b1b - - "⬜": [t: "белый большой квадрат"] # 0x2b1c - - "⬝": [t: "чёрный очень маленький квадрат"] # 0x2b1d - - "⬞": [t: "белый очень маленький квадрат"] # 0x2b1e - - "⬟": [t: "чёрный пятиугольник"] # 0x2b1f - - "⬠": [t: "белый пятиугольник"] # 0x2b20 - - "⬡": [t: "белый шестиугольник"] # 0x2b21 - - "⬢": [t: "чёрный шестиугольник"] # 0x2b22 - - "⬣": [t: "горизонтальный чёрный шестиугольник"] # 0x2b23 - - "⬤": [t: "чёрный большой круг"] # 0x2b24 - - "⬥": [t: "чёрный средний ромб"] # 0x2b25 - - "⬦": [t: "белый средний ромб"] # 0x2b26 - - "⬧": [t: "чёрная средняя луковица"] # 0x2b27 - - "⬨": [t: "белая средняя луковица"] # 0x2b28 - - "⬩": [t: "чёрный маленький ромб"] # 0x2b29 - - "⬪": [t: "чёрная маленькая луковица"] # 0x2b2a - - "⬫": [t: "белая маленькая луковица"] # 0x2b2b - - "⬬": [t: "чёрный горизонтальный эллипс"] # 0x2b2c - - "⬭": [t: "белый горизонтальный эллипс"] # 0x2b2d - - "⬮": [t: "чёрный вертикальный эллипс"] # 0x2b2e - - "⬯": [t: "белый вертикальный эллипс"] # 0x2b2f - - "⬰": [t: "стрелка влево с маленьким кругом"] # 0x2b30 - - "⬱": [t: "три стрелки влево"] # 0x2b31 - - "⬲": [t: "стрелка влево с плюсом в круге"] # 0x2b32 - - "⬳": [t: "длинная волнистая стрелка влево"] # 0x2b33 - - "⬴": [t: "стрелка влево с двумя наконечниками и вертикальным штрихом"] # 0x2b34 - - "⬵": [t: "стрелка влево с двумя наконечниками и двойным вертикальным штрихом"] # 0x2b35 - - "⬶": [t: "стрелка влево с двумя наконечниками от черты"] # 0x2b36 - - "⬷": [t: "стрелка влево с двумя наконечниками и тройным пунктиром"] # 0x2b37 - - "⬸": [t: "стрелка влево с пунктирным стволом"] # 0x2b38 - - "⬹": [t: "стрелка влево с хвостом и вертикальным штрихом"] # 0x2b39 - - "⬺": [t: "стрелка влево с хвостом и двойным вертикальным штрихом"] # 0x2b3a - - "⬻": [t: "стрелка влево с двумя наконечниками и хвостом"] # 0x2b3b - - "⬼": [t: "стрелка влево с двумя наконечниками, хвостом и вертикальным штрихом"] # 0x2b3c - - "⬽": [t: "стрелка влево с двумя наконечниками, хвостом и двойным вертикальным штрихом"] # 0x2b3d - - "⬾": [t: "стрелка влево сквозь x"] # 0x2b3e - - "⬿": [t: "волновая стрелка, указывающая прямо влево"] # 0x2b3f - - "⭀": [t: "знак равенства над стрелкой влево"] # 0x2b40 - - "⭁": [t: "обратная тильда над стрелкой влево"] # 0x2b41 - - "⭂": [t: "стрелка влево над обратным почти равно"] # 0x2b42 - - "⭃": [t: "стрелка вправо сквозь больше"] # 0x2b43 - - "⭄": [t: "стрелка вправо сквозь надмножество"] # 0x2b44 - - "⭅": [t: "левая четверная стрелка"] # 0x2b45 - - "⭆": [t: "правая четверная стрелка"] # 0x2b46 - - "⭇": [t: "обратная тильда над стрелкой вправо"] # 0x2b47 - - "⭈": [t: "стрелка вправо над обратным почти равно"] # 0x2b48 - - "⭉": [t: "тильда над стрелкой влево"] # 0x2b49 - - "⭊": [t: "стрелка влево над почти равно"] # 0x2b4a - - "⭋": [t: "стрелка влево над обратной тильдой"] # 0x2b4b - - "⭌": [t: "стрелка вправо над обратной тильдой"] # 0x2b4c - - "⭐": [t: "белая средняя звезда"] # 0x2b50 - - "⭑": [t: "чёрная маленькая звезда"] # 0x2b51 - - "⭒": [t: "белая маленькая звезда"] # 0x2b52 - - "⭓": [t: "чёрный пятиугольник остриём вправо"] # 0x2b53 - - "⭔": [t: "белый пятиугольник остриём вправо"] # 0x2b54 - - "⭕": [t: "жирный большой круг"] # 0x2b55 - - "⭖": [t: "жирный овал с овалом внутри"] # 0x2b56 - - "⭗": [t: "жирный круг с кругом внутри"] # 0x2b57 - - "⭘": [t: "жирный круг"] # 0x2b58 - - "⭙": [t: "жирный круг с андреевским крестом"] # 0x2b59 - - "⸀": [t: "маркер замены прямым углом"] # 0x2e00 - - "⸁": [t: "маркер замены прямым углом с точкой"] # 0x2e01 - - "⸂": [t: "левая скобка замены"] # 0x2e02 - - "⸃": [t: "правая скобка замены"] # 0x2e03 - - "⸄": [t: "левая пунктирная скобка замены"] # 0x2e04 - - "⸅": [t: "правая пунктирная скобка замены"] # 0x2e05 - - "⸆": [t: "приподнятый маркер вставки"] # 0x2e06 - - "⸇": [t: "приподнятый пунктирный маркер вставки"] # 0x2e07 - - "⸈": [t: "пунктирный маркер транспозиции"] # 0x2e08 - - "⸉": [t: "левая скобка транспозиции"] # 0x2e09 - - "⸊": [t: "правая скобка транспозиции"] # 0x2e0a - - "⸋": [t: "приподнятый квадрат"] # 0x2e0b - - "⸌": [t: "левая приподнятая скобка пропуска"] # 0x2e0c - - "⸍": [t: "правая приподнятая скобка пропуска"] # 0x2e0d - - "⸎": [t: "издательская коронида"] # 0x2e0e - - "⸏": [t: "параграфос"] # 0x2e0f - - "⸐": [t: "вилообразный параграфос"] # 0x2e10 - - "⸑": [t: "обратный вилообразный параграфос"] # 0x2e11 - - "⸒": [t: "гиподиастола"] # 0x2e12 - - "⸓": [t: "пунктирный обел"] # 0x2e13 - - "⸔": [t: "нижняя якорная скобка"] # 0x2e14 - - "⸕": [t: "верхняя якорная скобка"] # 0x2e15 - - "⸖": [t: "пунктирный правый угол"] # 0x2e16 - - "⸗": [t: "двойной косой дефис"] # 0x2e17 - - "⸘": [t: "перевёрнутый интерробанг"] # 0x2e18 - - "⸙": [t: "пальмовая ветвь"] # 0x2e19 - - "⸚": [t: "дефис с диерезисом"] # 0x2e1a - - "⸛": [t: "тильда с кольцом сверху"] # 0x2e1b - - "⸜": [t: "левая нижняя парафразная скобка"] # 0x2e1c - - "⸝": [t: "правая нижняя парафразная скобка"] # 0x2e1d - - "⸞": [t: "тильда с точкой сверху"] # 0x2e1e - - "⸟": [t: "тильда с точкой снизу"] # 0x2e1f - - "⸠": [t: "левая вертикальная черта с пером"] # 0x2e20 - - "⸡": [t: "правая вертикальная черта с пером"] # 0x2e21 - - "⸢": [t: "верхняя левая половина скобки"] # 0x2e22 - - "⸣": [t: "верхняя правая половина скобки"] # 0x2e23 - - "⸤": [t: "нижняя левая половина скобки"] # 0x2e24 - - "⸥": [t: "нижняя правая половина скобки"] # 0x2e25 - - "⸦": [t: "левая боковая U-скобка"] # 0x2e26 - - "⸧": [t: "правая боковая U-скобка"] # 0x2e27 - - "⸨": [t: "левая двойная скобка"] # 0x2e28 - - "⸩": [t: "правая двойная скобка"] # 0x2e29 - - "⸪": [t: "две точки над одной точкой"] # 0x2e2a - - "⸫": [t: "одна точка над двумя точками"] # 0x2e2b - - "⸬": [t: "квадратная четырёхточечная пунктуация"] # 0x2e2c - - "⸭": [t: "знак из пяти точек"] # 0x2e2d - - "⸮": [t: "обратный вопросительный знак"] # 0x2e2e - - "ⸯ": [t: "вертикальная тильда"] # 0x2e2f - - "⸰": [t: "кольцевая точка"] # 0x2e30 - - "⸱": [t: "разделитель слов средняя точка"] # 0x2e31 - - "⸲": [t: "перевёрнутая запятая"] # 0x2e32 - - "⸳": [t: "приподнятая точка"] # 0x2e33 - - "⸴": [t: "приподнятая запятая"] # 0x2e34 - - "⸵": [t: "перевёрнутая точка с запятой"] # 0x2e35 - - "⸶": [t: "крестик с левой защитой"] # 0x2e36 - - "⸷": [t: "крестик с правой защитой"] # 0x2e37 - - "⸸": [t: "перевёрнутый крестик"] # 0x2e38 - - "⸹": [t: "верхняя половина знака параграфа"] # 0x2e39 - - "⸺": [t: "два длинных тире"] # 0x2e3a - - "⸻": [t: "три длинных тире"] # 0x2e3b - - "〃": [t: "знак повторения"] # 0x3003 - - "〈": [t: "левая угловая скобка"] # 0x3008 - - "〉": [t: "правая угловая скобка"] # 0x3009 - - "《": [t: "левая двойная угловая скобка"] # 0x300a - - "》": [t: "правая двойная угловая скобка"] # 0x300b - - "「": [t: "левая угловая скобка"] # 0x300c - - "」": [t: "правая угловая скобка"] # 0x300d - - "『": [t: "левая белая угловая скобка"] # 0x300e - - "』": [t: "правая белая угловая скобка"] # 0x300f - - "【": [t: "левая чёрная лентикулярная скобка"] # 0x3010 - - "】": [t: "правая чёрная лентикулярная скобка"] # 0x3011 - - "〔": [t: "открывающая черепашья скобка"] # 0x3014 - - "〕": [t: "закрывающая черепашья скобка"] # 0x3015 - - "〖": [t: "левая белая лентикулярная скобка"] # 0x3016 - - "〗": [t: "правая белая лентикулярная скобка"] # 0x3017 - - "〘": [t: "левая белая черепашья скобка"] # 0x3018 - - "〙": [t: "правая белая черепашья скобка"] # 0x3019 - - "〚": [t: "левая белая квадратная скобка"] # 0x301a - - "〛": [t: "правая белая квадратная скобка"] # 0x301b - - "〜": [t: "волновое тире"] # 0x301c - - "〰": [t: "волнистое тире"] # 0x3030 - - "㉈": [t: "число десять в круге на чёрном квадрате"] # 0x3248 - - "㉉": [t: "число двадцать в круге на чёрном квадрате"] # 0x3249 - - "㉊": [t: "число тридцать в круге на чёрном квадрате"] # 0x324a - - "㉋": [t: "число сорок в круге на чёрном квадрате"] # 0x324b - - "㉌": [t: "число пятьдесят в круге на чёрном квадрате"] # 0x324c - - "㉍": [t: "число шестьдесят в круге на чёрном квадрате"] # 0x324d - - "㉎": [t: "число семьдесят в круге на чёрном квадрате"] # 0x324e - - "㉏": [t: "число восемьдесят в круге на чёрном квадрате"] # 0x324f - - "㉑": [t: "число двадцать один в круге"] # 0x3251 - - "㉒": [t: "число двадцать два в круге"] # 0x3252 - - "㉓": [t: "число двадцать три в круге"] # 0x3253 - - "㉔": [t: "число двадцать четыре в круге"] # 0x3254 - - "㉕": [t: "число двадцать пять в круге"] # 0x3255 - - "㉖": [t: "число двадцать шесть в круге"] # 0x3256 - - "㉗": [t: "число двадцать семь в круге"] # 0x3257 - - "㉘": [t: "число двадцать восемь в круге"] # 0x3258 - - "㉙": [t: "число двадцать девять в круге"] # 0x3259 - - "㉚": [t: "число тридцать в круге"] # 0x325a - - "㉛": [t: "число тридцать один в круге"] # 0x325b - - "㉜": [t: "число тридцать два в круге"] # 0x325c - - "㉝": [t: "число тридцать три в круге"] # 0x325d - - "㉞": [t: "число тридцать четыре в круге"] # 0x325e - - "㉟": [t: "число тридцать пять в круге"] # 0x325f - - "㊱": [t: "число тридцать шесть в круге"] # 0x32b1 - - "㊲": [t: "число тридцать семь в круге"] # 0x32b2 - - "㊳": [t: "число тридцать восемь в круге"] # 0x32b3 - - "㊴": [t: "число тридцать девять в круге"] # 0x32b4 - - "㊵": [t: "число сорок в круге"] # 0x32b5 - - "㊶": [t: "число сорок один в круге"] # 0x32b6 - - "㊷": [t: "число сорок два в круге"] # 0x32b7 - - "㊸": [t: "число сорок три в круге"] # 0x32b8 - - "㊹": [t: "число сорок четыре в круге"] # 0x32b9 - - "㊺": [t: "число сорок пять в круге"] # 0x32ba - - "㊻": [t: "число сорок шесть в круге"] # 0x32bb - - "㊼": [t: "число сорок семь в круге"] # 0x32bc - - "㊽": [t: "число сорок восемь в круге"] # 0x32bd - - "㊾": [t: "число сорок девять в круге"] # 0x32be - - "㊿": [t: "число пятьдесят в круге"] # 0x32bf - - "㋌": [t: "Меркурий"] # 0x32cc - - "㋍": [t: "эрги"] # 0x32cd - - "㋎": [t: "электрон-вольты"] # 0x32ce - - "㋏": [t: "знак ограниченной ответственности"] # 0x32cf - - "㍱": [t: "гектопаскали"] # 0x3371 - - "㍲": [t: "дальтоны"] # 0x3372 - - "㍳": [t: "астрономические единицы"] # 0x3373 - - "㍴": [t: "бары"] # 0x3374 - - "㍵": [t: "о в"] # 0x3375 - - "㍶": [t: "парсеки"] # 0x3376 - - "㍷": [t: "дециметры"] # 0x3377 - - "㍸": [t: "квадратные дециметры"] # 0x3378 - - "㍹": [t: "кубические дециметры"] # 0x3379 - - "㍺": [t: "инструментальные единицы"] # 0x337a - - "㎀": [t: "пикоамперы"] # 0x3380 - - "㎁": [t: "наноамперы"] # 0x3381 - - "㎂": [t: "микроамперы"] # 0x3382 - - "㎃": [t: "миллиамперы"] # 0x3383 - - "㎄": [t: "килоамперы"] # 0x3384 - - "㎅": [t: "килобайты"] # 0x3385 - - "㎆": [t: "мегабайты"] # 0x3386 - - "㎇": [t: "гигабайты"] # 0x3387 - - "㎈": [t: "калории"] # 0x3388 - - "㎉": [t: "килокалории"] # 0x3389 - - "㎊": [t: "пикофарады"] # 0x338a - - "㎋": [t: "нанофарады"] # 0x338b - - "㎌": [t: "микрофарады"] # 0x338c - - "㎍": [t: "микрограммы"] # 0x338d - - "㎎": [t: "миллиграммы"] # 0x338e - - "㎏": [t: "килограммы"] # 0x338f - - "㎐": [t: "герцы"] # 0x3390 - - "㎑": [t: "килогерцы"] # 0x3391 - - "㎒": [t: "мегагерцы"] # 0x3392 - - "㎓": [t: "гигагерцы"] # 0x3393 - - "㎔": [t: "терагерцы"] # 0x3394 - - "㎕": [t: "микролитры"] # 0x3395 - - "㎖": [t: "миллилитры"] # 0x3396 - - "㎗": [t: "децилитры"] # 0x3397 - - "㎘": [t: "килолитры"] # 0x3398 - - "㎙": [t: "фемтометры"] # 0x3399 - - "㎚": [t: "нанометры"] # 0x339a - - "㎛": [t: "микрометры"] # 0x339b - - "㎜": [t: "миллиметры"] # 0x339c - - "㎝": [t: "сантиметры"] # 0x339d - - "㎞": [t: "километры"] # 0x339e - - "㎟": [t: "квадратные миллиметры"] # 0x339f - - "㎠": [t: "квадратные сантиметры"] # 0x33a0 - - "㎡": [t: "квадратные метры"] # 0x33a1 - - "㎢": [t: "квадратные километры"] # 0x33a2 - - "㎣": [t: "кубические миллиметры"] # 0x33a3 - - "㎤": [t: "кубические сантиметры"] # 0x33a4 - - "㎥": [t: "кубические метры"] # 0x33a5 - - "㎦": [t: "кубические километры"] # 0x33a6 - - "㎧": [t: "метры в секунду"] # 0x33a7 - - "㎨": [t: "метры в секунду в квадрате"] # 0x33a8 - - "㎩": [t: "паскали"] # 0x33a9 - - "㎪": [t: "килопаскали"] # 0x33aa - - "㎫": [t: "мегапаскали"] # 0x33ab - - "㎬": [t: "гигапаскали"] # 0x33ac - - "㎭": [t: "рады"] # 0x33ad - - "㎮": [t: "рады в секунду"] # 0x33ae - - "㎯": [t: "рады в секунду в квадрате"] # 0x33af - - "㎰": [t: "пикосекунды"] # 0x33b0 - - "㎱": [t: "наносекунды"] # 0x33b1 - - "㎲": [t: "микросекунды"] # 0x33b2 - - "㎳": [t: "миллисекунды"] # 0x33b3 - - "㎴": [t: "пиковольты"] # 0x33b4 - - "㎵": [t: "нановольты"] # 0x33b5 - - "㎶": [t: "микровольты"] # 0x33b6 - - "㎷": [t: "милливольты"] # 0x33b7 - - "㎸": [t: "киловольты"] # 0x33b8 - - "㎹": [t: "мегавольты"] # 0x33b9 - - "㎺": [t: "пиковатты"] # 0x33ba - - "㎻": [t: "нановатты"] # 0x33bb - - "㎼": [t: "микроватты"] # 0x33bc - - "㎽": [t: "милливатты"] # 0x33bd - - "㎾": [t: "киловатты"] # 0x33be - - "㎿": [t: "мегаватты"] # 0x33bf - - "㏀": [t: "килоомы"] # 0x33c0 - - "㏁": [t: "мегаомы"] # 0x33c1 - - "㏂": [t: "аттометры"] # 0x33c2 - - "㏃": [t: "беккерели"] # 0x33c3 - - "㏄": [t: "кубические сантиметры"] # 0x33c4 - - "㏅": [t: "канделы"] # 0x33c5 - - "㏆": [t: "кулоны на килограмм"] # 0x33c6 - - "㏇": [t: "заглавная C, o, точка"] # 0x33c7 (I have no idea what this is) - - "㏈": [t: "децибелы"] # 0x33c8 - - "㏉": [t: "греи"] # 0x33c9 - - "㏊": [t: "гектары"] # 0x33ca - - "㏋": [t: "лошадиные силы"] # 0x33cb - - "㏌": [t: "дюймы"] # 0x33cc - - "㏍": [t: "килокельвины"] # 0x33cd - - "㏎": [t: "километры"] # 0x33ce - - "㏏": [t: "узлы"] # 0x33cf - - "㏐": [t: "люмены"] # 0x33d0 - - "㏑": [t: "натуральный логарифм"] # 0x33d1 - - "㏒": [t: "логарифм"] # 0x33d2 - - "㏓": [t: "люксы"] # 0x33d3 - - "㏔": [t: "миллибарны"] # 0x33d4 - - "㏕": [t: "милли"] # 0x33d5 - - "㏖": [t: "моли"] # 0x33d6 - - "㏗": [t: "пэ аш"] # 0x33d7 - - "㏘": [t: "пикометры"] # 0x33d8 - - "㏙": [t: "частей на миллион"] # 0x33d9 - - "㏚": [t: "петарентгены"] # 0x33da - - "㏛": [t: "стерадианы"] # 0x33db - - "㏜": [t: "зиверты"] # 0x33dc - - "㏝": [t: "веберы"] # 0x33dd - - "㏞": [t: "вольты на метр"] # 0x33de - - "㏟": [t: "амперы на метр"] # 0x33df - - "㏿": [t: "галлоны"] # 0x33ff - - "": [t: "равно с крышкой снизу"] # 0xe900 - - "": [t: "равно с плюсом сверху"] # 0xe901 - - "": [t: "равно с плюсом снизу"] # 0xe902 - - "": [t: "тильда с плюсом сверху"] # 0xe903 - - "": [t: "тильда с плюсом снизу"] # 0xe904 - - "": [t: "равно двойное над больше"] # 0xe908 - - "": [t: "равно двойное над меньше"] # 0xe909 - - "": [t: "содержит или равно"] # 0xe90a - - "": [t: "надмножество или равно"] # 0xe90b - - "": [t: "подмножество или равно"] # 0xe90c - - "": [t: "равно над меньше"] # 0xe90d - - "": [t: "элемент или равно"] # 0xe912 - - "": [t: "равно или больше"] # 0xe913 - - "": [t: "приблизительное надмножество"] # 0xe914 - - "": [t: "приблизительное подмножество"] # 0xe915 - - "": [t: "надмножество с точкой включает как подотношение"] # 0xe916 - - "": [t: "подмножество с точкой включено как подотношение"] # 0xe917 - - "": [t: "равно с точкой снизу"] # 0xe918 - - "": [t: "левая точка над минусом над правой точкой"] # 0xe919 - - "": [t: "правая точка над минусом над левой точкой"] # 0xe91a - - "": [t: "почти равно минус"] # 0xe91f - - "": [t: "двойное квадратное объединение"] # 0xe920 - - "": [t: "двойное квадратное пересечение"] # 0xe921 - - "": [t: "меньше, равно или больше"] # 0xe922 - - "": [t: "тильда с точкой"] # 0xe924 - - "": [t: "тильда с двумя точками"] # 0xe925 - - "": [t: "меньше, больше или равно"] # 0xe926 - - "": [t: "больше, меньше или равно"] # 0xe927 - - "": [t: "эквивалентно или меньше"] # 0xe928 - - "": [t: "эквивалентно или больше"] # 0xe929 - - "": [t: "левый открытый ящик"] # 0xe92a - - "": [t: "правый открытый ящик"] # 0xe92b - - "": [t: "тождественно с точкой"] # 0xe92c - - "": [t: "больше, равно или меньше"] # 0xe92d - - "": [t: "оператор черта"] # 0xe92e - - "": [t: "оператор двойная черта"] # 0xe92f - - "": [t: "оператор тройная черта"] # 0xe930 - - "": [t: "меньше или приблизительно равно"] # 0xe932 - - "": [t: "больше или приблизительно равно"] # 0xe933 - - "": [t: "вложенное меньше"] # 0xe936 - - "": [t: "вложенное больше"] # 0xe937 - - "": [t: "предшествует или эквивалентно"] # 0xe93a - - "": [t: "следует или эквивалентно"] # 0xe93b - - "": [t: "предшествует над равно"] # 0xe940 - - "": [t: "следует над равно"] # 0xe941 - - "": [t: "меньше, равно, наклонно больше"] # 0xe942 - - "": [t: "больше, равно, наклонно меньше"] # 0xe943 - - "": [t: "удовлетворяется"] # 0xe948 - - "": [t: "ленивое s"] # 0xe949 - - "": [t: "не утверждение"] # 0xe94a - - "": [t: "двойное равно"] # 0xe94b - - "": [t: "тройное равно"] # 0xe94c - - "": [t: "правило отложено"] # 0xe94d - - "": [t: "разделитель псевдонимов"] # 0xe94e - - "": [t: "нормальная подгруппа с чертой"] # 0xe950 - - "": [t: "содержит как нормальную подгруппу с чертой"] # 0xe951 - - "": [t: "скруглённое следует"] # 0xe954 - - "": [t: "улыбка под чертой"] # 0xe955 - - "": [t: "хмурый над чертой"] # 0xe956 - - "": [t: "надмножество или почти равно"] # 0xe957 - - "": [t: "подмножество или почти равно"] # 0xe958 - - "": [t: "больше, почти равно или меньше"] # 0xe959 - - "": [t: "меньше, почти равно или больше"] # 0xe95a - - "": [t: "двойное логическое или"] # 0xe95c - - "": [t: "двойное логическое и"] # 0xe95d - - "": [t: "логическое или с двойной чертой снизу"] # 0xe95e - - "": [t: "логическое или с чертой снизу"] # 0xe95f - - "": [t: "почти равно над равно"] # 0xe962 - - "": [t: "левый треугольник с биссектрисой"] # 0xe964 - - "": [t: "правый треугольник с биссектрисой"] # 0xe965 - - "": [t: "равно с пунктирной верхней линией"] # 0xe966 - - "": [t: "предшествует с двоеточием"] # 0xe967 - - "": [t: "следует с двоеточием"] # 0xe968 - - "": [t: "меньше или равно наклонное"] # 0xe969 - - "": [t: "больше или равно наклонное"] # 0xe96a - - "": [t: "вложенное очень много меньше"] # 0xe96b - - "": [t: "вложенное очень много больше"] # 0xe96c - - "": [t: "разность вариант"] # 0xe96d - - "": [t: "меньше больше наложение"] # 0xe96e - - "": [t: "логическое или логическое и наложение"] # 0xe96f - - "": [t: "надмножество над надмножеством"] # 0xe970 - - "": [t: "подмножество над подмножеством"] # 0xe971 - - "": [t: "надмножество над подмножеством"] # 0xe972 - - "": [t: "подмножество над надмножеством"] # 0xe973 - - "": [t: "тройная вертикальная черта"] # 0xe979 - - "": [t: "парные четверные вертикальные точки"] # 0xe97a - - "": [t: "перпендикуляр над чертой"] # 0xe97b - - "": [t: "левый турникет двойная вертикальная черта"] # 0xe97c - - "": [t: "двойной левый турникет двойная вертикальная черта"] # 0xe97d - - "": [t: "перпендикуляр над перевёрнутым перпендикуляром"] # 0xe97e - - "": [t: "двойной левый турникет вертикальная черта"] # 0xe97f - - "": [t: "сферический угол, открытый вверх"] # 0xe980 - - "": [t: "двойная косая черта"] # 0xe981 - - "": [t: "прямой угол с уголком"] # 0xe982 - - "": [t: "вертикальная черта в круге"] # 0xe984 - - "": [t: "знак деления в круге"] # 0xe985 - - "": [t: "пунктирная косая черта"] # 0xe986 - - "": [t: "пунктирная обратная косая черта"] # 0xe987 - - "": [t: "пунктирная средняя линия"] # 0xe988 - - "": [t: "пунктирная вертикальная черта"] # 0xe989 - - "": [t: "перпендикуляр с s"] # 0xe98a - - "": [t: "угол с s"] # 0xe98b - - "": [t: "сферический угол, открытый влево"] # 0xe98c - - "": [t: "угол, открытый влево"] # 0xe98d - - "": [t: "вертикальная черта с двойным крюком"] # 0xe98e - - "": [t: "средняя точка свободный радикал"] # 0xe98f - - "": [t: "белый треугольник остриём вверх над чертой"] # 0xe990 - - "": [t: "тождественно и параллельно"] # 0xe991 - - "": [t: "разбивающее произведение"] # 0xe992 - - "": [t: "тройная черта с горизонтальной чертой"] # 0xe993 - - "": [t: "тождественно с двойной косой чертой"] # 0xe994 - - "": [t: "тройные перекрещенные черты"] # 0xe995 - - "": [t: "вертикальная черта над кругом"] # 0xe996 - - "": [t: "вертикальная пропорциональность"] # 0xe997 - - "": [t: "чёрная последняя четверть луны"] # 0xe998 - - "": [t: "чёрная первая четверть луны"] # 0xe999 - - "": [t: "отрицательная синусоида"] # 0xe9a0 - - "": [t: "точка в скобках"] # 0xe9a1 - - "": [t: "скобки"] # 0xe9a2 - - "": [t: "белая улыбка"] # 0xe9a3 - - "": [t: "белый хмурый"] # 0xe9a4 - - "": [t: "шестиугольник"] # 0xe9a5 - - "": [t: "эквивалентно над плюсом"] # 0xe9a6 - - "": [t: "плюс над эквивалентно"] # 0xe9a7 - - "": [t: "пересечение с засечками"] # 0xe9b0 - - "": [t: "объединение с засечками"] # 0xe9b1 - - "": [t: "квадратное пересечение с засечками"] # 0xe9b2 - - "": [t: "квадратное объединение с засечками"] # 0xe9b3 - - "": [t: "предшествует, эквивалентно или следует"] # 0xe9e0 - - "": [t: "следует, эквивалентно или предшествует"] # 0xe9e1 - - "": [t: "предшествует, почти равно или следует"] # 0xe9e2 - - "": [t: "следует, почти равно или предшествует"] # 0xe9e3 - - "": [t: "меньше, эквивалентно или больше"] # 0xe9f0 - - "": [t: "больше, эквивалентно или меньше"] # 0xe9f1 - - "": [t: "не очень много меньше"] # 0xea00 - - "": [t: "не очень много больше"] # 0xea01 - - "": [t: "не много меньше вариант"] # 0xea02 - - "": [t: "не много больше вариант"] # 0xea03 - - "": [t: "меньше, верт. не двойное равно"] # 0xea04 - - "": [t: "больше, верт. не двойное равно"] # 0xea05 - - "": [t: "не меньше и не равно"] # 0xea06 - - "": [t: "не больше и не равно"] # 0xea07 - - "": [t: "ни равно, ни меньше"] # 0xea09 - - "": [t: "не содержит и не равно"] # 0xea0a - - "": [t: "ни надмножество, ни равно"] # 0xea0b - - "": [t: "ни подмножество, ни равно"] # 0xea0c - - "": [t: "обратная косая подмножество"] # 0xea0d - - "": [t: "ни равно, ни больше"] # 0xea0e - - "": [t: "не минус тильда"] # 0xea0f - - "": [t: "ни равно, ни меньше"] # 0xea10 - - "": [t: "не тильда"] # 0xea11 - - "": [t: "не элемент и не равно"] # 0xea12 - - "": [t: "ни равно, ни больше"] # 0xea13 - - "": [t: "не почти равно"] # 0xea14 - - "": [t: "не следует похоже"] # 0xea15 - - "": [t: "меньше или наклонно равно с косой чертой"] # 0xea16 - - "": [t: "больше или наклонно равно с косой чертой"] # 0xea17 - - "": [t: "надмножество косая черта"] # 0xea1a - - "": [t: "не содержит"] # 0xea1b - - "": [t: "не меньше или не равно"] # 0xea1d - - "": [t: "не больше или не равно"] # 0xea1e - - "": [t: "не почти равно минус"] # 0xea1f - - "": [t: "отрицательная принадлежность множеству с точкой сверху"] # 0xea22 - - "": [t: "не вертикальный угол"] # 0xea2c - - "": [t: "не параллельно наклонно"] # 0xea2d - - "": [t: "не оператор черта"] # 0xea2e - - "": [t: "не оператор двойная черта"] # 0xea2f - - "": [t: "не оператор тройная черта"] # 0xea30 - - "": [t: "меньше, но не приблизительно равно"] # 0xea32 - - "": [t: "больше, но не приблизительно равно"] # 0xea33 - - "": [t: "меньше или не равно"] # 0xea34 - - "": [t: "больше или не равно"] # 0xea35 - - "": [t: "не вложенное меньше"] # 0xea36 - - "": [t: "не вложенное больше"] # 0xea37 - - "": [t: "не много меньше"] # 0xea38 - - "": [t: "не много больше"] # 0xea39 - - "": [t: "предшествует, но не эквивалентно"] # 0xea3a - - "": [t: "следует, но не эквивалентно"] # 0xea3b - - "": [t: "предшествует, но не равно"] # 0xea3c - - "": [t: "следует, но не равно"] # 0xea3d - - "": [t: "не равно и не предшествует"] # 0xea3e - - "": [t: "не равно и не следует"] # 0xea3f - - "": [t: "предшествует, но не равно"] # 0xea40 - - "": [t: "следует, но не равно"] # 0xea41 - - "": [t: "не подмножество и не равно"] # 0xea42 - - "": [t: "не надмножество и не равно"] # 0xea43 - - "": [t: "подмножество или не равно"] # 0xea44 - - "": [t: "надмножество или не равно"] # 0xea45 - - "": [t: "не подмножество и не равно"] # 0xea46 - - "": [t: "не надмножество и не равно"] # 0xea47 - - "": [t: "не тройное меньше"] # 0xea48 - - "": [t: "не тройное больше"] # 0xea49 - - "": [t: "не предшествует равно"] # 0xea4c - - "": [t: "не следует равно"] # 0xea4d - - "": [t: "не нормальная подгруппа с чертой"] # 0xea50 - - "": [t: "не содержит как нормальную подгруппу с чертой"] # 0xea51 - - "": [t: "не разность"] # 0xea52 - - "": [t: "не геометрически эквивалентно"] # 0xea53 - - "": [t: "не вертикально похоже"] # 0xea54 - - "": [t: "не равно или не похоже"] # 0xea55 - - "": [t: "не вертикально приблизительно"] # 0xea56 - - "": [t: "не приблизительно тождественно"] # 0xea57 - - "": [t: "не бугристое равно"] # 0xea58 - - "": [t: "не бугристое одинарное равно"] # 0xea59 - - "": [t: "не равно с точкой"] # 0xea5a - - "": [t: "обратное не эквивалентно"] # 0xea5b - - "": [t: "не квадратное подмножество"] # 0xea60 - - "": [t: "не квадратное надмножество"] # 0xea61 - - "": [t: "не почти равно над равно"] # 0xea62 - - "": [t: "не строго эквивалентно"] # 0xea63 - - "": [t: "не конгруэнтно с точкой"] # 0xea64 - - "": [t: "обратное не равно"] # 0xea65 - - "": [t: "не вертикально левый треугольник равно"] # 0xea70 - - "": [t: "не вертикально правый треугольник равно"] # 0xea71 - - "": [t: "не частная"] # 0xea80 - - "": [t: "удлинитель стрелки"] # 0xeb00 - - "": [t: "стрелка вправо над стрелкой влево"] # 0xeb01 - - "": [t: "стрелка вправо над стрелкой влево"] # 0xeb02 - - "": [t: "гарпун вправо над гарпуном влево"] # 0xeb03 - - "": [t: "гарпун вправо над гарпуном влево"] # 0xeb04 - - "": [t: "двойная стрелка северо-восток-юго-запад"] # 0xeb05 - - "": [t: "двойная стрелка северо-запад-юго-восток"] # 0xeb06 - - "": [t: "горизонтальный удлинитель гарпуна"] # 0xeb07 - - "": [t: "дуговая стрелка против часовой влево"] # 0xeb08 - - "": [t: "дуговая стрелка против часовой вправо"] # 0xeb09 - - "": [t: "большая стрелка вправо акцент"] # 0xeb0b - - "": [t: "большая стрелка влево акцент"] # 0xeb0c - - "": [t: "наконечник стрелки влево"] # 0xeb0d - - "": [t: "наконечник стрелки вправо"] # 0xeb0e - - "": [t: "большая стрелка влево-вправо со штрихом"] # 0xeb0f - - "": [t: "горизонтальный удлинитель двойной стрелки"] # 0xeb10 - - "": [t: "большая двойная стрелка влево-вправо со штрихом"] # 0xeb11 - - "": [t: "стрелка вниз слева от стрелки вверх"] # 0xeb12 - - "": [t: "стрелка влево с уголком вниз"] # 0xeb13 - - "": [t: "стрелка вправо с уголком вверх"] # 0xeb14 - - "": [t: "стрелка влево с уголком вверх"] # 0xeb15 - - "": [t: "верхняя полуокружность против часовой с плюсом"] # 0xeb16 - - "": [t: "верхняя полуокружность по часовой с минусом"] # 0xeb17 - - "": [t: "стрелка вправо с хвостом со штрихом"] # 0xeb18 - - "": [t: "правый гарпун вниз"] # 0xeb19 - - "": [t: "левый гарпун вниз"] # 0xeb1a - - "": [t: "левый и правый гарпун вниз"] # 0xeb1b - - "": [t: "левый и правый гарпун вверх"] # 0xeb1c - - "": [t: "верхний и нижний гарпун влево"] # 0xeb1d - - "": [t: "верхний и нижний гарпун вправо"] # 0xeb1e - - "": [t: "стрелка вверх справа от стрелки вниз"] # 0xeb1f - - "": [t: "левый гарпун к черте остриём вверх"] # 0xeb20 - - "": [t: "правый гарпун к черте остриём вверх"] # 0xeb21 - - "": [t: "левый гарпун к черте остриём вниз"] # 0xeb22 - - "": [t: "правый гарпун к черте остриём вниз"] # 0xeb23 - - "": [t: "левый гарпун от черты остриём вверх"] # 0xeb24 - - "": [t: "правый гарпун от черты остриём вверх"] # 0xeb25 - - "": [t: "левый гарпун от черты остриём вниз"] # 0xeb26 - - "": [t: "правый гарпун от черты остриём вниз"] # 0xeb27 - - "": [t: "верхний гарпун к черте остриём влево"] # 0xeb28 - - "": [t: "нижний гарпун к черте остриём влево"] # 0xeb29 - - "": [t: "верхний гарпун к черте остриём вправо"] # 0xeb2a - - "": [t: "нижний гарпун к черте остриём вправо"] # 0xeb2b - - "": [t: "верхний гарпун от черты остриём влево"] # 0xeb2c - - "": [t: "нижний гарпун от черты остриём влево"] # 0xeb2d - - "": [t: "верхний гарпун от черты остриём вправо"] # 0xeb2e - - "": [t: "нижний гарпун от черты остриём вправо"] # 0xeb2f - - "": [t: "стрелка вверх к черте"] # 0xeb30 - - "": [t: "стрелка вниз к черте"] # 0xeb31 - - "": [t: "верхний гарпун слева от нижнего гарпуна"] # 0xeb32 - - "": [t: "верхний гарпун справа от нижнего гарпуна"] # 0xeb33 - - "": [t: "наконечник стрелки вверх"] # 0xeb34 - - "": [t: "наконечник стрелки вниз"] # 0xeb35 - - "": [t: "двойной гарпун с левым остриём вниз, правым вверх"] # 0xeb36 - - "": [t: "двойной гарпун с левым остриём вверх, правым вниз"] # 0xeb37 - - "": [t: "стрелка влево над чертой"] # 0xeb38 - - "": [t: "стрелка вправо над чертой"] # 0xeb39 - - "": [t: "стрелка влево под чертой"] # 0xeb3a - - "": [t: "стрелка вправо под чертой"] # 0xeb3b - - "": [t: "тройная стрелка влево-вправо"] # 0xeb3c - - "": [t: "двойная стрелка северо-восток-юго-восток"] # 0xeb3f - - "": [t: "левая полуокружность против часовой"] # 0xeb40 - - "": [t: "левая полуокружность по часовой"] # 0xeb41 - - "": [t: "левый открытый круг стрелка влево-вправо"] # 0xeb42 - - "": [t: "стрелка вправо над тильдой"] # 0xeb44 - - "": [t: "стрелка влево над тильдой"] # 0xeb45 - - "": [t: "левый гарпун над чертой"] # 0xeb48 - - "": [t: "правый гарпун над чертой"] # 0xeb49 - - "": [t: "левый гарпун под чертой"] # 0xeb4a - - "": [t: "правый гарпун под чертой"] # 0xeb4b - - "": [t: "приземистая чёрная стрелка влево"] # 0xeb4c - - "": [t: "правая полуокружность по часовой"] # 0xeb50 - - "": [t: "правая полуокружность против часовой"] # 0xeb51 - - "": [t: "левый открытый круг левый-правый гарпун"] # 0xeb52 - - "": [t: "стрелка вверх слева от вертикальной черты"] # 0xeb58 - - "": [t: "стрелка вниз слева от вертикальной черты"] # 0xeb59 - - "": [t: "стрелка вверх справа от вертикальной черты"] # 0xeb5a - - "": [t: "стрелка вниз справа от вертикальной черты"] # 0xeb5b - - "": [t: "стрелка вправо с удлинённым нижним крюком"] # 0xeb5c - - "": [t: "стрелка влево с удлинённым крюком"] # 0xeb5d - - "": [t: "стрелка влево с удлинённым нижним крюком"] # 0xeb5e - - "": [t: "стрелка вправо с удлинённым крюком"] # 0xeb5f - - "": [t: "не волнистая стрелка вправо"] # 0xeb60 - - "": [t: "не изогнутая стрелка вправо"] # 0xeb61 - - "": [t: "верхний гарпун слева от вертикальной черты"] # 0xeb68 - - "": [t: "нижний гарпун слева от вертикальной черты"] # 0xeb69 - - "": [t: "верхний гарпун справа от вертикальной черты"] # 0xeb6a - - "": [t: "нижний гарпун справа от вертикальной черты"] # 0xeb6b - - "": [t: "вертикальный удлинитель двойной стрелки"] # 0xeb6c - - "": [t: "вертикальный удлинитель гарпуна с остриём влево"] # 0xeb6d - - "": [t: "вертикальный удлинитель гарпуна с остриём вправо"] # 0xeb6e - - "": [t: "правый гарпун над левым гарпуном, правый"] # 0xeb6f - - "": [t: "правый гарпун над левым гарпуном, левый"] # 0xeb70 - - "": [t: "левый гарпун над правым гарпуном, правый"] # 0xeb71 - - "": [t: "левый гарпун над правым гарпуном, левый"] # 0xeb72 - - "": [t: "наконечник стрелки влево от черты"] # 0xeb73 - - "": [t: "удлинитель стрелки влево-вправо от черты"] # 0xeb74 - - "": [t: "хвост стрелки влево от черты"] # 0xeb75 - - "": [t: "хвост стрелки вправо от черты"] # 0xeb76 - - "": [t: "наконечник стрелки вправо от черты"] # 0xeb77 - - "": [t: "наконечник верхнего гарпуна от черты с остриём влево"] # 0xeb78 - - "": [t: "стрелка вправо над стрелкой влево, правая"] # 0xeb79 - - "": [t: "стрелка вправо над стрелкой влево, левая"] # 0xeb7a - - "": [t: "стрелка влево над стрелкой вправо, правая"] # 0xeb7b - - "": [t: "стрелка влево над стрелкой вправо, левая"] # 0xeb7c - - "": [t: "наконечник стрелки вверх от черты"] # 0xeb7d - - "": [t: "хвост стрелки вверх от черты"] # 0xeb7e - - "": [t: "хвост стрелки вниз от черты"] # 0xeb7f - - "": [t: "наконечник стрелки вниз от черты"] # 0xeb80 - - "": [t: "наконечник нижнего гарпуна от черты с остриём вправо"] # 0xeb81 - - "": [t: "верхний гарпун слева от нижнего гарпуна, низ"] # 0xeb82 - - "": [t: "верхний гарпун слева от нижнего гарпуна, удлинитель"] # 0xeb83 - - "": [t: "нижний гарпун слева от верхнего гарпуна, верх"] # 0xeb84 - - "": [t: "верхний гарпун слева от нижнего гарпуна, верх"] # 0xeb85 - - "": [t: "нижний гарпун слева от верхнего гарпуна, удлинитель"] # 0xeb86 - - "": [t: "нижний гарпун слева от верхнего гарпуна, низ"] # 0xeb87 - - "": [t: "стрелка вверх слева от стрелки вниз, низ"] # 0xeb88 - - "": [t: "стрелка вниз слева от стрелки вверх, верх"] # 0xeb89 - - "": [t: "стрелка вверх слева от стрелки вниз, верх"] # 0xeb8a - - "": [t: "стрелка вниз слева от стрелки вверх, низ"] # 0xeb8b - - "": [t: "удлинитель стрелок влево-вправо"] # 0xeb8c - - "": [t: "удлинитель стрелки на северо-восток"] # 0xeb8d - - "": [t: "удлинитель стрелки на северо-запад"] # 0xeb8e - - "": [t: "нижняя фигурная скобка, левая часть"] # 0xec00 - - "": [t: "нижняя фигурная скобка, средняя часть"] # 0xec01 - - "": [t: "нижняя фигурная скобка, правая часть"] # 0xec02 - - "": [t: "горизонтальный удлинитель фигурной скобки"] # 0xec03 - - "": [t: "верхняя фигурная скобка, левая часть"] # 0xec04 - - "": [t: "верхняя фигурная скобка, средняя часть"] # 0xec05 - - "": [t: "верхняя фигурная скобка, правая часть"] # 0xec06 - - "": [t: "левая вертикальная черта"] # 0xec07 - - "": [t: "правая вертикальная черта"] # 0xec08 - - "": [t: "левая двойная вертикальная черта"] # 0xec09 - - "": [t: "правая двойная вертикальная черта"] # 0xec0a - - "": [t: "горизонтальный удлинитель скобки"] # 0xec0b - - "": [t: "под квадратной скобкой"] # 0xec0c - - "⎵": [t: "под квадратной скобкой"] # 0x23b5 - - "": [t: "над квадратной скобкой"] # 0xec0d - - "⎴": [t: "над квадратной скобкой"] # 0x23b4 - - "": [t: "нижняя скобка, левая часть"] # 0xec0e - - "": [t: "нижняя скобка, правая часть"] # 0xec0f - - "": [t: "верхняя скобка, левая часть"] # 0xec10 - - "": [t: "верхняя скобка, правая часть"] # 0xec11 - - "": [t: "левая скобка 1"] # 0xec12 - - "": [t: "левая скобка 2"] # 0xec13 - - "": [t: "левая скобка 3"] # 0xec14 - - "": [t: "левая скобка 4"] # 0xec15 - - "": [t: "правая скобка 1"] # 0xec16 - - "": [t: "правая скобка 2"] # 0xec17 - - "": [t: "правая скобка 3"] # 0xec18 - - "": [t: "правая скобка 4"] # 0xec19 - - "": [t: "радикал 1"] # 0xec1a - - "": [t: "радикал 2"] # 0xec1b - - "": [t: "радикал 3"] # 0xec1c - - "": [t: "радикал 4"] # 0xec1d - - "": [t: "радикал 5"] # 0xec1e - - "": [t: "нижняя часть радикала"] # 0xec1f - - "": [t: "вертикальный удлинитель радикала"] # 0xec20 - - "": [t: "верхняя часть радикала"] # 0xec21 - - "": [t: "левая белая скобка, верхняя часть"] # 0xec22 - - "": [t: "левая белая скобка, удлинитель"] # 0xec23 - - "": [t: "левая белая скобка, нижняя часть"] # 0xec24 - - "": [t: "правая белая скобка, верхняя часть"] # 0xec25 - - "": [t: "правая белая скобка, удлинитель"] # 0xec26 - - "": [t: "правая белая скобка, нижняя часть"] # 0xec27 - - "": [t: "левая белая фигурная скобка"] # 0xec30 - - "": [t: "правая белая фигурная скобка"] # 0xec31 - - "": [t: "знак длинного деления"] # 0xec32 - - "": [t: "удлинитель знака длинного деления"] # 0xec33 - - "": [t: "короткое деление"] # 0xec34 - - "": [t: "двойная связь с юго-запада на северо-восток"] # 0xec40 - - "": [t: "двойная связь с северо-запада на юго-восток"] # 0xec41 - - "": [t: "одинарная горизонтальная связь"] # 0xec42 - - "": [t: "двойная горизонтальная связь"] # 0xec43 - - "": [t: "тройная горизонтальная связь"] # 0xec44 - - "": [t: "одинарная вертикальная связь"] # 0xec45 - - "": [t: "двойная вертикальная связь"] # 0xec46 - - "": [t: "тройная вертикальная связь"] # 0xec47 - - "": [t: "связь меньше"] # 0xec48 - - "": [t: "связь больше"] # 0xec49 - - "": [t: "одинарная горизонтальная связь en"] # 0xec4a - - "": [t: "двойная горизонтальная связь en"] # 0xec4b - - "": [t: "тройная горизонтальная связь en"] # 0xec4c - - "": [t: "верхний левый прямоугольник"] # 0xec80 - - "": [t: "нижний левый прямоугольник"] # 0xec81 - - "": [t: "верхний правый прямоугольник"] # 0xec90 - - "": [t: "нижний правый прямоугольник"] # 0xec91 - - "": [t: "угол синтетического деления"] # 0xec92 - - "": [t: "горизонтальный удлинитель синтетического деления"] # 0xec93 - - "": [t: "вертикальный удлинитель синтетического деления"] # 0xec94 - - "": [t: "удлинитель левого потолка/пола"] # 0xec95 - - "": [t: "удлинитель правого потолка/пола"] # 0xec96 - - "": [t: "удлинитель верхней скобки"] # 0xec97 - - "": [t: "удлинитель вертикальной черты"] # 0xec98 - - "": [t: "удлинитель левой двойной вертикальной черты"] # 0xec99 - - "": [t: "удлинитель горизонтальной черты"] # 0xec9a - - "": [t: "удлинитель нижней скобки"] # 0xec9c - - "": [t: "нижняя скобка, правая часть"] # 0xec9d - - "": [t: "удлинитель нижней скобки"] # 0xec9e - - "": [t: "нижняя скобка, левая часть"] # 0xec9f - - "": [t: "удлинитель верхней фигурной скобки"] # 0xeca0 - - "": [t: "верхняя скобка, левая часть"] # 0xeca1 - - "": [t: "удлинитель верхней скобки"] # 0xeca2 - - "": [t: "верхняя скобка, правая часть"] # 0xeca3 - - "": [t: "удлинитель нижней фигурной скобки"] # 0xeca4 - - "": [t: "h-бар"] # 0xed00 (планковская постоянная с чертой, стандартно "h-бар") - - "": [t: "зеркальная g"] # 0xed01 - - "": [t: "j без точки"] # 0xed02 - - "": [t: "дигамма"] # 0xed03 - - "ϝ": [t: "дигамма"] # 0x3dd - - "": [t: "d"] # 0xed10 - - "": [t: "e"] # 0xed11 - - "": [t: "i"] # 0xed12 - - "": [t: "j"] # 0xed13 - - "ⅅ": - - spell: "translate('.', 'ⅅ', 'DD')" # 0xed16, 0x2145 - -# Символы из частной области MathType - - "": [t: "контурный интеграл против часовой с петлёй"] # 0xee00 - - "": [t: "контурный интеграл по часовой с петлёй"] # 0xee01 - - "": [t: ""] # 0xee04 - - "": [t: ""] # 0xee05 - - "": [t: ""] # 0xee06 - - "": [t: ""] # 0xee07 - - "": [t: ""] # 0xee08 - - "": [t: ""] # 0xee09 - - "": [t: ""] # 0xee0a - - "": [t: ""] # 0xee0b - - "": [t: ""] # 0xee0c - - "": [t: "статус соединения"] # 0xee0d - - "": [t: "статус соединения, левая часть"] # 0xee0e - - "": [t: "статус соединения, правая часть"] # 0xee0f - - "": [t: "статус соединения, удлинитель"] # 0xee10 - - "": [t: "петля интеграла"] # 0xee11 - - "": [t: "двойная петля интеграла"] # 0xee12 - - "": [t: "тройная петля интеграла"] # 0xee13 - - "": [t: "расширяющаяся двойная петля интеграла"] # 0xee15 - - "": [t: "расширяющаяся тройная петля интеграла"] # 0xee16 - - "": [t: "асимптотически равно, акцент"] # 0xee17 - - "": [t: "знак равенства, акцент"] # 0xee18 - - "": [t: "четверной штрих"] # 0xee19 - - "": [t: "черта с открытым кружком слева"] # 0xee1a - - "": [t: "черта с закрытым кружком слева"] # 0xee1b - - "": [t: "черта с открытым кружком справа"] # 0xee1c - - "": [t: "черта с точкой сверху"] # 0xee1d - - "": [t: "черта с точкой снизу"] # 0xee1e - - "": [t: "черта с двойной точкой сверху"] # 0xee1f - - "": [t: "черта с двойной точкой снизу"] # 0xee20 - - "": [t: "черта с каретом"] # 0xee21 - - "": [t: "жирная нижняя черта"] # 0xee22 - - "": [t: "черта с закрытым кружком справа"] # 0xee23 - - "": [t: "большая точка сверху"] # 0xee24 - - "": [t: "знак выравнивания"] # 0xef00 - - "": [t: ""] # 0xef01 - - "​": [t: ""] # 0x200b - - "": [t: ""] # 0xef02 - - " ": [t: ""] # 0x2009 - - "": [t: ""] # 0xef03 - - " ": [t: ""] # 0x205f - - "": [t: ""] # 0xef04 - - "": [t: ""] # 0xef05 - - "": [t: ""] # 0xef06 - - "": [t: ""] # 0xef07 - - "": [t: ""] # 0xef08 - - "": [t: ""] # 0xef09 - - "": [t: ""] # 0xef0a - - " ": [t: ""] # 0x200a - - "": [t: ""] # 0xef22 - - "": [t: ""] # 0xef23 - - "": [t: ""] # 0xef24 - - "": [t: ""] # 0xef29 - - "": [t: "пропущенный член"] # 0xef41 - - "": [t: "контурный интеграл по часовой, стрелка слева"] # 0xef80 - - "": [t: "интеграл с квадратом"] # 0xef81 - - "": [t: "интеграл с косой чертой"] # 0xef82 - - "": [t: "обратный интеграл"] # 0xef83 - - "": [t: "двойной ноль над двойным нулём"] # 0xef90 - - "": [t: "ноль с косой чертой"] # 0xef91 - - # fraktur chars in math alphabetic block and also MathType private use area - # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display - - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) - - t: "фрактурная" - - spell: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" - - - "-": # 0xf000 - 0xf018 - - t: "фрактурная" - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" - - - "𝔞-𝔷": # 0x1d51e - 0x1d537 - - t: "фрактурная" - - spell: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf01a - 0xf033 - - t: "фрактурная" - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝕬-𝖅": # 0x1D56C - 0x1D585 - - t: "фрактурная" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf040 - 0xf059 - - t: "фрактурная" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝖆-𝖟": # 0x1d586 - 0x1d59f - - t: "фрактурная" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf05a - 0xf073 - - t: "фрактурная" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area - # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display - - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) - - t: "двойная" - - spell: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf080 - 0xf098 - - t: "двойная" - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝕒-𝕫": # 0x1d552 - 0x1d56b - - t: "двойная" - - spell: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf09a - 0xf0b3 - - t: "двойная" - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - "𝟘": [t: "двойной ноль"] - - "𝟡": [t: "двойная девять"] - - "𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠": # 0x1d7d9 - 0x1d7e0 - - t: "двойная" - - spell: "translate('.', '𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠', '12345678')" - - "": [t: "двойной ноль"] - - "": [t: "двойная девять"] - - "": # 0xf0c1 - 0xf0c8 - - t: "двойная" - - spell: "translate('.', '', '12345678')" - - - "": [t: "набла с двойным контуром"] # 0xf0ca - - "": [t: "эйлерова константа с двойным контуром"] # 0xf0cb - - # script chars in math alphabetic block and also MathType private use area - - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 - - t: "рукописная" - - spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf100 - 0xf119 - - t: "рукописная" - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf - - t: "рукописная" - - spell: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf11a - 0xf133 - - t: "рукописная" - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - # bold script chars in math alphabetic block and also MathType private use area - - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 - - t: "рукописная" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf140 - 0xf159 - - t: "рукописная" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝓪-𝔃": # 0x1d4ea - 0x1d503 - - t: "рукописная" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf15a - 0xf173 - - t: "рукописная" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf180 - 0xf199 - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "": # 0xf19a - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [t: "заглавная"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [t: "лигатура ae"] - - "": # 0xf19b - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [t: "заглавная"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [t: "эсцет"] - - "": # 0xf19c - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [t: "заглавная"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [t: "o со штрихом"] - - # MathType only has a few of the cap Greek letters in PUA - - "": # 0xf201 - 0xf209 - - t: "двойная" - - spell: "translate('.', '', 'ΔΨΛΠΣΘΓΩΥ')" - - - "-": # 0xf220 - 0xf236 - - t: "двойная" - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "": [t: "конечная сигма с двойным контуром"] # 0xf237 - - "": [t: "ро с двойным контуром"] # 0xf250 - - "": [t: "фи с двойным контуром"] # 0xf251 - - "𝐀-𝐙": # 0x1d400 - 0x1d419 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf260 - 0xf279 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝐚-𝐳": # 0x1d41a - 0x1d433 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf27a - 0xf293 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝐴-𝑍": # 0x1d434 - 0x1d44d - - spell: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf294 - 0xf2ad - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝑎-𝑧": # 0x1d44e - 0x1d467 - - spell: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf2ae - 0xf2c7 - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝑨-𝒁": # 0x1d468 - 0x1d481 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf2c8 - 0xf2e1 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝒂-𝒛": # 0x1d482 - 0x1d49b - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf2e2 - 0xf2fb - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 - - spell: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf300 - 0xf319 - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 - - spell: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf31a - 0xf333 - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf334 - 0xf34d - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝗮-𝘇": # 0x1d5ee - 0x1d607 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf34e - 0xf367 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - "𝘈-𝘡": # 0x1d608 - 0x1d621 - # - t: "italic" - - spell: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - "-": # 0xf368 - 0xf381 - # - t: "italic" - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝘢-𝘻": # 0x1d622 - 0x1d63b - # - t: "italic" - - spell: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf382 - 0xf39b - # - t: "italic" - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝘼-𝙕": # 0x1d63c - 0x1d655 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf39c - 0xf3b5 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝙖-𝙯": # 0x1d656 - 0x1d66f - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf3b6 - 0xf3cf - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝙰-𝚉": # 0x1d670 - 0x1d689 - - spell: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf3d0 - 0xf3e9 - - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 - - spell: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf3ea - 0xf403 - - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "": [t: "i без точки"] # 0xf404 - - "𝚤": [t: "i без точки"] # 0x1d6a4 - - "𝚥": [t: "j без точки"] # 0x1d6a5 - - - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf408 - 0xf420 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf422 - 0xf43a - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "": [t: "жирная набла"] # 0xf421 - - "𝛁": [t: "жирная набла"] # 0x1d6c1 - - - "𝛡𝝕𝞏𝟉": [t: "жирное пи"] - - - "𝛛𝛜𝛝𝛞𝛟𝛠": # 0x1D6DB - 0x1D6E0 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠', '∂εθκφρ')" - - - "": # 0xF43C - 0xF440 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', '∂εθκφρ')" - - - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa - # - t: "italic" - - spell: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf442 - 0xf45a - # - t: "italic" - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝛼-𝜔": # 0x1d6fc - 0x1d714 - # - t: "italic" - - spell: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf45c - 0xf474 - # - t: "italic" - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "": [t: "курсивная набла"] # 0xf45b - - "𝛻": [t: "курсивная набла"] # 0x1d6fb - - - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b - # - t: "italic" - - spell: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" - - - "": # 0xf475 - 0xf47b - # - t: "italic" - - spell: "translate('.', '', '∂εθκφρπ')" - - - "𝜜-𝜴": # 0x1d71c - 0x1d734 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf47c - 0xf494 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝜶-𝝎": # 0x1d736 - 0x1d74e - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf496 - 0xf4ae - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝝏𝝐𝝑𝝒𝝓𝝔": # 0x1d74f - 0x1d754 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔', '∂εθκφρ')" - - - "": # 0xf422 - 0xf439 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', '∂εθκφρ')" - - - "𝜵": [t: "жирная курсивная набла"] # 0x1d735 - - "": [t: "жирная курсивная набла"] # 0xf495 - - - "𝝖-𝝮": # 0x1d756 - 0x1d76e - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - "-": # 0xf4b6 - 0xf4ce - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝝰-𝞈": # 0x1d770 - 0x1d788 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf4d0 - 0xf4e8 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝞉𝞊𝞋𝞌𝞍𝞎": # 0x1d789 - 0x1d78e - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎', '∂εθκφρ')" - - - "": # 0xf4e9 - 0xf4ee - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', '∂εθκφρ')" - - - "": [t: "жирная набла"] # 0xf4cf - - "𝝯": [t: "жирная набла"] # 0x1d76f - - - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf4f0 - 0xf508 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf50a - 0xf522 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝟃𝟄𝟅𝟆𝟇𝟈": # 0x1d7c3 - 0x1d7c8 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈', '∂εθκφρ')" - - - "": # 0xf523 - 0xf528 - # - t: "bold italic" - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', '∂εθκφρ')" - - - "": [t: "жирная набла"] # 0xf509 - - "𝞩": [t: "жирная набла"] # 0x1d7a9 - - - "-": # 0xf52e - 0xf537 (old MathType) - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '', '0123456789')" - - - "𝟎-𝟗": # 0x1d7ce - 0x1d7d7 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗', '0123456789')" - - - "𝟬-𝟵": # 0x1D7EC - 0x1D7F5 - - test: - if: "not($IgnoreBold)" - then: [t: "жирная"] - - spell: "translate('.', '𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵', '0123456789')" - - - "-": # 0xf556 - 0xf55f (old MathType) - - spell: "translate('.', '', '0123456789')" - - - "𝟢-𝟫": # 0x1d7e2 - 0x1d7eb - - spell: "translate('.', '𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫', '0123456789')" - - - "𝟶-𝟿": # 0x1d7f6 - 0x1d7ff - - spell: "translate('.', '𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿', '0123456789')" - - - - "": [t: "неизвестный символ"] # 0xf700 - - "": [t: "нижний правый и нижний левый треугольники"] # 0xf726 - - "": [t: "удлинитель горизонтального многоточия"] # 0xf72d - - "": [t: "удлинитель горизонтального многоточия по средней линии"] # 0xf72e - - "": [t: "удлинитель радикала"] # 0xf8e5 - - "": [t: "удлинитель вертикальной стрелки"] # 0xf8e6 - - "": [t: "удлинитель горизонтальной стрелки"] # 0xf8e7 - - "": [t: "знак зарегистрированного товарного знака без засечек"] # 0xf8e8 - - "": [t: "знак авторского права без засечек"] # 0xf8e9 - - "": [t: "знак торговой марки без засечек"] # 0xf8ea - - "": [t: "верхняя часть левой скобки"] # 0xf8eb - - "": [t: "удлинитель левой скобки"] # 0xf8ec - - "": [t: "нижняя часть левой скобки"] # 0xf8ed - - "": [t: "верхняя часть левой квадратной скобки"] # 0xf8ee - - "": [t: "удлинитель левой квадратной скобки"] # 0xf8ef - - "": [t: "нижняя часть левой квадратной скобки"] # 0xf8f0 - - "": [t: "верхняя часть левой фигурной скобки"] # 0xf8f1 - - "": [t: "средняя часть левой фигурной скобки"] # 0xf8f2 - - "": [t: "нижняя часть левой фигурной скобки"] # 0xf8f3 - - "": [t: "удлинитель фигурной скобки"] # 0xf8f4 - - "": [t: "удлинитель интеграла"] # 0xf8f5 - - "": [t: "верхняя часть правой скобки"] # 0xf8f6 - - "": [t: "удлинитель правой скобки"] # 0xf8f7 - - "": [t: "нижняя часть правой скобки"] # 0xf8f8 - - "": [t: "верхняя часть правой квадратной скобки"] # 0xf8f9 - - "": [t: "удлинитель правой квадратной скобки"] # 0xf8fa - - "": [t: "нижняя часть правой квадратной скобки"] # 0xf8fb - - "": [t: "верхняя часть правой фигурной скобки"] # 0xf8fc - - "": [t: "средняя часть правой фигурной скобки"] # 0xf8fd - - "": [t: "нижняя часть правой фигурной скобки"] # 0xf8fe - - "": [t: "логотип Apple"] # 0xf8ff - - "ff": [t: "ff"] # 0xfb00 - - "fi": [t: "fi"] # 0xfb01 - - "fl": [t: "fl"] # 0xfb02 - - "ffi": [t: "ffi"] # 0xfb03 - - "ffl": [t: "ffl"] # 0xfb04 - - "ſt": [t: "ft"] # 0xfb05 - - "st": [t: "st"] # 0xfb06 - - "﬩": [t: "альтернативный знак плюса в иврите"] # 0xfb29 - - "︠": [t: "левая половина лигатуры"] # 0xfe20 - - "︡": [t: "правая половина лигатуры"] # 0xfe21 - - "︢": [t: "левая половина двойной тильды"] # 0xfe22 - - "︣": [t: "правая половина двойной тильды"] # 0xfe23 - - "︤": [t: "левая половина макрона"] # 0xfe24 - - "︥": [t: "правая половина макрона"] # 0xfe25 - - "︦": [t: "соединительный макрон"] # 0xfe26 - - "︵": [t: "верхняя скобка"] # 0xfe35 - - "︶": [t: "нижняя скобка"] # 0xfe36 - - "︷": [t: "верхняя фигурная скобка"] # 0xfe37 - - "︸": [t: "нижняя фигурная скобка"] # 0xfe38 - - "︿": [t: "верхняя угловая скобка"] # 0xfe3f - - "﹀": [t: "нижняя угловая скобка"] # 0xfe40 - - "﹡": [t: "маленькая звёздочка"] # 0xfe61 - - "﹢": [t: "маленький плюс"] # 0xfe62 - - "﹣": [t: "маленький минус"] # 0xfe63 - - "﹤": [t: "маленький знак меньше"] # 0xfe64 - - "﹥": [t: "маленький знак больше"] # 0xfe65 - - "﹦": [t: "маленький знак равенства"] # 0xfe66 - - "+": [t: "полноширинный знак плюс"] # 0xff0b - - "<": [t: "меньше"] # 0xff1c - - "=": [t: "равно"] # 0xff1d - - ">": [t: "больше"] # 0xff1e - - "\": [t: "обратная косая черта"] # 0xff3c - - "^": [t: "крышка"] # 0xff3e - - "|": # 0xff5c - # note: for ClearSpeak and SimpleSpeak, "|" inside of sets is handled at the mrow level, same for 'sets' - - with: - variables: [DefaultToGiven: "count(preceding-sibling::*)=1 and count(following-sibling::*)=1 and ../../../*[1][.='P']"] # P(A|B) - replace: - - test: - - if: "$SpeechStyle != 'ClearSpeak'" - then_test: - if: "$DefaultToGiven" - then: [t: "при условии"] - else: [t: "вертикальная черта"] - - else_if: "not(preceding-sibling::*) or not(following-sibling::*)" - then: [t: "вертикальная черта"] - - else_if: "$ClearSpeak_VerticalLine = 'SuchThat'" - then: [t: "такой, что"] - - else_if: "$ClearSpeak_VerticalLine = 'Given' or $DefaultToGiven" - then: [t: "при условии"] - - else: [t: "делит"] - - "~": [t: "тильда"] # 0xff5e - - "¬": [t: "не"] # 0xffe2 - - "←": [t: "стрелка влево"] # 0xffe9 - - "↑": [t: "стрелка вверх"] # 0xffea - - "→": [t: "стрелка вправо"] # 0xffeb - - "↓": [t: "стрелка вниз"] # 0xffec - - "": [t: "неизвестный или отсутствующий объект"] # 0xfffc - - "�": [t: "неизвестный или отсутствующий символ"] # 0xfffd - - - "🣑": [t: "находится в равновесии с"] # 0x1F8D1 - - "🣒": [t: "находится в равновесии, смещённом вправо, с"] # 0x1F8D2 - - "🣓": [t: "находится в равновесии, смещённом влево, с"] # 0x1F8D3 - -# MathJax v4 adopted these PUA values for some partial chem bonds that aren't in Unicode - - "\uE410": [t: "частичная связь "] # 0xe410 - - "\uE411": [t: "двойная частичная связь "] # 0xe411 - - "\uE412": [t: "тройная частичная связь "] # 0xe412 - -# MathJax v4 also adopted these PUA values for some arrows thar are in Unicode -# Hopefully these will be exported properly in future versions of MathJax - - "\uE428": [spell: "'⟵'"] # 0xe428 defer to def of arrow - - "\uE429": [spell: "'⟶'"] # 0xe429 defer to def of arrow - - "\uE42A": [spell: "'⟷'"] # 0xe42a defer to def of arrow - - "\uE408": [spell: "'🣑'"] # 0xe408 defer to def of arrow - - "\uE409": [spell: "'🣒'"] # 0xe409 defer to def of arrow - - "\uE40A": [spell: "'🣓'"] # 0xe40a defer to def of arrow - - "\uE42B": [spell: "'⇄'"] # 0xe42b defer to def of arrow - - "\uE42C": [spell: "'←'"] # 0xe42c defer to def of arrow - - "\uE42D": [spell: "'→'"] # 0xe42d defer to def of arrow - - "\uE42E": [spell: "'⇄'"] # 0xe42e defer to def of arrow - +--- + + + - "¢": [t: "центы"] # 0xa2 + - "£": [t: "фунты"] # 0xa3 + - "¤": [t: "знак валюты"] # 0xa4 + - "¥": [t: "иена"] # 0xa5 + - "¦": [t: "вертикальная черта с разрывом"] # 0xa6 + - "§": [t: "параграф"] # 0xa7 + - "¨": [t: "две точки"] # 0xa8 + - "©": [t: "авторское право"] # 0xa9 + - "ª": [t: "указатель женского рода"] # 0xaa + - "¬": [t: "не"] # 0xac + - "«": [t: "левая двойная угловая кавычка"] # 0xab + - "¯": # 0xaf + - test: + if: "ancestor::m:modified-variable and preceding-sibling::*[1][self::m:mi]" + then: [t: "черта"] + else: [t: "линия"] + - "²": [t: "два"] # 0xb2 + - "³": [t: "три"] # 0xb3 + - "´": [t: "акут"] # 0xb4 + - "µ": [t: "микро"] # 0xb5 + - "¹": [t: "один"] # 0xb9 + - "º": [t: "указатель мужского рода"] # 0xb9 + - "·": + - test: + if: "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_MultSymbolDot = 'Auto'" + then: [t: "умножить"] + else: [t: "точка"] + - "×": # 0xd7 + - test: + if: "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_MultSymbolX = 'Auto'" + then: [t: "умножить"] + else_test: + if: $ClearSpeak_MultSymbolX = 'By' + then: [t: "умножить на"] + else: [t: "крест"] + - "÷": [t: "разделить на"] # 0xf7 + - "¡": [t: "перевёрнутый восклицательный знак"] # 0xa1 + - "¶": [t: "знак абзаца"] # 0xb6 + - "¿": [t: "перевёрнутый вопросительный знак"] # 0xbf + + - "ʰ": [t: "модификатор маленькая h"] # 0x2b0 + - "ʱ": [t: "модификатор маленькая h с крюком"] # 0x2b1 + - "ʲ": [t: "модификатор маленькая j"] # 0x2b2 + - "ʳ": [t: "модификатор маленькая r"] # 0x2b3 + - "ʴ": [t: "модификатор маленькая перевёрнутая r"] # 0x2b4 + - "ʵ": [t: "модификатор маленькая перевёрнутая r с крюком"] # 0x2b5 + - "ʶ": # 0x2b6 + - t: "модификатор маленькая перевёрнутая" + - spell: "translate('R', 'R', 'R')" + + - "ʷ": [t: "модификатор маленькая w"] # 0x2b7 + - "ʸ": [t: "модификатор маленькая y"] # 0x2b8 + - "ʹ": [t: "модификатор штрих"] # 0x2b9 + - "ʺ": [t: "модификатор двойной штрих"] # 0x2ba + - "ʻ": [t: "модификатор перевёрнутая запятая"] # 0x2bb + - "ʼ": [t: "модификатор апостроф"] # 0x2bc + - "ʽ": [t: "модификатор обратная запятая"] # 0x2bd + - "ʾ": [t: "модификатор правое полукольцо"] # 0x2be + - "ʿ": [t: "модификатор левое полукольцо"] # 0x2bf + - "ˀ": [t: "модификатор гортанная смычка"] # 0x2c0 + - "ˁ": [t: "модификатор обратная гортанная смычка"] # 0x2c1 + - "˂": [t: "модификатор левый наконечник стрелки"] # 0x2c2 + - "˃": [t: "модификатор правый наконечник стрелки"] # 0x2c3 + - "˄": [t: "модификатор верхний наконечник стрелки"] # 0x2c4 + - "˅": [t: "модификатор нижний наконечник стрелки"] # 0x2c5 + - "ˆ": [t: "модификатор циркумфлекс"] # 0x2c6 + - "ˇ": [t: "гачек"] # 0x2c7 + - "ˈ": [t: "модификатор вертикальная линия"] # 0x2c8 + - "ˉ": [t: "модификатор макрон"] # 0x2c9 + - "ˊ": [t: "модификатор акут"] # 0x2ca + - "ˋ": [t: "модификатор гравис"] # 0x2cb + - "ˌ": [t: "модификатор нижняя вертикальная линия"] # 0x2cc + - "ˍ": [t: "модификатор нижний макрон"] # 0x2cd + - "ˎ": [t: "модификатор нижний гравис"] # 0x2ce + - "ˏ": [t: "модификатор нижний акут"] # 0x2cf + - "ː": [t: "модификатор треугольное двоеточие"] # 0x2d0 + - "ˑ": [t: "модификатор половинное треугольное двоеточие"] # 0x2d1 + - "˒": [t: "модификатор центральное правое полукольцо"] # 0x2d2 + - "˓": [t: "модификатор центральное левое полукольцо"] # 0x2d3 + - "˔": [t: "модификатор верхний таск"] # 0x2d4 + - "˕": [t: "модификатор нижний таск"] # 0x2d5 + - "˖": [t: "модификатор знак плюс"] # 0x2d6 + - "˗": [t: "модификатор знак минус"] # 0x2d7 + - "˘": [t: "брэвэ"] # 0x2d8 + - "˙": [t: "точка"] # 0x2d9 + - "˚": [t: "кольцо сверху"] # 0x2da + - "˛": [t: "огонек"] # 0x2db + - "˜": [t: "маленькая тильда"] # 0x2dc + - "˝": [t: "двойной акут"] # 0x2dd + - "˞": [t: "модификатор ротический крюк"] # 0x2de + - "˟": [t: "модификатор крестообразный акцент"] # 0x2df + - "ˠ": [t: "модификатор маленькая гамма"] # 0x2e0 + - "ˡ": [t: "модификатор маленькая l"] # 0x2e1 + - "ˢ": [t: "модификатор маленькая s"] # 0x2e2 + - "ˣ": [t: "модификатор маленькая x"] # 0x2e3 + - "ˤ": [t: "модификатор маленькая обратная гортанная смычка"] # 0x2e4 + - "˥": [t: "модификатор сверхвысокий тон"] # 0x2e5 + - "˦": [t: "модификатор высокий тон"] # 0x2e6 + - "˧": [t: "модификатор средний тон"] # 0x2e7 + - "˨": [t: "модификатор низкий тон"] # 0x2e8 + - "˩": [t: "модификатор сверхнизкий тон"] # 0x2e9 + - "˪": [t: "модификатор знак уходящего тона инь"] # 0x2ea + - "˫": [t: "модификатор знак уходящего тона ян"] # 0x2eb + - "ˬ": [t: "модификатор озвончение"] # 0x2ec + - "˭": [t: "модификатор отсутствие придыхания"] # 0x2ed + - "ˮ": [t: "модификатор двойной апостроф"] # 0x2ee + - "˯": [t: "модификатор нижний левый наконечник стрелки"] # 0x2ef + - "˰": [t: "модификатор нижний правый наконечник стрелки"] # 0x2f0 + - "˱": [t: "модификатор нижний левый наконечник стрелки"] # 0x2f1 + - "˲": [t: "модификатор нижний правый наконечник стрелки"] # 0x2f2 + - "˳": [t: "модификатор нижнее кольцо"] # 0x2f3 + - "˴": [t: "модификатор средний гравис"] # 0x2f4 + - "˵": [t: "модификатор средний двойной гравис"] # 0x2f5 + - "˶": [t: "модификатор средний двойной акут"] # 0x2f6 + - "˷": [t: "модификатор нижняя тильда"] # 0x2f7 + - "˸": [t: "модификатор приподнятое двоеточие"] # 0x2f8 + - "˹": [t: "модификатор начало высокого тона"] # 0x2f9 + - "˺": [t: "модификатор конец высокого тона"] # 0x2fa + - "˻": [t: "модификатор начало низкого тона"] # 0x2fb + - "˼": [t: "модификатор конец низкого тона"] # 0x2fc + - "˽": [t: "модификатор полка"] # 0x2fd + - "˾": [t: "модификатор открытая полка"] # 0x2fe + - "˿": [t: "модификатор нижняя левая стрелка"] # 0x2ff + - "̀": [t: "гравис"] # 0x300 + - "́": [t: "акут"] # 0x301 + - "̂": [t: "циркумфлекс"] # 0x302 + - "̃": [t: "тильда"] # 0x303 + - "̄": [t: "макрон"] # 0x304 + - "̅": [t: "надчеркивание"] # 0x305 + - "̆": [t: "брэвэ"] # 0x306 + - "̇": [t: "точка сверху"] # 0x307 + - "̈": [t: "две точки"] # 0x308 + - "̉": [t: "крюк сверху"] # 0x309 + - "̊": [t: "кольцо сверху"] # 0x30a + - "̋": [t: "двойной акут"] # 0x30b + - "̌": [t: "гачек"] # 0x30c + - "̍": [t: "вертикальная линия сверху"] # 0x30d + - "̎": [t: "двойная вертикальная линия сверху"] # 0x30e + - "̏": [t: "двойной гравис"] # 0x30f + - "̐": [t: "чандрабинду"] # 0x310 + - "̑": [t: "перевёрнутое бреве"] # 0x311 + - "̒": [t: "перевёрнутая запятая сверху"] # 0x312 + - "̓": [t: "запятая сверху"] # 0x313 + - "̔": [t: "обратная запятая сверху"] # 0x314 + - "̕": [t: "запятая сверху справа"] # 0x315 + - "̖": [t: "гравис снизу"] # 0x316 + - "̗": [t: "акут снизу"] # 0x317 + - "̘": [t: "левый таск снизу"] # 0x318 + - "̙": [t: "правый таск снизу"] # 0x319 + - "̚": [t: "левый угол сверху"] # 0x31a + - "̛": [t: "рожок"] # 0x31b + - "̜": [t: "левое полукольцо снизу"] # 0x31c + - "̝": [t: "верхний таск снизу"] # 0x31d + - "̞": [t: "нижний таск снизу"] # 0x31e + - "̟": [t: "знак плюс снизу"] # 0x31f + - "̠": [t: "знак минус снизу"] # 0x320 + - "̡": [t: "палатализованный крюк снизу"] # 0x321 + - "̢": [t: "ретрофлексный крюк снизу"] # 0x322 + - "̣": [t: "точка снизу"] # 0x323 + - "̤": [t: "диерезис снизу"] # 0x324 + - "̥": [t: "кольцо снизу"] # 0x325 + - "̦": [t: "запятая снизу"] # 0x326 + - "̧": [t: "седиль"] # 0x327 + - "̨": [t: "огонек"] # 0x328 + - "̩": [t: "вертикальная линия снизу"] # 0x329 + - "̪": [t: "мостик снизу"] # 0x32a + - "̫": [t: "перевёрнутая двойная дуга снизу"] # 0x32b + - "̬": [t: "гачек снизу"] # 0x32c + - "̭": [t: "циркумфлекс снизу"] # 0x32d + - "̮": [t: "бреве снизу"] # 0x32e + - "̯": [t: "перевёрнутое бреве снизу"] # 0x32f + - "̰": [t: "тильда снизу"] # 0x330 + - "̱": [t: "макрон снизу"] # 0x331 + - "̲": [t: "нижнее подчёркивание"] # 0x332 + - "̳": [t: "двойное нижнее подчёркивание"] # 0x333 + - "̴": [t: "тильда поверх"] # 0x334 + - "̵": [t: "короткий штрих поверх"] # 0x335 + - "̶": [t: "длинный штрих поверх"] # 0x336 + - "̷": [t: "короткая косая черта поверх"] # 0x337 + - "̸": [t: "длинная косая черта поверх"] # 0x338 + - "̹": [t: "правое полукольцо снизу"] # 0x339 + - "̺": [t: "перевёрнутый мостик снизу"] # 0x33a + - "̻": [t: "квадрат снизу"] # 0x33b + - "̼": [t: "чайка снизу"] # 0x33c + - "̽": [t: "x сверху"] # 0x33d + - "̾": [t: "вертикальная тильда"] # 0x33e + - "̿": [t: "двойное надчёркивание"] # 0x33f + - "̀": [t: "знак тона гравис"] # 0x340 + - "́": [t: "знак тона акут"] # 0x341 + - "͆": [t: "мостик сверху"] # 0x346 + + - "ΪΫϏ": # 0x3aa, 0x3ab, 0x3cf + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [t: "заглавная"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [spell: "translate('.', 'ΪΫϏ', 'ιυϗ')"] + - t: "с диалитикой" + - "ϊ": [t: "йота с диалитикой"] # 0x3ca + - "ϋ": [t: "ипсилон с диалитикой"] # 0x3cb + - "ό": [t: "омикрон с тоносом"] # 0x3cc + - "ύ": [t: "ипсилон с тоносом"] # 0x3cd + - "ώ": [t: "омега с тоносом"] # 0x3ce + - "ϐ": [t: "бета"] # 0x3d0 + - "ϑ": [t: "тета"] # 0x3d1 + - "ϒ": [t: "ипсилон с крюком"] # 0x3d2 + - "ϓ": [t: "ипсилон с акутом и крюком"] # 0x3d3 + - "ϔ": [t: "ипсилон с диерезисом и крюком"] # 0x3d4 + - "ϕ": [t: "фи"] # 0x3d5 + - "ϖ": [t: "пи"] # 0x3d6 + - "ϗ": [t: "кай"] # 0x3d7 + - "Ϙ": [t: "заглавная архаическая коппа"] # 0x3d8 + - "ϙ": [t: "архаическая коппа"] # 0x3d9 + - "ϵ": [t: "эпсилон"] # 0x3f5 + - "϶": [t: "обратный эпсилон"] # 0x3f6 + - "А-Я": # 0x410 - 0x42f + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [t: "заглавная"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [spell: "translate('.', 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ', 'абвгдежзийклмнопрстуфхцчшщъыьэюя')"] + - "а": [t: "а"] # 0x430 + - "б": [t: "бэ"] # 0x431 + - "в": [t: "вэ"] # 0x432 + - "г": [t: "гэ"] # 0x433 + - "д": [t: "дэ"] # 0x434 + - "е": [t: "е"] # 0x435 + - "ж": [t: "жэ"] # 0x436 + - "з": [t: "зэ"] # 0x437 + - "и": [t: "и"] # 0x438 + - "й": [t: "и краткое"] # 0x439 + - "к": [t: "ка"] # 0x43a + - "л": [t: "эль"] # 0x43b + - "м": [t: "эм"] # 0x43c + - "н": [t: "эн"] # 0x43d + - "о": [t: "о"] # 0x43e + - "п": [t: "пэ"] # 0x43f + - "р": [t: "эр"] # 0x440 + - "с": [t: "эс"] # 0x441 + - "т": [t: "тэ"] # 0x442 + - "у": [t: "у"] # 0x443 + - "ф": [t: "эф"] # 0x444 + - "х": [t: "ха"] # 0x445 + - "ц": [t: "цэ"] # 0x446 + - "ч": [t: "чэ"] # 0x447 + - "ш": [t: "ша"] # 0x448 + - "щ": [t: "ща"] # 0x449 + - "ъ": [t: "твёрдый знак"] # 0x44a + - "ы": [t: "ы"] # 0x44b + - "ь": [t: "мягкий знак"] # 0x44c + - "э": [t: "э"] # 0x44d + - "ю": [t: "ю"] # 0x44e + - "я": [t: "я"] # 0x44f + - "؆": [t: "арабско-индийский кубический корень"] # 0x606 + - "؇": [t: "арабско-индийский корень четвёртой степени"] # 0x607 + - "؈": [t: "арабский луч"] # 0x608 + - "‐": [t: "дефис"] # 0x2010 + - "‑": [t: "дефис"] # 0x2011 + - "‒": [t: "цифровое тире"] # 0x2012 + - "–": [t: "короткое тире"] # 0x2013 + - "—": [t: "длинное тире"] # 0x2014 + - "―": [t: "горизонтальная черта"] # 0x2015 + - "‖": [t: "двойная вертикальная линия"] # 0x2016 + - "†": [t: "крестик"] # 0x2020 + - "‡": [t: "двойной крестик"] # 0x2021 + + - " - ": [t: " "] # 0x2000 - 0x2007 + + - "•": # 0x2022 + - test: + if: "@data-chem-formula-op" + then: [t: "точка"] + else: [t: "буллит"] + + - "…": # 0x2026 + test: + if: + - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or" + # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn' + # speak '…' as 'and so on...' unless expr starts with '…' + - "../*[1][.='…']" + then: [t: "точка точка точка"] + else_test: # must have $ClearSpeak_Ellipses = 'AndSoOn' + if: "count(following-sibling::*) = 0" + then: [t: "и так далее"] + else: [t: "и так далее вплоть до"] + + - "‰": [t: "промилле"] # 0x2030 + - "‱": [t: "на десять тысяч"] # 0x2031 + - "′": [t: "штрих"] # 0x2032 + - "″": [t: "двойной штрих"] # 0x2033 + - "‴": [t: "тройной штрих"] # 0x2034 + - "‵": [t: "обратный штрих"] # 0x2035 + - "‶": [t: "обратный двойной штрих"] # 0x2036 + - "‷": [t: "обратный тройной штрих"] # 0x2037 + - "‸": [t: "в степени"] # 0x2038 + - "‹": [t: "одинарная левая угловая кавычка"] # 0x2039 + - "›": [t: "одинарная правая угловая кавычка"] # 0x203a + - "‼": # 0x203c + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [t: "двойной восклицательный знак"] # 0x203c + else: [t: "двойной факториал"] # 0x203c + - "⁄": # 0x2044 + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [t: "крупная косая черта"] # 0x203c + else: [t: "разделить на"] # 0x203c + - "⁅": [t: "левая квадратная скобка с пером"] # 0x2045 + - "⁆": [t: "правая квадратная скобка с пером"] # 0x2046 + - "※": [t: "знак ссылки"] # 0x203b + - "‿": [t: "нижняя лигатура"] # 0x203F + - "⁀": [t: "лигатура"] # 0x2040 + - "⁎": [t: "нижняя звёздочка"] # 0x204e + - "⁏": [t: "обратная точка с запятой"] # 0x204f + - "⁐": [t: "закрыть вплотную"] # 0x2050 + - "⁑": [t: "две вертикальные звёздочки"] # 0x2051 + - "⁒": [t: "коммерческий минус"] # 0x2052 + - "⁗": [t: "четверной штрих"] # 0x2057 + - "⁠": [t: ""] # 0x2060 + - "⁰": [t: "в нулевой степени"] # 0x2070 + - "ⁱ": [t: "в степени i"] # 0x2071 + - "⁴": [t: "в четвёртой степени"] # 0x2074 + - "⁵": [t: "в пятой степени"] # 0x2075 + - "⁶": [t: "в шестой степени"] # 0x2076 + - "⁷": [t: "в седьмой степени"] # 0x2077 + - "⁸": [t: "в восьмой степени"] # 0x2078 + - "⁹": [t: "в девятой степени"] # 0x2079 + - "⁺": [t: "верхний индекс плюс"] # 0x207a + - "⁻": [t: "верхний индекс минус"] # 0x207b + - "⁼": [t: "верхний индекс знак равенства"] # 0x207c + - "⁽": [t: "верхний индекс левая скобка"] # 0x207d + - "⁾": [t: "верхний индекс правая скобка"] # 0x207e + - "ⁿ": [t: "в энной степени"] # 0x207f + - "₀": [t: "нижний индекс ноль"] # 0x2080 + - "₁": [t: "нижний индекс один"] # 0x2081 + - "₂": [t: "нижний индекс два"] # 0x2082 + - "₃": [t: "нижний индекс три"] # 0x2083 + - "₄": [t: "нижний индекс четыре"] # 0x2084 + - "₅": [t: "нижний индекс пять"] # 0x2085 + - "₆": [t: "нижний индекс шесть"] # 0x2086 + - "₇": [t: "нижний индекс семь"] # 0x2087 + - "₈": [t: "нижний индекс восемь"] # 0x2088 + - "₉": [t: "нижний индекс девять"] # 0x2089 + - "₊": [t: "нижний индекс плюс"] # 0x208a + - "₋": [t: "нижний индекс минус"] # 0x208b + - "₌": [t: "нижний индекс знак равенства"] # 0x208c + - "₍": [t: "нижний индекс левая скобка"] # 0x208d + - "₎": [t: "нижний индекс правая скобка"] # 0x208e + - "ₐ": [t: "нижний индекс A"] # 0x2090 + - "ₑ": [t: "нижний индекс E"] # 0x2091 + - "ₒ": [t: "нижний индекс O"] # 0x2092 + - "ₓ": [t: "нижний индекс X"] # 0x2093 + - "ₕ": [t: "нижний индекс H"] # 0x2095 + - "ₖ": [t: "нижний индекс K"] # 0x2096 + - "ₗ": [t: "нижний индекс L"] # 0x2097 + - "ₘ": [t: "нижний индекс M"] # 0x2098 + - "ₙ": [t: "нижний индекс N"] # 0x2099 + - "ₚ": [t: "нижний индекс P"] # 0x209a + - "ₛ": [t: "нижний индекс S"] # 0x209b + - "ₜ": [t: "нижний индекс T"] # 0x209c + - "₠": [t: "евро для расчётов"] # 0x20a0 + - "₡": [t: "колоны"] # 0x20a1 + - "₢": [t: "крузейро"] # 0x20a2 + - "₣": [t: "франк"] # 0x20a3 + - "₤": [t: "лира"] # 0x20a4 + - "₥": [t: "милль"] # 0x20a5 + - "₦": [t: "найра"] # 0x20a6 + - "₧": [t: "песета"] # 0x20a7 + - "₨": [t: "рупии"] # 0x20a8 + - "₩": [t: "вона"] # 0x20a9 + - "₪": [t: "новый шекель"] # 0x20aa + - "₫": [t: "донг"] # 0x20ab + - "€": [t: "евро"] # 0x20ac + - "₭": [t: "кип"] # 0x20ad + - "₮": [t: "тугрик"] # 0x20ae + - "₯": [t: "драхма"] # 0x20af + - "₰": [t: "немецкий пфенниг"] # 0x20b0 + - "₱": [t: "песо"] # 0x20b1 + - "₲": [t: "гуарани"] # 0x20b2 + - "₳": [t: "аустраль"] # 0x20b3 + - "₴": [t: "гривна"] # 0x20b4 + - "₵": [t: "седи"] # 0x20b5 + - "₶": [t: "ливр турнуа"] # 0x20b6 + - "₷": [t: "спесмило"] # 0x20b7 + - "₸": [t: "тенге"] # 0x20b8 + - "₹": [t: "индийская рупия"] # 0x20b9 + - "₺": [t: "турецкая лира"] # 0x20ba + - "⃐": [t: "левый гарпун сверху"] # 0x20d0 + - "⃑": [t: "правый гарпун сверху"] # 0x20d1 + - "⃒": [t: "длинная вертикальная линия поверх"] # 0x20d2 + - "⃓": [t: "короткая вертикальная линия поверх"] # 0x20d3 + - "⃔": [t: "стрелка против часовой стрелки сверху"] # 0x20d4 + - "⃕": [t: "стрелка по часовой стрелке сверху"] # 0x20d5 + - "⃖": [t: "стрелка влево сверху"] # 0x20d6 + - "⃗": [t: "стрелка вправо сверху"] # 0x20d7 + - "⃘": [t: "кольцо поверх"] # 0x20d8 + - "⃙": [t: "кольцо по часовой стрелке поверх"] # 0x20d9 + - "⃚": [t: "кольцо против часовой стрелки поверх"] # 0x20da + - "⃛": [t: "три точки"] # 0x20db + - "⃜": [t: "четыре точки"] # 0x20dc + - "⃝": [t: "обводящий круг"] # 0x20dd + - "⃞": [t: "обводящий квадрат"] # 0x20de + - "⃟": [t: "обводящий ромб"] # 0x20df + - "⃠": [t: "обводящий круг с обратной косой чертой"] # 0x20e0 + - "⃡": [t: "стрелка влево-вправо сверху"] # 0x20e1 + - "⃢": [t: "обводящий экран"] # 0x20e2 + - "⃣": [t: "обводящая клавиша"] # 0x20e3 + - "⃤": [t: "обводящий треугольник остриём вверх"] # 0x20e4 + - "⃥": [t: "обратная косая черта поверх"] # 0x20e5 + - "⃦": [t: "двойной вертикальный штрих"] # 0x20e6 + - "⃧": [t: "символ аннуитета"] # 0x20e7 + - "⃨": [t: "тройная нижняя точка"] # 0x20e8 + - "⃩": [t: "широкий мостик сверху"] # 0x20e9 + - "⃪": [t: "стрелка влево поверх"] # 0x20ea + - "⃫": [t: "длинная двойная косая черта поверх"] # 0x20eb + - "⃬": [t: "правый гарпун с бородкой вниз"] # 0x20ec + - "⃭": [t: "левый гарпун с бородкой вниз"] # 0x20ed + - "⃮": [t: "стрелка влево снизу"] # 0x20ee + - "⃯": [t: "стрелка вправо снизу"] # 0x20ef + - "⃰": [t: "звёздочка сверху"] # 0x20f0 + - "℄": [t: "символ центральной линии"] # 0x2104 + - "℅": [t: "для передачи"] # 0x2105 + - "℆": [t: "каждая"] # 0x2106 + - "ℇ": [t: "постоянная Эйлера"] # 0x2107 + - "℈": [t: "скрупулы"] # 0x2108 + - "℉": [t: "градусы Фаренгейта"] # 0x2109 + - "ℊ": [t: "рукописная g"] # 0x210a + - "ℌℑℨℭ": # 0x210c, 0x2111, 0x2128, 0x212d + - t: "фрактурная" + - spell: "translate('.', 'ℌℑℨℭ', 'HIZC')" + + - "ℍℙℾℿ": # 0x210d, 0x2119, 0x213e, 0x213f + - t: "двойная" + - spell: "translate('.', 'ℍℙℾℿ', 'HPΓΠ')" + + - "ℎ": [t: "постоянная Планка"] # 0x210e + - "ℏ": [t: "h с чертой"] # 0x210f + + - "ℐℒ℘ℬℰℱℳ": # 0x2110, 0x2112, 0x2118, 0x2130, 0x2131, 0x2133 + - t: "рукописная" + - spell: "translate('.', 'ℐℒ℘ℬℰℱℳ', 'ILPBEFM')" + + - "ℓ": [t: "рукописная l"] # 0x2113 + - "℔": [t: "фунты"] # 0x2114 + - "№": [t: "номер"] # 0x2116 + - "℥": [t: "унции"] # 0x2125 + - "Ω": [t: "омы"] # 0x2126 + - "℧": [t: "сименсы"] # 0x2127 + - "℩": [t: "перевёрнутая йота"] # 0x2129 + - "K": [t: "кельвин"] # 0x212a + - "Å": [t: "ангстремы"] # 0x212b + - "ℯ": [t: "рукописная e"] # 0x212f + + # coalesced some chars that use cap letters + - "Ⅎ": + - t: "перевернутая" + - spell: "'F'" + - "⅄": + - t: "перевернутая" + - spell: "'Y'" + - t: "без засечек" + - "℺⅁⅂⅃": # 0x213a, 0x2141, 0x2142, 0x2143 + - test: + - if: "'.' = '℺'" + then: [t: "повёрнутая"] + - else_if: "'.' = 'Ⅎ'" + then: [t: "перевернутая"] + - else_if: "'.' = '⅃'" + then: [t: "обратная без засечек"] + else: [t: "перевернутая без засечек"] + - spell: "translate('.', '℺⅁⅂⅃', 'QGLL')" + + - "ℴ": [t: "рукописная o"] # 0x2134 + - "ℵ": [t: "алеф"] # 0x2135 + - "ℶ": [t: "бет"] # 0x2136 + - "ℷ": [t: "гимель"] # 0x2137 + - "ℸ": [t: "далет"] # 0x2138 + - "ℼ": [t: "пи с двойным контуром"] # 0x213c + - "ℽ": [t: "гамма с двойным контуром"] # 0x213d + - "⅀": [t: "n-арное суммирование с двойным контуром"] # 0x2140 + - "⅋": [t: "перевёрнутый амперсанд"] # 0x214b + - "⅌": [t: "на"] # 0x214c + - "ⅎ": [t: "перевёрнутая F"] # 0x214e + - "¼": [t: "одна четвёртая"] # 0x00bc + - "½": [t: "одна вторая"] # 0x00bd + - "¾": [t: "три четвёртых"] # 0x00be + - "⅐": [t: "одна седьмая"] # 0x2150 + - "⅑": [t: "одна девятая"] # 0x2151 + - "⅒": [t: "одна десятая"] # 0x2152 + - "⅓": [t: "одна треть"] # 0x2153 + - "⅔": [t: "две трети"] # 0x2154 + - "⅕": [t: "одна пятая"] # 0x2155 + - "⅖": [t: "две пятых"] # 0x2156 + - "⅗": [t: "три пятых"] # 0x2157 + - "⅘": [t: "четыре пятых"] # 0x2158 + - "⅙": [t: "одна шестая"] # 0x2159 + - "⅚": [t: "пять шестых"] # 0x215a + - "⅛": [t: "одна восьмая"] # 0x215b + - "⅜": [t: "три восьмых"] # 0x215c + - "⅝": [t: "пять восьмых"] # 0x215d + - "⅞": [t: "семь восьмых"] # 0x215e + - "⅟": [t: "единица делить на"] # 0x215f + - "Ⅰ": [t: "I"] # 0x2160 + - "Ⅱ": [t: "I I"] # 0x2161 + - "Ⅲ": [t: "I I I"] # 0x2162 + - "Ⅳ": [t: "I V"] # 0x2163 + - "Ⅴ": [t: "V"] # 0x2164 + - "Ⅵ": [t: "V I"] # 0x2165 + - "Ⅶ": [t: "V I I"] # 0x2166 + - "Ⅷ": [t: "V I I I"] # 0x2167 + - "Ⅸ": [t: "I X"] # 0x2168 + - "Ⅹ": [t: "X"] # 0x2169 + - "Ⅺ": [t: "X I"] # 0x216a + - "Ⅻ": [t: "X I I"] # 0x216b + - "Ⅼ": [t: "L"] # 0x216c + - "Ⅽ": [t: "C"] # 0x216d + - "Ⅾ": [t: "D"] # 0x216e + - "Ⅿ": [t: "M"] # 0x216f + - "ⅰ": [t: "I"] # 0x2170 + - "ⅱ": [t: "I I"] # 0x2171 + - "ⅲ": [t: "I I I"] # 0x2172 + - "ⅳ": [t: "I V"] # 0x2173 + - "ⅴ": [t: "V"] # 0x2174 + - "ⅵ": [t: "V I"] # 0x2175 + - "ⅶ": [t: "V I I"] # 0x2176 + - "ⅷ": [t: "V I I I"] # 0x2177 + - "ⅸ": [t: "I X"] # 0x2178 + - "ⅹ": [t: "X"] # 0x2179 + - "ⅺ": [t: "X I"] # 0x217a + - "ⅻ": [t: "X I I"] # 0x217b + - "ⅼ": [t: "L"] # 0x217c + - "ⅽ": [t: "C"] # 0x217d + - "ⅾ": [t: "D"] # 0x217e + - "ⅿ": [t: "M"] # 0x217f + - "↉": [t: "ноль третьих"] # 0x2189 + - "↔": [t: "стрелка влево-вправо"] # 0x2194 + - "↕": [t: "стрелка вверх-вниз"] # 0x2195 + - "↖": [t: "стрелка на северо-запад"] # 0x2196 + - "↗": # 0x2197 + - test: + if: "ancestor::*[2][self::m:limit]" + then: [t: "стремящемся к"] + else: [t: "стрелка на северо-восток"] + + - "↘": # 0x2198 + - test: + if: "ancestor::*[2][self::m:limit]" + then: [t: "стремится сверху"] + else: [t: "стрелка на юго-восток"] + + - "↙": [t: "стрелка на юго-запад"] # 0x2199 + - "↚": [t: "стрелка влево со штрихом"] # 0x219a + - "↛": [t: "стрелка вправо со штрихом"] # 0x219b + - "↜": [t: "волнистая стрелка влево"] # 0x219c + - "↝": [t: "волнистая стрелка вправо"] # 0x219d + - "↞": [t: "стрелка влево с двумя наконечниками"] # 0x219e + - "↟": [t: "стрелка вверх с двумя наконечниками"] # 0x219f + - "↠": [t: "стрелка вправо с двумя наконечниками"] # 0x21a0 + - "↡": [t: "стрелка вниз с двумя наконечниками"] # 0x21a1 + - "↢": [t: "стрелка влево с хвостом"] # 0x21a2 + - "↣": [t: "стрелка вправо с хвостом"] # 0x21a3 + - "↤": [t: "стрелка влево от черты"] # 0x21a4 + - "↥": [t: "стрелка вверх от черты"] # 0x21a5 + - "↦": [t: "стрелка вправо от черты"] # 0x21a6 + - "↧": [t: "стрелка вниз от черты"] # 0x21a7 + - "↨": [t: "стрелка вверх-вниз с основанием"] # 0x21a8 + - "↩": [t: "стрелка влево с крюком"] # 0x21a9 + - "↪": [t: "стрелка вправо с крюком"] # 0x21aa + - "↫": [t: "стрелка влево с петлёй"] # 0x21ab + - "↬": [t: "стрелка вправо с петлёй"] # 0x21ac + - "↭": [t: "волнистая стрелка влево-вправо"] # 0x21ad + - "↮": [t: "стрелка влево-вправо со штрихом"] # 0x21ae + - "↯": [t: "зигзагообразная стрелка вниз"] # 0x21af + - "↰": [t: "стрелка вверх с наконечником влево"] # 0x21b0 + - "↱": [t: "стрелка вверх с наконечником вправо"] # 0x21b1 + - "↲": [t: "стрелка вниз с наконечником влево"] # 0x21b2 + - "↳": [t: "стрелка вниз с наконечником вправо"] # 0x21b3 + - "↴": [t: "стрелка вправо с уголком вниз"] # 0x21b4 + - "↵": [t: "стрелка вниз с уголком влево"] # 0x21b5 + - "↶": [t: "верхняя полуокружность против часовой"] # 0x21b6 + - "↷": [t: "верхняя полуокружность по часовой"] # 0x21b7 + - "↸": [t: "стрелка на северо-запад к длинной черте"] # 0x21b8 + - "↹": [t: "стрелка влево к черте над стрелкой вправо к черте"] # 0x21b9 + - "↺": [t: "круговая стрелка против часовой"] # 0x21ba + - "↻": [t: "круговая стрелка по часовой"] # 0x21bb + - "↼": [t: "левый гарпун вверх"] # 0x21bc + - "↽": [t: "левый гарпун вниз"] # 0x21bd + - "↾": [t: "верхний гарпун вправо"] # 0x21be + - "↿": [t: "верхний гарпун влево"] # 0x21bf + - "⇀": [t: "правый гарпун вверх"] # 0x21c0 + - "⇁": [t: "правый гарпун вниз"] # 0x21c1 + - "⇂": [t: "нижний гарпун вправо"] # 0x21c2 + - "⇃": [t: "нижний гарпун влево"] # 0x21c3 + - "⇄": [t: "стрелка вправо над стрелкой влево"] # 0x21c4 + - "⇅": [t: "стрелка вверх слева от стрелки вниз"] # 0x21c5 + - "⇆": [t: "стрелка влево над стрелкой вправо"] # 0x21c6 + - "⇇": [t: "парные стрелки влево"] # 0x21c7 + - "⇈": [t: "парные стрелки вверх"] # 0x21c8 + - "⇉": [t: "парные стрелки вправо"] # 0x21c9 + - "⇊": [t: "парные стрелки вниз"] # 0x21ca + - "⇋": [t: "левый гарпун над правым гарпуном"] # 0x21cb + - "⇌": [t: "правый гарпун над левым гарпуном"] # 0x21cc + - "⇍": [t: "левая двойная стрелка со штрихом"] # 0x21cd + - "⇎": [t: "двойная стрелка влево-вправо со штрихом"] # 0x21ce + - "⇏": [t: "правая двойная стрелка со штрихом"] # 0x21cf + - "⇐": [t: "левая двойная стрелка"] # 0x21d0 + - "⇑": [t: "верхняя двойная стрелка"] # 0x21d1 + - "⇒": [t: "следует"] # 0x21d2 + - "⇓": [t: "нижняя двойная стрелка"] # 0x21d3 + - "⇔": [t: "тогда и только тогда"] # 0x21d4 + - "⇕": [t: "двойная стрелка вверх-вниз"] # 0x21d5 + - "⇖": [t: "двойная стрелка на северо-запад"] # 0x21d6 + - "⇗": [t: "двойная стрелка на северо-восток"] # 0x21d7 + - "⇘": [t: "двойная стрелка на юго-восток"] # 0x21d8 + - "⇙": [t: "двойная стрелка на юго-запад"] # 0x21d9 + - "⇚": [t: "левая тройная стрелка"] # 0x21da + - "⇛": [t: "правая тройная стрелка"] # 0x21db + - "⇜": [t: "левая волнистая стрелка"] # 0x21dc + - "⇝": [t: "правая волнистая стрелка"] # 0x21dd + - "⇞": [t: "стрелка вверх с двойным штрихом"] # 0x21de + - "⇟": [t: "стрелка вниз с двойным штрихом"] # 0x21df + - "⇠": [t: "левая пунктирная стрелка"] # 0x21e0 + - "⇡": [t: "верхняя пунктирная стрелка"] # 0x21e1 + - "⇢": [t: "правая пунктирная стрелка"] # 0x21e2 + - "⇣": [t: "нижняя пунктирная стрелка"] # 0x21e3 + - "⇤": [t: "стрелка влево к черте"] # 0x21e4 + - "⇥": [t: "стрелка вправо к черте"] # 0x21e5 + - "⇦": [t: "левая белая стрелка"] # 0x21e6 + - "⇧": [t: "верхняя белая стрелка"] # 0x21e7 + - "⇨": [t: "правая белая стрелка"] # 0x21e8 + - "⇩": [t: "нижняя белая стрелка"] # 0x21e9 + - "⇪": [t: "верхняя белая стрелка от черты"] # 0x21ea + - "⇫": [t: "верхняя белая стрелка на пьедестале"] # 0x21eb + - "⇬": [t: "верхняя белая стрелка на пьедестале с горизонтальной чертой"] # 0x21ec + - "⇭": [t: "верхняя белая стрелка на пьедестале с вертикальной чертой"] # 0x21ed + - "⇮": [t: "верхняя белая двойная стрелка"] # 0x21ee + - "⇯": [t: "верхняя белая двойная стрелка на пьедестале"] # 0x21ef + - "⇰": [t: "правая белая стрелка от стены"] # 0x21f0 + - "⇱": [t: "стрелка на северо-запад в угол"] # 0x21f1 + - "⇲": [t: "стрелка на юго-восток в угол"] # 0x21f2 + - "⇳": [t: "белая стрелка вверх-вниз"] # 0x21f3 + - "⇴": [t: "стрелка вправо с маленьким кругом"] # 0x21f4 + - "⇵": [t: "стрелка вниз слева от стрелки вверх"] # 0x21f5 + - "⇶": [t: "три стрелки вправо"] # 0x21f6 + - "⇷": [t: "стрелка влево с вертикальным штрихом"] # 0x21f7 + - "⇸": [t: "стрелка вправо с вертикальным штрихом"] # 0x21f8 + - "⇹": [t: "стрелка влево-вправо с вертикальным штрихом"] # 0x21f9 + - "⇺": [t: "стрелка влево с двойным вертикальным штрихом"] # 0x21fa + - "⇻": [t: "стрелка вправо с двойным вертикальным штрихом"] # 0x21fb + - "⇼": [t: "стрелка влево-вправо с двойным вертикальным штрихом"] # 0x21fc + - "⇽": [t: "левая открытая стрелка"] # 0x21fd + - "⇾": [t: "правая открытая стрелка"] # 0x21fe + - "⇿": [t: "открытая стрелка влево-вправо"] # 0x21ff + - "∀": [t: "для всех"] # 0x2200 + - "∁": # 0x2201 + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "дополнение" + - "∂": # 0x2202 + - test: + if: "$Verbosity='Terse'" + then: [t: "частная"] + else: [t: "частная производная"] + - "∃": [t: "существует"] # 0x2203 + - "∄": [t: "не существует"] # 0x2204 + - "∅": [t: "пустое множество"] # 0x2205 + - "∆": # 0x2206 + - test: + if: "following-sibling::*" + then_test: + if: "$Verbosity!='Terse'" + then: [t: "лапласиан от"] # "LahPlahsian" sounds better than "laplacian" in speech engines tested + else: [t: "лапласиан"] + else: [t: "лапласиан"] + + - "∇": [t: "набла"] # 0x2207 + - "∉": # 0x2209 + # rule is identical to 0x2208 + - test: + if: "$SpeechStyle != 'ClearSpeak'" + then: [t: "не является элементом"] + # 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 + then_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' + then: [t: "не в"] + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + then: [t: "не является членом"] + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [t: "не является элементом"] + - else: [t: "не принадлежит"] # $ClearSpeak_SetMemberSymbol = 'Belongs' + else_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' + then: [t: "не является членом"] + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [t: "не является элементом"] + - else_if: $ClearSpeak_SetMemberSymbol = 'In' + then: [t: "не находится в"] + - else: [t: "не принадлежит"] # $ClearSpeak_SetMemberSymbol = 'Belongs' + - "∊": # 0x220a + - test: + if: "$SpeechStyle != 'ClearSpeak'" + then: + - test: + if: "$Verbosity!='Terse' and not(parent::m:set)" # "the set x is an element of ..." sounds bad + then: [t: "является"] + - t: "элементом" + # 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 + then_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' + then: [t: "в"] + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + then: [t: "член"] + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [t: "элемент"] + - else: [t: "принадлежит"] # $ClearSpeak_SetMemberSymbol = 'Belongs' + else_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' + then: [t: "является членом"] + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [t: "является элементом"] + - else_if: $ClearSpeak_SetMemberSymbol = 'In' + then: [t: "находится в"] + - else: [t: "принадлежит"] # $ClearSpeak_SetMemberSymbol = 'Belongs' + - "∋": [t: "содержит член"] # 0x220b + - "∌": [t: "не содержит член"] # 0x220c + - "∍": [t: "содержит член"] # 0x220d + - "∎": [t: "конец доказательства"] # 0x220e + - "∏": [t: "произведение"] # 0x220f + - "∐": [t: "копроизведение"] # 0x2210 + - "∑": [t: "сумма"] # 0x2211 + - "−": [t: "минус"] # 0x2212 + - "∓": [t: "минус или плюс"] # 0x2213 + - "∔": [t: "точка плюс"] # 0x2214 + - "∕": [t: "разделить на"] # 0x2215 + - "∖": [t: "разность множеств"] # 0x2216 + - "∗": [t: "умножить"] # 0x2217 + - "∘": [t: "композиция с"] # 0x2218 + - "∙": # 0x2219 + - test: + if: "@data-chem-formula-op" + then: [t: "точка"] + else: [t: "умножить"] + + - "√": # 0x221a + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "квадратный корень из" + - "∛": # 0x221b + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "кубический корень из" + - "∜": # 0x221c + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "корень четвёртой степени из" + - "∝": # 0x221d + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "пропорционально" + - "∞": [t: "бесконечность"] # 0x221e + - "∟": [t: "прямой угол"] # 0x221f + - "∠": [t: "угол"] # 0x2220 + - "∡": [t: "измеренный угол"] # 0x2221 + - "∢": [t: "сферический угол"] # 0x2222 + - "∣": [t: "делит"] # 0x2223 + - "∤": [t: "не делит"] # 0x2224 + - "∧": [t: "и"] # 0x2227 + - "∨": [t: "или"] # 0x2228 + - "∩": [t: "пересечение"] # 0x2229 + - "∪": [t: "объединение"] # 0x222a + - "∫": [t: "интеграл"] # 0x222b + - "∬": [t: "двойной интеграл"] # 0x222c + - "∭": [t: "тройной интеграл"] # 0x222d + - "∮": [t: "контурный интеграл"] # 0x222e + - "∯": [t: "поверхностный интеграл"] # 0x222f + - "∰": [t: "объёмный интеграл"] # 0x2230 + - "∱": [t: "интеграл по часовой"] # 0x2231 + - "∲": [t: "контурный интеграл по часовой"] # 0x2232 + - "∳": [t: "контурный интеграл против часовой"] # 0x2233 + - "∴": [t: "следовательно"] # 0x2234 + - "∵": [t: "потому что"] # 0x2235 + - "∶": # 0x2236 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "к" + - "∷": [t: "как"] # 0x2237 + - "∸": [t: "точка минус"] # 0x2238 + - "∹": [t: "имеет избыток по сравнению с"] # 0x2239 + - "∺": # 0x223a + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "геометрически пропорционально" + - "∻": # 0x223b + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "гомотетично" + - "∼": [t: "изменяется с"] # 0x223c + - "∽": [t: "обратная тильда"] # 0x223d + - "∾": # 0x223e + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "наиболее положительным" + - "∿": [t: "синусоида"] # 0x223f + - "≀": [t: "венок"] # 0x2240 + - "≁": [t: "не тильда"] # 0x2241 + - "≂": [t: "минус тильда"] # 0x2242 + - "≃": # 0x2243 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "асимптотически равно" + - "≄": # 0x2244 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не асимптотически равно" + - "≅": # 0x2245 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "конгруэнтно" + - "≆": # 0x2246 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "приблизительно, но не фактически равно" + - "≇": # 0x2247 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не конгруэнтно" + - "≈": # 0x2248 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "приблизительно равно" + - "≉": # 0x2249 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не приблизительно равно" + - "≊": # 0x224a + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "приблизительно равно или равно" + - "≋": [t: "тройная тильда"] # 0x224b + - "≌": [t: "все равны"] # 0x224c + - "≍": # 0x224d + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "эквивалентно" + - "≎": # 0x224e + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "геометрически эквивалентно" + - "≏": # 0x224f + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "разность" + - "≐": [t: "стремится к пределу"] # 0x2250 + - "≑": # 0x2251 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "геометрически равно" + - "≒": # 0x2252 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "приблизительно равно или образ" + - "≓": # 0x2253 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "образ или приблизительно равно" + - "≔": [t: "двоеточие равно"] # 0x2254 + - "≕": [t: "равно двоеточие"] # 0x2255 + - "≖": [t: "кольцо в равно"] # 0x2256 + - "≗": # 0x2257 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "приблизительно равно" + - "≘": [t: "соответствует"] # 0x2258 + - "≙": [t: "оценивает"] # 0x2259 + - "≚": # 0x225a + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "равноугольно" + - "≛": [t: "звезда равно"] # 0x225b + - "≜": [t: "дельта равно"] # 0x225c + - "≝": [t: "определяется как"] # 0x225d + - "≞": # 0x225e + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "измеряется" + - "≟": [t: "имеет неизвестное отношение с"] # 0x225f + - "≠": # 0x2260 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не равно" + - "≡": # 0x2261 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "тождественно равно" + - "≢": # 0x2262 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не тождественно равно" + - "≣": # 0x2263 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "строго эквивалентно" + - "≦": [t: "меньше или равно"] # 0x2266 (less than over equal to) фактически ≤ + - "≧": [t: "больше или равно"] # 0x2267 (greater than over equal to) фактически ≥ + - "≨": # 0x2268 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "меньше, но не равно" + - "≩": # 0x2269 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "больше, но не равно" + - "≪": # 0x226a + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "много меньше" + - "≫": # 0x226b + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "много больше" + - "≬": # 0x226c + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "между" + - "≭": # 0x226d + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не эквивалентно" + - "≮": # 0x226e + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не меньше" + - "≯": # 0x226f + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не больше" + - "≰": # 0x2270 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "ни меньше, ни равно" + - "≱": # 0x2271 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "ни больше, ни равно" + - "≲": # 0x2272 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "меньше или эквивалентно" + - "≳": # 0x2273 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "больше или эквивалентно" + - "≴": # 0x2274 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "ни меньше, ни эквивалентно" + - "≵": # 0x2275 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "ни больше, ни эквивалентно" + - "≶": # 0x2276 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "меньше или больше" + - "≷": # 0x2277 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "больше или меньше" + - "≸": # 0x2278 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "ни меньше, ни больше" + - "≹": # 0x2279 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "ни больше, ни меньше" + - "≺": [t: "предшествует"] # 0x227a + - "≻": [t: "следует"] # 0x227b + - "≼": [t: "предшествует или равно"] # 0x227c + - "≽": [t: "следует или равно"] # 0x227d + - "≾": [t: "предшествует или эквивалентно"] # 0x227e + - "≿": [t: "следует или эквивалентно"] # 0x227f + - "⊀": [t: "не предшествует"] # 0x2280 + - "⊁": [t: "не следует"] # 0x2281 + - "⊂": # 0x2282 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "подмножеством" + - "⊃": # 0x2283 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "надмножеством" + - "⊄": # 0x2284 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не подмножеством" + - "⊅": # 0x2285 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не надмножеством" + - "⊆": # 0x2286 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "подмножеством или равно" + - "⊇": # 0x2287 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "надмножеством или равно" + - "⊈": # 0x2288 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "ни подмножеством, ни равно" + - "⊉": # 0x2289 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "ни надмножеством, ни равно" + - "⊊": [t: "подмножество, но не равно"] # 0x228a + - "⊋": [t: "надмножество, но не равно"] # 0x228b + - "⊌": [t: "мультимножество"] # 0x228c + - "⊍": [t: "умножение мультимножеств"] # 0x228d + - "⊎": [t: "объединение мультимножеств"] # 0x228e + - "⊏": [t: "квадратный образ"] # 0x228f + - "⊐": [t: "квадратный прообраз"] # 0x2290 + - "⊑": [t: "квадратный образ или равно"] # 0x2291 + - "⊒": [t: "квадратный прообраз или равно"] # 0x2292 + - "⊓": [t: "квадратное пересечение"] # 0x2293 + - "⊔": [t: "квадратное объединение"] # 0x2294 + - "⊕": [t: "плюс в круге"] # 0x2295 + - "⊖": [t: "минус в круге"] # 0x2296 + - "⊗": [t: "умножить в круге"] # 0x2297 + - "⊘": [t: "косая черта в круге"] # 0x2298 + - "⊙": [t: "точка в круге"] # 0x2299 + - "⊚": [t: "кольцо в круге"] # 0x229a + - "⊛": [t: "звёздочка в круге"] # 0x229b + - "⊜": [t: "равно в круге"] # 0x229c + - "⊝": [t: "тире в круге"] # 0x229d + - "⊞": [t: "плюс в квадрате"] # 0x229e + - "⊟": [t: "минус в квадрате"] # 0x229f + - "⊠": [t: "умножить в квадрате"] # 0x22a0 + - "⊡": [t: "точка в квадрате"] # 0x22a1 + - "⊢": [t: "доказывает"] # 0x22a2 + - "⊣": [t: "не выводит"] # 0x22a3 + - "⊤": [t: "истина"] # 0x22a4 + - "⊥": # 0x22a5 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "ложь" + - "⊦": [t: "сводится к"] # 0x22a6 + - "⊧": [t: "моделирует"] # 0x22a7 + - "⊨": # 0x22a8 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "истинно" + - "⊩": [t: "форсирует"] # 0x22a9 + - "⊪": [t: "тройная вертикальная черта с правым турникетом"] # 0x22aa + - "⊫": [t: "двойная вертикальная черта с двойным правым турникетом"] # 0x22ab + - "⊬": [t: "не доказывает"] # 0x22ac + - "⊭": # 0x22ad + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не истинно" + - "⊮": [t: "не форсирует"] # 0x22ae + - "⊯": [t: "отрицание двойной вертикальной черты с двойным правым турникетом"] # 0x22af + - "⊰": [t: "предшествует по отношению"] # 0x22b0 + - "⊱": [t: "следует по отношению"] # 0x22b1 + - "⊲": # 0x22b2 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "нормальной подгруппой" + - "⊳": [t: "содержит как нормальную подгруппу"] # 0x22b3 + - "⊴": # 0x22b4 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "нормальной подгруппой или равно" + - "⊵": [t: "содержит как нормальную подгруппу или равно"] # 0x22b5 + - "⊶": # 0x22b6 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "прообразом" + - "⊷": # 0x22b7 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "образом" + - "⊸": [t: "мультиотображение"] # 0x22b8 + - "⊹": [t: "эрмитово сопряжённая матрица"] # 0x22b9 + - "⊺": [t: "интеркалат"] # 0x22ba + - "⊻": [t: "исключающее или"] # 0x22bb + - "⊼": [t: "не-и"] # 0x22bc + - "⊽": [t: "не-или"] # 0x22bd + - "⊾": [t: "прямой угол с дугой"] # 0x22be + - "⊿": [t: "прямоугольный треугольник"] # 0x22bf + - "⋀": [t: "логическое и"] # 0x22c0 + - "⋁": [t: "логическое или"] # 0x22c1 + - "⋂": [t: "пересечение"] # 0x22c2 + - "⋃": [t: "объединение"] # 0x22c3 + - "⋄": [t: "ромб"] # 0x22c4 + - "⋅": # 0x22c5 + - test: + if: "@data-chem-formula-op" + then: [t: "точка"] + else: [t: "умножить"] + + - "⋆": [t: "умножить"] # 0x22c6 + - "⋇": [t: "деление с умножением"] # 0x22c7 + - "⋈": [t: "бантик"] # 0x22c8 + - "⋉": # 0x22c9 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "левым нормальным полупрямым произведением" + - "⋊": # 0x22ca + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "правым нормальным полупрямым произведением" + - "⋋": # 0x22cb + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "левым полупрямым произведением" + - "⋌": # 0x22cc + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "правым полупрямым произведением" + - "⋍": [t: "обратная тильда равно"] # 0x22cd + - "⋎": [t: "фигурное логическое или"] # 0x22ce + - "⋏": [t: "фигурное логическое и"] # 0x22cf + - "⋐": # 0x22d0 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "двойным подмножеством" + - "⋑": # 0x22d1 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "двойным надмножеством" + - "⋒": # 0x22d2 + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "двойное пересечение" + - "⋓": # 0x22d3 + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "двойное объединение" + - "⋔": # 0x22d4 + - test: + if: "$Verbosity!='Terse'" + then: [ot: "the"] + - t: "собственное пересечение" + - "⋕": # 0x22d5 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "равно и параллельно" + - "⋖": [t: "меньше с точкой"] # 0x22d6 + - "⋗": [t: "больше с точкой"] # 0x22d7 + - "⋘": # 0x22d8 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "очень много меньше" + - "⋙": # 0x22d9 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "очень много больше" + - "⋚": # 0x22da + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "меньше, равно или больше" + - "⋛": # 0x22db + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "больше, равно или меньше" + - "⋜": # 0x22dc + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "равно или меньше" + - "⋝": # 0x22dd + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "равно или больше" + - "⋞": # 0x22de + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "равно или предшествует" + - "⋟": # 0x22df + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "равно или следует" + - "⋠": [t: "не предшествует и не равно"] # 0x22e0 + - "⋡": [t: "не следует и не равно"] # 0x22e1 + - "⋢": [t: "не квадратный образ или равно"] # 0x22e2 + - "⋣": [t: "не квадратный прообраз или равно"] # 0x22e3 + - "⋤": [t: "квадратный образ или не равно"] # 0x22e4 + - "⋥": [t: "квадратный прообраз или не равно"] # 0x22e5 + - "⋦": # 0x22e6 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "меньше, но не эквивалентно" + - "⋧": # 0x22e7 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "больше, но не эквивалентно" + - "⋨": [t: "предшествует, но не эквивалентно"] # 0x22e8 + - "⋩": [t: "следует, но не эквивалентно"] # 0x22e9 + - "⋪": # 0x22ea + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не нормальной подгруппой" + - "⋫": [t: "не содержит как нормальную подгруппу"] # 0x22eb + - "⋬": # 0x22ec + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "не нормальной подгруппой и не равно" + - "⋭": [t: "не содержит как нормальную подгруппу и не равно"] # 0x22ed + - "⋮": [t: "вертикальное многоточие"] # 0x22ee + - "⋯": [t: "точка точка точка"] # 0x22ef + - "⋰": [t: "диагональное многоточие вверх"] # 0x22f0 + - "⋱": [t: "диагональное многоточие"] # 0x22f1 + - "⋲": [t: "элемент с длинным горизонтальным штрихом"] # 0x22f2 + - "⋳": [t: "элемент с вертикальной чертой в конце горизонтального штриха"] # 0x22f3 + - "⋴": [t: "элемент с вертикальной чертой в конце горизонтального штриха"] # 0x22f4 + - "⋵": [t: "элемент с точкой сверху"] # 0x22f5 + - "⋶": [t: "элемент с надчеркиванием"] # 0x22f6 + - "⋷": [t: "элемент с надчеркиванием"] # 0x22f7 + - "⋸": [t: "элемент с подчеркиванием"] # 0x22f8 + - "⋹": [t: "элемент с двумя горизонтальными штрихами"] # 0x22f9 + - "⋺": [t: "содержит с длинным горизонтальным штрихом"] # 0x22fa + - "⋻": [t: "содержит с вертикальной чертой в конце горизонтального штриха"] # 0x22fb + - "⋼": [t: "содержит с вертикальной чертой в конце горизонтального штриха"] # 0x22fc + - "⋽": [t: "содержит с надчеркиванием"] # 0x22fd + - "⋾": [t: "содержит с надчеркиванием"] # 0x22fe + - "⋿": [t: "Z-нотация принадлежность мультимножеству"] # 0x22ff + - "⌀": [t: "диаметр"] # 0x2300 + - "⌁": [t: "электрическая стрелка"] # 0x2301 + - "⌂": [t: "домик"] # 0x2302 + - "⌃": [t: "наконечник стрелки вверх"] # 0x2303 + - "⌄": [t: "наконечник стрелки вниз"] # 0x2304 + - "⌅": [t: "проективный"] # 0x2305 + - "⌆": [t: "перспектива"] # 0x2306 + - "⌇": [t: "волнистая линия"] # 0x2307 + - "⌈": [t: "левый потолок"] # 0x2308 + - "⌉": [t: "правый потолок"] # 0x2309 + - "⌊": [t: "левый пол"] # 0x230a + - "⌋": [t: "правый пол"] # 0x230b + - "⌌": [t: "нижняя правая обрезка"] # 0x230c + - "⌍": [t: "нижняя левая обрезка"] # 0x230d + - "⌎": [t: "верхняя правая обрезка"] # 0x230e + - "⌏": [t: "верхняя левая обрезка"] # 0x230f + - "⌐": [t: "обратный знак отрицания"] # 0x2310 + - "⌑": [t: "квадратная луковица"] # 0x2311 + - "⌒": [t: "дуга"] # 0x2312 + - "⌓": [t: "сегмент"] # 0x2313 + - "⌔": [t: "сектор"] # 0x2314 + - "⌕": [t: "телефонный рекордер"] # 0x2315 + - "⌖": [t: "перекрестие индикатора позиции"] # 0x2316 + - "⌗": [t: "квадрат видеоданных"] # 0x2317 + - "⌘": [t: "знак места интереса"] # 0x2318 + - "⌙": [t: "перевёрнутый знак отрицания"] # 0x2319 + - "⌚": [t: "часы"] # 0x231a + - "⌛": [t: "песочные часы"] # 0x231b + - "⌜": [t: "верхний левый угол"] # 0x231c + - "⌝": [t: "верхний правый угол"] # 0x231d + - "⌞": [t: "нижний левый угол"] # 0x231e + - "⌟": [t: "нижний правый угол"] # 0x231f + - "⌠": [t: "верхняя половина интеграла"] # 0x2320 + - "⌡": [t: "нижняя половина интеграла"] # 0x2321 + - "⌢": [t: "хмурый"] # 0x2322 + - "⌣": [t: "улыбка"] # 0x2323 + - "⌤": [t: "наконечник стрелки вверх между двумя горизонтальными чертами"] # 0x2324 + - "⌥": [t: "клавиша Option"] # 0x2325 + - "⌦": [t: "стереть вправо"] # 0x2326 + - "⌧": [t: "x в прямоугольной рамке"] # 0x2327 + - "⌨": [t: "клавиатура"] # 0x2328 + - "〈": [t: "левая угловая скобка"] # 0x2329 + - "〉": [t: "правая угловая скобка"] # 0x232a + - "⌫": [t: "стереть влево"] # 0x232b + - "⌬": [t: "бензольное кольцо"] # 0x232c + - "⌭": [t: "цилиндричность"] # 0x232d + - "⌮": [t: "профиль по всему контуру"] # 0x232e + - "⌯": [t: "симметрия"] # 0x232f + - "⌰": [t: "полное радиальное биение"] # 0x2330 + - "⌱": [t: "начало размера"] # 0x2331 + - "⌲": [t: "конусность"] # 0x2332 + - "⌳": [t: "уклон"] # 0x2333 + - "⌴": [t: "цековка"] # 0x2334 + - "⌵": [t: "зенковка"] # 0x2335 + - "⌶": [t: "APL двутавр"] # 0x2336 + - "⌽": [t: "APL круговой столбик"] # 0x233d + - "⌿": [t: "APL косая черта"] # 0x233f + - "⍰": [t: "неизвестный ящик"] # 0x2370 + - "⍼": [t: "прямой угол с зигзагообразной стрелкой вниз"] # 0x237c + - "⎔": [t: "шестиугольник"] # 0x2394 + - "⎕": [t: "ящик"] # 0x2395 + - "⎶": [t: "нижняя квадратная скобка над верхней квадратной скобкой"] # 0x23b6 + - "⏜": [t: "верхняя скобка"] # 0x23dc + - "⏝": [t: "нижняя скобка"] # 0x23dd + - "⏞": [t: "верхняя фигурная скобка"] # 0x23de + - "⏟": [t: "нижняя фигурная скобка"] # 0x23df + - "⏠": [t: "верхняя черепашья скобка"] # 0x23e0 + - "⏡": [t: "нижняя черепашья скобка"] # 0x23e1 + - "⏢": [t: "белая трапеция"] # 0x23e2 + - "⏣": [t: "бензол с кругом справа"] # 0x23e3 + - "⏤": [t: "прямолинейность"] # 0x23e4 + - "⏥": [t: "плоскостность"] # 0x23e5 + - "⏦": # 0x23e6 + - spell: "ac" + - t: "ток" + - "⏧": [t: "электрическое пересечение"] # 0x23e7 + - "①": [t: "один в кружке"] + - "⑨": [t: "девять в кружке"] + - "②③④⑤⑥⑦⑧": # 0x2461 - 0x2468 + - t: "в кружке" + - spell: "translate('.', '②③④⑤⑥⑦⑧', '2345678')" + - "⑩": [t: "десять в круге"] # 0x2469 + - "⑪": [t: "одиннадцать в круге"] # 0x246a + - "⑫": [t: "двенадцать в круге"] # 0x246b + - "⑬": [t: "тринадцать в круге"] # 0x246c + - "⑭": [t: "четырнадцать в круге"] # 0x246d + - "⑮": [t: "пятнадцать в круге"] # 0x246e + - "⑯": [t: "шестнадцать в круге"] # 0x246f + - "⑰": [t: "семнадцать в круге"] # 0x2470 + - "⑱": [t: "восемнадцать в круге"] # 0x2471 + - "⑳": [t: "двадцать в круге"] # 0x2473 + - "⑴": [t: "один в скобках"] + - "⑼": [t: "девять в скобках"] + - "⑵⑶⑷⑸⑹⑺⑻": # 0x2475 - 0x247c + - t: "в скобках" + - spell: "translate('.', '⑵⑶⑷⑸⑹⑺⑻', '2345678')" + - "⑽": [t: "десять в скобках"] # 0x247d + - "⑾": [t: "одиннадцать в скобках"] # 0x247e + - "⑿": [t: "двенадцать в скобках"] # 0x247f + - "⒀": [t: "тринадцать в скобках"] # 0x2480 + - "⒁": [t: "четырнадцать в скобках"] # 0x2481 + - "⒂": [t: "пятнадцать в скобках"] # 0x2482 + - "⒃": [t: "шестнадцать в скобках"] # 0x2483 + - "⒄": [t: "семнадцать в скобках"] # 0x2484 + - "⒅": [t: "восемнадцать в скобках"] # 0x2485 + - "⒆": [t: "девятнадцать в скобках"] # 0x2486 + - "⒇": [t: "двадцать в скобках"] # 0x2487 + - "⒈": [t: "один с точкой"] + - "⒐": [t: "девять с точкой"] + - "⒉⒊⒋⒌⒍⒎⒏": # 0x2489 - 0x2490 + - spell: "translate('.', '⒉⒊⒋⒌⒍⒎⒏', '2345678')" + - t: "с точкой" + - "⒑": [t: "десять с точкой"] # 0x2491 + - "⒒": [t: "одиннадцать с точкой"] # 0x2492 + - "⒓": [t: "двенадцать с точкой"] # 0x2493 + - "⒔": [t: "тринадцать с точкой"] # 0x2494 + - "⒕": [t: "четырнадцать с точкой"] # 0x2495 + - "⒖": [t: "пятнадцать с точкой"] # 0x2496 + - "⒗": [t: "шестнадцать с точкой"] # 0x2497 + - "⒘": [t: "семнадцать с точкой"] # 0x2498 + - "⒙": [t: "восемнадцать с точкой"] # 0x2499 + - "⒚": [t: "девятнадцать с точкой"] # 0x249a + - "⒛": [t: "двадцать с точкой"] # 0x249b + - "⒜-⒵": # 0x249c - 0x24b5 + - spell: "translate('.', '⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵', 'abcdefghijklmnopqrstuvwxyz')" + - t: "в скобках" + + - "Ⓐ-ⓩ": # 0x24b6 - 0x24cf + - spell: "translate('.', 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + - t: "в кружке" + + - "🅐-🅩": # 0x1f150 - 0x1f169 + - t: "в чёрном круге" + - spell: "translate('.', '🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "ⓐ-ⓩ": # 0x24d0 - 0x24e9 + - spell: "translate('.', 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ', 'abcdefghijklmnopqrstuvwxyz')" + - t: "в кружке" + - "⓪": [t: "ноль в круге"] # 0x24ea + - "⓫": [t: "одиннадцать в чёрном круге"] # 0x24eb + - "⓬": [t: "двенадцать в чёрном круге"] # 0x24ec + - "⓭": [t: "тринадцать в чёрном круге"] # 0x24ed + - "⓮": [t: "четырнадцать в чёрном круге"] # 0x24ee + - "⓯": [t: "пятнадцать в чёрном круге"] # 0x24ef + - "⓰": [t: "шестнадцать в чёрном круге"] # 0x24f0 + - "⓱": [t: "семнадцать в чёрном круге"] # 0x24f1 + - "⓲": [t: "восемнадцать в чёрном круге"] # 0x24f2 + - "⓳": [t: "девятнадцать в чёрном круге"] # 0x24f3 + - "⓴": [t: "двадцать в чёрном круге"] # 0x24f4 + - "⓵": [t: "один в двойном кружке"] + - "⓽": [t: "девять в двойном кружке"] + - "⓶⓷⓸⓹⓺⓻⓼": # 0x24f6 - 0x24fd + - t: "в двойном кружке" + - spell: "translate('.', '⓶⓷⓸⓹⓺⓻⓼', '2345678')" + - "⓾": [t: "десять в двойном круге"] # 0x24fe + - "⓿": [t: "ноль в чёрном круге"] # 0x24ff + - "■": [t: "чёрный квадрат"] # 0x25a0 + - "□": [t: "белый квадрат"] # 0x25a1 + - "▢": [t: "белый квадрат со скруглёнными углами"] # 0x25a2 + - "▣": [t: "белый квадрат, содержащий маленький чёрный квадрат"] # 0x25a3 + - "▤": [t: "квадрат с горизонтальной заливкой"] # 0x25a4 + - "▥": [t: "квадрат с вертикальной заливкой"] # 0x25a5 + - "▦": [t: "квадрат с ортогональной перекрёстной штриховкой"] # 0x25a6 + - "▧": [t: "квадрат с заливкой от верхнего левого к нижнему правому"] # 0x25a7 + - "▨": [t: "квадрат с заливкой от верхнего правого к нижнему левому"] # 0x25a8 + - "▩": [t: "квадрат с диагональной перекрёстной штриховкой"] # 0x25a9 + - "▪": [t: "чёрный маленький квадрат"] # 0x25aa + - "▫": [t: "белый маленький квадрат"] # 0x25ab + - "▬": [t: "чёрный прямоугольник"] # 0x25ac + - "▭": [t: "белый прямоугольник"] # 0x25ad + - "▮": [t: "чёрный вертикальный прямоугольник"] # 0x25ae + - "▯": [t: "белый вертикальный прямоугольник"] # 0x25af + - "▰": [t: "чёрный параллелограмм"] # 0x25b0 + - "▱": [t: "белый параллелограмм"] # 0x25b1 + - "▲": [t: "чёрный треугольник остриём вверх"] # 0x25b2 + - "△": [t: "треугольник"] # 0x25b3 + - "▴": [t: "чёрный маленький треугольник остриём вверх"] # 0x25b4 + - "▵": [t: "белый маленький треугольник остриём вверх"] # 0x25b5 + - "▶": [t: "чёрный треугольник остриём вправо"] # 0x25b6 + - "▷": [t: "белый треугольник остриём вправо"] # 0x25b7 + - "▸": [t: "чёрный маленький треугольник остриём вправо"] # 0x25b8 + - "▹": [t: "белый маленький треугольник остриём вправо"] # 0x25b9 + - "►": [t: "чёрный указатель вправо"] # 0x25ba + - "▻": [t: "белый указатель вправо"] # 0x25bb + - "▼": [t: "чёрный треугольник остриём вниз"] # 0x25bc + - "▽": [t: "белый треугольник остриём вниз"] # 0x25bd + - "▾": [t: "чёрный маленький треугольник остриём вниз"] # 0x25be + - "▿": [t: "белый маленький треугольник остриём вниз"] # 0x25bf + - "◀": [t: "чёрный треугольник остриём влево"] # 0x25c0 + - "◁": [t: "белый треугольник остриём влево"] # 0x25c1 + - "◂": [t: "чёрный маленький треугольник остриём влево"] # 0x25c2 + - "◃": [t: "белый маленький треугольник остриём влево"] # 0x25c3 + - "◄": [t: "чёрный указатель влево"] # 0x25c4 + - "◅": [t: "белый указатель влево"] # 0x25c5 + - "◆": [t: "чёрный ромб"] # 0x25c6 + - "◇": [t: "белый ромб"] # 0x25c7 + - "◈": [t: "белый ромб, содержащий чёрный маленький ромб"] # 0x25c8 + - "◉": [t: "рыбий глаз"] # 0x25c9 + - "◊": [t: "луковица"] # 0x25ca + - "○": [t: "белый круг"] # 0x25cb + - "◌": [t: "пунктирный круг"] # 0x25cc + - "◍": [t: "круг с вертикальной заливкой"] # 0x25cd + - "◎": [t: "мишень"] # 0x25ce + - "●": [t: "чёрный круг"] # 0x25cf + - "◐": [t: "круг с левой половиной чёрной"] # 0x25d0 + - "◑": [t: "круг с правой половиной чёрной"] # 0x25d1 + - "◒": [t: "круг с нижней половиной чёрной"] # 0x25d2 + - "◓": [t: "круг с верхней половиной чёрной"] # 0x25d3 + - "◔": [t: "круг с верхним правым квадрантом чёрным"] # 0x25d4 + - "◕": [t: "круг со всем, кроме верхнего левого квадранта, чёрным"] # 0x25d5 + - "◖": [t: "левая половина чёрного круга"] # 0x25d6 + - "◗": [t: "правая половина чёрного круга"] # 0x25d7 + - "◘": [t: "инверсный буллит"] # 0x25d8 + - "◙": [t: "инверсный белый круг"] # 0x25d9 + - "◚": [t: "верхняя половина инверсного белого круга"] # 0x25da + - "◛": [t: "нижняя половина инверсного белого круга"] # 0x25db + - "◜": [t: "дуга верхнего левого квадранта"] # 0x25dc + - "◝": [t: "дуга верхнего правого квадранта"] # 0x25dd + - "◞": [t: "дуга нижнего правого квадранта"] # 0x25de + - "◟": [t: "дуга нижнего левого квадранта"] # 0x25df + - "◠": [t: "верхняя половина круга"] # 0x25e0 + - "◡": [t: "нижняя половина круга"] # 0x25e1 + - "◢": [t: "чёрный нижний правый треугольник"] # 0x25e2 + - "◣": [t: "чёрный нижний левый треугольник"] # 0x25e3 + - "◤": [t: "чёрный верхний левый треугольник"] # 0x25e4 + - "◥": [t: "чёрный верхний правый треугольник"] # 0x25e5 + - "◦": [t: "композиция"] # 0x25e6 + - "◧": [t: "квадрат с левой половиной чёрной"] # 0x25e7 + - "◨": [t: "квадрат с правой половиной чёрной"] # 0x25e8 + - "◩": [t: "квадрат с верхней левой половиной чёрной"] # 0x25e9 + - "◪": [t: "квадрат с нижней правой половиной чёрной"] # 0x25ea + - "◫": [t: "белый квадрат с биссектрисой"] # 0x25eb + - "◬": [t: "белый треугольник остриём вверх с точкой"] # 0x25ec + - "◭": [t: "треугольник остриём вверх с левой половиной чёрной"] # 0x25ed + - "◮": [t: "треугольник остриём вверх с правой половиной чёрной"] # 0x25ee + - "◯": [t: "большой круг"] # 0x25ef + - "◰": [t: "белый квадрат с верхним левым квадрантом"] # 0x25f0 + - "◱": [t: "белый квадрат с нижним левым квадрантом"] # 0x25f1 + - "◲": [t: "белый квадрат с нижним правым квадрантом"] # 0x25f2 + - "◳": [t: "белый квадрат с верхним правым квадрантом"] # 0x25f3 + - "◴": [t: "белый круг с верхним левым квадрантом"] # 0x25f4 + - "◵": [t: "белый круг с нижним левым квадрантом"] # 0x25f5 + - "◶": [t: "белый круг с нижним правым квадрантом"] # 0x25f6 + - "◷": [t: "белый круг с верхним правым квадрантом"] # 0x25f7 + - "◸": [t: "верхний левый треугольник"] # 0x25f8 + - "◹": [t: "верхний правый треугольник"] # 0x25f9 + - "◺": [t: "нижний левый треугольник"] # 0x25fa + - "◻": [t: "белый средний квадрат"] # 0x25fb + - "◼": [t: "чёрный средний квадрат"] # 0x25fc + - "◽": [t: "белый средне-маленький квадрат"] # 0x25fd + - "◾": [t: "чёрный средне-маленький квадрат"] # 0x25fe + - "◿": [t: "нижний правый треугольник"] # 0x25ff + - "★": [t: "чёрная звезда"] # 0x2605 + - "☆": [t: "белая звезда"] # 0x2606 + - "☉": [t: "солнце"] # 0x2609 + - "☌": [t: "соединение"] # 0x260c + - "☒": [t: "бюллетень с крестиком"] # 0x2612 + - "☽": [t: "растущая луна"] # 0x263d + - "☾": [t: "убывающая луна"] # 0x263e + - "☿": [t: "Меркурий"] # 0x263f + - "♀": [t: "женский"] # 0x2640 + - "♁": [t: "Земля"] # 0x2641 + - "♂": [t: "мужской"] # 0x2642 + - "♃": [t: "Юпитер"] # 0x2643 + - "♄": [t: "Сатурн"] # 0x2644 + - "♅": [t: "Уран"] # 0x2645 + - "♆": [t: "Нептун"] # 0x2646 + - "♇": [t: "Плутон"] # 0x2647 + - "♈": [t: "Овен"] # 0x2648 + - "♉": [t: "Телец"] # 0x2649 + - "♩": [t: "четвертная нота"] # 0x2669 + - "♭": [t: "бемоль"] # 0x266d + - "♮": [t: "бекар"] # 0x266e + - "♯": [t: "диез"] # 0x266f + - "♠": [t: "чёрная масть пики"] # 0x2660 + - "♡": [t: "белая масть червы"] # 0x2661 + - "♢": [t: "белая масть бубны"] # 0x2662 + - "♣": [t: "чёрная масть трефы"] # 0x2663 + - "♤": [t: "белая масть пики"] # 0x2664 + - "♥": [t: "чёрная масть червы"] # 0x2665 + - "♦": [t: "чёрная масть бубны"] # 0x2666 + - "♧": [t: "белая масть трефы"] # 0x2667 + - "⚀": [t: "кость 1"] # 0x2680 + - "⚁": [t: "кость 2"] # 0x2681 + - "⚂": [t: "кость 3"] # 0x2682 + - "⚃": [t: "кость 4"] # 0x2683 + - "⚄": [t: "кость 5"] # 0x2684 + - "⚅": [t: "кость 6"] # 0x2685 + - "⚆": [t: "белый круг с точкой справа"] # 0x2686 + - "⚇": [t: "белый круг с двумя точками"] # 0x2687 + - "⚈": [t: "чёрный круг с точкой справа"] # 0x2688 + - "⚉": [t: "чёрный круг с двумя точками"] # 0x2689 + - "⚪": [t: "средний белый круг"] # 0x26aa + - "⚫": [t: "средний чёрный круг"] # 0x26ab + - "⚬": [t: "средний маленький белый круг"] # 0x26ac + - "⚲": [t: "средний род"] # 0x26b2 + - "✓": [t: "галочка"] # 0x2713 + - "✠": [t: "мальтийский крест"] # 0x2720 + - "✪": [t: "белая звезда в круге"] # 0x272a + - "✶": [t: "шестиконечная чёрная звезда"] # 0x2736 + - "❨": [t: "средний левый круглый орнамент"] # 0x2768 + - "❩": [t: "средний правый круглый орнамент"] # 0x2769 + - "❪": [t: "средний уплощённый левый круглый орнамент"] # 0x276a + - "❫": [t: "средний уплощённый правый круглый орнамент"] # 0x276b + - "❬": [t: "средний левый угловой орнамент"] # 0x276c + - "❭": [t: "средний правый угловой орнамент"] # 0x276d + - "❮": [t: "жирный левый угловой кавычковый орнамент"] # 0x276e + - "❯": [t: "жирный правый угловой кавычковый орнамент"] # 0x276f + - "❰": [t: "жирный левый угловой орнамент"] # 0x2770 + - "❱": [t: "жирный правый угловой орнамент"] # 0x2771 + - "❲": [t: "лёгкий левый черепаший орнамент"] # 0x2772 + - "❳": [t: "лёгкий правый черепаший орнамент"] # 0x2773 + - "❴": [t: "средний левый фигурный орнамент"] # 0x2774 + - "❵": [t: "средний правый фигурный орнамент"] # 0x2775 + - "❶": [t: "один в чёрном круге"] # 0x2776 + - "❷": [t: "два в чёрном круге"] # 0x2777 + - "❸": [t: "три в чёрном круге"] # 0x2778 + - "❹": [t: "четыре в чёрном круге"] # 0x2779 + - "❺": [t: "пять в чёрном круге"] # 0x277a + - "❻": [t: "шесть в чёрном круге"] # 0x277b + - "❼": [t: "семь в чёрном круге"] # 0x277c + - "❽": [t: "восемь в чёрном круге"] # 0x277d + - "❾": [t: "девять в чёрном круге"] # 0x277e + - "❿": [t: "десять в чёрном круге"] # 0x277f + - "➀": [t: "один в круге без засечек"] # 0x2780 + - "➁": [t: "два в круге без засечек"] # 0x2781 + - "➂": [t: "три в круге без засечек"] # 0x2782 + - "➃": [t: "четыре в круге без засечек"] # 0x2783 + - "➄": [t: "пять в круге без засечек"] # 0x2784 + - "➅": [t: "шесть в круге без засечек"] # 0x2785 + - "➆": [t: "семь в круге без засечек"] # 0x2786 + - "➇": [t: "восемь в круге без засечек"] # 0x2787 + - "➈": [t: "девять в круге без засечек"] # 0x2788 + - "➉": [t: "десять в круге без засечек"] # 0x2789 + - "➊": [t: "один в чёрном круге без засечек"] # 0x278a + - "➋": [t: "два в чёрном круге без засечек"] # 0x278b + - "➌": [t: "три в чёрном круге без засечек"] # 0x278c + - "➍": [t: "четыре в чёрном круге без засечек"] # 0x278d + - "➎": [t: "пять в чёрном круге без засечек"] # 0x278e + - "➏": [t: "шесть в чёрном круге без засечек"] # 0x278f + - "➐": [t: "семь в чёрном круге без засечек"] # 0x2790 + - "➑": [t: "восемь в чёрном круге без засечек"] # 0x2791 + - "➒": [t: "девять в чёрном круге без засечек"] # 0x2792 + - "➓": [t: "десять в чёрном круге без засечек"] # 0x2793 + - "➔": [t: "жирная широкая стрелка вправо"] # 0x2794 + - "➕": [t: "жирный знак плюс"] # 0x2795 + - "➖": [t: "жирный знак минус"] # 0x2796 + - "➗": [t: "жирный знак деления"] # 0x2797 + - "➘": [t: "жирная стрелка на юго-восток"] # 0x2798 + - "➙": [t: "жирная стрелка вправо"] # 0x2799 + - "➚": [t: "жирная стрелка на северо-восток"] # 0x279a + - "➛": [t: "стрелка вправо с чертёжным наконечником"] # 0x279b + - "➜": [t: "жирная стрелка вправо с закруглённым наконечником"] # 0x279c + - "➝": [t: "стрелка вправо с треугольным наконечником"] # 0x279d + - "➞": [t: "жирная стрелка вправо с треугольным наконечником"] # 0x279e + - "➟": [t: "пунктирная стрелка вправо с треугольным наконечником"] # 0x279f + - "➠": [t: "жирная пунктирная стрелка вправо с треугольным наконечником"] # 0x27a0 + - "➡": [t: "чёрная стрелка вправо"] # 0x27a1 + - "➢": [t: "трёхмерная стрелка вправо с верхней подсветкой"] # 0x27a2 + - "➣": [t: "трёхмерная стрелка вправо с нижней подсветкой"] # 0x27a3 + - "➤": [t: "чёрный наконечник стрелки вправо"] # 0x27a4 + - "➥": [t: "жирная чёрная изогнутая вниз и вправо стрелка"] # 0x27a5 + - "➦": [t: "жирная чёрная изогнутая вверх и вправо стрелка"] # 0x27a6 + - "➧": [t: "приземистая чёрная стрелка вправо"] # 0x27a7 + - "➨": [t: "жирная чёрная стрелка вправо с вогнутым наконечником"] # 0x27a8 + - "➩": [t: "белая стрелка вправо с правой тенью"] # 0x27a9 + - "➪": [t: "белая стрелка вправо с левой тенью"] # 0x27aa + - "➫": [t: "белая стрелка вправо с задней наклонной тенью"] # 0x27ab + - "➬": [t: "белая стрелка вправо с передней наклонной тенью"] # 0x27ac + - "➭": [t: "белая стрелка вправо с жирной нижней правой тенью"] # 0x27ad + - "➮": [t: "белая стрелка вправо с жирной верхней правой тенью"] # 0x27ae + - "➯": [t: "белая стрелка вправо с нижней правой тенью и зарубкой"] # 0x27af + - "➱": [t: "белая стрелка вправо с верхней правой тенью и зарубкой"] # 0x27b1 + - "➲": [t: "жирная белая стрелка вправо в круге"] # 0x27b2 + - "➳": [t: "белая оперённая стрелка вправо"] # 0x27b3 + - "➴": [t: "чёрная оперённая стрелка на юго-восток"] # 0x27b4 + - "➵": [t: "чёрная оперённая стрелка вправо"] # 0x27b5 + - "➶": [t: "чёрная оперённая стрелка на северо-восток"] # 0x27b6 + - "➷": [t: "жирная чёрная оперённая стрелка на юго-восток"] # 0x27b7 + - "➸": [t: "жирная чёрная оперённая стрелка вправо"] # 0x27b8 + - "➹": [t: "жирная чёрная оперённая стрелка на северо-восток"] # 0x27b9 + - "➺": [t: "стрелка вправо с каплевидным наконечником"] # 0x27ba + - "➻": [t: "жирная стрелка вправо с каплевидным древком"] # 0x27bb + - "➼": [t: "стрелка вправо с клиновидным хвостом"] # 0x27bc + - "➽": [t: "жирная стрелка вправо с клиновидным хвостом"] # 0x27bd + - "➾": [t: "контурная стрелка вправо"] # 0x27be + - "⟀": [t: "трёхмерный угол"] # 0x27c0 + - "⟁": [t: "белый треугольник, содержащий маленький белый треугольник"] # 0x27c1 + - "⟂": # 0x27c2 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "перпендикуляром к" + - "⟃": # 0x27c3 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "открытым подмножеством" + - "⟄": # 0x27c4 + - test: + if: "$Verbosity!='Terse'" + then: [t: "является"] + - t: "открытым надмножеством" + - "⟅": [t: "левый S-образный разделитель"] # 0x27c5 + - "⟆": [t: "правый S-образный разделитель"] # 0x27c6 + - "⟇": [t: "или с точкой внутри"] # 0x27c7 + - "⟈": [t: "обратная косая перед подмножеством"] # 0x27c8 + - "⟉": [t: "надмножество перед косой"] # 0x27c9 + - "⟊": [t: "вертикальная черта с горизонтальным штрихом"] # 0x27ca + - "⟋": [t: "математическая восходящая диагональ"] # 0x27cb + - "⟌": [t: "длинное деление"] # 0x27cc + - "⟍": [t: "математическая нисходящая диагональ"] # 0x27cd + - "⟎": [t: "квадратное логическое и"] # 0x27ce + - "⟏": [t: "квадратное логическое или"] # 0x27cf + - "⟐": [t: "белый ромб с центральной точкой"] # 0x27d0 + - "⟑": [t: "и с точкой"] # 0x27d1 + - "⟒": [t: "элемент, открывающийся вверх"] # 0x27d2 + - "⟓": [t: "нижний правый угол с точкой"] # 0x27d3 + - "⟔": [t: "верхний левый угол с точкой"] # 0x27d4 + - "⟕": [t: "левое внешнее соединение"] # 0x27d5 + - "⟖": [t: "правое внешнее соединение"] # 0x27d6 + - "⟗": [t: "полное внешнее соединение"] # 0x27d7 + - "⟘": [t: "большой верхний таск"] # 0x27d8 + - "⟙": [t: "большой нижний таск"] # 0x27d9 + - "⟚": [t: "левый и правый двойной турникет"] # 0x27da + - "⟛": [t: "левый и правый таск"] # 0x27db + - "⟜": [t: "левое мультиотображение"] # 0x27dc + - "⟝": [t: "длинный правый таск"] # 0x27dd + - "⟞": [t: "длинный левый таск"] # 0x27de + - "⟟": [t: "верхний таск с кругом сверху"] # 0x27df + - "⟠": [t: "луковица, разделённая горизонтальной линией"] # 0x27e0 + - "⟡": [t: "белый вогнутый ромб"] # 0x27e1 + - "⟢": [t: "белый вогнутый ромб с левой отметкой"] # 0x27e2 + - "⟣": [t: "белый вогнутый ромб с правой отметкой"] # 0x27e3 + - "⟤": [t: "белый квадрат с левой отметкой"] # 0x27e4 + - "⟥": [t: "белый квадрат с правой отметкой"] # 0x27e5 + - "⟦": [t: "левая белая квадратная скобка"] # 0x27e6 + - "⟧": [t: "правая белая квадратная скобка"] # 0x27e7 + - "⟨": [t: "левая угловая скобка"] # 0x27e8 + - "⟩": [t: "правая угловая скобка"] # 0x27e9 + - "⟪": [t: "левая двойная угловая скобка"] # 0x27ea + - "⟫": [t: "правая двойная угловая скобка"] # 0x27eb + - "⟬": [t: "левая белая черепашья скобка"] # 0x27ec + - "⟭": [t: "правая белая черепашья скобка"] # 0x27ed + - "⟮": [t: "левая уплощённая скобка"] # 0x27ee + - "⟯": [t: "правая уплощённая скобка"] # 0x27ef + - "⟰": [t: "верхняя четверная стрелка"] # 0x27f0 + - "⟱": [t: "нижняя четверная стрелка"] # 0x27f1 + - "⟲": [t: "круговая стрелка против часовой с разрывом"] # 0x27f2 + - "⟳": [t: "круговая стрелка по часовой с разрывом"] # 0x27f3 + - "⟴": [t: "стрелка вправо с плюсом в круге"] # 0x27f4 + - "⟵": [t: "длинная стрелка влево"] # 0x27f5 + - "⟶": [t: "длинная стрелка вправо"] # 0x27f6 + - "⟷": [t: "длинная стрелка влево-вправо"] # 0x27f7 + - "⟸": [t: "длинная левая двойная стрелка"] # 0x27f8 + - "⟹": [t: "следует"] # 0x27f9 + - "⟺": [t: "тогда и только тогда"] # 0x27fa + - "⟻": [t: "длинная стрелка влево от черты"] # 0x27fb + - "⟼": [t: "длинная стрелка вправо от черты"] # 0x27fc + - "⟽": [t: "длинная левая двойная стрелка от черты"] # 0x27fd + - "⟾": [t: "длинная правая двойная стрелка от черты"] # 0x27fe + - "⟿": [t: "длинная волнистая стрелка вправо"] # 0x27ff + - "⤀": [t: "стрелка вправо с двумя наконечниками и вертикальным штрихом"] # 0x2900 + - "⤁": [t: "стрелка вправо с двумя наконечниками и двойным вертикальным штрихом"] # 0x2901 + - "⤂": [t: "левая двойная стрелка с вертикальным штрихом"] # 0x2902 + - "⤃": [t: "правая двойная стрелка с вертикальным штрихом"] # 0x2903 + - "⤄": [t: "двойная стрелка влево-вправо с вертикальным штрихом"] # 0x2904 + - "⤅": [t: "стрелка вправо с двумя наконечниками от черты"] # 0x2905 + - "⤆": [t: "левая двойная стрелка от черты"] # 0x2906 + - "⤇": [t: "правая двойная стрелка от черты"] # 0x2907 + - "⤈": [t: "стрелка вниз с горизонтальным штрихом"] # 0x2908 + - "⤉": [t: "стрелка вверх с горизонтальным штрихом"] # 0x2909 + - "⤊": [t: "верхняя тройная стрелка"] # 0x290a + - "⤋": [t: "нижняя тройная стрелка"] # 0x290b + - "⤌": [t: "левая двойная пунктирная стрелка"] # 0x290c + - "⤍": [t: "правая двойная пунктирная стрелка"] # 0x290d + - "⤎": [t: "левая тройная пунктирная стрелка"] # 0x290e + - "⤏": [t: "правая тройная пунктирная стрелка"] # 0x290f + - "⤐": [t: "стрелка вправо с двумя наконечниками и тройным пунктиром"] # 0x2910 + - "⤑": [t: "стрелка вправо с пунктирным стволом"] # 0x2911 + - "⤒": [t: "стрелка вверх к черте"] # 0x2912 + - "⤓": [t: "стрелка вниз к черте"] # 0x2913 + - "⤔": [t: "стрелка вправо с хвостом и вертикальным штрихом"] # 0x2914 + - "⤕": [t: "стрелка вправо с хвостом и двойным вертикальным штрихом"] # 0x2915 + - "⤖": [t: "стрелка вправо с двумя наконечниками и хвостом"] # 0x2916 + - "⤗": [t: "стрелка вправо с двумя наконечниками, хвостом и вертикальным штрихом"] # 0x2917 + - "⤘": [t: "стрелка вправо с двумя наконечниками, хвостом и двойным вертикальным штрихом"] # 0x2918 + - "⤙": [t: "хвост стрелки влево"] # 0x2919 + - "⤚": [t: "хвост стрелки вправо"] # 0x291a + - "⤛": [t: "хвост левой двойной стрелки"] # 0x291b + - "⤜": [t: "хвост правой двойной стрелки"] # 0x291c + - "⤝": [t: "стрелка влево к залитому ромбу"] # 0x291d + - "⤞": [t: "стрелка вправо к залитому ромбу"] # 0x291e + - "⤟": [t: "стрелка влево от черты к залитому ромбу"] # 0x291f + - "⤠": [t: "стрелка вправо от черты к залитому ромбу"] # 0x2920 + - "⤡": [t: "стрелка на северо-запад и юго-восток"] # 0x2921 + - "⤢": [t: "стрелка на северо-восток и юго-запад"] # 0x2922 + - "⤣": [t: "стрелка на северо-запад с крюком"] # 0x2923 + - "⤤": [t: "стрелка на северо-восток с крюком"] # 0x2924 + - "⤥": [t: "стрелка на юго-восток с крюком"] # 0x2925 + - "⤦": [t: "стрелка на юго-запад с крюком"] # 0x2926 + - "⤧": [t: "стрелка на северо-запад и северо-восток"] # 0x2927 + - "⤨": [t: "стрелка на северо-восток и юго-восток"] # 0x2928 + - "⤩": [t: "стрелка на юго-восток и юго-запад"] # 0x2929 + - "⤪": [t: "стрелка на юго-запад и северо-запад"] # 0x292a + - "⤫": [t: "восходящая диагональ пересекает нисходящую"] # 0x292b + - "⤬": [t: "нисходящая диагональ пересекает восходящую"] # 0x292c + - "⤭": [t: "стрелка на юго-восток пересекает стрелку на северо-восток"] # 0x292d + - "⤮": [t: "стрелка на северо-восток пересекает стрелку на юго-восток"] # 0x292e + - "⤯": [t: "нисходящая диагональ пересекает стрелку на северо-восток"] # 0x292f + - "⤰": [t: "восходящая диагональ пересекает стрелку на юго-восток"] # 0x2930 + - "⤱": [t: "стрелка на северо-восток пересекает стрелку на северо-запад"] # 0x2931 + - "⤲": [t: "стрелка на северо-запад пересекает стрелку на северо-восток"] # 0x2932 + - "⤳": [t: "волновая стрелка, указывающая прямо вправо"] # 0x2933 + - "⤴": [t: "стрелка вправо, затем изгибается вверх"] # 0x2934 + - "⤵": [t: "стрелка вправо, затем изгибается вниз"] # 0x2935 + - "⤶": [t: "стрелка вниз, затем изгибается влево"] # 0x2936 + - "⤷": [t: "стрелка вниз, затем изгибается вправо"] # 0x2937 + - "⤸": [t: "дуговая стрелка по часовой с правой стороны"] # 0x2938 + - "⤹": [t: "дуговая стрелка против часовой с левой стороны"] # 0x2939 + - "⤺": [t: "верхняя дуговая стрелка против часовой"] # 0x293a + - "⤻": [t: "нижняя дуговая стрелка против часовой"] # 0x293b + - "⤼": [t: "верхняя дуговая стрелка по часовой с минусом"] # 0x293c + - "⤽": [t: "верхняя дуговая стрелка против часовой с плюсом"] # 0x293d + - "⤾": [t: "нижняя правая полукруглая стрелка по часовой"] # 0x293e + - "⤿": [t: "нижняя левая полукруглая стрелка против часовой"] # 0x293f + - "⥀": [t: "замкнутая круговая стрелка против часовой"] # 0x2940 + - "⥁": [t: "замкнутая круговая стрелка по часовой"] # 0x2941 + - "⥂": [t: "стрелка вправо над короткой стрелкой влево"] # 0x2942 + - "⥃": [t: "стрелка влево над короткой стрелкой вправо"] # 0x2943 + - "⥄": [t: "короткая стрелка вправо над стрелкой влево"] # 0x2944 + - "⥅": [t: "стрелка вправо с плюсом снизу"] # 0x2945 + - "⥆": [t: "стрелка влево с плюсом снизу"] # 0x2946 + - "⥇": [t: "стрелка вправо сквозь x"] # 0x2947 + - "⥈": [t: "стрелка влево-вправо сквозь круг"] # 0x2948 + - "⥉": [t: "стрелка вверх с двумя наконечниками из круга"] # 0x2949 + - "⥊": [t: "левый гарпун вверх, правый гарпун вниз"] # 0x294a + - "⥋": [t: "левый гарпун вниз, правый гарпун вверх"] # 0x294b + - "⥌": [t: "верхний гарпун вправо, нижний гарпун влево"] # 0x294c + - "⥍": [t: "верхний гарпун влево, нижний гарпун вправо"] # 0x294d + - "⥎": [t: "левый гарпун вверх, правый гарпун вверх"] # 0x294e + - "⥏": [t: "верхний гарпун вправо, нижний гарпун вправо"] # 0x294f + - "⥐": [t: "левый гарпун вниз, правый гарпун вниз"] # 0x2950 + - "⥑": [t: "верхний гарпун влево, нижний гарпун влево"] # 0x2951 + - "⥒": [t: "левый гарпун вверх к черте"] # 0x2952 + - "⥓": [t: "правый гарпун вверх к черте"] # 0x2953 + - "⥔": [t: "верхний гарпун вправо к черте"] # 0x2954 + - "⥕": [t: "нижний гарпун вправо к черте"] # 0x2955 + - "⥖": [t: "левый гарпун вниз к черте"] # 0x2956 + - "⥗": [t: "правый гарпун вниз к черте"] # 0x2957 + - "⥘": [t: "верхний гарпун влево к черте"] # 0x2958 + - "⥙": [t: "нижний гарпун влево к черте"] # 0x2959 + - "⥚": [t: "левый гарпун вверх от черты"] # 0x295a + - "⥛": [t: "правый гарпун вверх от черты"] # 0x295b + - "⥜": [t: "верхний гарпун вправо от черты"] # 0x295c + - "⥝": [t: "нижний гарпун вправо от черты"] # 0x295d + - "⥞": [t: "левый гарпун вниз от черты"] # 0x295e + - "⥟": [t: "правый гарпун вниз от черты"] # 0x295f + - "⥠": [t: "верхний гарпун влево от черты"] # 0x2960 + - "⥡": [t: "нижний гарпун влево от черты"] # 0x2961 + - "⥢": [t: "левый гарпун вверх над левым гарпуном вниз"] # 0x2962 + - "⥣": [t: "верхний гарпун влево рядом с верхним гарпуном вправо"] # 0x2963 + - "⥤": [t: "правый гарпун вверх над правым гарпуном вниз"] # 0x2964 + - "⥥": [t: "нижний гарпун влево рядом с нижним гарпуном вправо"] # 0x2965 + - "⥦": [t: "левый гарпун вверх над правым гарпуном вверх"] # 0x2966 + - "⥧": [t: "левый гарпун вниз над правым гарпуном вниз"] # 0x2967 + - "⥨": [t: "правый гарпун вверх над левым гарпуном вверх"] # 0x2968 + - "⥩": [t: "правый гарпун вниз над левым гарпуном вниз"] # 0x2969 + - "⥪": [t: "левый гарпун вверх над длинным тире"] # 0x296a + - "⥫": [t: "левый гарпун вниз под длинным тире"] # 0x296b + - "⥬": [t: "правый гарпун вверх над длинным тире"] # 0x296c + - "⥭": [t: "правый гарпун вниз под длинным тире"] # 0x296d + - "⥮": [t: "верхний гарпун влево рядом с нижним гарпуном вправо"] # 0x296e + - "⥯": [t: "нижний гарпун влево рядом с верхним гарпуном вправо"] # 0x296f + - "⥰": [t: "правая двойная стрелка с закруглённой головкой"] # 0x2970 + - "⥱": [t: "равно над стрелкой вправо"] # 0x2971 + - "⥲": [t: "тильда над стрелкой вправо"] # 0x2972 + - "⥳": [t: "стрелка влево над тильдой"] # 0x2973 + - "⥴": [t: "стрелка вправо над тильдой"] # 0x2974 + - "⥵": [t: "стрелка вправо над почти равно"] # 0x2975 + - "⥶": [t: "меньше над стрелкой влево"] # 0x2976 + - "⥷": [t: "стрелка влево сквозь меньше"] # 0x2977 + - "⥸": [t: "больше над стрелкой вправо"] # 0x2978 + - "⥹": [t: "подмножество над стрелкой вправо"] # 0x2979 + - "⥺": [t: "стрелка влево сквозь подмножество"] # 0x297a + - "⥻": [t: "надмножество над стрелкой влево"] # 0x297b + - "⥼": [t: "левый рыбий хвост"] # 0x297c + - "⥽": [t: "правый рыбий хвост"] # 0x297d + - "⥾": [t: "верхний рыбий хвост"] # 0x297e + - "⥿": [t: "нижний рыбий хвост"] # 0x297f + - "⦀": [t: "тройная вертикальная черта-разделитель"] # 0x2980 + - "⦁": [t: "Z-нотация пятно"] # 0x2981 + - "⦂": [t: "Z-нотация типовое двоеточие"] # 0x2982 + - "⦃": [t: "левая белая фигурная скобка"] # 0x2983 + - "⦄": [t: "правая белая фигурная скобка"] # 0x2984 + - "⦅": [t: "левая белая скобка"] # 0x2985 + - "⦆": [t: "правая белая скобка"] # 0x2986 + - "⦇": [t: "Z-нотация левая скобка образа"] # 0x2987 + - "⦈": [t: "Z-нотация правая скобка образа"] # 0x2988 + - "⦉": [t: "Z-нотация левая скобка связывания"] # 0x2989 + - "⦊": [t: "Z-нотация правая скобка связывания"] # 0x298a + - "⦋": [t: "левая квадратная скобка с подчёркиванием"] # 0x298b + - "⦌": [t: "правая квадратная скобка с подчёркиванием"] # 0x298c + - "⦍": [t: "левая квадратная скобка с отметкой в верхнем углу"] # 0x298d + - "⦎": [t: "правая квадратная скобка с отметкой в нижнем углу"] # 0x298e + - "⦏": [t: "левая квадратная скобка с отметкой в нижнем углу"] # 0x298f + - "⦐": [t: "правая квадратная скобка с отметкой в верхнем углу"] # 0x2990 + - "⦑": [t: "левая угловая скобка с точкой"] # 0x2991 + - "⦒": [t: "правая угловая скобка с точкой"] # 0x2992 + - "⦓": [t: "левая дуговая скобка меньше"] # 0x2993 + - "⦔": [t: "правая дуговая скобка больше"] # 0x2994 + - "⦕": [t: "двойная левая дуговая скобка больше"] # 0x2995 + - "⦖": [t: "двойная правая дуговая скобка меньше"] # 0x2996 + - "⦗": [t: "левая чёрная черепашья скобка"] # 0x2997 + - "⦘": [t: "правая чёрная черепашья скобка"] # 0x2998 + - "⦙": [t: "пунктирный забор"] # 0x2999 + - "⦚": [t: "вертикальная зигзагообразная линия"] # 0x299a + - "⦛": [t: "измеренный угол, открытый влево"] # 0x299b + - "⦜": [t: "вариант прямого угла с квадратом"] # 0x299c + - "⦝": [t: "измеренный прямой угол с точкой"] # 0x299d + - "⦞": [t: "угол с s внутри"] # 0x299e + - "⦟": [t: "острый угол"] # 0x299f + - "⦠": [t: "сферический угол, открытый влево"] # 0x29a0 + - "⦡": [t: "сферический угол, открытый вверх"] # 0x29a1 + - "⦢": [t: "перевёрнутый угол"] # 0x29a2 + - "⦣": [t: "обратный угол"] # 0x29a3 + - "⦤": [t: "угол с подчёркиванием"] # 0x29a4 + - "⦥": [t: "обратный угол с подчёркиванием"] # 0x29a5 + - "⦦": [t: "косой угол, открытый вверх"] # 0x29a6 + - "⦧": [t: "косой угол, открытый вниз"] # 0x29a7 + - "⦨": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вверх и вправо"] # 0x29a8 + - "⦩": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вверх и влево"] # 0x29a9 + - "⦪": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вниз и вправо"] # 0x29aa + - "⦫": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вниз и влево"] # 0x29ab + - "⦬": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вправо и вверх"] # 0x29ac + - "⦭": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой влево и вверх"] # 0x29ad + - "⦮": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой вправо и вниз"] # 0x29ae + - "⦯": [t: "измеренный угол с открытым лучом, заканчивающимся стрелкой влево и вниз"] # 0x29af + - "⦰": [t: "обратное пустое множество"] # 0x29b0 + - "⦱": [t: "пустое множество с надчёркиванием"] # 0x29b1 + - "⦲": [t: "пустое множество с маленьким кругом сверху"] # 0x29b2 + - "⦳": [t: "пустое множество со стрелкой вправо сверху"] # 0x29b3 + - "⦴": [t: "пустое множество со стрелкой влево сверху"] # 0x29b4 + - "⦵": [t: "круг с горизонтальной чертой"] # 0x29b5 + - "⦶": [t: "вертикальная черта в круге"] # 0x29b6 + - "⦷": [t: "параллельность в круге"] # 0x29b7 + - "⦸": [t: "обратная косая черта в круге"] # 0x29b8 + - "⦹": [t: "перпендикуляр в круге"] # 0x29b9 + - "⦺": [t: "круг, разделённый горизонтальной чертой, верхняя половина разделена вертикальной чертой"] # 0x29ba + - "⦻": [t: "круг с наложенным x"] # 0x29bb + - "⦼": [t: "знак деления, повёрнутый против часовой в круге"] # 0x29bc + - "⦽": [t: "стрелка вверх сквозь круг"] # 0x29bd + - "⦾": [t: "белый буллит в круге"] # 0x29be + - "⦿": [t: "буллит в круге"] # 0x29bf + - "⧀": [t: "меньше в круге"] # 0x29c0 + - "⧁": [t: "больше в круге"] # 0x29c1 + - "⧂": [t: "круг с маленьким кругом справа"] # 0x29c2 + - "⧃": [t: "круг с двумя горизонтальными штрихами справа"] # 0x29c3 + - "⧄": [t: "квадратная восходящая диагональная черта"] # 0x29c4 + - "⧅": [t: "квадратная нисходящая диагональная черта"] # 0x29c5 + - "⧆": [t: "звёздочка в квадрате"] # 0x29c6 + - "⧇": [t: "маленький круг в квадрате"] # 0x29c7 + - "⧈": [t: "квадрат в квадрате"] # 0x29c8 + - "⧉": [t: "два соединённых квадрата"] # 0x29c9 + - "⧊": [t: "треугольник с точкой сверху"] # 0x29ca + - "⧋": [t: "треугольник с подчёркиванием"] # 0x29cb + - "⧌": [t: "s в треугольнике"] # 0x29cc + - "⧍": [t: "треугольник с засечками внизу"] # 0x29cd + - "⧎": [t: "правый треугольник над левым треугольником"] # 0x29ce + - "⧏": [t: "левый треугольник рядом с вертикальной чертой"] # 0x29cf + - "⧐": [t: "вертикальная черта рядом с правым треугольником"] # 0x29d0 + - "⧑": [t: "бантик с левой половиной чёрной"] # 0x29d1 + - "⧒": [t: "бантик с правой половиной чёрной"] # 0x29d2 + - "⧓": [t: "чёрный бантик"] # 0x29d3 + - "⧔": [t: "крест с левой половиной чёрной"] # 0x29d4 + - "⧕": [t: "крест с правой половиной чёрной"] # 0x29d5 + - "⧖": [t: "белые песочные часы"] # 0x29d6 + - "⧗": [t: "чёрные песочные часы"] # 0x29d7 + - "⧘": [t: "левый волнистый забор"] # 0x29d8 + - "⧙": [t: "правый волнистый забор"] # 0x29d9 + - "⧚": [t: "левый двойной волнистый забор"] # 0x29da + - "⧛": [t: "правый двойной волнистый забор"] # 0x29db + - "⧜": [t: "неполная бесконечность"] # 0x29dc + - "⧝": [t: "лигатура над бесконечностью"] # 0x29dd + - "⧞": [t: "бесконечность, перечёркнутая вертикальной чертой"] # 0x29de + - "⧟": [t: "двустороннее мультиотображение"] # 0x29df + - "⧠": [t: "квадрат с контурным очертанием"] # 0x29e0 + - "⧡": [t: "возрастает как"] # 0x29e1 + - "⧢": [t: "шаффл-произведение"] # 0x29e2 + - "⧣": [t: "знак равенства и наклонная параллельность"] # 0x29e3 + - "⧤": [t: "знак равенства и наклонная параллельность с тильдой сверху"] # 0x29e4 + - "⧥": [t: "тождественно и наклонная параллельность"] # 0x29e5 + - "⧦": [t: "равносильно"] # 0x29e6 + - "⧧": [t: "термодинамический"] # 0x29e7 + - "⧨": [t: "треугольник остриём вниз с левой половиной чёрной"] # 0x29e8 + - "⧩": [t: "треугольник остриём вниз с правой половиной чёрной"] # 0x29e9 + - "⧪": [t: "чёрный ромб со стрелкой вниз"] # 0x29ea + - "⧫": [t: "чёрная луковица"] # 0x29eb + - "⧬": [t: "белый круг со стрелкой вниз"] # 0x29ec + - "⧭": [t: "чёрный круг со стрелкой вниз"] # 0x29ed + - "⧮": [t: "белый квадрат с планками погрешностей"] # 0x29ee + - "⧯": [t: "чёрный квадрат с планками погрешностей"] # 0x29ef + - "⧰": [t: "белый ромб с планками погрешностей"] # 0x29f0 + - "⧱": [t: "чёрный ромб с планками погрешностей"] # 0x29f1 + - "⧲": [t: "белый круг с планками погрешностей"] # 0x29f2 + - "⧳": [t: "чёрный круг с планками погрешностей"] # 0x29f3 + - "⧴": [t: "отложенное правило"] # 0x29f4 + - "⧵": [t: "оператор обратная косая черта"] # 0x29f5 + - "⧶": [t: "косая черта с надчёркиванием"] # 0x29f6 + - "⧷": [t: "обратная косая черта с горизонтальным штрихом"] # 0x29f7 + - "⧸": [t: "большая косая черта"] # 0x29f8 + - "⧹": [t: "большая обратная косая черта"] # 0x29f9 + - "⧺": [t: "двойной плюс"] # 0x29fa + - "⧻": [t: "тройной плюс"] # 0x29fb + - "⧼": [t: "левая изогнутая угловая скобка"] # 0x29fc + - "⧽": [t: "правая изогнутая угловая скобка"] # 0x29fd + - "⧾": [t: "крошечный"] # 0x29fe + - "⧿": [t: "малюсенький"] # 0x29ff + - "⨀": [t: "оператор точка в круге"] # 0x2a00 + - "⨁": [t: "оператор плюс в круге"] # 0x2a01 + - "⨂": [t: "оператор умножить в круге"] # 0x2a02 + - "⨃": [t: "оператор объединение с точкой"] # 0x2a03 + - "⨄": [t: "оператор объединение с плюсом"] # 0x2a04 + - "⨅": [t: "оператор квадратное пересечение"] # 0x2a05 + - "⨆": [t: "оператор квадратное объединение"] # 0x2a06 + - "⨇": [t: "оператор двойное логическое и"] # 0x2a07 + - "⨈": [t: "оператор двойное логическое или"] # 0x2a08 + - "⨉": [t: "оператор умножения"] # 0x2a09 + - "⨊": [t: "сумма по модулю два"] # 0x2a0a + - "⨋": [t: "суммирование с интегралом"] # 0x2a0b + - "⨌": [t: "оператор четверной интеграл"] # 0x2a0c + - "⨍": [t: "интеграл конечной части"] # 0x2a0d + - "⨎": [t: "интеграл с двойным штрихом"] # 0x2a0e + - "⨏": [t: "интегральное среднее с косой чертой"] # 0x2a0f + - "⨐": [t: "функция циркуляции"] # 0x2a10 + - "⨑": [t: "интеграл против часовой"] # 0x2a11 + - "⨒": [t: "линейный интеграл с прямоугольным путём вокруг полюса"] # 0x2a12 + - "⨓": [t: "линейный интеграл с полукруглым путём вокруг полюса"] # 0x2a13 + - "⨔": [t: "линейный интеграл, не включающий полюс"] # 0x2a14 + - "⨕": [t: "оператор интеграл вокруг точки"] # 0x2a15 + - "⨖": [t: "оператор интеграл кватерниона"] # 0x2a16 + - "⨗": [t: "интеграл со стрелкой влево с крюком"] # 0x2a17 + - "⨘": [t: "интеграл со знаком умножения"] # 0x2a18 + - "⨙": [t: "интеграл с пересечением"] # 0x2a19 + - "⨚": [t: "интеграл с объединением"] # 0x2a1a + - "⨛": [t: "интеграл с надчёркиванием"] # 0x2a1b + - "⨜": [t: "интеграл с подчёркиванием"] # 0x2a1c + - "⨝": [t: "соединение"] # 0x2a1d + - "⨞": [t: "оператор большой левый треугольник"] # 0x2a1e + - "⨟": [t: "Z-нотация композиция схемы"] # 0x2a1f + - "⨠": [t: "Z-нотация конвейер схемы"] # 0x2a20 + - "⨡": [t: "Z-нотация проекция схемы"] # 0x2a21 + - "⨢": [t: "знак плюс с кругом сверху"] # 0x2a22 + - "⨣": [t: "знак плюс с циркумфлексом сверху"] # 0x2a23 + - "⨤": [t: "знак плюс с тильдой сверху"] # 0x2a24 + - "⨥": [t: "знак плюс с точкой снизу"] # 0x2a25 + - "⨦": [t: "знак плюс с тильдой снизу"] # 0x2a26 + - "⨧": [t: "знак плюс с индексом два"] # 0x2a27 + - "⨨": [t: "знак плюс с чёрным треугольником"] # 0x2a28 + - "⨩": [t: "знак минус с запятой сверху"] # 0x2a29 + - "⨪": [t: "знак минус с точкой снизу"] # 0x2a2a + - "⨫": [t: "знак минус с падающими точками"] # 0x2a2b + - "⨬": [t: "знак минус с растущими точками"] # 0x2a2c + - "⨭": [t: "знак плюс в левой половине круга"] # 0x2a2d + - "⨮": [t: "знак плюс в правой половине круга"] # 0x2a2e + - "⨯": # 0x2a2f + - test: + if: "$Verbosity='Terse'" + then: [t: "крест"] + else: [t: "векторное произведение"] + - "⨰": [t: "знак умножения с точкой сверху"] # 0x2a30 + - "⨱": [t: "знак умножения с подчёркиванием"] # 0x2a31 + - "⨲": [t: "полупрямое произведение с замкнутым низом"] # 0x2a32 + - "⨳": [t: "разбивающее произведение"] # 0x2a33 + - "⨴": [t: "знак умножения в левой половине круга"] # 0x2a34 + - "⨵": [t: "знак умножения в правой половине круга"] # 0x2a35 + - "⨶": [t: "знак умножения в круге с циркумфлексом"] # 0x2a36 + - "⨷": [t: "знак умножения в двойном круге"] # 0x2a37 + - "⨸": [t: "знак деления в круге"] # 0x2a38 + - "⨹": [t: "знак плюс в треугольнике"] # 0x2a39 + - "⨺": [t: "знак минус в треугольнике"] # 0x2a3a + - "⨻": [t: "знак умножения в треугольнике"] # 0x2a3b + - "⨼": [t: "внутреннее произведение"] # 0x2a3c + - "⨽": [t: "правое внутреннее произведение"] # 0x2a3d + - "⨾": [t: "Z-нотация реляционная композиция"] # 0x2a3e + - "⨿": [t: "амальгама или копроизведение"] # 0x2a3f + - "⩀": [t: "пересечение с точкой"] # 0x2a40 + - "⩁": [t: "объединение со знаком минус"] # 0x2a41 + - "⩂": [t: "объединение с надчёркиванием"] # 0x2a42 + - "⩃": [t: "пересечение с надчёркиванием"] # 0x2a43 + - "⩄": [t: "пересечение с логическим и"] # 0x2a44 + - "⩅": [t: "объединение с логическим или"] # 0x2a45 + - "⩆": [t: "объединение над пересечением"] # 0x2a46 + - "⩇": [t: "пересечение над объединением"] # 0x2a47 + - "⩈": [t: "объединение над чертой над пересечением"] # 0x2a48 + - "⩉": [t: "пересечение над чертой над объединением"] # 0x2a49 + - "⩊": [t: "объединение рядом и соединённое с объединением"] # 0x2a4a + - "⩋": [t: "пересечение рядом и соединённое с пересечением"] # 0x2a4b + - "⩌": [t: "замкнутое объединение с засечками"] # 0x2a4c + - "⩍": [t: "замкнутое пересечение с засечками"] # 0x2a4d + - "⩎": [t: "двойное квадратное пересечение"] # 0x2a4e + - "⩏": [t: "двойное квадратное объединение"] # 0x2a4f + - "⩐": [t: "замкнутое объединение с засечками и разбивающим произведением"] # 0x2a50 + - "⩑": [t: "логическое и с точкой сверху"] # 0x2a51 + - "⩒": [t: "логическое или с точкой сверху"] # 0x2a52 + - "⩓": [t: "двойное логическое и"] # 0x2a53 + - "⩔": [t: "двойное логическое или"] # 0x2a54 + - "⩕": [t: "два пересекающихся логических и"] # 0x2a55 + - "⩖": [t: "два пересекающихся логических или"] # 0x2a56 + - "⩗": [t: "наклонное большое или"] # 0x2a57 + - "⩘": [t: "наклонное большое и"] # 0x2a58 + - "⩙": [t: "логическое или перекрывает логическое и"] # 0x2a59 + - "⩚": [t: "логическое и со средним стержнем"] # 0x2a5a + - "⩛": [t: "логическое или со средним стержнем"] # 0x2a5b + - "⩜": [t: "логическое и с горизонтальным тире"] # 0x2a5c + - "⩝": [t: "логическое или с горизонтальным тире"] # 0x2a5d + - "⩞": [t: "логическое и с двойным надчёркиванием"] # 0x2a5e + - "⩟": [t: "логическое и с подчёркиванием"] # 0x2a5f + - "⩠": [t: "логическое и с двойным подчёркиванием"] # 0x2a60 + - "⩡": [t: "маленькая галочка с подчёркиванием"] # 0x2a61 + - "⩢": [t: "логическое или с двойным надчёркиванием"] # 0x2a62 + - "⩣": [t: "логическое или с двойным подчёркиванием"] # 0x2a63 + - "⩤": [t: "Z-нотация антиограничение области"] # 0x2a64 + - "⩥": [t: "Z-нотация антиограничение диапазона"] # 0x2a65 + - "⩦": [t: "знак равенства с точкой снизу"] # 0x2a66 + - "⩧": [t: "тождественно с точкой сверху"] # 0x2a67 + - "⩨": [t: "тройная горизонтальная черта с двойным вертикальным штрихом"] # 0x2a68 + - "⩩": [t: "тройная горизонтальная черта с тройным вертикальным штрихом"] # 0x2a69 + - "⩪": [t: "тильда с точкой сверху"] # 0x2a6a + - "⩫": [t: "тильда с растущими точками"] # 0x2a6b + - "⩬": [t: "похоже минус похоже"] # 0x2a6c + - "⩭": [t: "конгруэнтно с точкой сверху"] # 0x2a6d + - "⩮": [t: "равно со звёздочкой"] # 0x2a6e + - "⩯": [t: "почти равно с циркумфлексом"] # 0x2a6f + - "⩰": [t: "приблизительно равно или равно"] # 0x2a70 + - "⩱": [t: "знак равенства над знаком плюс"] # 0x2a71 + - "⩲": [t: "знак плюс над знаком равенства"] # 0x2a72 + - "⩳": [t: "знак равенства над тильдой"] # 0x2a73 + - "⩴": [t: "двойное двоеточие равно"] # 0x2a74 + - "⩵": [t: "два последовательных знака равенства"] # 0x2a75 + - "⩶": [t: "три последовательных знака равенства"] # 0x2a76 + - "⩷": [t: "знак равенства с двумя точками сверху и двумя точками снизу"] # 0x2a77 + - "⩸": [t: "эквивалентно с четырьмя точками сверху"] # 0x2a78 + - "⩹": [t: "меньше с кругом внутри"] # 0x2a79 + - "⩺": [t: "больше с кругом внутри"] # 0x2a7a + - "⩻": [t: "меньше с вопросительным знаком сверху"] # 0x2a7b + - "⩼": [t: "больше с вопросительным знаком сверху"] # 0x2a7c + - "⩽": [t: "меньше или наклонно равно"] # 0x2a7d + - "⩾": [t: "больше или наклонно равно"] # 0x2a7e + - "⩿": [t: "меньше или наклонно равно с точкой внутри"] # 0x2a7f + - "⪀": [t: "больше или наклонно равно с точкой внутри"] # 0x2a80 + - "⪁": [t: "меньше или наклонно равно с точкой сверху"] # 0x2a81 + - "⪂": [t: "больше или наклонно равно с точкой сверху"] # 0x2a82 + - "⪃": [t: "меньше или наклонно равно с точкой сверху справа"] # 0x2a83 + - "⪄": [t: "больше или наклонно равно с точкой сверху слева"] # 0x2a84 + - "⪅": [t: "меньше или приблизительно"] # 0x2a85 + - "⪆": [t: "больше или приблизительно"] # 0x2a86 + - "⪇": [t: "меньше и одинарная линия не равно"] # 0x2a87 + - "⪈": [t: "больше и одинарная линия не равно"] # 0x2a88 + - "⪉": [t: "меньше и не приблизительно"] # 0x2a89 + - "⪊": [t: "больше и не приблизительно"] # 0x2a8a + - "⪋": [t: "меньше над двойной линией равно над больше"] # 0x2a8b + - "⪌": [t: "больше над двойной линией равно над меньше"] # 0x2a8c + - "⪍": [t: "меньше над похоже или равно"] # 0x2a8d + - "⪎": [t: "больше над похоже или равно"] # 0x2a8e + - "⪏": [t: "меньше над похоже над больше"] # 0x2a8f + - "⪐": [t: "больше над похоже над меньше"] # 0x2a90 + - "⪑": [t: "меньше над больше над двойной линией равно"] # 0x2a91 + - "⪒": [t: "больше над меньше над двойной линией равно"] # 0x2a92 + - "⪓": [t: "меньше над наклонным равно над больше над наклонным равно"] # 0x2a93 + - "⪔": [t: "больше над наклонным равно над меньше над наклонным равно"] # 0x2a94 + - "⪕": [t: "наклонно равно или меньше"] # 0x2a95 + - "⪖": [t: "наклонно равно или больше"] # 0x2a96 + - "⪗": [t: "наклонно равно или меньше с точкой внутри"] # 0x2a97 + - "⪘": [t: "наклонно равно или больше с точкой внутри"] # 0x2a98 + - "⪙": [t: "двойная линия равно или меньше"] # 0x2a99 + - "⪚": [t: "двойная линия равно или больше"] # 0x2a9a + - "⪛": [t: "двойная линия наклонно равно или меньше"] # 0x2a9b + - "⪜": [t: "двойная линия наклонно равно или больше"] # 0x2a9c + - "⪝": [t: "похоже или меньше"] # 0x2a9d + - "⪞": [t: "похоже или больше"] # 0x2a9e + - "⪟": [t: "похоже над меньше над знаком равенства"] # 0x2a9f + - "⪠": [t: "похоже над больше над знаком равенства"] # 0x2aa0 + - "⪡": [t: "двойное вложенное меньше"] # 0x2aa1 + - "⪢": [t: "двойное вложенное больше"] # 0x2aa2 + - "⪣": [t: "двойное вложенное меньше с подчёркиванием"] # 0x2aa3 + - "⪤": [t: "больше перекрывает меньше"] # 0x2aa4 + - "⪥": [t: "больше рядом с меньше"] # 0x2aa5 + - "⪦": [t: "меньше замкнутое кривой"] # 0x2aa6 + - "⪧": [t: "больше замкнутое кривой"] # 0x2aa7 + - "⪨": [t: "меньше замкнутое кривой над наклонным равно"] # 0x2aa8 + - "⪩": [t: "больше замкнутое кривой над наклонным равно"] # 0x2aa9 + - "⪪": [t: "меньше чем"] # 0x2aaa + - "⪫": [t: "больше чем"] # 0x2aab + - "⪬": [t: "меньше чем или равно"] # 0x2aac + - "⪭": [t: "больше чем или равно"] # 0x2aad + - "⪮": [t: "знак равенства с бугром сверху"] # 0x2aae + - "⪯": [t: "предшествует над одинарной линией равенства"] # 0x2aaf + - "⪰": [t: "следует над одинарной линией равенства"] # 0x2ab0 + - "⪱": [t: "предшествует над одинарной линией не равно"] # 0x2ab1 + - "⪲": [t: "следует над одинарной линией не равно"] # 0x2ab2 + - "⪳": [t: "предшествует над знаком равенства"] # 0x2ab3 + - "⪴": [t: "следует над знаком равенства"] # 0x2ab4 + - "⪵": [t: "предшествует над не равно"] # 0x2ab5 + - "⪶": [t: "следует над не равно"] # 0x2ab6 + - "⪷": [t: "предшествует над почти равно"] # 0x2ab7 + - "⪸": [t: "следует над почти равно"] # 0x2ab8 + - "⪹": [t: "предшествует над не почти равно"] # 0x2ab9 + - "⪺": [t: "следует над не почти равно"] # 0x2aba + - "⪻": [t: "двойное предшествует"] # 0x2abb + - "⪼": [t: "двойное следует"] # 0x2abc + - "⪽": [t: "подмножество с точкой"] # 0x2abd + - "⪾": [t: "надмножество с точкой"] # 0x2abe + - "⪿": [t: "подмножество со знаком плюс снизу"] # 0x2abf + - "⫀": [t: "надмножество со знаком плюс снизу"] # 0x2ac0 + - "⫁": [t: "подмножество со знаком умножения снизу"] # 0x2ac1 + - "⫂": [t: "надмножество со знаком умножения снизу"] # 0x2ac2 + - "⫃": [t: "подмножество или равно с точкой сверху"] # 0x2ac3 + - "⫄": [t: "надмножество или равно с точкой сверху"] # 0x2ac4 + - "⫅": [t: "подмножество над знаком равенства"] # 0x2ac5 + - "⫆": [t: "надмножество над знаком равенства"] # 0x2ac6 + - "⫇": [t: "подмножество над тильдой"] # 0x2ac7 + - "⫈": [t: "надмножество над тильдой"] # 0x2ac8 + - "⫉": [t: "подмножество над почти равно"] # 0x2ac9 + - "⫊": [t: "надмножество над почти равно"] # 0x2aca + - "⫋": [t: "подмножество над не равно"] # 0x2acb + - "⫌": [t: "надмножество над не равно"] # 0x2acc + - "⫍": [t: "квадратный левый открытый ящик"] # 0x2acd + - "⫎": [t: "квадратный правый открытый ящик"] # 0x2ace + - "⫏": [t: "замкнутое подмножество"] # 0x2acf + - "⫐": [t: "замкнутое надмножество"] # 0x2ad0 + - "⫑": [t: "замкнутое подмножество или равно"] # 0x2ad1 + - "⫒": [t: "замкнутое надмножество или равно"] # 0x2ad2 + - "⫓": [t: "подмножество над надмножеством"] # 0x2ad3 + - "⫔": [t: "надмножество над подмножеством"] # 0x2ad4 + - "⫕": [t: "подмножество над подмножеством"] # 0x2ad5 + - "⫖": [t: "надмножество над надмножеством"] # 0x2ad6 + - "⫗": [t: "надмножество рядом с подмножеством"] # 0x2ad7 + - "⫘": [t: "надмножество рядом и соединённое тире с подмножеством"] # 0x2ad8 + - "⫙": [t: "элемент, открытый вниз"] # 0x2ad9 + - "⫚": [t: "вилы с тройником сверху"] # 0x2ada + - "⫛": [t: "трансверсальное пересечение"] # 0x2adb + - "⫝̸": [t: "ветвление"] # 0x2adc + - "⫝": [t: "неветвление"] # 0x2add + - "⫞": [t: "короткий левый таск"] # 0x2ade + - "⫟": [t: "короткий нижний таск"] # 0x2adf + - "⫠": [t: "короткий верхний таск"] # 0x2ae0 + - "⫡": [t: "перпендикуляр с s"] # 0x2ae1 + - "⫢": [t: "вертикальная черта тройной правый турникет"] # 0x2ae2 + - "⫣": [t: "двойная вертикальная черта левый турникет"] # 0x2ae3 + - "⫤": [t: "вертикальная черта двойной левый турникет"] # 0x2ae4 + - "⫥": [t: "двойная вертикальная черта двойной левый турникет"] # 0x2ae5 + - "⫦": [t: "длинное тире от левого члена двойной вертикальной"] # 0x2ae6 + - "⫧": [t: "короткий нижний таск с надчёркиванием"] # 0x2ae7 + - "⫨": [t: "короткий верхний таск с подчёркиванием"] # 0x2ae8 + - "⫩": [t: "короткий верхний таск над коротким нижним таском"] # 0x2ae9 + - "⫪": [t: "двойной нижний таск"] # 0x2aea + - "⫫": [t: "двойной верхний таск"] # 0x2aeb + - "⫬": [t: "знак не с двойным штрихом"] # 0x2aec + - "⫭": [t: "обратный знак не с двойным штрихом"] # 0x2aed + - "⫮": [t: "не делит с обратной перечёркивающей косой"] # 0x2aee + - "⫯": [t: "вертикальная линия с кругом сверху"] # 0x2aef + - "⫰": [t: "вертикальная линия с кругом снизу"] # 0x2af0 + - "⫱": [t: "нижний таск с кругом снизу"] # 0x2af1 + - "⫲": [t: "параллельно с горизонтальным штрихом"] # 0x2af2 + - "⫳": [t: "параллельно с тильдой"] # 0x2af3 + - "⫴": [t: "тройная вертикальная черта бинарное отношение"] # 0x2af4 + - "⫵": [t: "тройная вертикальная черта с горизонтальным штрихом"] # 0x2af5 + - "⫶": [t: "оператор тройное двоеточие"] # 0x2af6 + - "⫷": [t: "тройное вложенное меньше"] # 0x2af7 + - "⫸": [t: "тройное вложенное больше"] # 0x2af8 + - "⫹": [t: "двойная линия наклонно меньше или равно"] # 0x2af9 + - "⫺": [t: "двойная линия наклонно больше или равно"] # 0x2afa + - "⫻": [t: "тройная косая черта бинарное отношение"] # 0x2afb + - "⫼": [t: "оператор большая тройная вертикальная черта"] # 0x2afc + - "⫽": [t: "оператор двойная косая черта"] # 0x2afd + - "⫾": [t: "белая вертикальная черта"] # 0x2afe + - "⫿": [t: "белая вертикальная черта"] # 0x2aff + - "⬀": [t: "белая стрелка на северо-восток"] # 0x2b00 + - "⬁": [t: "белая стрелка на северо-запад"] # 0x2b01 + - "⬂": [t: "белая стрелка на юго-восток"] # 0x2b02 + - "⬃": [t: "белая стрелка на юго-запад"] # 0x2b03 + - "⬄": [t: "белая стрелка влево-вправо"] # 0x2b04 + - "⬅": [t: "чёрная стрелка влево"] # 0x2b05 + - "⬆": [t: "чёрная стрелка вверх"] # 0x2b06 + - "⬇": [t: "чёрная стрелка вниз"] # 0x2b07 + - "⬈": [t: "чёрная стрелка на северо-восток"] # 0x2b08 + - "⬉": [t: "чёрная стрелка на северо-запад"] # 0x2b09 + - "⬊": [t: "чёрная стрелка на юго-восток"] # 0x2b0a + - "⬋": [t: "чёрная стрелка на юго-запад"] # 0x2b0b + - "⬌": [t: "чёрная стрелка влево-вправо"] # 0x2b0c + - "⬍": [t: "чёрная стрелка вверх-вниз"] # 0x2b0d + - "⬎": [t: "стрелка вправо с наконечником вниз"] # 0x2b0e + - "⬏": [t: "стрелка вправо с наконечником вверх"] # 0x2b0f + - "⬐": [t: "стрелка влево с наконечником вниз"] # 0x2b10 + - "⬑": [t: "стрелка влево с наконечником вверх"] # 0x2b11 + - "⬒": [t: "квадрат с верхней половиной чёрной"] # 0x2b12 + - "⬓": [t: "квадрат с нижней половиной чёрной"] # 0x2b13 + - "⬔": [t: "квадрат с верхней правой диагональной половиной чёрной"] # 0x2b14 + - "⬕": [t: "квадрат с нижней левой диагональной половиной чёрной"] # 0x2b15 + - "⬖": [t: "ромб с левой половиной чёрной"] # 0x2b16 + - "⬗": [t: "ромб с правой половиной чёрной"] # 0x2b17 + - "⬘": [t: "ромб с верхней половиной чёрной"] # 0x2b18 + - "⬙": [t: "ромб с нижней половиной чёрной"] # 0x2b19 + - "⬚": [t: "ящик"] # 0x2b1a + - "⬛": [t: "чёрный большой квадрат"] # 0x2b1b + - "⬜": [t: "белый большой квадрат"] # 0x2b1c + - "⬝": [t: "чёрный очень маленький квадрат"] # 0x2b1d + - "⬞": [t: "белый очень маленький квадрат"] # 0x2b1e + - "⬟": [t: "чёрный пятиугольник"] # 0x2b1f + - "⬠": [t: "белый пятиугольник"] # 0x2b20 + - "⬡": [t: "белый шестиугольник"] # 0x2b21 + - "⬢": [t: "чёрный шестиугольник"] # 0x2b22 + - "⬣": [t: "горизонтальный чёрный шестиугольник"] # 0x2b23 + - "⬤": [t: "чёрный большой круг"] # 0x2b24 + - "⬥": [t: "чёрный средний ромб"] # 0x2b25 + - "⬦": [t: "белый средний ромб"] # 0x2b26 + - "⬧": [t: "чёрная средняя луковица"] # 0x2b27 + - "⬨": [t: "белая средняя луковица"] # 0x2b28 + - "⬩": [t: "чёрный маленький ромб"] # 0x2b29 + - "⬪": [t: "чёрная маленькая луковица"] # 0x2b2a + - "⬫": [t: "белая маленькая луковица"] # 0x2b2b + - "⬬": [t: "чёрный горизонтальный эллипс"] # 0x2b2c + - "⬭": [t: "белый горизонтальный эллипс"] # 0x2b2d + - "⬮": [t: "чёрный вертикальный эллипс"] # 0x2b2e + - "⬯": [t: "белый вертикальный эллипс"] # 0x2b2f + - "⬰": [t: "стрелка влево с маленьким кругом"] # 0x2b30 + - "⬱": [t: "три стрелки влево"] # 0x2b31 + - "⬲": [t: "стрелка влево с плюсом в круге"] # 0x2b32 + - "⬳": [t: "длинная волнистая стрелка влево"] # 0x2b33 + - "⬴": [t: "стрелка влево с двумя наконечниками и вертикальным штрихом"] # 0x2b34 + - "⬵": [t: "стрелка влево с двумя наконечниками и двойным вертикальным штрихом"] # 0x2b35 + - "⬶": [t: "стрелка влево с двумя наконечниками от черты"] # 0x2b36 + - "⬷": [t: "стрелка влево с двумя наконечниками и тройным пунктиром"] # 0x2b37 + - "⬸": [t: "стрелка влево с пунктирным стволом"] # 0x2b38 + - "⬹": [t: "стрелка влево с хвостом и вертикальным штрихом"] # 0x2b39 + - "⬺": [t: "стрелка влево с хвостом и двойным вертикальным штрихом"] # 0x2b3a + - "⬻": [t: "стрелка влево с двумя наконечниками и хвостом"] # 0x2b3b + - "⬼": [t: "стрелка влево с двумя наконечниками, хвостом и вертикальным штрихом"] # 0x2b3c + - "⬽": [t: "стрелка влево с двумя наконечниками, хвостом и двойным вертикальным штрихом"] # 0x2b3d + - "⬾": [t: "стрелка влево сквозь x"] # 0x2b3e + - "⬿": [t: "волновая стрелка, указывающая прямо влево"] # 0x2b3f + - "⭀": [t: "знак равенства над стрелкой влево"] # 0x2b40 + - "⭁": [t: "обратная тильда над стрелкой влево"] # 0x2b41 + - "⭂": [t: "стрелка влево над обратным почти равно"] # 0x2b42 + - "⭃": [t: "стрелка вправо сквозь больше"] # 0x2b43 + - "⭄": [t: "стрелка вправо сквозь надмножество"] # 0x2b44 + - "⭅": [t: "левая четверная стрелка"] # 0x2b45 + - "⭆": [t: "правая четверная стрелка"] # 0x2b46 + - "⭇": [t: "обратная тильда над стрелкой вправо"] # 0x2b47 + - "⭈": [t: "стрелка вправо над обратным почти равно"] # 0x2b48 + - "⭉": [t: "тильда над стрелкой влево"] # 0x2b49 + - "⭊": [t: "стрелка влево над почти равно"] # 0x2b4a + - "⭋": [t: "стрелка влево над обратной тильдой"] # 0x2b4b + - "⭌": [t: "стрелка вправо над обратной тильдой"] # 0x2b4c + - "⭐": [t: "белая средняя звезда"] # 0x2b50 + - "⭑": [t: "чёрная маленькая звезда"] # 0x2b51 + - "⭒": [t: "белая маленькая звезда"] # 0x2b52 + - "⭓": [t: "чёрный пятиугольник остриём вправо"] # 0x2b53 + - "⭔": [t: "белый пятиугольник остриём вправо"] # 0x2b54 + - "⭕": [t: "жирный большой круг"] # 0x2b55 + - "⭖": [t: "жирный овал с овалом внутри"] # 0x2b56 + - "⭗": [t: "жирный круг с кругом внутри"] # 0x2b57 + - "⭘": [t: "жирный круг"] # 0x2b58 + - "⭙": [t: "жирный круг с андреевским крестом"] # 0x2b59 + - "⸀": [t: "маркер замены прямым углом"] # 0x2e00 + - "⸁": [t: "маркер замены прямым углом с точкой"] # 0x2e01 + - "⸂": [t: "левая скобка замены"] # 0x2e02 + - "⸃": [t: "правая скобка замены"] # 0x2e03 + - "⸄": [t: "левая пунктирная скобка замены"] # 0x2e04 + - "⸅": [t: "правая пунктирная скобка замены"] # 0x2e05 + - "⸆": [t: "приподнятый маркер вставки"] # 0x2e06 + - "⸇": [t: "приподнятый пунктирный маркер вставки"] # 0x2e07 + - "⸈": [t: "пунктирный маркер транспозиции"] # 0x2e08 + - "⸉": [t: "левая скобка транспозиции"] # 0x2e09 + - "⸊": [t: "правая скобка транспозиции"] # 0x2e0a + - "⸋": [t: "приподнятый квадрат"] # 0x2e0b + - "⸌": [t: "левая приподнятая скобка пропуска"] # 0x2e0c + - "⸍": [t: "правая приподнятая скобка пропуска"] # 0x2e0d + - "⸎": [t: "издательская коронида"] # 0x2e0e + - "⸏": [t: "параграфос"] # 0x2e0f + - "⸐": [t: "вилообразный параграфос"] # 0x2e10 + - "⸑": [t: "обратный вилообразный параграфос"] # 0x2e11 + - "⸒": [t: "гиподиастола"] # 0x2e12 + - "⸓": [t: "пунктирный обел"] # 0x2e13 + - "⸔": [t: "нижняя якорная скобка"] # 0x2e14 + - "⸕": [t: "верхняя якорная скобка"] # 0x2e15 + - "⸖": [t: "пунктирный правый угол"] # 0x2e16 + - "⸗": [t: "двойной косой дефис"] # 0x2e17 + - "⸘": [t: "перевёрнутый интерробанг"] # 0x2e18 + - "⸙": [t: "пальмовая ветвь"] # 0x2e19 + - "⸚": [t: "дефис с диерезисом"] # 0x2e1a + - "⸛": [t: "тильда с кольцом сверху"] # 0x2e1b + - "⸜": [t: "левая нижняя парафразная скобка"] # 0x2e1c + - "⸝": [t: "правая нижняя парафразная скобка"] # 0x2e1d + - "⸞": [t: "тильда с точкой сверху"] # 0x2e1e + - "⸟": [t: "тильда с точкой снизу"] # 0x2e1f + - "⸠": [t: "левая вертикальная черта с пером"] # 0x2e20 + - "⸡": [t: "правая вертикальная черта с пером"] # 0x2e21 + - "⸢": [t: "верхняя левая половина скобки"] # 0x2e22 + - "⸣": [t: "верхняя правая половина скобки"] # 0x2e23 + - "⸤": [t: "нижняя левая половина скобки"] # 0x2e24 + - "⸥": [t: "нижняя правая половина скобки"] # 0x2e25 + - "⸦": [t: "левая боковая U-скобка"] # 0x2e26 + - "⸧": [t: "правая боковая U-скобка"] # 0x2e27 + - "⸨": [t: "левая двойная скобка"] # 0x2e28 + - "⸩": [t: "правая двойная скобка"] # 0x2e29 + - "⸪": [t: "две точки над одной точкой"] # 0x2e2a + - "⸫": [t: "одна точка над двумя точками"] # 0x2e2b + - "⸬": [t: "квадратная четырёхточечная пунктуация"] # 0x2e2c + - "⸭": [t: "знак из пяти точек"] # 0x2e2d + - "⸮": [t: "обратный вопросительный знак"] # 0x2e2e + - "ⸯ": [t: "вертикальная тильда"] # 0x2e2f + - "⸰": [t: "кольцевая точка"] # 0x2e30 + - "⸱": [t: "разделитель слов средняя точка"] # 0x2e31 + - "⸲": [t: "перевёрнутая запятая"] # 0x2e32 + - "⸳": [t: "приподнятая точка"] # 0x2e33 + - "⸴": [t: "приподнятая запятая"] # 0x2e34 + - "⸵": [t: "перевёрнутая точка с запятой"] # 0x2e35 + - "⸶": [t: "крестик с левой защитой"] # 0x2e36 + - "⸷": [t: "крестик с правой защитой"] # 0x2e37 + - "⸸": [t: "перевёрнутый крестик"] # 0x2e38 + - "⸹": [t: "верхняя половина знака параграфа"] # 0x2e39 + - "⸺": [t: "два длинных тире"] # 0x2e3a + - "⸻": [t: "три длинных тире"] # 0x2e3b + - "〃": [t: "знак повторения"] # 0x3003 + - "〈": [t: "левая угловая скобка"] # 0x3008 + - "〉": [t: "правая угловая скобка"] # 0x3009 + - "《": [t: "левая двойная угловая скобка"] # 0x300a + - "》": [t: "правая двойная угловая скобка"] # 0x300b + - "「": [t: "левая угловая скобка"] # 0x300c + - "」": [t: "правая угловая скобка"] # 0x300d + - "『": [t: "левая белая угловая скобка"] # 0x300e + - "』": [t: "правая белая угловая скобка"] # 0x300f + - "【": [t: "левая чёрная лентикулярная скобка"] # 0x3010 + - "】": [t: "правая чёрная лентикулярная скобка"] # 0x3011 + - "〔": [t: "открывающая черепашья скобка"] # 0x3014 + - "〕": [t: "закрывающая черепашья скобка"] # 0x3015 + - "〖": [t: "левая белая лентикулярная скобка"] # 0x3016 + - "〗": [t: "правая белая лентикулярная скобка"] # 0x3017 + - "〘": [t: "левая белая черепашья скобка"] # 0x3018 + - "〙": [t: "правая белая черепашья скобка"] # 0x3019 + - "〚": [t: "левая белая квадратная скобка"] # 0x301a + - "〛": [t: "правая белая квадратная скобка"] # 0x301b + - "〜": [t: "волновое тире"] # 0x301c + - "〰": [t: "волнистое тире"] # 0x3030 + - "㉈": [t: "число десять в круге на чёрном квадрате"] # 0x3248 + - "㉉": [t: "число двадцать в круге на чёрном квадрате"] # 0x3249 + - "㉊": [t: "число тридцать в круге на чёрном квадрате"] # 0x324a + - "㉋": [t: "число сорок в круге на чёрном квадрате"] # 0x324b + - "㉌": [t: "число пятьдесят в круге на чёрном квадрате"] # 0x324c + - "㉍": [t: "число шестьдесят в круге на чёрном квадрате"] # 0x324d + - "㉎": [t: "число семьдесят в круге на чёрном квадрате"] # 0x324e + - "㉏": [t: "число восемьдесят в круге на чёрном квадрате"] # 0x324f + - "㉑": [t: "число двадцать один в круге"] # 0x3251 + - "㉒": [t: "число двадцать два в круге"] # 0x3252 + - "㉓": [t: "число двадцать три в круге"] # 0x3253 + - "㉔": [t: "число двадцать четыре в круге"] # 0x3254 + - "㉕": [t: "число двадцать пять в круге"] # 0x3255 + - "㉖": [t: "число двадцать шесть в круге"] # 0x3256 + - "㉗": [t: "число двадцать семь в круге"] # 0x3257 + - "㉘": [t: "число двадцать восемь в круге"] # 0x3258 + - "㉙": [t: "число двадцать девять в круге"] # 0x3259 + - "㉚": [t: "число тридцать в круге"] # 0x325a + - "㉛": [t: "число тридцать один в круге"] # 0x325b + - "㉜": [t: "число тридцать два в круге"] # 0x325c + - "㉝": [t: "число тридцать три в круге"] # 0x325d + - "㉞": [t: "число тридцать четыре в круге"] # 0x325e + - "㉟": [t: "число тридцать пять в круге"] # 0x325f + - "㊱": [t: "число тридцать шесть в круге"] # 0x32b1 + - "㊲": [t: "число тридцать семь в круге"] # 0x32b2 + - "㊳": [t: "число тридцать восемь в круге"] # 0x32b3 + - "㊴": [t: "число тридцать девять в круге"] # 0x32b4 + - "㊵": [t: "число сорок в круге"] # 0x32b5 + - "㊶": [t: "число сорок один в круге"] # 0x32b6 + - "㊷": [t: "число сорок два в круге"] # 0x32b7 + - "㊸": [t: "число сорок три в круге"] # 0x32b8 + - "㊹": [t: "число сорок четыре в круге"] # 0x32b9 + - "㊺": [t: "число сорок пять в круге"] # 0x32ba + - "㊻": [t: "число сорок шесть в круге"] # 0x32bb + - "㊼": [t: "число сорок семь в круге"] # 0x32bc + - "㊽": [t: "число сорок восемь в круге"] # 0x32bd + - "㊾": [t: "число сорок девять в круге"] # 0x32be + - "㊿": [t: "число пятьдесят в круге"] # 0x32bf + - "㋌": [t: "Меркурий"] # 0x32cc + - "㋍": [t: "эрги"] # 0x32cd + - "㋎": [t: "электрон-вольты"] # 0x32ce + - "㋏": [t: "знак ограниченной ответственности"] # 0x32cf + - "㍱": [t: "гектопаскали"] # 0x3371 + - "㍲": [t: "дальтоны"] # 0x3372 + - "㍳": [t: "астрономические единицы"] # 0x3373 + - "㍴": [t: "бары"] # 0x3374 + - "㍵": [t: "о в"] # 0x3375 + - "㍶": [t: "парсеки"] # 0x3376 + - "㍷": [t: "дециметры"] # 0x3377 + - "㍸": [t: "квадратные дециметры"] # 0x3378 + - "㍹": [t: "кубические дециметры"] # 0x3379 + - "㍺": [t: "инструментальные единицы"] # 0x337a + - "㎀": [t: "пикоамперы"] # 0x3380 + - "㎁": [t: "наноамперы"] # 0x3381 + - "㎂": [t: "микроамперы"] # 0x3382 + - "㎃": [t: "миллиамперы"] # 0x3383 + - "㎄": [t: "килоамперы"] # 0x3384 + - "㎅": [t: "килобайты"] # 0x3385 + - "㎆": [t: "мегабайты"] # 0x3386 + - "㎇": [t: "гигабайты"] # 0x3387 + - "㎈": [t: "калории"] # 0x3388 + - "㎉": [t: "килокалории"] # 0x3389 + - "㎊": [t: "пикофарады"] # 0x338a + - "㎋": [t: "нанофарады"] # 0x338b + - "㎌": [t: "микрофарады"] # 0x338c + - "㎍": [t: "микрограммы"] # 0x338d + - "㎎": [t: "миллиграммы"] # 0x338e + - "㎏": [t: "килограммы"] # 0x338f + - "㎐": [t: "герцы"] # 0x3390 + - "㎑": [t: "килогерцы"] # 0x3391 + - "㎒": [t: "мегагерцы"] # 0x3392 + - "㎓": [t: "гигагерцы"] # 0x3393 + - "㎔": [t: "терагерцы"] # 0x3394 + - "㎕": [t: "микролитры"] # 0x3395 + - "㎖": [t: "миллилитры"] # 0x3396 + - "㎗": [t: "децилитры"] # 0x3397 + - "㎘": [t: "килолитры"] # 0x3398 + - "㎙": [t: "фемтометры"] # 0x3399 + - "㎚": [t: "нанометры"] # 0x339a + - "㎛": [t: "микрометры"] # 0x339b + - "㎜": [t: "миллиметры"] # 0x339c + - "㎝": [t: "сантиметры"] # 0x339d + - "㎞": [t: "километры"] # 0x339e + - "㎟": [t: "квадратные миллиметры"] # 0x339f + - "㎠": [t: "квадратные сантиметры"] # 0x33a0 + - "㎡": [t: "квадратные метры"] # 0x33a1 + - "㎢": [t: "квадратные километры"] # 0x33a2 + - "㎣": [t: "кубические миллиметры"] # 0x33a3 + - "㎤": [t: "кубические сантиметры"] # 0x33a4 + - "㎥": [t: "кубические метры"] # 0x33a5 + - "㎦": [t: "кубические километры"] # 0x33a6 + - "㎧": [t: "метры в секунду"] # 0x33a7 + - "㎨": [t: "метры в секунду в квадрате"] # 0x33a8 + - "㎩": [t: "паскали"] # 0x33a9 + - "㎪": [t: "килопаскали"] # 0x33aa + - "㎫": [t: "мегапаскали"] # 0x33ab + - "㎬": [t: "гигапаскали"] # 0x33ac + - "㎭": [t: "рады"] # 0x33ad + - "㎮": [t: "рады в секунду"] # 0x33ae + - "㎯": [t: "рады в секунду в квадрате"] # 0x33af + - "㎰": [t: "пикосекунды"] # 0x33b0 + - "㎱": [t: "наносекунды"] # 0x33b1 + - "㎲": [t: "микросекунды"] # 0x33b2 + - "㎳": [t: "миллисекунды"] # 0x33b3 + - "㎴": [t: "пиковольты"] # 0x33b4 + - "㎵": [t: "нановольты"] # 0x33b5 + - "㎶": [t: "микровольты"] # 0x33b6 + - "㎷": [t: "милливольты"] # 0x33b7 + - "㎸": [t: "киловольты"] # 0x33b8 + - "㎹": [t: "мегавольты"] # 0x33b9 + - "㎺": [t: "пиковатты"] # 0x33ba + - "㎻": [t: "нановатты"] # 0x33bb + - "㎼": [t: "микроватты"] # 0x33bc + - "㎽": [t: "милливатты"] # 0x33bd + - "㎾": [t: "киловатты"] # 0x33be + - "㎿": [t: "мегаватты"] # 0x33bf + - "㏀": [t: "килоомы"] # 0x33c0 + - "㏁": [t: "мегаомы"] # 0x33c1 + - "㏂": [t: "аттометры"] # 0x33c2 + - "㏃": [t: "беккерели"] # 0x33c3 + - "㏄": [t: "кубические сантиметры"] # 0x33c4 + - "㏅": [t: "канделы"] # 0x33c5 + - "㏆": [t: "кулоны на килограмм"] # 0x33c6 + - "㏇": [t: "заглавная C, o, точка"] # 0x33c7 (I have no idea what this is) + - "㏈": [t: "децибелы"] # 0x33c8 + - "㏉": [t: "греи"] # 0x33c9 + - "㏊": [t: "гектары"] # 0x33ca + - "㏋": [t: "лошадиные силы"] # 0x33cb + - "㏌": [t: "дюймы"] # 0x33cc + - "㏍": [t: "килокельвины"] # 0x33cd + - "㏎": [t: "километры"] # 0x33ce + - "㏏": [t: "узлы"] # 0x33cf + - "㏐": [t: "люмены"] # 0x33d0 + - "㏑": [t: "натуральный логарифм"] # 0x33d1 + - "㏒": [t: "логарифм"] # 0x33d2 + - "㏓": [t: "люксы"] # 0x33d3 + - "㏔": [t: "миллибарны"] # 0x33d4 + - "㏕": [t: "милли"] # 0x33d5 + - "㏖": [t: "моли"] # 0x33d6 + - "㏗": [t: "пэ аш"] # 0x33d7 + - "㏘": [t: "пикометры"] # 0x33d8 + - "㏙": [t: "частей на миллион"] # 0x33d9 + - "㏚": [t: "петарентгены"] # 0x33da + - "㏛": [t: "стерадианы"] # 0x33db + - "㏜": [t: "зиверты"] # 0x33dc + - "㏝": [t: "веберы"] # 0x33dd + - "㏞": [t: "вольты на метр"] # 0x33de + - "㏟": [t: "амперы на метр"] # 0x33df + - "㏿": [t: "галлоны"] # 0x33ff + - "": [t: "равно с крышкой снизу"] # 0xe900 + - "": [t: "равно с плюсом сверху"] # 0xe901 + - "": [t: "равно с плюсом снизу"] # 0xe902 + - "": [t: "тильда с плюсом сверху"] # 0xe903 + - "": [t: "тильда с плюсом снизу"] # 0xe904 + - "": [t: "равно двойное над больше"] # 0xe908 + - "": [t: "равно двойное над меньше"] # 0xe909 + - "": [t: "содержит или равно"] # 0xe90a + - "": [t: "надмножество или равно"] # 0xe90b + - "": [t: "подмножество или равно"] # 0xe90c + - "": [t: "равно над меньше"] # 0xe90d + - "": [t: "элемент или равно"] # 0xe912 + - "": [t: "равно или больше"] # 0xe913 + - "": [t: "приблизительное надмножество"] # 0xe914 + - "": [t: "приблизительное подмножество"] # 0xe915 + - "": [t: "надмножество с точкой включает как подотношение"] # 0xe916 + - "": [t: "подмножество с точкой включено как подотношение"] # 0xe917 + - "": [t: "равно с точкой снизу"] # 0xe918 + - "": [t: "левая точка над минусом над правой точкой"] # 0xe919 + - "": [t: "правая точка над минусом над левой точкой"] # 0xe91a + - "": [t: "почти равно минус"] # 0xe91f + - "": [t: "двойное квадратное объединение"] # 0xe920 + - "": [t: "двойное квадратное пересечение"] # 0xe921 + - "": [t: "меньше, равно или больше"] # 0xe922 + - "": [t: "тильда с точкой"] # 0xe924 + - "": [t: "тильда с двумя точками"] # 0xe925 + - "": [t: "меньше, больше или равно"] # 0xe926 + - "": [t: "больше, меньше или равно"] # 0xe927 + - "": [t: "эквивалентно или меньше"] # 0xe928 + - "": [t: "эквивалентно или больше"] # 0xe929 + - "": [t: "левый открытый ящик"] # 0xe92a + - "": [t: "правый открытый ящик"] # 0xe92b + - "": [t: "тождественно с точкой"] # 0xe92c + - "": [t: "больше, равно или меньше"] # 0xe92d + - "": [t: "оператор черта"] # 0xe92e + - "": [t: "оператор двойная черта"] # 0xe92f + - "": [t: "оператор тройная черта"] # 0xe930 + - "": [t: "меньше или приблизительно равно"] # 0xe932 + - "": [t: "больше или приблизительно равно"] # 0xe933 + - "": [t: "вложенное меньше"] # 0xe936 + - "": [t: "вложенное больше"] # 0xe937 + - "": [t: "предшествует или эквивалентно"] # 0xe93a + - "": [t: "следует или эквивалентно"] # 0xe93b + - "": [t: "предшествует над равно"] # 0xe940 + - "": [t: "следует над равно"] # 0xe941 + - "": [t: "меньше, равно, наклонно больше"] # 0xe942 + - "": [t: "больше, равно, наклонно меньше"] # 0xe943 + - "": [t: "удовлетворяется"] # 0xe948 + - "": [t: "ленивое s"] # 0xe949 + - "": [t: "не утверждение"] # 0xe94a + - "": [t: "двойное равно"] # 0xe94b + - "": [t: "тройное равно"] # 0xe94c + - "": [t: "правило отложено"] # 0xe94d + - "": [t: "разделитель псевдонимов"] # 0xe94e + - "": [t: "нормальная подгруппа с чертой"] # 0xe950 + - "": [t: "содержит как нормальную подгруппу с чертой"] # 0xe951 + - "": [t: "скруглённое следует"] # 0xe954 + - "": [t: "улыбка под чертой"] # 0xe955 + - "": [t: "хмурый над чертой"] # 0xe956 + - "": [t: "надмножество или почти равно"] # 0xe957 + - "": [t: "подмножество или почти равно"] # 0xe958 + - "": [t: "больше, почти равно или меньше"] # 0xe959 + - "": [t: "меньше, почти равно или больше"] # 0xe95a + - "": [t: "двойное логическое или"] # 0xe95c + - "": [t: "двойное логическое и"] # 0xe95d + - "": [t: "логическое или с двойной чертой снизу"] # 0xe95e + - "": [t: "логическое или с чертой снизу"] # 0xe95f + - "": [t: "почти равно над равно"] # 0xe962 + - "": [t: "левый треугольник с биссектрисой"] # 0xe964 + - "": [t: "правый треугольник с биссектрисой"] # 0xe965 + - "": [t: "равно с пунктирной верхней линией"] # 0xe966 + - "": [t: "предшествует с двоеточием"] # 0xe967 + - "": [t: "следует с двоеточием"] # 0xe968 + - "": [t: "меньше или равно наклонное"] # 0xe969 + - "": [t: "больше или равно наклонное"] # 0xe96a + - "": [t: "вложенное очень много меньше"] # 0xe96b + - "": [t: "вложенное очень много больше"] # 0xe96c + - "": [t: "разность вариант"] # 0xe96d + - "": [t: "меньше больше наложение"] # 0xe96e + - "": [t: "логическое или логическое и наложение"] # 0xe96f + - "": [t: "надмножество над надмножеством"] # 0xe970 + - "": [t: "подмножество над подмножеством"] # 0xe971 + - "": [t: "надмножество над подмножеством"] # 0xe972 + - "": [t: "подмножество над надмножеством"] # 0xe973 + - "": [t: "тройная вертикальная черта"] # 0xe979 + - "": [t: "парные четверные вертикальные точки"] # 0xe97a + - "": [t: "перпендикуляр над чертой"] # 0xe97b + - "": [t: "левый турникет двойная вертикальная черта"] # 0xe97c + - "": [t: "двойной левый турникет двойная вертикальная черта"] # 0xe97d + - "": [t: "перпендикуляр над перевёрнутым перпендикуляром"] # 0xe97e + - "": [t: "двойной левый турникет вертикальная черта"] # 0xe97f + - "": [t: "сферический угол, открытый вверх"] # 0xe980 + - "": [t: "двойная косая черта"] # 0xe981 + - "": [t: "прямой угол с уголком"] # 0xe982 + - "": [t: "вертикальная черта в круге"] # 0xe984 + - "": [t: "знак деления в круге"] # 0xe985 + - "": [t: "пунктирная косая черта"] # 0xe986 + - "": [t: "пунктирная обратная косая черта"] # 0xe987 + - "": [t: "пунктирная средняя линия"] # 0xe988 + - "": [t: "пунктирная вертикальная черта"] # 0xe989 + - "": [t: "перпендикуляр с s"] # 0xe98a + - "": [t: "угол с s"] # 0xe98b + - "": [t: "сферический угол, открытый влево"] # 0xe98c + - "": [t: "угол, открытый влево"] # 0xe98d + - "": [t: "вертикальная черта с двойным крюком"] # 0xe98e + - "": [t: "средняя точка свободный радикал"] # 0xe98f + - "": [t: "белый треугольник остриём вверх над чертой"] # 0xe990 + - "": [t: "тождественно и параллельно"] # 0xe991 + - "": [t: "разбивающее произведение"] # 0xe992 + - "": [t: "тройная черта с горизонтальной чертой"] # 0xe993 + - "": [t: "тождественно с двойной косой чертой"] # 0xe994 + - "": [t: "тройные перекрещенные черты"] # 0xe995 + - "": [t: "вертикальная черта над кругом"] # 0xe996 + - "": [t: "вертикальная пропорциональность"] # 0xe997 + - "": [t: "чёрная последняя четверть луны"] # 0xe998 + - "": [t: "чёрная первая четверть луны"] # 0xe999 + - "": [t: "отрицательная синусоида"] # 0xe9a0 + - "": [t: "точка в скобках"] # 0xe9a1 + - "": [t: "скобки"] # 0xe9a2 + - "": [t: "белая улыбка"] # 0xe9a3 + - "": [t: "белый хмурый"] # 0xe9a4 + - "": [t: "шестиугольник"] # 0xe9a5 + - "": [t: "эквивалентно над плюсом"] # 0xe9a6 + - "": [t: "плюс над эквивалентно"] # 0xe9a7 + - "": [t: "пересечение с засечками"] # 0xe9b0 + - "": [t: "объединение с засечками"] # 0xe9b1 + - "": [t: "квадратное пересечение с засечками"] # 0xe9b2 + - "": [t: "квадратное объединение с засечками"] # 0xe9b3 + - "": [t: "предшествует, эквивалентно или следует"] # 0xe9e0 + - "": [t: "следует, эквивалентно или предшествует"] # 0xe9e1 + - "": [t: "предшествует, почти равно или следует"] # 0xe9e2 + - "": [t: "следует, почти равно или предшествует"] # 0xe9e3 + - "": [t: "меньше, эквивалентно или больше"] # 0xe9f0 + - "": [t: "больше, эквивалентно или меньше"] # 0xe9f1 + - "": [t: "не очень много меньше"] # 0xea00 + - "": [t: "не очень много больше"] # 0xea01 + - "": [t: "не много меньше вариант"] # 0xea02 + - "": [t: "не много больше вариант"] # 0xea03 + - "": [t: "меньше, верт. не двойное равно"] # 0xea04 + - "": [t: "больше, верт. не двойное равно"] # 0xea05 + - "": [t: "не меньше и не равно"] # 0xea06 + - "": [t: "не больше и не равно"] # 0xea07 + - "": [t: "ни равно, ни меньше"] # 0xea09 + - "": [t: "не содержит и не равно"] # 0xea0a + - "": [t: "ни надмножество, ни равно"] # 0xea0b + - "": [t: "ни подмножество, ни равно"] # 0xea0c + - "": [t: "обратная косая подмножество"] # 0xea0d + - "": [t: "ни равно, ни больше"] # 0xea0e + - "": [t: "не минус тильда"] # 0xea0f + - "": [t: "ни равно, ни меньше"] # 0xea10 + - "": [t: "не тильда"] # 0xea11 + - "": [t: "не элемент и не равно"] # 0xea12 + - "": [t: "ни равно, ни больше"] # 0xea13 + - "": [t: "не почти равно"] # 0xea14 + - "": [t: "не следует похоже"] # 0xea15 + - "": [t: "меньше или наклонно равно с косой чертой"] # 0xea16 + - "": [t: "больше или наклонно равно с косой чертой"] # 0xea17 + - "": [t: "надмножество косая черта"] # 0xea1a + - "": [t: "не содержит"] # 0xea1b + - "": [t: "не меньше или не равно"] # 0xea1d + - "": [t: "не больше или не равно"] # 0xea1e + - "": [t: "не почти равно минус"] # 0xea1f + - "": [t: "отрицательная принадлежность множеству с точкой сверху"] # 0xea22 + - "": [t: "не вертикальный угол"] # 0xea2c + - "": [t: "не параллельно наклонно"] # 0xea2d + - "": [t: "не оператор черта"] # 0xea2e + - "": [t: "не оператор двойная черта"] # 0xea2f + - "": [t: "не оператор тройная черта"] # 0xea30 + - "": [t: "меньше, но не приблизительно равно"] # 0xea32 + - "": [t: "больше, но не приблизительно равно"] # 0xea33 + - "": [t: "меньше или не равно"] # 0xea34 + - "": [t: "больше или не равно"] # 0xea35 + - "": [t: "не вложенное меньше"] # 0xea36 + - "": [t: "не вложенное больше"] # 0xea37 + - "": [t: "не много меньше"] # 0xea38 + - "": [t: "не много больше"] # 0xea39 + - "": [t: "предшествует, но не эквивалентно"] # 0xea3a + - "": [t: "следует, но не эквивалентно"] # 0xea3b + - "": [t: "предшествует, но не равно"] # 0xea3c + - "": [t: "следует, но не равно"] # 0xea3d + - "": [t: "не равно и не предшествует"] # 0xea3e + - "": [t: "не равно и не следует"] # 0xea3f + - "": [t: "предшествует, но не равно"] # 0xea40 + - "": [t: "следует, но не равно"] # 0xea41 + - "": [t: "не подмножество и не равно"] # 0xea42 + - "": [t: "не надмножество и не равно"] # 0xea43 + - "": [t: "подмножество или не равно"] # 0xea44 + - "": [t: "надмножество или не равно"] # 0xea45 + - "": [t: "не подмножество и не равно"] # 0xea46 + - "": [t: "не надмножество и не равно"] # 0xea47 + - "": [t: "не тройное меньше"] # 0xea48 + - "": [t: "не тройное больше"] # 0xea49 + - "": [t: "не предшествует равно"] # 0xea4c + - "": [t: "не следует равно"] # 0xea4d + - "": [t: "не нормальная подгруппа с чертой"] # 0xea50 + - "": [t: "не содержит как нормальную подгруппу с чертой"] # 0xea51 + - "": [t: "не разность"] # 0xea52 + - "": [t: "не геометрически эквивалентно"] # 0xea53 + - "": [t: "не вертикально похоже"] # 0xea54 + - "": [t: "не равно или не похоже"] # 0xea55 + - "": [t: "не вертикально приблизительно"] # 0xea56 + - "": [t: "не приблизительно тождественно"] # 0xea57 + - "": [t: "не бугристое равно"] # 0xea58 + - "": [t: "не бугристое одинарное равно"] # 0xea59 + - "": [t: "не равно с точкой"] # 0xea5a + - "": [t: "обратное не эквивалентно"] # 0xea5b + - "": [t: "не квадратное подмножество"] # 0xea60 + - "": [t: "не квадратное надмножество"] # 0xea61 + - "": [t: "не почти равно над равно"] # 0xea62 + - "": [t: "не строго эквивалентно"] # 0xea63 + - "": [t: "не конгруэнтно с точкой"] # 0xea64 + - "": [t: "обратное не равно"] # 0xea65 + - "": [t: "не вертикально левый треугольник равно"] # 0xea70 + - "": [t: "не вертикально правый треугольник равно"] # 0xea71 + - "": [t: "не частная"] # 0xea80 + - "": [t: "удлинитель стрелки"] # 0xeb00 + - "": [t: "стрелка вправо над стрелкой влево"] # 0xeb01 + - "": [t: "стрелка вправо над стрелкой влево"] # 0xeb02 + - "": [t: "гарпун вправо над гарпуном влево"] # 0xeb03 + - "": [t: "гарпун вправо над гарпуном влево"] # 0xeb04 + - "": [t: "двойная стрелка северо-восток-юго-запад"] # 0xeb05 + - "": [t: "двойная стрелка северо-запад-юго-восток"] # 0xeb06 + - "": [t: "горизонтальный удлинитель гарпуна"] # 0xeb07 + - "": [t: "дуговая стрелка против часовой влево"] # 0xeb08 + - "": [t: "дуговая стрелка против часовой вправо"] # 0xeb09 + - "": [t: "большая стрелка вправо акцент"] # 0xeb0b + - "": [t: "большая стрелка влево акцент"] # 0xeb0c + - "": [t: "наконечник стрелки влево"] # 0xeb0d + - "": [t: "наконечник стрелки вправо"] # 0xeb0e + - "": [t: "большая стрелка влево-вправо со штрихом"] # 0xeb0f + - "": [t: "горизонтальный удлинитель двойной стрелки"] # 0xeb10 + - "": [t: "большая двойная стрелка влево-вправо со штрихом"] # 0xeb11 + - "": [t: "стрелка вниз слева от стрелки вверх"] # 0xeb12 + - "": [t: "стрелка влево с уголком вниз"] # 0xeb13 + - "": [t: "стрелка вправо с уголком вверх"] # 0xeb14 + - "": [t: "стрелка влево с уголком вверх"] # 0xeb15 + - "": [t: "верхняя полуокружность против часовой с плюсом"] # 0xeb16 + - "": [t: "верхняя полуокружность по часовой с минусом"] # 0xeb17 + - "": [t: "стрелка вправо с хвостом со штрихом"] # 0xeb18 + - "": [t: "правый гарпун вниз"] # 0xeb19 + - "": [t: "левый гарпун вниз"] # 0xeb1a + - "": [t: "левый и правый гарпун вниз"] # 0xeb1b + - "": [t: "левый и правый гарпун вверх"] # 0xeb1c + - "": [t: "верхний и нижний гарпун влево"] # 0xeb1d + - "": [t: "верхний и нижний гарпун вправо"] # 0xeb1e + - "": [t: "стрелка вверх справа от стрелки вниз"] # 0xeb1f + - "": [t: "левый гарпун к черте остриём вверх"] # 0xeb20 + - "": [t: "правый гарпун к черте остриём вверх"] # 0xeb21 + - "": [t: "левый гарпун к черте остриём вниз"] # 0xeb22 + - "": [t: "правый гарпун к черте остриём вниз"] # 0xeb23 + - "": [t: "левый гарпун от черты остриём вверх"] # 0xeb24 + - "": [t: "правый гарпун от черты остриём вверх"] # 0xeb25 + - "": [t: "левый гарпун от черты остриём вниз"] # 0xeb26 + - "": [t: "правый гарпун от черты остриём вниз"] # 0xeb27 + - "": [t: "верхний гарпун к черте остриём влево"] # 0xeb28 + - "": [t: "нижний гарпун к черте остриём влево"] # 0xeb29 + - "": [t: "верхний гарпун к черте остриём вправо"] # 0xeb2a + - "": [t: "нижний гарпун к черте остриём вправо"] # 0xeb2b + - "": [t: "верхний гарпун от черты остриём влево"] # 0xeb2c + - "": [t: "нижний гарпун от черты остриём влево"] # 0xeb2d + - "": [t: "верхний гарпун от черты остриём вправо"] # 0xeb2e + - "": [t: "нижний гарпун от черты остриём вправо"] # 0xeb2f + - "": [t: "стрелка вверх к черте"] # 0xeb30 + - "": [t: "стрелка вниз к черте"] # 0xeb31 + - "": [t: "верхний гарпун слева от нижнего гарпуна"] # 0xeb32 + - "": [t: "верхний гарпун справа от нижнего гарпуна"] # 0xeb33 + - "": [t: "наконечник стрелки вверх"] # 0xeb34 + - "": [t: "наконечник стрелки вниз"] # 0xeb35 + - "": [t: "двойной гарпун с левым остриём вниз, правым вверх"] # 0xeb36 + - "": [t: "двойной гарпун с левым остриём вверх, правым вниз"] # 0xeb37 + - "": [t: "стрелка влево над чертой"] # 0xeb38 + - "": [t: "стрелка вправо над чертой"] # 0xeb39 + - "": [t: "стрелка влево под чертой"] # 0xeb3a + - "": [t: "стрелка вправо под чертой"] # 0xeb3b + - "": [t: "тройная стрелка влево-вправо"] # 0xeb3c + - "": [t: "двойная стрелка северо-восток-юго-восток"] # 0xeb3f + - "": [t: "левая полуокружность против часовой"] # 0xeb40 + - "": [t: "левая полуокружность по часовой"] # 0xeb41 + - "": [t: "левый открытый круг стрелка влево-вправо"] # 0xeb42 + - "": [t: "стрелка вправо над тильдой"] # 0xeb44 + - "": [t: "стрелка влево над тильдой"] # 0xeb45 + - "": [t: "левый гарпун над чертой"] # 0xeb48 + - "": [t: "правый гарпун над чертой"] # 0xeb49 + - "": [t: "левый гарпун под чертой"] # 0xeb4a + - "": [t: "правый гарпун под чертой"] # 0xeb4b + - "": [t: "приземистая чёрная стрелка влево"] # 0xeb4c + - "": [t: "правая полуокружность по часовой"] # 0xeb50 + - "": [t: "правая полуокружность против часовой"] # 0xeb51 + - "": [t: "левый открытый круг левый-правый гарпун"] # 0xeb52 + - "": [t: "стрелка вверх слева от вертикальной черты"] # 0xeb58 + - "": [t: "стрелка вниз слева от вертикальной черты"] # 0xeb59 + - "": [t: "стрелка вверх справа от вертикальной черты"] # 0xeb5a + - "": [t: "стрелка вниз справа от вертикальной черты"] # 0xeb5b + - "": [t: "стрелка вправо с удлинённым нижним крюком"] # 0xeb5c + - "": [t: "стрелка влево с удлинённым крюком"] # 0xeb5d + - "": [t: "стрелка влево с удлинённым нижним крюком"] # 0xeb5e + - "": [t: "стрелка вправо с удлинённым крюком"] # 0xeb5f + - "": [t: "не волнистая стрелка вправо"] # 0xeb60 + - "": [t: "не изогнутая стрелка вправо"] # 0xeb61 + - "": [t: "верхний гарпун слева от вертикальной черты"] # 0xeb68 + - "": [t: "нижний гарпун слева от вертикальной черты"] # 0xeb69 + - "": [t: "верхний гарпун справа от вертикальной черты"] # 0xeb6a + - "": [t: "нижний гарпун справа от вертикальной черты"] # 0xeb6b + - "": [t: "вертикальный удлинитель двойной стрелки"] # 0xeb6c + - "": [t: "вертикальный удлинитель гарпуна с остриём влево"] # 0xeb6d + - "": [t: "вертикальный удлинитель гарпуна с остриём вправо"] # 0xeb6e + - "": [t: "правый гарпун над левым гарпуном, правый"] # 0xeb6f + - "": [t: "правый гарпун над левым гарпуном, левый"] # 0xeb70 + - "": [t: "левый гарпун над правым гарпуном, правый"] # 0xeb71 + - "": [t: "левый гарпун над правым гарпуном, левый"] # 0xeb72 + - "": [t: "наконечник стрелки влево от черты"] # 0xeb73 + - "": [t: "удлинитель стрелки влево-вправо от черты"] # 0xeb74 + - "": [t: "хвост стрелки влево от черты"] # 0xeb75 + - "": [t: "хвост стрелки вправо от черты"] # 0xeb76 + - "": [t: "наконечник стрелки вправо от черты"] # 0xeb77 + - "": [t: "наконечник верхнего гарпуна от черты с остриём влево"] # 0xeb78 + - "": [t: "стрелка вправо над стрелкой влево, правая"] # 0xeb79 + - "": [t: "стрелка вправо над стрелкой влево, левая"] # 0xeb7a + - "": [t: "стрелка влево над стрелкой вправо, правая"] # 0xeb7b + - "": [t: "стрелка влево над стрелкой вправо, левая"] # 0xeb7c + - "": [t: "наконечник стрелки вверх от черты"] # 0xeb7d + - "": [t: "хвост стрелки вверх от черты"] # 0xeb7e + - "": [t: "хвост стрелки вниз от черты"] # 0xeb7f + - "": [t: "наконечник стрелки вниз от черты"] # 0xeb80 + - "": [t: "наконечник нижнего гарпуна от черты с остриём вправо"] # 0xeb81 + - "": [t: "верхний гарпун слева от нижнего гарпуна, низ"] # 0xeb82 + - "": [t: "верхний гарпун слева от нижнего гарпуна, удлинитель"] # 0xeb83 + - "": [t: "нижний гарпун слева от верхнего гарпуна, верх"] # 0xeb84 + - "": [t: "верхний гарпун слева от нижнего гарпуна, верх"] # 0xeb85 + - "": [t: "нижний гарпун слева от верхнего гарпуна, удлинитель"] # 0xeb86 + - "": [t: "нижний гарпун слева от верхнего гарпуна, низ"] # 0xeb87 + - "": [t: "стрелка вверх слева от стрелки вниз, низ"] # 0xeb88 + - "": [t: "стрелка вниз слева от стрелки вверх, верх"] # 0xeb89 + - "": [t: "стрелка вверх слева от стрелки вниз, верх"] # 0xeb8a + - "": [t: "стрелка вниз слева от стрелки вверх, низ"] # 0xeb8b + - "": [t: "удлинитель стрелок влево-вправо"] # 0xeb8c + - "": [t: "удлинитель стрелки на северо-восток"] # 0xeb8d + - "": [t: "удлинитель стрелки на северо-запад"] # 0xeb8e + - "": [t: "нижняя фигурная скобка, левая часть"] # 0xec00 + - "": [t: "нижняя фигурная скобка, средняя часть"] # 0xec01 + - "": [t: "нижняя фигурная скобка, правая часть"] # 0xec02 + - "": [t: "горизонтальный удлинитель фигурной скобки"] # 0xec03 + - "": [t: "верхняя фигурная скобка, левая часть"] # 0xec04 + - "": [t: "верхняя фигурная скобка, средняя часть"] # 0xec05 + - "": [t: "верхняя фигурная скобка, правая часть"] # 0xec06 + - "": [t: "левая вертикальная черта"] # 0xec07 + - "": [t: "правая вертикальная черта"] # 0xec08 + - "": [t: "левая двойная вертикальная черта"] # 0xec09 + - "": [t: "правая двойная вертикальная черта"] # 0xec0a + - "": [t: "горизонтальный удлинитель скобки"] # 0xec0b + - "": [t: "под квадратной скобкой"] # 0xec0c + - "⎵": [t: "под квадратной скобкой"] # 0x23b5 + - "": [t: "над квадратной скобкой"] # 0xec0d + - "⎴": [t: "над квадратной скобкой"] # 0x23b4 + - "": [t: "нижняя скобка, левая часть"] # 0xec0e + - "": [t: "нижняя скобка, правая часть"] # 0xec0f + - "": [t: "верхняя скобка, левая часть"] # 0xec10 + - "": [t: "верхняя скобка, правая часть"] # 0xec11 + - "": [t: "левая скобка 1"] # 0xec12 + - "": [t: "левая скобка 2"] # 0xec13 + - "": [t: "левая скобка 3"] # 0xec14 + - "": [t: "левая скобка 4"] # 0xec15 + - "": [t: "правая скобка 1"] # 0xec16 + - "": [t: "правая скобка 2"] # 0xec17 + - "": [t: "правая скобка 3"] # 0xec18 + - "": [t: "правая скобка 4"] # 0xec19 + - "": [t: "радикал 1"] # 0xec1a + - "": [t: "радикал 2"] # 0xec1b + - "": [t: "радикал 3"] # 0xec1c + - "": [t: "радикал 4"] # 0xec1d + - "": [t: "радикал 5"] # 0xec1e + - "": [t: "нижняя часть радикала"] # 0xec1f + - "": [t: "вертикальный удлинитель радикала"] # 0xec20 + - "": [t: "верхняя часть радикала"] # 0xec21 + - "": [t: "левая белая скобка, верхняя часть"] # 0xec22 + - "": [t: "левая белая скобка, удлинитель"] # 0xec23 + - "": [t: "левая белая скобка, нижняя часть"] # 0xec24 + - "": [t: "правая белая скобка, верхняя часть"] # 0xec25 + - "": [t: "правая белая скобка, удлинитель"] # 0xec26 + - "": [t: "правая белая скобка, нижняя часть"] # 0xec27 + - "": [t: "левая белая фигурная скобка"] # 0xec30 + - "": [t: "правая белая фигурная скобка"] # 0xec31 + - "": [t: "знак длинного деления"] # 0xec32 + - "": [t: "удлинитель знака длинного деления"] # 0xec33 + - "": [t: "короткое деление"] # 0xec34 + - "": [t: "двойная связь с юго-запада на северо-восток"] # 0xec40 + - "": [t: "двойная связь с северо-запада на юго-восток"] # 0xec41 + - "": [t: "одинарная горизонтальная связь"] # 0xec42 + - "": [t: "двойная горизонтальная связь"] # 0xec43 + - "": [t: "тройная горизонтальная связь"] # 0xec44 + - "": [t: "одинарная вертикальная связь"] # 0xec45 + - "": [t: "двойная вертикальная связь"] # 0xec46 + - "": [t: "тройная вертикальная связь"] # 0xec47 + - "": [t: "связь меньше"] # 0xec48 + - "": [t: "связь больше"] # 0xec49 + - "": [t: "одинарная горизонтальная связь en"] # 0xec4a + - "": [t: "двойная горизонтальная связь en"] # 0xec4b + - "": [t: "тройная горизонтальная связь en"] # 0xec4c + - "": [t: "верхний левый прямоугольник"] # 0xec80 + - "": [t: "нижний левый прямоугольник"] # 0xec81 + - "": [t: "верхний правый прямоугольник"] # 0xec90 + - "": [t: "нижний правый прямоугольник"] # 0xec91 + - "": [t: "угол синтетического деления"] # 0xec92 + - "": [t: "горизонтальный удлинитель синтетического деления"] # 0xec93 + - "": [t: "вертикальный удлинитель синтетического деления"] # 0xec94 + - "": [t: "удлинитель левого потолка/пола"] # 0xec95 + - "": [t: "удлинитель правого потолка/пола"] # 0xec96 + - "": [t: "удлинитель верхней скобки"] # 0xec97 + - "": [t: "удлинитель вертикальной черты"] # 0xec98 + - "": [t: "удлинитель левой двойной вертикальной черты"] # 0xec99 + - "": [t: "удлинитель горизонтальной черты"] # 0xec9a + - "": [t: "удлинитель нижней скобки"] # 0xec9c + - "": [t: "нижняя скобка, правая часть"] # 0xec9d + - "": [t: "удлинитель нижней скобки"] # 0xec9e + - "": [t: "нижняя скобка, левая часть"] # 0xec9f + - "": [t: "удлинитель верхней фигурной скобки"] # 0xeca0 + - "": [t: "верхняя скобка, левая часть"] # 0xeca1 + - "": [t: "удлинитель верхней скобки"] # 0xeca2 + - "": [t: "верхняя скобка, правая часть"] # 0xeca3 + - "": [t: "удлинитель нижней фигурной скобки"] # 0xeca4 + - "": [t: "h-бар"] # 0xed00 (планковская постоянная с чертой, стандартно "h-бар") + - "": [t: "зеркальная g"] # 0xed01 + - "": [t: "j без точки"] # 0xed02 + - "": [t: "дигамма"] # 0xed03 + - "ϝ": [t: "дигамма"] # 0x3dd + - "": [t: "d"] # 0xed10 + - "ⅆ": [t: "d"] # 0x2146 + - "": [t: "e"] # 0xed11 + - "ⅇ": [t: "e"] # 0x2147 + - "": [t: "i"] # 0xed12 + - "ⅈ": [t: "i"] # 0x2148 + - "": [t: "j"] # 0xed13 + - "ⅅ": + - spell: "translate('.', 'ⅅ', 'DD')" # 0xed16, 0x2145 + +# Символы из частной области MathType + - "": [t: "контурный интеграл против часовой с петлёй"] # 0xee00 + - "": [t: "контурный интеграл по часовой с петлёй"] # 0xee01 + - "": [t: ""] # 0xee04 + - "": [t: ""] # 0xee05 + - "": [t: ""] # 0xee06 + - "": [t: ""] # 0xee07 + - "": [t: ""] # 0xee08 + - "": [t: ""] # 0xee09 + - "": [t: ""] # 0xee0a + - "": [t: ""] # 0xee0b + - "": [t: ""] # 0xee0c + - "": [t: "статус соединения"] # 0xee0d + - "": [t: "статус соединения, левая часть"] # 0xee0e + - "": [t: "статус соединения, правая часть"] # 0xee0f + - "": [t: "статус соединения, удлинитель"] # 0xee10 + - "": [t: "петля интеграла"] # 0xee11 + - "": [t: "двойная петля интеграла"] # 0xee12 + - "": [t: "тройная петля интеграла"] # 0xee13 + - "": [t: "расширяющаяся двойная петля интеграла"] # 0xee15 + - "": [t: "расширяющаяся тройная петля интеграла"] # 0xee16 + - "": [t: "асимптотически равно, акцент"] # 0xee17 + - "": [t: "знак равенства, акцент"] # 0xee18 + - "": [t: "четверной штрих"] # 0xee19 + - "": [t: "черта с открытым кружком слева"] # 0xee1a + - "": [t: "черта с закрытым кружком слева"] # 0xee1b + - "": [t: "черта с открытым кружком справа"] # 0xee1c + - "": [t: "черта с точкой сверху"] # 0xee1d + - "": [t: "черта с точкой снизу"] # 0xee1e + - "": [t: "черта с двойной точкой сверху"] # 0xee1f + - "": [t: "черта с двойной точкой снизу"] # 0xee20 + - "": [t: "черта с каретом"] # 0xee21 + - "": [t: "жирная нижняя черта"] # 0xee22 + - "": [t: "черта с закрытым кружком справа"] # 0xee23 + - "": [t: "большая точка сверху"] # 0xee24 + - "": [t: "знак выравнивания"] # 0xef00 + - "": [t: ""] # 0xef01 + - "​": [t: ""] # 0x200b + - "": [t: ""] # 0xef02 + - " ": [t: ""] # 0x2009 + - "": [t: ""] # 0xef03 + - " ": [t: ""] # 0x205f + - "": [t: ""] # 0xef04 + - "": [t: ""] # 0xef05 + - "": [t: ""] # 0xef06 + - "": [t: ""] # 0xef07 + - "": [t: ""] # 0xef08 + - "": [t: ""] # 0xef09 + - "": [t: ""] # 0xef0a + - " ": [t: ""] # 0x200a + - "": [t: ""] # 0xef22 + - "": [t: ""] # 0xef23 + - "": [t: ""] # 0xef24 + - "": [t: ""] # 0xef29 + - "": [t: "пропущенный член"] # 0xef41 + - "": [t: "контурный интеграл по часовой, стрелка слева"] # 0xef80 + - "": [t: "интеграл с квадратом"] # 0xef81 + - "": [t: "интеграл с косой чертой"] # 0xef82 + - "": [t: "обратный интеграл"] # 0xef83 + - "": [t: "двойной ноль над двойным нулём"] # 0xef90 + - "": [t: "ноль с косой чертой"] # 0xef91 + + # fraktur chars in math alphabetic block and also MathType private use area + # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display + - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) + - t: "фрактурная" + - spell: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" + + - "-": # 0xf000 - 0xf018 + - t: "фрактурная" + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" + + - "𝔞-𝔷": # 0x1d51e - 0x1d537 + - t: "фрактурная" + - spell: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf01a - 0xf033 + - t: "фрактурная" + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝕬-𝖅": # 0x1D56C - 0x1D585 + - t: "фрактурная" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf040 - 0xf059 + - t: "фрактурная" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝖆-𝖟": # 0x1d586 - 0x1d59f + - t: "фрактурная" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf05a - 0xf073 + - t: "фрактурная" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area + # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display + - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) + - t: "двойная" + - spell: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf080 - 0xf098 + - t: "двойная" + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝕒-𝕫": # 0x1d552 - 0x1d56b + - t: "двойная" + - spell: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf09a - 0xf0b3 + - t: "двойная" + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + - "𝟘": [t: "двойной ноль"] + - "𝟡": [t: "двойная девять"] + - "𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠": # 0x1d7d9 - 0x1d7e0 + - t: "двойная" + - spell: "translate('.', '𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠', '12345678')" + - "": [t: "двойной ноль"] + - "": [t: "двойная девять"] + - "": # 0xf0c1 - 0xf0c8 + - t: "двойная" + - spell: "translate('.', '', '12345678')" + + - "": [t: "набла с двойным контуром"] # 0xf0ca + - "": [t: "эйлерова константа с двойным контуром"] # 0xf0cb + + # script chars in math alphabetic block and also MathType private use area + - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 + - t: "рукописная" + - spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf100 - 0xf119 + - t: "рукописная" + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf + - t: "рукописная" + - spell: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf11a - 0xf133 + - t: "рукописная" + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + # bold script chars in math alphabetic block and also MathType private use area + - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 + - t: "рукописная" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf140 - 0xf159 + - t: "рукописная" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝓪-𝔃": # 0x1d4ea - 0x1d503 + - t: "рукописная" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf15a - 0xf173 + - t: "рукописная" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf180 - 0xf199 + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "": # 0xf19a + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [t: "заглавная"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [t: "лигатура ae"] + - "": # 0xf19b + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [t: "заглавная"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [t: "эсцет"] + - "": # 0xf19c + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [t: "заглавная"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [t: "o со штрихом"] + + # MathType only has a few of the cap Greek letters in PUA + - "": # 0xf201 - 0xf209 + - t: "двойная" + - spell: "translate('.', '', 'ΔΨΛΠΣΘΓΩΥ')" + + - "-": # 0xf220 - 0xf236 + - t: "двойная" + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "": [t: "конечная сигма с двойным контуром"] # 0xf237 + - "": [t: "ро с двойным контуром"] # 0xf250 + - "": [t: "фи с двойным контуром"] # 0xf251 + - "𝐀-𝐙": # 0x1d400 - 0x1d419 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf260 - 0xf279 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝐚-𝐳": # 0x1d41a - 0x1d433 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf27a - 0xf293 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝐴-𝑍": # 0x1d434 - 0x1d44d + - spell: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf294 - 0xf2ad + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝑎-𝑧": # 0x1d44e - 0x1d467 + - spell: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf2ae - 0xf2c7 + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝑨-𝒁": # 0x1d468 - 0x1d481 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf2c8 - 0xf2e1 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝒂-𝒛": # 0x1d482 - 0x1d49b + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf2e2 - 0xf2fb + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 + - spell: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf300 - 0xf319 + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 + - spell: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf31a - 0xf333 + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf334 - 0xf34d + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝗮-𝘇": # 0x1d5ee - 0x1d607 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf34e - 0xf367 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + - "𝘈-𝘡": # 0x1d608 - 0x1d621 + # - t: "italic" + - spell: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + - "-": # 0xf368 - 0xf381 + # - t: "italic" + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝘢-𝘻": # 0x1d622 - 0x1d63b + # - t: "italic" + - spell: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf382 - 0xf39b + # - t: "italic" + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝘼-𝙕": # 0x1d63c - 0x1d655 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf39c - 0xf3b5 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝙖-𝙯": # 0x1d656 - 0x1d66f + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf3b6 - 0xf3cf + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝙰-𝚉": # 0x1d670 - 0x1d689 + - spell: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf3d0 - 0xf3e9 + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 + - spell: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf3ea - 0xf403 + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "": [t: "i без точки"] # 0xf404 + - "𝚤": [t: "i без точки"] # 0x1d6a4 + - "𝚥": [t: "j без точки"] # 0x1d6a5 + + - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf408 - 0xf420 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf422 - 0xf43a + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "": [t: "жирная набла"] # 0xf421 + - "𝛁": [t: "жирная набла"] # 0x1d6c1 + + - "𝛡𝝕𝞏𝟉": [t: "жирное пи"] + + - "𝛛𝛜𝛝𝛞𝛟𝛠": # 0x1D6DB - 0x1D6E0 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠', '∂εθκφρ')" + + - "": # 0xF43C - 0xF440 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', '∂εθκφρ')" + + - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa + # - t: "italic" + - spell: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf442 - 0xf45a + # - t: "italic" + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝛼-𝜔": # 0x1d6fc - 0x1d714 + # - t: "italic" + - spell: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf45c - 0xf474 + # - t: "italic" + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "": [t: "курсивная набла"] # 0xf45b + - "𝛻": [t: "курсивная набла"] # 0x1d6fb + + - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b + # - t: "italic" + - spell: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" + + - "": # 0xf475 - 0xf47b + # - t: "italic" + - spell: "translate('.', '', '∂εθκφρπ')" + + - "𝜜-𝜴": # 0x1d71c - 0x1d734 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf47c - 0xf494 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝜶-𝝎": # 0x1d736 - 0x1d74e + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf496 - 0xf4ae + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝝏𝝐𝝑𝝒𝝓𝝔": # 0x1d74f - 0x1d754 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔', '∂εθκφρ')" + + - "": # 0xf422 - 0xf439 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', '∂εθκφρ')" + + - "𝜵": [t: "жирная курсивная набла"] # 0x1d735 + - "": [t: "жирная курсивная набла"] # 0xf495 + + - "𝝖-𝝮": # 0x1d756 - 0x1d76e + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + - "-": # 0xf4b6 - 0xf4ce + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝝰-𝞈": # 0x1d770 - 0x1d788 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf4d0 - 0xf4e8 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝞉𝞊𝞋𝞌𝞍𝞎": # 0x1d789 - 0x1d78e + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎', '∂εθκφρ')" + + - "": # 0xf4e9 - 0xf4ee + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', '∂εθκφρ')" + + - "": [t: "жирная набла"] # 0xf4cf + - "𝝯": [t: "жирная набла"] # 0x1d76f + + - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf4f0 - 0xf508 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf50a - 0xf522 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝟃𝟄𝟅𝟆𝟇𝟈": # 0x1d7c3 - 0x1d7c8 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈', '∂εθκφρ')" + + - "": # 0xf523 - 0xf528 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', '∂εθκφρ')" + + - "": [t: "жирная набла"] # 0xf509 + - "𝞩": [t: "жирная набла"] # 0x1d7a9 + + - "-": # 0xf52e - 0xf537 (old MathType) + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', '0123456789')" + + - "𝟎-𝟗": # 0x1d7ce - 0x1d7d7 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗', '0123456789')" + + - "-": # 0xf52e - 0xf537 (old MathType) + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '', '0123456789')" + + - "𝟬-𝟵": # 0x1D7EC - 0x1D7F5 + - test: + if: "not($IgnoreBold)" + then: [t: "жирная"] + - spell: "translate('.', '𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵', '0123456789')" + + - "-": # 0xf556 - 0xf55f (old MathType) + - spell: "translate('.', '', '0123456789')" + + - "𝟢-𝟫": # 0x1d7e2 - 0x1d7eb + - spell: "translate('.', '𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫', '0123456789')" + + - "𝟶-𝟿": # 0x1d7f6 - 0x1d7ff + - spell: "translate('.', '𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿', '0123456789')" + + + - "": [t: "неизвестный символ"] # 0xf700 + - "": [t: "нижний правый и нижний левый треугольники"] # 0xf726 + - "": [t: "удлинитель горизонтального многоточия"] # 0xf72d + - "": [t: "удлинитель горизонтального многоточия по средней линии"] # 0xf72e + - "": [t: "удлинитель радикала"] # 0xf8e5 + - "": [t: "удлинитель вертикальной стрелки"] # 0xf8e6 + - "": [t: "удлинитель горизонтальной стрелки"] # 0xf8e7 + - "": [t: "знак зарегистрированного товарного знака без засечек"] # 0xf8e8 + - "": [t: "знак авторского права без засечек"] # 0xf8e9 + - "": [t: "знак торговой марки без засечек"] # 0xf8ea + - "": [t: "верхняя часть левой скобки"] # 0xf8eb + - "": [t: "удлинитель левой скобки"] # 0xf8ec + - "": [t: "нижняя часть левой скобки"] # 0xf8ed + - "": [t: "верхняя часть левой квадратной скобки"] # 0xf8ee + - "": [t: "удлинитель левой квадратной скобки"] # 0xf8ef + - "": [t: "нижняя часть левой квадратной скобки"] # 0xf8f0 + - "": [t: "верхняя часть левой фигурной скобки"] # 0xf8f1 + - "": [t: "средняя часть левой фигурной скобки"] # 0xf8f2 + - "": [t: "нижняя часть левой фигурной скобки"] # 0xf8f3 + - "": [t: "удлинитель фигурной скобки"] # 0xf8f4 + - "": [t: "удлинитель интеграла"] # 0xf8f5 + - "": [t: "верхняя часть правой скобки"] # 0xf8f6 + - "": [t: "удлинитель правой скобки"] # 0xf8f7 + - "": [t: "нижняя часть правой скобки"] # 0xf8f8 + - "": [t: "верхняя часть правой квадратной скобки"] # 0xf8f9 + - "": [t: "удлинитель правой квадратной скобки"] # 0xf8fa + - "": [t: "нижняя часть правой квадратной скобки"] # 0xf8fb + - "": [t: "верхняя часть правой фигурной скобки"] # 0xf8fc + - "": [t: "средняя часть правой фигурной скобки"] # 0xf8fd + - "": [t: "нижняя часть правой фигурной скобки"] # 0xf8fe + - "": [t: "логотип Apple"] # 0xf8ff + - "ff": [t: "ff"] # 0xfb00 + - "fi": [t: "fi"] # 0xfb01 + - "fl": [t: "fl"] # 0xfb02 + - "ffi": [t: "ffi"] # 0xfb03 + - "ffl": [t: "ffl"] # 0xfb04 + - "ſt": [t: "ft"] # 0xfb05 + - "st": [t: "st"] # 0xfb06 + - "﬩": [t: "альтернативный знак плюса в иврите"] # 0xfb29 + - "︠": [t: "левая половина лигатуры"] # 0xfe20 + - "︡": [t: "правая половина лигатуры"] # 0xfe21 + - "︢": [t: "левая половина двойной тильды"] # 0xfe22 + - "︣": [t: "правая половина двойной тильды"] # 0xfe23 + - "︤": [t: "левая половина макрона"] # 0xfe24 + - "︥": [t: "правая половина макрона"] # 0xfe25 + - "︦": [t: "соединительный макрон"] # 0xfe26 + - "︵": [t: "верхняя скобка"] # 0xfe35 + - "︶": [t: "нижняя скобка"] # 0xfe36 + - "︷": [t: "верхняя фигурная скобка"] # 0xfe37 + - "︸": [t: "нижняя фигурная скобка"] # 0xfe38 + - "︿": [t: "верхняя угловая скобка"] # 0xfe3f + - "﹀": [t: "нижняя угловая скобка"] # 0xfe40 + - "﹡": [t: "маленькая звёздочка"] # 0xfe61 + - "﹢": [t: "маленький плюс"] # 0xfe62 + - "﹣": [t: "маленький минус"] # 0xfe63 + - "﹤": [t: "маленький знак меньше"] # 0xfe64 + - "﹥": [t: "маленький знак больше"] # 0xfe65 + - "﹦": [t: "маленький знак равенства"] # 0xfe66 + - "+": [t: "полноширинный знак плюс"] # 0xff0b + - "<": [t: "меньше"] # 0xff1c + - "=": [t: "равно"] # 0xff1d + - ">": [t: "больше"] # 0xff1e + - "\": [t: "обратная косая черта"] # 0xff3c + - "^": [t: "крышка"] # 0xff3e + - "|": # 0xff5c + # note: for ClearSpeak and SimpleSpeak, "|" inside of sets is handled at the mrow level, same for 'sets' + - with: + variables: [DefaultToGiven: "count(preceding-sibling::*)=1 and count(following-sibling::*)=1 and ../../../*[1][.='P']"] # P(A|B) + replace: + - test: + - if: "$SpeechStyle != 'ClearSpeak'" + then_test: + if: "$DefaultToGiven" + then: [t: "при условии"] + else: [t: "вертикальная черта"] + - else_if: "not(preceding-sibling::*) or not(following-sibling::*)" + then: [t: "вертикальная черта"] + - else_if: "$ClearSpeak_VerticalLine = 'SuchThat'" + then: [t: "такой, что"] + - else_if: "$ClearSpeak_VerticalLine = 'Given' or $DefaultToGiven" + then: [t: "при условии"] + - else: [t: "делит"] + - "~": [t: "тильда"] # 0xff5e + - "¬": [t: "не"] # 0xffe2 + - "←": [t: "стрелка влево"] # 0xffe9 + - "↑": [t: "стрелка вверх"] # 0xffea + - "→": [t: "стрелка вправо"] # 0xffeb + - "↓": [t: "стрелка вниз"] # 0xffec + - "": [t: "неизвестный или отсутствующий объект"] # 0xfffc + - "�": [t: "неизвестный или отсутствующий символ"] # 0xfffd + + - "🣑": [t: "находится в равновесии с"] # 0x1F8D1 + - "🣒": [t: "находится в равновесии, смещённом вправо, с"] # 0x1F8D2 + - "🣓": [t: "находится в равновесии, смещённом влево, с"] # 0x1F8D3 + +# MathJax v4 adopted these PUA values for some partial chem bonds that aren't in Unicode + - "\uE410": [t: "частичная связь "] # 0xe410 + - "\uE411": [t: "двойная частичная связь "] # 0xe411 + - "\uE412": [t: "тройная частичная связь "] # 0xe412 + +# MathJax v4 also adopted these PUA values for some arrows thar are in Unicode +# Hopefully these will be exported properly in future versions of MathJax + - "\uE428": [spell: "'⟵'"] # 0xe428 defer to def of arrow + - "\uE429": [spell: "'⟶'"] # 0xe429 defer to def of arrow + - "\uE42A": [spell: "'⟷'"] # 0xe42a defer to def of arrow + - "\uE408": [spell: "'🣑'"] # 0xe408 defer to def of arrow + - "\uE409": [spell: "'🣒'"] # 0xe409 defer to def of arrow + - "\uE40A": [spell: "'🣓'"] # 0xe40a defer to def of arrow + - "\uE42B": [spell: "'⇄'"] # 0xe42b defer to def of arrow + - "\uE42C": [spell: "'←'"] # 0xe42c defer to def of arrow + - "\uE42D": [spell: "'→'"] # 0xe42d defer to def of arrow + - "\uE42E": [spell: "'⇄'"] # 0xe42e defer to def of arrow + diff --git a/Rules/Languages/zh/tw/SharedRules/calculus.yaml b/Rules/Languages/zh/tw/SharedRules/calculus.yaml index 20fcd91c9..2b19609ec 100644 --- a/Rules/Languages/zh/tw/SharedRules/calculus.yaml +++ b/Rules/Languages/zh/tw/SharedRules/calculus.yaml @@ -1,14 +1,29 @@ --- +- name: laplacian + tag: laplacian + match: "count(*) <= 1" # can be on ∇^2 or on enclosing mrow + replace: + - T: "LahPlahsian" # phrase('laplacian' of x) -- "LahPlahsian" sounds better with speech engines tested + - test: + if: "count(*) = 1" + then: + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # phrase(function 'of' one variable) -- note OneCore voices spell out "div" + - test: + if: "not(IsNode(*[1], 'leaf'))" + then: [pause: short] + - x: "*[1]" + - name: divergence tag: divergence - match: "." + match: "count(*) = 1" replace: - test: - if: "$Verbosity='Verbose'" - then: [t: "divergence"] # phrase('divergence' from the mean) - else: [t: "div"] # phrase('divergence' from the mean) - - t: "of" # phrase(systems 'of' linear equations) + if: "$Verbosity='Terse'" + then: [T: "div"] # phrase('div' is short for divergence) -- note OneCore voices spell out "div" + else: [T: "divergence"] # phrase('divergence of' this function from the mean) - test: if: "not(IsNode(*[1], 'leaf'))" then: [pause: short] @@ -16,9 +31,12 @@ - name: curl tag: curl - match: "." + match: "count(*) = 1" replace: - - t: "curl of" # phrase(the 'curl of' a field) + - T: "curl" # phrase(the 'curl of' a field) + - test: + if: "$Verbosity!='Terse'" + then: [t: ""] # phrase(function 'of' one variable) -- note OneCore voices spell out "div" - test: if: "not(IsNode(*[1], 'leaf'))" then: [pause: short] @@ -26,12 +44,12 @@ - name: gradient tag: gradient - match: "." + match: "count(*) = 1" replace: - test: if: "$Verbosity!='Terse'" - then: [t: "gradient of"] # phrase('divergence' from the mean) - else: [t: "del"] # phrase('divergence' from the mean) + then: [T: "gradient"] # phrase(the hill has a 'gradient of' five percent) + else: [T: "del"] # phrase(the delete key is labeled 'del') - test: if: "not(IsNode(*[1], 'leaf'))" then: [pause: short] diff --git a/Rules/Languages/zh/tw/SharedRules/default.yaml b/Rules/Languages/zh/tw/SharedRules/default.yaml index b127189d8..5c02dcd7a 100644 --- a/Rules/Languages/zh/tw/SharedRules/default.yaml +++ b/Rules/Languages/zh/tw/SharedRules/default.yaml @@ -10,6 +10,10 @@ - ClearSpeak_AbsoluteValue: "IfThenElse($Verbosity='Verbose' and $ClearSpeak_AbsoluteValue='Auto', 'AbsEnd', $ClearSpeak_AbsoluteValue)" - ClearSpeak_Roots: "IfThenElse($Verbosity='Verbose' and $ClearSpeak_Roots='Auto', 'RootEnd', $ClearSpeak_Roots)" - ClearSpeak_Matrix: "IfThenElse($Verbosity='Verbose' and $ClearSpeak_Matrix='Auto', 'EndMatrix', $ClearSpeak_Matrix)" + + - MatchingPause: false() + # should be set at mtable level, but unknown intents make that impossible to know + - IsColumnSilent: false() replace: - test: if: "$MathRate = 100" @@ -38,7 +42,10 @@ match: "." replace: - bookmark: "@id" - - x: "translate(., $BlockSeparators, '')" # remove digit block separators + - test: + - if: "@data-roman-numeral" + then: [SPELL: "text()", pause: "short"] + else: [x: "translate(., $BlockSeparators, '')"] # remove digit block separators - name: default tag: [mo, mtext] @@ -53,9 +60,11 @@ replace: - bookmark: "@id" - test: - if: "string-length(.) = 1 and text() != '_'" # need unicode.tdl to kick in for single letter tokens + - if: "string-length(.) = 1 and text() != '_'" # need unicode.tdl to kick in for single letter tokens then: [x: "text()"] - else: [x: "translate(., '-_', ' ')" ] # from intent literals + - else_if: "@data-chem-element or @data-roman-numeral" # NavMode=Character needs this + then: [SPELL: "text()", pause: "short"] + else: [x: "translate(., '-_\u00A0', ' ')"] # from intent literals or from extra spaces added (which get deleted) - name: default tag: ms @@ -101,7 +110,9 @@ then: [pause: short] - x: "*[1]" - pause: short - - T: "結束分數" # phrase("start of fraction x over y 'end over'") + - test: + if: "$Impairment = 'Blindness'" + then: [T: "結束分數"] # phrase("start of fraction x over y 'end over'") - pause: medium @@ -120,8 +131,8 @@ - x: "*[1]" - pause: short - test: - if: "not(IsNode(*[1],'leaf'))" - then: [T: "結束根號"] # phrase("root of x 'end root symbol'") + if: "not(IsNode(*[1],'leaf')) or $Impairment = 'Blindness'" + then: [T: "結束根號", pause: medium] # phrase("root of x 'end root symbol'") # not sure what really should be said for these since we should not assume they are square roots - name: literal-default @@ -135,9 +146,6 @@ - x: "*[2]" - T: "根號" - pause: short - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # phrase("the root 'of' x") - x: "*[1]" - pause: short - test: @@ -156,23 +164,35 @@ - name: no-end-sub tag: indexed-by - # invisible comma -- want "x 1 when subscript is an integer" - match: "count(*)=2 and (IsNode(*[2], 'leaf') or *[2][self::m:mrow][*[2][.='⁣']])" + match: "count(*)=2 and *[2][self::m:mrow and *[2][.='⁣']]" replace: - x: "*[1]" - - test: - if: "$Verbosity!='Terse' or not(*[2][self::m:mn])" # just say "x 1" for terse vs "x sub 1" - then: [T: "下標"] # phrase(x 'sub' 2) + - T: "下標" # phrase(x 'sub' 2) + - x: "*[2]" + - pause: short + +- name: power-indexed-by + tag: power-indexed-by + match: "." + replace: + - x: "*[1]" + - T: "下標" # phrase(x 'sub' 2) - x: "*[2]" + - pause: short + +# otherwise let definitions/default infix handle it - name: literal tag: msub match: "." replace: - x: "*[1]" - - T: "下標" # phrase(x 'sub' 2) + - test: + if: "not($Verbosity='Terse' and *[2][self::m:mn and not(translate(., '.,', '')!=.)])" # just say "x 1" for terse vs "x sub 1" + then: [T: "下標"] # phrase(x 'sub' 2) - x: "*[2]" + - name: literal tag: [msup, msubsup] match: "." @@ -192,12 +212,18 @@ - T: "上標" # phrase(x 'super' 2) - x: "*[last()]" - test: - if: "not(IsNode(*[last()], 'simple'))" + if: "not(IsNode(*[last()], 'simple')) or $Impairment = 'Blindness'" then: [T: "結束上標"] # phrase(x super 2 'end of super') else: - - T: "的" # phrase(5 'raised to the' second power equals 25) + - test: + if: "$Verbosity='Verbose'" + then: [T: "上標"] + else: [T: "上標"] - x: "*[last()]" - - T: "次方" # phrase(5 raised to the second 'power' equals 25) + - test: + if: "$Verbosity='Verbose'" + then: [T: "結束上標"] + else: [T: "結束上標"] - name: default tag: munder @@ -213,7 +239,7 @@ - name: diacriticals tag: mover - match: "*[1][self::m:mi] and *[2][translate(., '\u0306\u030c.\u00A8\u02D9\u20DB\u20DC`^~→¯_', '')='']" + match: "*[1][self::m:mi] and *[2][translate(., '\u0306\u030c.\u00A8\u02D9\u20DB\u20DC`^ˇ~→¯_', '')='']" replace: - x: "*[1]" - x: "*[2]" @@ -224,11 +250,9 @@ replace: - test: if: "not(IsNode(*[1], 'leaf'))" - then: [T: ""] # phrase(phrase(x 'modified' with y above it) + then: [T: ""] # phrase(phrase(the 'quantity' x plus 1 with y above it) - x: "*[1]" - - test: - if: "$Verbosity='Verbose'" - then: [T: "上層"] + - T: "上層" # phrase(x modified 'with' y above it) - x: "*[2]" - T: "" # phrase(x modified 'with' y above it) @@ -238,11 +262,9 @@ replace: - test: if: "not(IsNode(*[1], 'leaf'))" - then: [T: ""] # phrase(the equation has been 'modified') + then: [T: ""] # phrase(the 'quantity' x plus 1 with y above it) - x: "*[1]" - - test: - if: "$Verbosity='Verbose'" - then: [T: "下層"] + - T: "下層" # phrase(x modified 'with' y above it) - x: "*[2]" - T: "上層" # phrase(x modified with y 'below and' y above it) - x: "*[3]" @@ -415,7 +437,7 @@ - T: "與" # phrase(the table with 3 rows 'and' 4 columns) - x: "$NumColumns" - test: - if: "$NumColumns" + if: "NumColumns=1" then: [T: "行"] # phrase(the table with 3 rows and 1 'column') else: [T: "行"] # phrase(the table with 3 rows and 4 'columns') - pause: long @@ -607,7 +629,6 @@ - pause: auto - x: "*[position() > 1]" - # Here are the intent hints that need to be handled: 'prefix' | 'infix' | 'postfix' | 'function' | 'silent' - name: silent-intent # uncaught intent -- the args have been inserted in the order of speech @@ -620,6 +641,13 @@ then: [pause: short] else: [pause: auto] +- name: nofix-intent + # uncaught intent -- the args have been inserted in the order of speech + tag: "*" + match: "contains(@data-intent-property, ':nofix:') " + replace: + - x: "SpeakIntentName(name(.), $Verbosity, 'nofix')" + - name: prefix-intent # uncaught intent -- the args have been inserted in the order of speech tag: "*" @@ -679,7 +707,7 @@ replace: - x: "SpeakIntentName(name(.), $Verbosity, 'function')" - test: - if: "not(contains(@data-intent-property, ':literal:')) and + if: "$Verbosity != 'Terse' and not(contains(@data-intent-property, ':literal:')) and not(count(*)=2 and (IsInDefinition(*[1], 'TrigFunctionNames') or IsInDefinition(name(.), 'TerseFunctionNames')) and IsNode(*[2], 'simple'))" then: [T: "", pause: auto] # phrase(sine 'of' 5) - insert: @@ -690,6 +718,7 @@ then: [x: "','"] - pause: auto - test: + # speak "end ..." if not bracketed or last child is not simple and not last node if: "$Impairment = 'Blindness' and not(*[last()][IsBracketed(., '', '') or IsNode(., 'simple')] )" then: [x: "GetBracketingIntentName(name(.), $Verbosity, 'function', 'end')"] - test: @@ -698,7 +727,6 @@ else: [pause: auto] - - name: default-text # unknown leaf -- just speak the text -- could be a literal intent tag: "*" diff --git a/Rules/Languages/zh/tw/SharedRules/general.yaml b/Rules/Languages/zh/tw/SharedRules/general.yaml index 070289ee5..761243ab7 100644 --- a/Rules/Languages/zh/tw/SharedRules/general.yaml +++ b/Rules/Languages/zh/tw/SharedRules/general.yaml @@ -213,6 +213,14 @@ - T: "項目" # phrase(the square root 'of' 25 equals 5) - x: "*[2]" +- name: repeating-decimal + tag: repeating-decimal + match: "." + replace: + - x: "*[1]" + - T: "重複數字" # phrase('with repeating digits') + - SPELL: "*[2]" + - name: msubsup-skip-super # handles single, double, etc., prime tag: [skip-super, say-super] @@ -225,7 +233,7 @@ else: [T: "下標"] # phrase(the result is 'sub' optimal) - x: "*[2]" - test: - if: "not(IsNode(*[2],'leaf'))" + if: "not(IsNode(*[2],'leaf') and $Impairment = 'Blindness')" then: - test: if: "$Verbosity='Verbose'" @@ -244,6 +252,13 @@ - x: "*[3]" - pause: short +# in terse mode, we just say "m" or "s", etc., not meters or seconds +- name: unit-terse + tag: unit + match: "$Verbosity = 'Terse' and string-length(.)=1" + replace: + - bookmark: "@id" + - SPELL: "text()" # the order of matching is # 1. does it match the base of an SI unit @@ -329,6 +344,24 @@ then: [x: "concat('\uF8FE', DefinitionValue($Word, 'Speech', 'PluralForms'))"] else: [x: "concat('\uF8FE', $Word)"] +# need to reverse the order of speech: $ 3 -> 3 dollars +- name: currency + tag: mrow + match: "count(*)=3 and DefinitionValue(*[1], 'Speech', 'CurrencySymbols') != ''" + variables: + # If the amount is singular, we don't add the plural ending. + - IsSingular: "*[3][self::m:mn and .=1] and *[2]='\u2062'" + - CurrencyWord: "DefinitionValue(*[1], 'Speech', 'CurrencySymbols')" + replace: + - bookmark: "*[3]/@id" + - x: "*[3]" + - test: + - if: "$IsSingular" + then: [x: "$CurrencyWord"] + - else_if: "DefinitionValue($CurrencyWord, 'Speech', 'PluralForms') != ''" + then: [x: "DefinitionValue($CurrencyWord, 'Speech', 'PluralForms')"] + else: [x: "DefinitionValue(*[1], 'Speech', 'CurrencySymbols')", CT: ""] + - name: sin tag: mi match: ".='sin'" @@ -436,10 +469,31 @@ then: [T: "cotanch"] # phrase('cotanch' is shorthand for hyperbolic cotangent) else: [T: "hyperbolic cotangent"] # phrase(the 'hyperbolic cotangent' is a mathematical function) +- name: exponential + tag: mi + match: ".='exp'" + replace: + - bookmark: "@id" + - test: + if: "$Verbosity='Terse'" + then: [T: "exp"] # phrase('exp' means exponential function) + else: [T: "exponential"] # phrase('exponential' function) + +- name: covariance + tag: mi + match: ".='Cov'" + replace: + - bookmark: "@id" + - test: + if: "$Verbosity='Terse'" + then: [T: "Cov"] # phrase('Cov' is shorthand for the covariance function) + else: [T: "covariance"] # phrase('covariance' function) + + - name: log # handle both log and ln (if in an mrow, 'intents' are used) tag: mi - match: ".= 'log' or .= 'ln'" + match: ".='log' or .='ln'" replace: - bookmark: "@id" - test: @@ -459,8 +513,9 @@ match: "." variables: # Wikipedia has some tables where all the entire first column is empty (e.g., https://en.wikipedia.org/wiki/List_of_trigonometric_identities) - - LineCountTry: "count(*/*[1][count(*)=1 and *[1][@data-added!='missing-content']])" - - LineCount: "IfThenElse($LineCountTry=0, count(*/*[1]), $LineCountTry)" + - LineCount: "count(*[not(contains(@data-intent-property, ':continued-row:'))])" + - NextLineIsContinuedRow: "false()" # default value + - IsColumnSilent: true() replace: - x: "$LineCount" - test: @@ -474,36 +529,34 @@ then: [CT: ""] # plural - pause: short - x: "*" + - pause: long - name: default-multiline tag: [mtr, mlabeledtr] match: "parent::m:piecewise or parent::m:system-of-equations or parent::m:lines" + variables: [NextLineIsContinuedRow: "following-sibling::*[1][contains(@data-intent-property, ':continued-row:')]"] replace: - test: - if: "parent::m:system-of-equations and *[1][count(*)=1 and *[1][@data-added='missing-content']] and - count(*/*[1][count(*)=1 and *[1][@data-added!='missing-content']]) != 0" + if: "not($LineCount=1 or contains(@data-intent-property, ':continued-row:'))" then: - - T: "下一列" - else_test: - if: "$LineCount != 1" - then: - - pause: medium - - test: - - if: "parent::m:piecewise" - then: [T: "情況"] # phrase('case' 1 of 10 cases) - - else_if: "parent::m:system-of-equations" - then: [T: "方程"] # phrase('equation' 1 of 10 equations) - else: [T: "列"] # phrase('line 1 of 10 lines) - - x: "count(preceding-sibling::*)+1" - + - pause: medium + - test: + - if: "parent::m:piecewise" + then: [T: "情況"] # phrase('case' 1 of 10 cases) + - else_if: "parent::m:system-of-equations" + then: [T: "方程"] # phrase('equation' 1 of 10 equations) + else: [T: "列"] # phrase('line 1 of 10 lines) + - x: "count(preceding-sibling::*[not(contains(@data-intent-property, ':continued-row:'))]) + 1" - test: - if: .[self::m:mlabeledtr] + if: "self::m:mlabeledtr" then: - T: "帶有標籤" # phrase(the diagram is complete 'with label') - x: "*[1]/*" - - pause: medium - test: - if: .[self::m:mlabeledtr] + if: "not(contains(@data-intent-property, ':continued-row:'))" + then: [pause: medium] + - test: + if: "self::m:mlabeledtr" then: [x: "*[position()>1]"] else: [x: "*"] @@ -512,20 +565,25 @@ match: "parent::*[parent::m:piecewise or parent::m:system-of-equations or parent::m:lines]" variables: [LongPause: "$SpeechStyle = 'ClearSpeak' and $ClearSpeak_MultiLinePausesBetweenColumns = 'Long'"] replace: - - x: "*" - test: - # short pause after each element; medium pause if last element in a row; long pause for last element in matrix unless ClearSpeak override - - if: "count(following-sibling::*) > 0" - then_test: - if: "$LongPause" - then: [pause: medium] - else: [pause: short] - - else_if: "count(../following-sibling::*) > 0" + if: "IsInDefinition(*[1], 'ComparisonOperators')" + then: [pause: short] + - test: + if: "*[1][@data-added!='missing-content']" + then: [x: "*"] + - test: + # no pause after each element; medium pause if last element in a row; long pause for last element in matrix unless ClearSpeak override + - if: "count(following-sibling::*) = 0 and not($NextLineIsContinuedRow)" then_test: - if: "$LongPause" - then: [pause: long] - else: [pause: medium] - else: [pause: long] + if: "count(../following-sibling::*) > 0" + then_test: + if: "$LongPause" + then: [pause: long] + else: [pause: medium] + else_test: + if: "IsInDefinition(*[1], 'ComparisonOperators')" + then: [pause: short] + else: [pause: auto] # Matrix/Determinant rules # matrix and determinant are the same other than "matrix"/"determinant" based on the bracketing chars @@ -546,6 +604,58 @@ - T: "成員" # phrase(the 2 by 2 matrix 'with entry' x) - x: "*[1]/*" +# simpler reading methods for special case matrices +- name: zero-matrix + tag: matrix + # select all the non-zero entries -- if there are none of them, then it is a zero matrix + match: "not( */*/*[not(self::m:mn and .= 0)] )" + replace: + - T: "" # phrase('the' 1 by 2 matrix M) + - x: count(*) + - T: "乘" # phrase(the 1 'by' 2 matrix) + - x: count(*[self::m:mtr][1]/*) + - T: "零矩陣" # phrase(the 2 by 2 'zero matrix') + - pause: long + +- name: identity-matrix + tag: matrix + # every diagonal entry must be a literal 1, and every off-diagonal entry must be a literal 0 + match: + - "count(*) = count(*[1]/*) and " # matrix is square + - "not( */*[count(preceding-sibling::*) = count(../preceding-sibling::*)]/*[not(self::m:mn and .= 1)] ) and " # on-diagonal + - "not( */*[count(preceding-sibling::*) != count(../preceding-sibling::*)]/*[not(self::m:mn and .= 0)] )" # off-diagonal + replace: + - T: "" # phrase('the' 1 by 2 matrix M) + - x: count(*) + - T: "乘" # phrase(the 1 'by' 2 matrix) + - x: count(*[self::m:mtr][1]/*) + - T: "單位矩陣" # phrase(the 2 by 2 'identity matrix') + - pause: long + +- name: diagonal-matrix + tag: matrix + # select all the non-zero entries...if they are not on the diagonal + # if there are any of them, then this isn't an identity matrix + match: + - "count(*) = count(*[1]/*) and " + - "not( */*/*[not(self::m:mn and .= 0)]" + - " [count(../preceding-sibling::*)!=count(../../preceding-sibling::*)]" + - " )" + replace: + - T: "" # phrase('the' 1 by 2 matrix) + - x: count(*) + - T: "乘" # phrase(the 1 'by' 2 matrix) + - x: count(*[self::m:mtr][1]/*) + - T: "對角矩陣" # phrase(the 2 by 2 'diagonal matrix') + - pause: long + - insert: + # this lists the diagonal 'mtd's to be read, and they say "column nnn" before reading the contents + # there seems to be an xpath bug -- without the parens, the match fails for the + # test Languages::en::mtable::diagonal_matrix due to match failure (the third matching element seems to be missing) + nodes: "(*/*/*[not(self::m:mn and .= 0)]/..)" + replace: [pause: auto] + - pause: long + # simpler reading methods for smaller matrices if the entries are simple - name: 2-or-3x1-matrix tag: matrix @@ -658,7 +768,11 @@ - test: if: "self::m:determinant" then: [T: "行列式"] # phrase(the 2 by 2 'determinant') - else: [T: "矩陣"] # phrase(the 2 by 2 'matrix') + else: + - test: + if: "@columnlines and (contains(normalize-space(@columnlines), 'solid') or contains(normalize-space(@columnlines), 'dashed'))" + then: [T: "增廣矩陣"] # phrase(the 2 by 2 'augmented matrix') + else: [T: "矩陣"] # phrase(the 2 by 2 'matrix') - pause: long - x: "*" - test: @@ -682,7 +796,11 @@ - test: if: "self::m:determinant" then: [T: "行列式"] # phrase(the 2 by 2 'determinant') - else: [T: "矩陣"] # phrase(the 2 by 2 'matrix') + else: + - test: + if: "@columnlines and (contains(normalize-space(@columnlines), 'solid') or contains(normalize-space(@columnlines), 'dashed'))" + then: [T: "增廣矩陣"] # phrase(the 2 by 2 'augmented matrix') + else: [T: "矩陣"] # phrase(the 2 by 2 'matrix') - pause: long - x: "*" - test: @@ -695,7 +813,6 @@ else: [T: "矩陣"] # phrase(the 2 by 2 'matrix's) - name: chemistry-msub - tag: [chemical-formula] match: "*[1][.='msub']" replace: @@ -708,6 +825,16 @@ then: [T: "下標"] # phrase(H 'sub' 2) - x: "*[3]" +- name: dimension-by + tag: mrow + match: dimension-product + replace: + - insert: + nodes: "*" + replace: [T: "乘", pause: auto] # phrase(3 'by' 5 matrix) + + + - name: chemistry-msup tag: [chemical-formula] match: "count(*)=3 and *[1][.='msup']" diff --git a/Rules/Languages/zh/tw/SharedRules/geometry.yaml b/Rules/Languages/zh/tw/SharedRules/geometry.yaml index 85a6c6ba4..f7040441a 100644 --- a/Rules/Languages/zh/tw/SharedRules/geometry.yaml +++ b/Rules/Languages/zh/tw/SharedRules/geometry.yaml @@ -57,3 +57,23 @@ - x: "*[2]" - x: "*[3]" + +- name: coordinate + tag: coordinate + match: "." + replace: + - test: + if: "$Verbosity='Verbose'" + then: [OT: ""] # phrase('the' point at 1, 2) + - T: "點" # phrase(the 'point' at 1, 2) + - test: + if: "$Verbosity='Verbose'" + then: [T: "在"] # phrase('the' point at 1, 2) + - pause: short + - insert: + nodes: "*" + replace: [T: "逗號", pause: auto] # phrase(f of x 'comma' y) + - pause: short + - test: + if: "($SpeechStyle='ClearSpeak' and $Verbosity='Verbose') or not(IsNode(*[last()],'leaf'))" + then: [T: "結束點"] # phrase(start point, 'end point') diff --git a/Rules/Languages/zh/tw/SharedRules/linear-algebra.yaml b/Rules/Languages/zh/tw/SharedRules/linear-algebra.yaml index 49f7587de..e02baecd0 100644 --- a/Rules/Languages/zh/tw/SharedRules/linear-algebra.yaml +++ b/Rules/Languages/zh/tw/SharedRules/linear-algebra.yaml @@ -15,27 +15,9 @@ - T: "" # phrase(systems 'of' linear equations) - x: "*[1]" - test: - if: "not(IsNode(*[1], 'simple'))" + if: "not(IsNode(*[1], 'simple')) and $Impairment = 'Blindness'" then: [T: "結束行列式"] # phrase('end determinant' of a matrix) -- name: norm - tag: norm - match: "count(*)=1" - replace: - - test: - if: "$Verbosity='Verbose'" - then: - - T: "" # phrase('the' square root of 25 equals 5) - - x: "*[1]" - - test: - if: "$Verbosity!='Terse'" - then: - - T: "的" # phrase(this is the mean 'of' the data) - - T: "範數" # phrase(the 'norm' can be a measure of distance) - #- test: - # if: "not(IsNode(*[1], 'simple'))" - # then: [t: "結束範數"] # phrase('end norm' that is a measure of distance) - - name: subscripted-norm tag: subscripted-norm @@ -45,77 +27,10 @@ if: "$Verbosity='Verbose'" then: - T: "" # phrase('the' square root of 25 equals 5) - - x: "*[1]" - - test: - if: "$Verbosity!='Terse'" - then: - - T: "的" # phrase(systems 'of' linear equations) - x: "*[2]" - - T: "範數" # phrase(the 'norm' can be a measure of distance) - -- name: transpose - tag: transpose - match: "count(*)=1" - replace: - - x: "*[1]" - - T: "的 轉置" # phrase(this will 'transpose' the values) -- name: trace - tag: trace - match: "count(*)=1" - replace: - - test: - if: "$Verbosity='Verbose'" - then: - - T: "" # phrase('the' square root of 25 equals 5) - - x: "*[1]" - - test: - if: "$Verbosity!='Terse'" - then: - - T: "的" # phrase(systems 'of' linear equations) - - T: "跡" # phrase('trace' of a matrix) - -- name: dimension - tag: dimension - match: "count(*)=1" - replace: - - test: - if: "$Verbosity='Verbose'" - then: - - T: "" # phrase('the' square root of 25 equals 5) - - x: "*[1]" + - T: "norm" # phrase(the 'norm' can be a measure of distance) - test: if: "$Verbosity!='Terse'" then: - - T: "的" # phrase(systems 'of' linear equations) - - T: "維數" # phrase(the 'dimension' of the matrix) - -- name: homomorphism - tag: homomorphism - match: "count(*)=1" - replace: - - test: - if: "$Verbosity='Verbose'" - then: - - T: "" # phrase('the' square root of 25 equals 5) - - x: "*[1]" - - test: - if: "$Verbosity!='Terse'" - then: - - T: "的" # phrase(systems 'of' linear equations) - - T: "同態" # phrase('homomorphism' indicates similarity of form) - -- name: kernel - tag: kernel - match: "count(*)=1" - replace: - - test: - if: "$Verbosity='Verbose'" - then: - - T: "" # phrase('the' square root of 25 equals 5) + - T: "" # phrase(systems 'of' linear equations) - x: "*[1]" - - test: - if: "$Verbosity!='Terse'" - then: - - T: "的" # phrase(systems 'of' linear equations) - - T: "核" # phrase(this is the 'kernel' of the function) - diff --git a/Rules/Languages/zh/tw/SimpleSpeak_Rules.yaml b/Rules/Languages/zh/tw/SimpleSpeak_Rules.yaml index 7877cb2e3..af8eed969 100644 --- a/Rules/Languages/zh/tw/SimpleSpeak_Rules.yaml +++ b/Rules/Languages/zh/tw/SimpleSpeak_Rules.yaml @@ -1,4 +1,18 @@ --- +- name: pause + tag: "!*" + match: "not(self::m:math) and not($MatchingPause) and @data-intent-property[contains(., ':pause')]" + replace: + - with: + variables: [MatchingPause: "true()"] + replace: + - test: + - if: "contains(@data-intent-property, ':pause-long')" + then: [pause: long] + - else_if: "contains(@data-intent-property, ':pause-short')" + then: [pause: short] + else: [pause: medium] + - x: "." - name: intent-literal-silent tag: [mi, mo, mn] @@ -26,32 +40,28 @@ - test: if: "$Verbosity!='Terse'" then: [T: ""] # phrase(the square root 'of' x) - else: [pause: short] + else: [pause: short] # pause: short - test: - if: IsNode(*[1], 'leaf') - then: [pause: short] - else: [T: "結束根號", pause: medium] # phrase(start the square root of x 'end of root') + if: "not(IsNode(*[1], 'leaf')) and $Impairment = 'Blindness'" + then: [T: "結束根號", pause: medium] # phrase(start the square root of x 'end of root') + else: [pause: short] - name: default tag: root match: "." replace: - - T: "" - x: "*[1]" - test: if: "$Verbosity!='Terse'" then: [T: "的"] # phrase(the square root 'of' x) - test: - if: "*[2][self::m:mn]" + if: "*[2][self::m:mn and not(contains(., '.'))]" then_test: - if: "*[2][.='2']" then: [T: "平方根"] # phrase(the 'square root' of x) - else_if: "*[2][.='3']" then: [T: "立方根"] # phrase(the 'cube root' of x) - - else_if: "*[2][not(contains(., '.'))]" - then: [x: "*[2]", T: "次方根"] # phrase(the square 'root' of x) - - else: [x: "*[2]", T: "次方根"] - + - else: [x: "*[2]", T: "次方根"] # phrase(the square 'root' of 25) else: - test: if: "*[2][self::m:mi][string-length(.)=1]" @@ -63,19 +73,28 @@ # Fraction rules # Mixed numbers mostly "just work" because the invisible char reads as "and" and other parts read properly on their own -#- name: common-fraction -# tag: fraction -# match: -# - "*[1][self::m:mn][not(contains(., '.')) and text()<20] and" -# - "*[2][self::m:mn][not(contains(., '.')) and 2<= text() and text()<=10]" -# replace: [x: ToCommonFraction(.)] -#- name: common-fraction-mixed-number -# tag: fraction -# match: -# - "preceding-sibling::*[1][self::m:mo][.='⁤'] and" # preceding element is invisible plus -# - "*[1][self::m:mn][not(contains(., '.'))] and" -# - "*[2][self::m:mn][not(contains(., '.'))]" -# replace: [x: ToCommonFraction(.)] +- name: common-fraction + tag: fraction + match: + - "*[1][self::m:mn][not(contains(., '.')) and text()<20] and" + - "*[2][self::m:mn][not(contains(., '.')) and 2<= text() and text()<=10]" + variables: [IsPlural: "*[1]!=1"] + replace: + - x: "*[2]" + - T: "分之" + - x: "*[1]" # extra args specify fractional ordinal and whether it is plural + +- name: common-fraction-mixed-number + tag: fraction + match: + - "preceding-sibling::*[1][self::m:mo][.='⁤'] and" # preceding element is invisible plus + - "*[1][self::m:mn][not(contains(., '.'))] and" + - "*[2][self::m:mn][not(contains(., '.'))]" + replace: + - x: "*[2]" + - T: "分之" + - x: "*[1]" # extra args specify fractional ordinal and whether it is plural + # Units (e.g., meters per second, m^2/s^2, (3m^2)/s) - name: per-fraction @@ -86,9 +105,9 @@ - " *[1][self::m:mn] and *[2][.='\u2062'] and BaseNode(*[3])[contains(@data-intent-property, ':unit')] ) ] and" - "BaseNode(*[2])[contains(@data-intent-property, ':unit')] " replace: - - t: "每" # phrase('5 meters 'per' second) - - x: "*[2]" - x: "*[1]" + - T: "每" # phrase('5 meters 'per' second) + - x: "*[2]" - name: simple # don't include nested fractions. E.g, fraction a plus b over c + 1 end fraction" is ambiguous @@ -272,6 +291,7 @@ - name: times tag: mo match: + # say "times" when invisible times is followed by parens or a superscript that has a base with parens or "|"s # added: say times is the superscript is not simple # if we aren't sure if it is times or not, don't say anything - ".='⁢' and" @@ -280,15 +300,15 @@ - " following-sibling::*[1][" - " IsBracketed(., '(', ')') or IsBracketed(., '[', ']') or IsBracketed(., '|', '|') or " - " self::m:matrix or self::m:determinant or self::m:binomial or" # followed by parens - - " ( (self::m:msub or self::m:msubsup or - ((self::m:msup or self::m:power) and not(IsNode(*[1], 'leaf') and *[2][self::m:mn and (.=2 or '.=3')]))) and " # followed by msup, etc. - - " (*[1][self::m:mrow[IsBracketed(., '(', ')') or IsBracketed(., '[', ']') or IsBracketed(., '|', '|')] or " - - " self::m:matrix or self::m:determinant] or" # base has parens - - " not(IsNode(*[2], 'simple')) or " - - " (self::m:msubsup and not(IsNode(*[3], 'simple'))))" - - " )" - - " ]" - # other possibility is the preceding element has parens (but not the following) + - " self::m:square-root or self::m:msqrt or self::m:root or self::m:mroot or" + - " (self::m:msub or self::m:msubsup or" + - " ((self::m:msup or self::m:power) and not(IsNode(*[1], 'leaf') and *[2][self::m:mn and (.=2 or '.=3')]))) and " # followed by msup, etc. + - " (*[1][self::m:mrow[IsBracketed(., '(', ')') or IsBracketed(., '[', ']') or IsBracketed(., '|', '|')] or " + - " self::m:matrix or self::m:determinant] or" # base has parens + - " not(IsNode(*[2], 'simple')) or " + - " (self::m:msubsup and not(IsNode(*[3], 'simple')))" + - " )" + - " ]" # other possibility is the preceding element has parens (but not the following) - " or " - " preceding-sibling::*[1][" - " IsBracketed(., '(', ')') or IsBracketed(., '[', ']') or IsBracketed(., '|', '|')]" # followed by parens @@ -303,6 +323,7 @@ - " not(self::m:math) ] and " # rule out [x] standing alone - "( IsBracketed(., '(', ')') or IsBracketed(., '[', ']') ) and " - "( IsNode(*[2], 'simple') ) and" + - "not(preceding-sibling::*[1][.='\u2062' and @data-function-guess]) and" - "not(ancestor-or-self::*[contains(@data-intent-property, ':literal:')])" # missing clause: 'a positive fraction that is spoken as an ordinal # (either by the Ordinal preference or by the default rules_' diff --git a/Rules/Languages/zh/tw/definitions.yaml b/Rules/Languages/zh/tw/definitions.yaml index 280ec6039..d5857679f 100644 --- a/Rules/Languages/zh/tw/definitions.yaml +++ b/Rules/Languages/zh/tw/definitions.yaml @@ -1,14 +1,8 @@ --- - include: "../../../definitions.yaml" -# Lines starting with "#" are a comment -# Each definition in this file is of the form -# - name: { "...", "..." "..." } -# For numbers, -# - name: [] "...", "..." "..." ] - -# If an "intent" is used, the 'terse:medium:verbose' speech for the intent name is given here for a prefix||infix||postfix||function fixity -# If only one ":" is used, it the first part is used for 'terse' and the second part is used for 'medium' and 'verbose' +# If an "intent" is used, the 'terse:medium:verbose' speech for the intent name is given here for a prefix||infix||postfix||function||nofix||silent fixity +# If only one ":" is used, the first part is used for 'terse' and the second part is used for 'medium' and 'verbose' # If no ":"s are used, the same speech is used for all forms # If bracketing words make sense, they are separated with ";"s # Intent mappings must specify whether they are "prefix", "infix", "postfix", or "function" with an "=" sign @@ -16,38 +10,313 @@ # for readability, spaces can be used around any of the delimiter characters # Note: if there are multiple fixities, the first one is used if the fixity is not given in the intent - IntentMappings: { + "binomial": "infix=; 選; ", + + ### Functions and Inverses + # "closed-interval": "other=closed-interval; from,to; end closed-interval", + # "closed-interval":"function=closed interval between; and", #NOTE: Check test, does not follow this pattern + #"closed-open-interval":"function=interval between; included and", + #"open-closed-interval":"function=interval between; and included", + #"open-interval":"function=open interval between; and", + "inverse":"function=inverse || postfix=inverse", + + "domain": "function= ; domain", + "codomain": "function= ; codomain", + + "image":"function=image", + #"fraction":"function=fraction; over; end fraction", # NOTE: Fails + "mixed-fraction":"infix=and", # NOTE: in website says function, but follow infix speech pattern. + "quotient":"function=integer part; divided by", # NOTE: Logic somewhere here failing, becomes "divided by of x comma, y" instead of "integer part of x divided by y" + "evaluated-at":"infix=evaluated at", + "remainder":"function=the remainder; divided by", + + "max":"function=max", + "min":"function=min", + + "power":"infix=to the power", + "root":"function=root", + + "greatest-common-divisor": "function=gcd: the gcd: the greatest common divisor", + "least-common-multiple":"function=lcm: the lcm: the least common multiple", # In webpage typo "lest common" + + "absolute-value": "function= ; absolute value: the absolute value: the absolute value; end absolute value", + "complex-conjugate":"function=complex conjugate", + "complex-arg":"function=arg", + "real-part": "function=the real part", + "imaginary-part": "function=imaginary part: the imaginary part: the imaginary part", + + "polar-coordinate":"function=polar coordinate; comma", + "spherical-coordinate":"function=spherical coordinate; comma; comma", + "cartesian-coordinate":"function=cartesian coordinate; comma", + "coordinate":"function=coordinate; comma", + "floor":"function=floor", + "ceiling":"function=ceiling", + "round":"function=rounded-value", + "fractional-part":"function=fractional part", + + + ### Calculus + # "definite-integral":"function=integral over || function=integral from; to", # Property ??? + # "derivative":"function=the derivative; with respect to", # Property ??? + # "partial-derivative":"function=partial", ## Note, included with infix, but separately under calculus tab has ??? for functionality + + "limit": "prefix=極限", + "tends-to":"infix=tends to", + "tends-to-from-above":"infix=tends to from above", + "tends-to-from-below":"infix=tends to from below", + + + ### Sets + "set": "function= ; set: the set", + "set-difference":"function=set difference; and || infix=minus", # NOTE: not tested + "complement":"function=complement", + #"empty-set":"nofix=empty set", + "cardinality":"function=cardinality", # NOTE: does not have a defined speech template in website + "list":"function=list", + "tuple": "function= ; tuple: the tuple", + + + ### Sequence and Series + "sum":"function= ; sum over : sum ; ", #: sum over : sum from; to", + "product":"function=product || function=product over || function=product from; to", + + + ### Elementary classical functions + "sine":"function=sin: sine", + "cosine":"function=cos: cosine", + "tangent":"function=tan: tangent", + "secant":"function=seech: secant", + "cosecant":"function=co-seech: cosecant", + "cotangent":"function=co-tan: cotangent", + + "arcsine":"function=arcsine", + "arccosine":"function=arccosine", + "arctangent":"function=arctangent", + "arcsecant":"function=arcsecant", + "arccosecant":"function=arc-cosecant", + "arccotangent":"function=arc-cotangent", + + "hyperbolic-sine":"function=shine", + "hyperbolic-cosine":"function=cosh", + "hyperbolic-tangent":"function=tanch", + "hyperbolic-secant":"function=sech", + "hyperbolic-cosecant":"function=cosech", + "hyperbolic-cotangent":"function=coth", + + "arc-hyperbolic-sine":"function=arc shine", + "arc-hyperbolic-cosine":"function=arc cosh", + "arc-hyperbolic-tangent":"function=arc tanch", + "arc-hyperbolic-secant":"function=arc sech", + "arc-hyperbolic-cosecant":"function=arc cosech", + "arc-hyperbolic-cotangent":"function=arc coth", + + "exponential":"function=exponential", + "natural-logarithm": "function=l n: natural log: natural log", + "logarithm":"function=log", ##Check arity 2 + + + ### Statistics and Probability + "mean":"function=mean", + "standard-deviation":"function=standard deviation", + "variance":"function=variance", + "median":"function=median", + "mode":"function=mode", + + "conditional-probability":"function=probability; given", # NOTE: Check test + + + ### Linear Algebra + "vector": "function= ; 向量 || prefix=向量", # prefix not tested, also prefix not on webpage + "matrix":"function=matrix", # NOTE: Failing test, recheck + "determinant":"function=determinant", + "adjugate":"function=adjugate", + "magnitude":"function=magnitude", + "norm": "function=; norm: norm: norm; 結束 norm", + "span":"function=span", + + "unit-vector":"prefix=unit vector", + + "identity-matrix":"nofix=identity matrix", # NOTE: no function specified + "transpose":"function=transpose || postfix= transpose", # postfix needs testing + "dimensional-product":"infix=by", # INFIX + + + ### Constants and Sets + "set-of-integers":"nofix=ℤ: set of all integers", + "set-of-reals":"nofix=ℝ: set of all real numbers", + "set-of-rationals":"nofix=ℚ: set of all rational numbers", + "set-of-natural-numbers":"nofix=ℕ: set of all natural numbers", + "set-of-complex-numbers":"nofix=ℂ: set of all complex numbers", + "set-of-primes":"nofix=ℙ: set of all prime numbers", + + + ### Geometry + "line-segment":"prefix=line segment", + "directed-line-segment":"prefix=directed line segment", + "line":"prefix=line", + "ray":"prefix=ray", + "arc":"prefix=arc", + + "length":"function=length", + "area":"function=area", + + "point":"prefix=point", ## NOTE: Has ??? for property in site. Should it be prefix? Or something else. + + ### Separators + "time-separator":"infix=", + + ### General Concepts + "fenced-group":"function=fenced-group", # appears both under general concepts and grouping + # NOTE: in site mentions "the pair x and y", due to being defined as function, needs the "of" keyword + "ordered-pair": "function= ; the pair; and", # Needs to be tested, test converts "and" to "comma," "indexed-by": "infix= ; 下標; 結束下標", + # "indexed-by": "infix= ; indexed by; ", + + "highlight":"postfix=highlighted", + "least-common-denominator":"function=least common denominator", + "rate":"infix=per", + "translation":"function= translation by; comma", # NOTE: not tested, changes "translation" -> "comma" in test + "constraint":"infix= ; with constraint; ", + + "binomial-coefficient":"infix=choose", + "pochhammer":"function=permutation", + "permutation-cycle":"function=permutation cycle", + "embellished-name":"infix=with annotation", + + ### Grouping + "annotation":"infix= ; which is ;", # NOTE: Follows the same order as indexed-by, in site listed as function. Should it be infix? + "braced-group":"function=grouped; end grouped", # NOTE: not tested, site is missing "of" keyword function introduces + #"repeating-decimal":"function=repeating decimal", # NOTE: BREAKS TEST. Check again. Site is missing "of" keyword function introduces. + + + ### Other + ## Default fixity function + "curl": "function=curl", + "divergence": "function=div:divergence", + "gradient": "function=del:gradient", + "laplacian": "function=laplacian", + + ## Default fixity prefix + "angle": "prefix=angle", + "angle-measure": "prefix=angle measure", + "change": "prefix=change in", + "for-all": "prefix=for all", + "measured-angle": "prefix=measured angle", + "not": "prefix=not", + "number-of": "prefix=number of", + "partial-derivative": "prefix=partial", + "right-angle": "prefix=right angle", + "square-root-of": "prefix=square root of", + "there-does-not-exist": "prefix=there does not exist", + "there-exists": "prefix=there exists", + + + ## Default fixity infix + "and": "infix=and", + "applied-to": "infix=applied to", + "approximately": "infix=approximately", + "congruent": "infix=congruent to", + "cartesian-product": "infix=cartesian product", + "composed-with": "infix=composed with", + "cross-product": "infix=cross: cross product: cross product", + "defined-as": "infix=defined as", + "divided-by": "infix=divided by", + "divides": "infix=divides", + "does-not-belong-to": "infix=does not belong to", + "does-not-divide": "infix=does not divide", + "dot-product": "infix=dot product", + "downwards-diagonal-ellipsis": "infix=downwards diagonal ellipsis", + "direct-product": "infix=direct product", + "element-of": "infix=element of", + "ellipsis": "infix=ellipsis", + "equals": "infix=equals", + "equivalent-to": "infix=equivalent to", + "evaluates-to": "infix=evaluates to", + "given": "infix=given", + "greater-than": "infix=greater than", + "greater-than-or-equal-to": "infix=greater than or equal to", + "identically-equals": "infix=identically equals", + "if-and-only-if": "infix=if and only if", + "implies": "infix=implies", + "inner-product": "infix=inner product", + "intersection": "infix=intersection", + "less-than": "infix=less than", + "less-than-or-equal-to": "infix=less than or equal to", + "list-separator": "infix=comma", + "maps-to": "infix=maps to", + "member-of": "infix=member of", + "minus-or-plus": "infix=minus or plus", + "not-subset": "infix=not subset of", + "not-superset": "infix=not superset of", + "not-equal-to": "infix=not equal to", + "not-member-of": "infix=not member of", + "not-parallel-to": "infix=not parallel to", + "obtained-from": "infix=obtained from", + "or": "infix=or", + "outer-product": "infix=outer product", + "parallel-to": "infix=parallel to", + "perpendicular": "infix= 垂直於", + "plus": "infix=加 || prefix=正", # Prefix not tested + "minus": "infix=減 || prefix=負", # Prefix not tested + "plus-or-minus": "infix=plus or minus", + "precedes": "infix=precedes", + "proportional": "infix=proportional to", + "range-separator": "infix=through", + "ratio": "infix=ratio", + "similar": "infix=similar to", + "subset": "infix=subset of", + "subset-or-equal": "infix=subset or equal to", + "succeeds": "infix=succeeds", + "such-that": "infix=such that", + "superset": "infix=superset of", + "superset-or-equal": "infix=superset or equal to", + "tilde": "infix=tilde", + "times": "infix=times", + "union": "infix=union", + "upwards-diagonal-ellipsis": "infix=upwards diagonal ellipsis", + "vertical-ellipsis": "infix=vertical ellipsis", + "xor": "infix=exclusive or", + + ## Default fixity postfix + "factorial": "postfix=factorial", + "percent": "postfix=percent", + + ## Default fixity nofix + "diameter":"nofix=d: diameter", + "distance":"nofix=d; D: distance", + "probability":"nofix=P: probability", + "radius":"nofix=r: radius", + "volume":"nofix=V: volume || function=volume", + "exponential-e":"nofix=e", + "imaginary-i":"nofix=i", + "differential-d":"nofix=d", + "golden-ratio":"nofix=golden ratio", + + + ## Other : Not tested, don't appear in https://w3c.github.io/mathml-docs/intent-core-concepts/ "modified-variable": "silent= ", "say-super": "infix=上標", # used with 'mo' for superscripts (e.g, "<") "skip-super": "silent=", # used with 'mo' for superscripts (e.g, "*") - - "absolute-value": "function= ; 絕對值; 結束絕對值", - "binomial": "infix=; 選; end binomial", - "limit": "prefix=極限", + # "large-op": "infix=over || other=from,to", "lim-sup": "prefix=lim sup as: the limit superior as: the limit superior as", "lim-inf": "prefix=lim inf as: the limit inferior as : the limit inferior as", - "logarithm-with-base": "prefix=log 底", - "minus": "infix=減 || prefix=負", - "plus": "infix=加 || prefix=正", - - # These act like postfix in linear-algebra.yaml, so rules are currently used instead of these defaults - # "transpose": "postfix=的 轉置 || function=的 轉置", - # "norm": "function=範數: 的 範數: 的 範數; 結束範數", - # "trace": "function=跡 : 的 跡: 的 跡", - # "dimension": "function=維數 : 的 維數: 的 維數", - # "homomorphism": "function=同態 : 的 同態: 的 同態", - # "kernel": "function=核 : 的 核: 的 核", - "vector": "function=向量 || prefix=向量", - "cross-product": "infix=cross: cross product: cross product", - "dot-product": "infix=dot: dot product: dot:dot product", + "logarithm-with-base": "prefix=log 底數", #"prefix=log base: the log base: the log base", + # "pochhammer": "infix=permutations of", # arguments are in reverse order, so can't work here + "trace": "function= ; trace : trace: trace; 結束 trace", + "dimension": "function=; dimension : dimension: dimension; 結束 dimension", + "homomorphism": "function= ; homomorphism : homomorphism: homomorphism; 結束 homomorphism", + "kernel": "function= ; kernel : kernel: kernel; 結束 kernel", + + "chemistry-concentration": "function= ; concentration: concentration of: the concentration of; end concentration", + } - "divergence": "function= ; div: divergence: divergence; end divergence", - "curl": "function= ; curl; end curl", - "gradient": "function= ; grad: gradient: gradient; end gradient", - "laplacian": "function=lahplahsian", # speech engines don't do a good job with "laplacian" + # Names of functions that in terse mode don't say "of" (or it's equivalent in other languages) +- TerseFunctionNames: { + "divergence", "del:gradient", "curl" } - NavigationParts: { + # These are the parts of a formula that can be navigated to "large-op": "基底; 下限; 上限", "mfrac": "分子;分母", "fraction": "分子;分母", @@ -57,6 +326,8 @@ "root": "根號;根指數", "msub": "基底;下標", "sub": "基底;下標", + "logarithm-with-base": "底數", + "indexed-by": "基底; 下標", "msup": "基底;上標", "say-super": "基底;上標", "skip-super": "基底;上標", @@ -65,6 +336,10 @@ "munder": "基底;下限", "mover": "基底;上限", "munderover": "基底;下限;上限", + "absolute-value":"絕對值", + "minus":"減號", + "vector":"向量", + "magnitude":"magnitude", # words for moving into and out of one of the parts (e.g., "move right 'out of' numerator, 'in' denominator") # it's a hack to put them here, but at least they are grouped with the other navigation parts @@ -72,6 +347,14 @@ "out": "離開", } +- KnownWords: { + # MathCAT will put together some runs of three or more mi's (a common mistake), but skips those in alphabetical order. + # This is a list of exceptions so that they do get put together. Don't list words with repeated letters. + + # I asked bard and chatgpt for formula words that are alphabetical, and they failed. + # Here are the words I managed to find, but it almost certainly not complete. Change the list for other languages. + "Abel", "aery", "ails", "airy", "amps", "ceil", "cents", "chop", "flux", "flow", "knot", "most" + } - SIPrefixes: { "Q": "昆", "R": "羅", "Y": "佑", "Z": "皆", "E": "艾", "P": "拍", "T": "兆", "G": "吉", "M": "百萬", "k": "千", "h": "百", "da": "十", @@ -107,10 +390,8 @@ "N": "牛頓", "Ω": "歐姆", "Ω": "歐姆", # Greek Cap letter, U+2126 OHM SIGN "Pa": "帕", - "rad": "弳", "S": "西門", "Sv": "西弗", - "sr": "立弳", "T": "特士拉", "V": "伏特", "W": "瓦", @@ -121,16 +402,15 @@ "t": "公噸", "Da": "道爾頓", "Np": "奈培", # nepar # should only take negative powers - "amu": "原子質量單位", "u": "原子質量單位", # 'u' is correct: https://en.wikipedia.org/wiki/Dalton_(unit) - "au": "天文單位", "AU": "天文單位", + "u": "原子質量單位", # 'u' is correct: https://en.wikipedia.org/wiki/Dalton_(unit) "eV": "電子伏特", + "rad": "弳", + "sr": "立弳", - # copy from english version by hjy # others that take a prefix "a": "年", # should only take positive powers "as": "角秒", # see en.wikipedia.org/wiki/Minute_and_second_of_arc - # Copy from english version by hjy # technically wrong, but used in practice with SI Units "b": "位元", # should only take positive powers "B": "位元組", # should only take positive powers @@ -155,20 +435,20 @@ "MOA": "角分", "arcsec": "角秒", "asec": "角秒", - "as": "角秒", - - # other accepted units that don't take SI prefixes - "ha": "公頃", - "B": "貝爾", - "dB": "分貝", # distance + "au": "天文單位", "AU": "天文單位", "ltyr": "光年", "ly": "光年", "pc": "秒差距", "Å": "埃", "Å": "埃", # U+00C5 and U+212B "fm": "費米", - # others + # other accepted units that don't take SI prefixes + "ha": "公頃", + # "B": "貝爾", # "B" more commonly means bytes + "dB": "分貝", + + "amu": "原子質量單位", "atm": "大氣壓", "bar": "巴", "cal": "卡", @@ -180,11 +460,10 @@ "℧": "姆歐", "dyn": "達因", "erg": "耳格", - # copy from english version by hjy + # powers of 2 used with bits and bytes "Kib": "kibi-位元", "Mib": "mebi-位元", "Gib": "gibi-位元", "Tib": "tebi-位元", "Pib": "pebi-位元", "Eib": "exbi-位元", "Zib": "zebi-位元", "Yib": "yobi-位元", "KiB": "kibi-位元組", "MiB": "mebi-位元組", "GiB": "gibi-位元組", "TiB": "tebi-位元組", "PiB": "pebi-位元組", "EiB": "exbi-位元組", "ZiB": "zebi-位元組", "YiB": "yobi-位元組", - } # this will only be used if the language is English, so it can be empty for other countries @@ -244,6 +523,12 @@ "mpg": "英里每加侖", } +- CurrencySymbols: { + "$": "美元", "¢": "cent", "€": "歐元", "£": "英鎊", "₡": "colón", "₤": "lira", "₨": "rupee", + "₩": "won", "₪": "shekel", "₱": "peso", "₹": "rupee", "₺": "lira", "₿": "bitcoin", + # could add more currencies... + } + - PluralForms: { # FIX: this needs to be flushed out "inch": "英寸", "square inch": "平方英寸", "cubic inch": "立方英寸", @@ -251,11 +536,22 @@ "board foot": "板英尺", "degree celsius": "攝氏度", "degree fahrenheit": "華氏度", + "henry": "亨利", "hertz": "赫茲", + "lux": "勒克斯", "siemens": "西門", "revolution per minute": "轉每分", + "mile per hour": "英里每小時", + "mile per gallon": "英里每加侖", + "colón": "colones", "lira": "lire", "won": "won", "bitcoin": "bitcoin" } +# Lines starting with "#" are a comment +# Each definition in this file is of the form +# - name: { "...", "..." "..." } +# For numbers, +# - name: [] "...", "..." "..." ] + # ---------------- Cardinal and Ordinal Numbers -------------------------- # The following definitions are used to convert numbers to words diff --git a/Rules/Languages/zh/tw/navigate.yaml b/Rules/Languages/zh/tw/navigate.yaml index 0e94a5350..16fc1e800 100644 --- a/Rules/Languages/zh/tw/navigate.yaml +++ b/Rules/Languages/zh/tw/navigate.yaml @@ -50,47 +50,48 @@ - if: "self::m:math and starts-with($NavCommand, 'ZoomOut')" then: [T: "已完全縮小", pause: "medium"] - else_if: "IsNode(., 'leaf') and starts-with($NavCommand, 'ZoomIn')" - then: [T: "已完全放大", pause: "medium"] + then: + - test: + - if: "string-length(.) = 1" + then: [T: "已完全放大"] # phrase('zoomed in all of the way') + - else_if: "$NavNodeOffset = 0" + then: [T: "放大到第一字元"] # phrase('zoomed in to first character') + else: [T: "放大到字元"] # phrase('zoomed in to character') + - pause: "medium" else: - test: - if: "starts-with($NavCommand, 'Zoom')" - then: [set_variables: [Prefix: "' '"]] # phrase('zoom' in to see more details) #hjy -- 'zoom' is a bit weird in Chinese, so skip it. + then: [set_variables: [Prefix: "' '", CommandOffset: "5"]] # phrase('zoom' in to see more details) # a space in single quotation is necessary #hjy - else_if: "starts-with($NavCommand, 'Move')" - then: [set_variables: [Prefix: "'移到'"]] # phrase('move' to next entry in table) + then: [set_variables: [Prefix: "'移到'", CommandOffset: "5"]] # phrase('move' to next entry in table) - else_if: "starts-with($NavCommand, 'Read')" - then: [set_variables: [Prefix: "'讀出'"]] # phrase('read' to next entry in table) + then: [set_variables: [Prefix: "'讀出'", CommandOffset: "5"]] # phrase('read' to next entry in table) - else_if: "starts-with($NavCommand, 'Describe')" - then: [set_variables: [Prefix: "'描述'"]] # phrase('describe' to next entry in table) + then: [set_variables: [Prefix: "'描述'", CommandOffset: "9"]] # phrase('describe' to next entry in table) - test: if: "$Prefix != ''" then: - x: "$Prefix" - test: - - if: "substring($NavCommand, 5) = 'In'" + - if: "substring($NavCommand, $CommandOffset) = 'In'" then: [T: "放大"] # phrase(zoom 'in' to see more details) - - else_if: "substring($NavCommand, 5) = 'InAll'" + - else_if: "substring($NavCommand, $CommandOffset) = 'InAll'" # HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets "ed" concatenated to "zoom" - then: [T: "完全放大"] # phrase(zoom 'out all the way' to see more details) - - else_if: "substring($NavCommand, 5) = 'Out'" + then: [T: "完全放大"] # phrase(zoom 'out all of the way' to see more details) + - else_if: "substring($NavCommand, $CommandOffset) = 'Out'" then: [T: "縮小"] # phrase(zoom 'out' to see more details) - - else_if: "substring($NavCommand, 5) = 'OutAll'" + - else_if: "substring($NavCommand, $CommandOffset) = 'OutAll'" # HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets "ed" concatenated to "zoom" - then: [T: "完全縮小"] # phrase(zoom 'out all the way' to see more details) - - else_if: "substring($NavCommand, 5) = 'Next'" # string-length($Prefix)+1 ###fix by hjy - then: [T: "下一項"] # phrase(move to the 'right') - - else_if: "substring($NavCommand, 9) = 'Next'" # string-length($Prefix)+1 ###fix by hjy for describe + then: [T: "完全縮小"] # phrase(zoom 'out all of the way' to see more details) + - else_if: "substring($NavCommand, $CommandOffset) = 'Next'" then: [T: "下一項"] # phrase(move to the 'right') - - else_if: "substring($NavCommand, 5) = 'Previous'" #string-length($Prefix)+1 ###fix by hjy + - else_if: "substring($NavCommand, $CommandOffset) = 'Previous'" then: [T: "上一項"] # phrase(move to the 'left') - - else_if: "substring($NavCommand, 9) = 'Previous'" #string-length($Prefix)+1 ###fix by hjy for describe - then: [T: "上一項"] # phrase(move to the 'left') - - else_if: "substring($NavCommand, 5) = 'Current'" - then: [T: "目前"] # phrase(who is the 'current' president) - - else_if: "substring($NavCommand, 9) = 'Current'" + - else_if: "substring($NavCommand, $CommandOffset) = 'Current'" then: [T: "目前"] # phrase(who is the 'current' president) - - else_if: "substring($NavCommand, 5) = 'LineStart'" + - else_if: "substring($NavCommand, $CommandOffset) = 'LineStart'" then: [T: "到行首"] # phrase(move 'to start of line') - - else_if: "substring($NavCommand, 5) = 'LineEnd'" + - else_if: "substring($NavCommand, $CommandOffset) = 'LineEnd'" then: [T: "到行尾"] # phrase(move 'to end of line') - pause: "medium" - set_variables: [MatchCounter: "$MatchCounter + 1"] @@ -212,18 +213,19 @@ # ********* ZoomIn *************** - name: zoom-in-leaf - tag: "*" match: "($NavCommand = 'ZoomIn' or $NavCommand = 'ZoomInAll') and IsNode(., 'leaf')" replace: + - with: + variables: [SayCommand: "string($NavVerbosity != 'Terse')"] + replace: [x: "."] - test: - if: "$MatchCounter = 0 and $NavVerbosity != 'Terse'" - then: [T: "已完全放大", pause: "long"] # phrase('zoomed in all of the way') - - test: - if: "$ReadZoomLevel!=-1" + if: "$ReadZoomLevel !=-1" then: - set_variables: [ReadZoomLevel: "0"] - - set_variables: [NavNode: "@id"] + - set_variables: + - NavNode: "@id" + - NavNodeOffset: "IfThenElse(string-length(.) > 1 and $MatchCounter = 1 and $NavNodeOffset = 0, '1', '0')" # special case of zooming into a table -- move to the first row (if only one row, first column) - name: zoom-in-table @@ -233,12 +235,7 @@ - with: variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] replace: [x: "."] - - test: - if: "count(*)=1" - then: - - set_variables: [NavNode: "*[1]/*[1]/@id"] - else: - - set_variables: [NavNode: "*[1]/@id"] + - set_variables: [NavNode: "IfThenElse(count(*)=1, (*[1]/*[1]/@id), (*[1]/@id))"] - name: zoom-in-mrow-in-math # zooming in only once is meaningless because 'math' has only a single child and it was spoken at the math level -- dig inside and do it again @@ -265,7 +262,7 @@ variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] replace: [x: "."] - test: - if: "name(*[1]) != 'mrow'" + if: "not(*[1][self::m:mrow or @data-from-mathml='mrow'])" then: - with: variables: [Move2D: "'進入'", Child2D: "IfThenElse(count(*)=0, $Move2D, $Move2D)"] # phrase('in' the denominator) @@ -310,7 +307,7 @@ variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] replace: [x: "."] - test: - if: "DEBUG($MatchCounter) > 1 and IsNode(., '2D') " + if: "$MatchCounter > 1 and IsNode(., '2D')" then: [set_variables: [NavNode: "@id"]] # time to stop, not going "in" to next thing, so before "Move2D" else: - with: @@ -481,20 +478,26 @@ variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] replace: [x: "."] - test: - if: "$NavMode='Enhanced' and parent::*[self::m:mrow and (IsBracketed(., '(', ')', false) or IsBracketed(., '[', ']', false))]" + - if: "$NavNodeOffset > 0 and IsNode(., 'leaf')" # Inside leaf -- just reset offset, intent offset doesn't change + then: + - set_variables: [NavNodeOffset: "0"] + # NavNode remains the same + - else_if: "$NavMode='Enhanced' and parent::*[self::m:mrow and (IsBracketed(., '(', ')', false) or IsBracketed(., '[', ']', false))]" then: [x: ".."] # auto-zoom: move out a level and retry else: - with: - variables: [Move2D: "'離開'", Child2D: "."] + variables: [Move2D: "'離開'", Child2D: "."] # phrase('out of' the denominator) replace: [x: ".."] - test: if: "parent::m:mtd" then: [x: ".."] else: - test: - if: "$ReadZoomLevel!=-1" + if: "DEBUG($ReadZoomLevel)!=-1" then: [set_variables: [ReadZoomLevel: "DistanceFromLeaf(.., true, $NavMode!='Character')"]] - - set_variables: [NavNode: "../@id"] + - set_variables: + - NavNode: "../@id" + - NavNodeOffset: "IfThenElse(../@data-id-offset, ../@data-id-offset, '0')" # ********* MoveStart/End *************** - name: math-move-to-start-or-end @@ -1073,6 +1076,27 @@ # ======== Move/Read/Describe Next rules ================= +- name: move-next-character + tag: [mn, mi, mtext] + match: + - "($NavCommand = 'MoveNext' or $NavCommand = 'ReadNext' or $NavCommand = 'DescribeNext' or $NavCommand = 'MoveNextZoom') and" + - "$NavNodeOffset > 0 and" + - "($NavNodeOffset < string-length(.) or name(EdgeNode(., 'right', 'math'))!='math')" # not at edge of math + replace: + - test: + if: "$NavNodeOffset < string-length(.)" + then: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "$NavNodeOffset + 1"] + else: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "0"] + - x: "." + # skip 'none' - name: move-next-none tag: [none, mprescripts] @@ -1148,7 +1172,7 @@ - pause: medium - with: variables: - - Move2D: "'end of'" + - Move2D: "'終點'" - Child2D: "$EdgeNode/*[last()]" - MatchCounter: $MatchCounter + 1 replace: [x: "$EdgeNode"] @@ -1343,7 +1367,7 @@ - pause: medium - with: variables: - - Move2D: "'end of'" + - Move2D: "'終點'" - Child2D: "$EdgeNode/*[1]" - MatchCounter: $MatchCounter + 1 replace: [x: "$EdgeNode"] @@ -1372,11 +1396,32 @@ - T: "無法移到上一項" # phrase('cannot move left') - pause: short - with: - variables: [Move2D: "'start of'", Child2D: "."] + variables: [Move2D: "'開頭'", Child2D: "."] replace: [x: "."] - pause: long - set_variables: [SpeakExpression: "'false'"] +- name: move-prev-character + tag: [mn, mi, mtext] + match: + - "($NavCommand = 'MovePrevious' or $NavCommand = 'ReadPrevious' or $NavCommand = 'DescribePrevious' or $NavCommand = 'MovePreviousZoom') and" + - "$NavNodeOffset > 0 and" + - "($NavNodeOffset > 1 or name(EdgeNode(., 'left', 'math'))!='math')" # not at edge of math + replace: + - test: + if: "$NavNodeOffset > 1" + then: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "$NavNodeOffset - 1"] + else: + - with: + variables: [SayCommand: "string($NavVerbosity = 'Verbose')"] + replace: [x: "."] + - set_variables: [NavNodeOffset: "0"] + - x: "." + - name: move-previous-auto-zoom-up-one-level # Last child or in auto-zoom'd in-- move up a level and try again # Note: we've already checked the for the case where we are at an edge and should not AutoZoomOut diff --git a/Rules/Languages/zh/tw/overview.yaml b/Rules/Languages/zh/tw/overview.yaml index 240fb45c6..255b9e8f6 100644 --- a/Rules/Languages/zh/tw/overview.yaml +++ b/Rules/Languages/zh/tw/overview.yaml @@ -12,10 +12,9 @@ # There is a balance that you want to maximize the info given, so 10 words is likely better then 3. # That might mean that at the top level, we may want to allow the first few children to expand -- include: "SimpleSpeak_Rules.yaml" - name: overview-default - tag: mfrac + tag: [mfrac, fraction] match: "." replace: - test: @@ -28,7 +27,7 @@ - T: "分數" - name: overview-default - tag: msqrt + tag: [msqrt, "square-root"] match: "." replace: - T: "根號" @@ -41,7 +40,7 @@ - x: "*[1]" - name: overview-default - tag: mroot + tag: [mroot, root] match: "." replace: - T: "" @@ -119,3 +118,5 @@ - x: "*[5]" - pause: auto - T: "等等" + +- include: "SimpleSpeak_Rules.yaml" diff --git a/Rules/Languages/zh/tw/unicode-full.yaml b/Rules/Languages/zh/tw/unicode-full.yaml index 49f872354..d5d10ea6e 100644 --- a/Rules/Languages/zh/tw/unicode-full.yaml +++ b/Rules/Languages/zh/tw/unicode-full.yaml @@ -1,3444 +1,3804 @@ ---- - - - - "¢": [T: "美分"] # 0xa2 (en: 'cents', google translation) - - "£": [T: "英磅"] # 0xa3 (en: 'pounds', google translation) - - "¤": [T: "貨幣標誌"] # 0xa4 (en: 'currency sign', google translation) - - "¥": [T: "日元"] # 0xa5 (en: 'yen', google translation) - - "¦": [T: "破折號"] # 0xa6 (en: 'broken bar', google translation) - - "§": [T: "節"] # 0xa7 (en: 'section', google translation) - - "¨": [T: "double dot"] # 0xa8 (en: 'double dot', google translation) - - "©": [T: "版權"] # 0xa9 (en: 'copyright', google translation) - - "ª": [t: "feminine ordinal indicator"] # 0xaa (en: 'feminine ordinal indicator', google translation) - - "«": [t: "left-pointing double angle quote mark"] # 0xab (en: 'left-pointing double angle quote mark', google translation) - - "¯": # 0xaf - - test: - if: "ancestor::m:modified-variable and preceding-sibling::*[1][self::m:mi]" - then: [T: "橫線"] # (en: 'bar', google translation) - else: [T: "橫線"] # (en: 'line') - - "²": [T: "二"] # 0xb2 (en: 'two', google translation) - - "³": [T: "三"] # 0xb3 (en: 'three', google translation) - - "µ": [T: "微"] # 0xb5 (en: 'micro', google translation) - - "¹": [T: "一"] # 0xb9 (en: 'one', google translation) - - "º": [t: "masculine ordinal indicator"] # 0xb9 (en: 'masculine ordinal indicator', google translation) - - "ʰ": [t: "modifier small h"] # 0x2b0 (en: 'modifier small h', google translation) - - "ʱ": [t: "modifier small h with hook"] # 0x2b1 (en: 'modifier small h with hook', google translation) - - "ʲ": [t: "modifier small j"] # 0x2b2 (en: 'modifier small j', google translation) - - "ʳ": [t: "modifier small r"] # 0x2b3 (en: 'modifier small r', google translation) - - "ʴ": [t: "modifier small turned r"] # 0x2b4 (en: 'modifier small turned r', google translation) - - "ʵ": [t: "modifier small turned r with hook"] # 0x2b5 (en: 'modifier small turned r with hook', google translation) - - "ʶ": # 0x2b6 - - t: "modifier small inverted" # (en: 'modifier small inverted', google translation) - - SPELL: "translate('R', 'R', 'R')" - - - "ʷ": [t: "modifier small w"] # 0x2b7 (en: 'modifier small w', google translation) - - "ʸ": [t: "modifier small y"] # 0x2b8 (en: 'modifier small y', google translation) - - "ʹ": [t: "modifier prime"] # 0x2b9 (en: 'modifier prime', google translation) - - "ʺ": [t: "modifier double prime"] # 0x2ba (en: 'modifier double prime', google translation) - - "ʻ": [t: "modifier turned comma"] # 0x2bb (en: 'modifier turned comma', google translation) - - "ʼ": [t: "modifier apostrophe"] # 0x2bc (en: 'modifier apostrophe', google translation) - - "ʽ": [t: "modifier reversed comma"] # 0x2bd (en: 'modifier reversed comma', google translation) - - "ʾ": [t: "modifier right half ring"] # 0x2be (en: 'modifier right half ring', google translation) - - "ʿ": [t: "modifier left half ring"] # 0x2bf (en: 'modifier left half ring', google translation) - - "ˀ": [t: "modifier glottal stop"] # 0x2c0 (en: 'modifier glottal stop', google translation) - - "ˁ": [t: "modifier reversed glottal stop"] # 0x2c1 (en: 'modifier reversed glottal stop', google translation) - - "˂": [t: "modifier left arrowhead"] # 0x2c2 (en: 'modifier left arrowhead', google translation) - - "˃": [t: "modifier right arrowhead"] # 0x2c3 (en: 'modifier right arrowhead', google translation) - - "˄": [t: "modifier up arrowhead"] # 0x2c4 (en: 'modifier up arrowhead', google translation) - - "˅": [t: "modifier down arrowhead"] # 0x2c5 (en: 'modifier down arrowhead', google translation) - - "ˆ": [t: "modifier circumflex accent"] # 0x2c6 (en: 'modifier circumflex accent', google translation) - - "ˇ": [T: "check"] # 0x2c7 (en: 'caron', google translation) - - "ˈ": [t: "modifier vertical line"] # 0x2c8 (en: 'modifier vertical line', google translation) - - "ˉ": [t: "macron的修飾符"] # 0x2c9 (en: 'modifier macron', google translation) - - "ˊ": [t: "modifier acute accent"] # 0x2ca (en: 'modifier acute accent', google translation) - - "ˋ": [t: "modifier grave accent"] # 0x2cb (en: 'modifier grave accent', google translation) - - "ˌ": [t: "modifier low vertical line"] # 0x2cc (en: 'modifier low vertical line', google translation) - - "ˍ": [t: "modifier low macron"] # 0x2cd (en: 'modifier low macron', google translation) - - "ˎ": [t: "modifier low grave accent"] # 0x2ce (en: 'modifier low grave accent', google translation) - - "ˏ": [t: "modifier low acute accent"] # 0x2cf (en: 'modifier low acute accent', google translation) - - "ː": [t: "modifier triangular colon"] # 0x2d0 (en: 'modifier triangular colon', google translation) - - "ˑ": [t: "modifier half triangular colon"] # 0x2d1 (en: 'modifier half triangular colon', google translation) - - "˒": [t: "modifier centered right half ring"] # 0x2d2 (en: 'modifier centered right half ring', google translation) - - "˓": [t: "modifier centered left half ring"] # 0x2d3 (en: 'modifier centered left half ring', google translation) - - "˔": [t: "modifier up tadck"] # 0x2d4 (en: 'modifier up tadck', google translation) - - "˕": [t: "modifier down tack"] # 0x2d5 (en: 'modifier down tack', google translation) - - "˖": [t: "modifier plus sign"] # 0x2d6 (en: 'modifier plus sign', google translation) - - "˗": [t: "modifier minus sign"] # 0x2d7 (en: 'modifier minus sign', google translation) - - "˘": [T: "breve"] # 0x2d8 (en: 'breve', google translation) - - "˙": [T: "dot"] # 0x2d9 (en: 'dot', google translation) - - "˚": [t: "ring above"] # 0x2da (en: 'ring above', google translation) - - "˛": [t: "ogonek"] # 0x2db (google translation) - - "˜": [t: "small tilde"] # 0x2dc (en: 'small tilde', google translation) - - "˝": [t: "double acute accent"] # 0x2dd (en: 'double acute accent', google translation) - - "˞": [t: "modifier rhotic hook"] # 0x2de (en: 'modifier rhotic hook', google translation) - - "˟": [t: "modifier cross accent"] # 0x2df (en: 'modifier cross accent', google translation) - - "ˠ": [t: "modifier small gamma"] # 0x2e0 (en: 'modifier small gamma', google translation) - - "ˡ": [t: "modifier small l"] # 0x2e1 (en: 'modifier small l', google translation) - - "ˢ": [t: "modifier small s"] # 0x2e2 (en: 'modifier small s', google translation) - - "ˣ": [t: "modifier small x"] # 0x2e3 (en: 'modifier small x', google translation) - - "ˤ": [t: "modifier small reversed glottal stop"] # 0x2e4 (en: 'modifier small reversed glottal stop', google translation) - - "˥": [t: "modifier extra-high tone bar"] # 0x2e5 (en: 'modifier extra-high tone bar', google translation) - - "˦": [t: "modifier high tone bar"] # 0x2e6 (en: 'modifier high tone bar', google translation) - - "˧": [t: "modifier mid tone bar"] # 0x2e7 (en: 'modifier mid tone bar', google translation) - - "˨": [t: "modifier low tone bar"] # 0x2e8 (en: 'modifier low tone bar', google translation) - - "˩": [t: "modifier extra-low tone bar"] # 0x2e9 (en: 'modifier extra-low tone bar', google translation) - - "˪": [t: "modifier yin departing tone mark"] # 0x2ea (en: 'modifier yin departing tone mark', google translation) - - "˫": [t: "modifier yang departing tone mark"] # 0x2eb (en: 'modifier yang departing tone mark', google translation) - - "ˬ": [t: "modifier voicing"] # 0x2ec (en: 'modifier voicing', google translation) - - "˭": [t: "modifier unaspirated"] # 0x2ed (en: 'modifier unaspirated', google translation) - - "ˮ": [t: "modifier double apostrophe"] # 0x2ee (en: 'modifier double apostrophe', google translation) - - "˯": [t: "modifier low down arrowhead"] # 0x2ef (en: 'modifier low down arrowhead', google translation) - - "˰": [t: "modifier low up arrowhead"] # 0x2f0 (en: 'modifier low up arrowhead', google translation) - - "˱": [t: "modifier low left arrowhead"] # 0x2f1 (en: 'modifier low left arrowhead', google translation) - - "˲": [t: "modifier low right arrowhead"] # 0x2f2 (en: 'modifier low right arrowhead', google translation) - - "˳": [t: "modifier low ring"] # 0x2f3 (en: 'modifier low ring', google translation) - - "˴": [t: "modifier middle grave accent"] # 0x2f4 (en: 'modifier middle grave accent', google translation) - - "˵": [t: "modifier middle double grave accent"] # 0x2f5 (en: 'modifier middle double grave accent', google translation) - - "˶": [t: "modifier middle double acute accent"] # 0x2f6 (en: 'modifier middle double acute accent', google translation) - - "˷": [t: "modifier low tilde"] # 0x2f7 (en: 'modifier low tilde', google translation) - - "˸": [t: "modifier raised colon"] # 0x2f8 (en: 'modifier raised colon', google translation) - - "˹": [t: "modifier begin high tone"] # 0x2f9 (en: 'modifier begin high tone', google translation) - - "˺": [t: "modifier end high tone"] # 0x2fa (en: 'modifier end high tone', google translation) - - "˻": [t: "modifier begin low tone"] # 0x2fb (en: 'modifier begin low tone', google translation) - - "˼": [t: "modifier end low tone"] # 0x2fc (en: 'modifier end low tone', google translation) - - "˽": [t: "modifier shelf"] # 0x2fd (en: 'modifier shelf', google translation) - - "˾": [t: "modifier open shelf"] # 0x2fe (en: 'modifier open shelf', google translation) - - "˿": [t: "modifier low left arrow"] # 0x2ff (en: 'modifier low left arrow', google translation) - - "̈": [t: "diaeresis embellishment"] # 0x308 (en: 'diaeresis embellishment', google translation) - - "̉": [t: "hook above embellishment"] # 0x309 (en: 'hook above embellishment', google translation) - - "̊": [t: "ring above embellishment"] # 0x30a (en: 'ring above embellishment', google translation) - - "̋": [t: "double acute accent embellishment"] # 0x30b (en: 'double acute accent embellishment', google translation) - - "̌": [T: "check"] # 0x30c (en: 'check', google translation) - - "̍": [t: "vertical line above embellishment"] # 0x30d (en: 'vertical line above embellishment', google translation) - - "̎": [t: "double vertical line above embellishment"] # 0x30e (en: 'double vertical line above embellishment', google translation) - - "̏": [t: "double grave accent embellishment"] # 0x30f (en: 'double grave accent embellishment', google translation) - - "̐": [t: "candrabindu embellishment"] # 0x310 (en: 'candrabindu embellishment', google translation) - - "̑": [t: "inverted breve embellishment"] # 0x311 (en: 'inverted breve embellishment', google translation) - - "̒": [t: "turned comma above embellishment"] # 0x312 (en: 'turned comma above embellishment', google translation) - - "̓": [t: "comma above embellishment"] # 0x313 (en: 'comma above embellishment', google translation) - - "̔": [t: "reversed comma above embellishment"] # 0x314 (en: 'reversed comma above embellishment', google translation) - - "̕": [t: "comma above right embellishment"] # 0x315 (en: 'comma above right embellishment', google translation) - - "̖": [t: "grave accent below embellishment"] # 0x316 (en: 'grave accent below embellishment', google translation) - - "̗": [t: "acute accent below embellishment"] # 0x317 (en: 'acute accent below embellishment', google translation) - - "̘": [t: "left tack below embellishment"] # 0x318 (en: 'left tack below embellishment', google translation) - - "̙": [t: "right tack below embellishment"] # 0x319 (en: 'right tack below embellishment', google translation) - - "̚": [t: "left angle above embellishment"] # 0x31a (en: 'left angle above embellishment', google translation) - - "̛": [t: "horn embellishment"] # 0x31b (en: 'horn embellishment', google translation) - - "̜": [t: "left half ring below embellishment"] # 0x31c (en: 'left half ring below embellishment', google translation) - - "̝": [t: "up tack below embellishment"] # 0x31d (en: 'up tack below embellishment', google translation) - - "̞": [t: "down tack below embellishment"] # 0x31e (en: 'down tack below embellishment', google translation) - - "̟": [t: "plus sign below embellishment"] # 0x31f (en: 'plus sign below embellishment', google translation) - - "̠": [t: "minus sign below embellishment"] # 0x320 (en: 'minus sign below embellishment', google translation) - - "̡": [t: "palatalized hook below embellishment"] # 0x321 (en: 'palatalized hook below embellishment', google translation) - - "̢": [t: "retroflex hook below embellishment"] # 0x322 (en: 'retroflex hook below embellishment', google translation) - - "̣": [t: "dot below embellishment"] # 0x323 (en: 'dot below embellishment', google translation) - - "̤": [t: "diaeresis below embellishment"] # 0x324 (en: 'diaeresis below embellishment', google translation) - - "̥": [t: "ring below embellishment"] # 0x325 (en: 'ring below embellishment', google translation) - - "̦": [t: "comma below embellishment"] # 0x326 (en: 'comma below embellishment', google translation) - - "̧": [t: "cedilla embellishment"] # 0x327 (en: 'cedilla embellishment', google translation) - - "̨": [t: "ogonek embellishment"] # 0x328 (en: 'ogonek embellishment', google translation) - - "̩": [t: "vertical line below embellishment"] # 0x329 (en: 'vertical line below embellishment', google translation) - - "̪": [t: "bridge below embellishment"] # 0x32a (en: 'bridge below embellishment', google translation) - - "̫": [t: "inverted double arch below embellishment"] # 0x32b (en: 'inverted double arch below embellishment', google translation) - - "̬": [t: "caron below embellishment"] # 0x32c (en: 'caron below embellishment', google translation) - - "̭": [t: "circumflex accent below embellishment"] # 0x32d (en: 'circumflex accent below embellishment', google translation) - - "̮": [t: "breve below embellishment"] # 0x32e (en: 'breve below embellishment', google translation) - - "̯": [t: "inverted breve below embellishment"] # 0x32f (en: 'inverted breve below embellishment', google translation) - - "̰": [t: "tilde below embellishment"] # 0x330 (en: 'tilde below embellishment', google translation) - - "̱": [t: "macron below embellishment"] # 0x331 (en: 'macron below embellishment', google translation) - - "̲": [t: "low line embellishment"] # 0x332 (en: 'low line embellishment', google translation) - - "̳": [t: "double low line embellishment"] # 0x333 (en: 'double low line embellishment', google translation) - - "̴": [t: "tilde overlay embellishment"] # 0x334 (en: 'tilde overlay embellishment', google translation) - - "̵": [t: "short stroke overlay embellishment"] # 0x335 (en: 'short stroke overlay embellishment', google translation) - - "̶": [t: "long stroke overlay embellishment"] # 0x336 (en: 'long stroke overlay embellishment', google translation) - - "̷": [t: "short solidus overlay embellishment"] # 0x337 (en: 'short solidus overlay embellishment', google translation) - - "̸": [t: "long solidus overlay embellishment"] # 0x338 (en: 'long solidus overlay embellishment') - - "̹": [t: "right half ring below embellishment"] # 0x339 (en: 'right half ring below embellishment', google translation) - - "̺": [t: "inverted bridge below embellishment"] # 0x33a (en: 'inverted bridge below embellishment', google translation) - - "̻": [t: "square below embellishment"] # 0x33b (en: 'square below embellishment', google translation) - - "̼": [t: "seagull below embellishment"] # 0x33c (en: 'seagull below embellishment', google translation) - - "̽": [t: "x above embellishment"] # 0x33d (en: 'x above embellishment', google translation) - - "̾": [t: "vertical tilde embellishment"] # 0x33e (en: 'vertical tilde embellishment', google translation) - - "̿": [t: "double overline embellishment"] # 0x33f (en: 'double overline embellishment', google translation) - - "̀": [t: "grave tone mark embellishment"] # 0x340 (en: 'grave tone mark embellishment', google translation) - - "́": [t: "acute tone mark embellishment"] # 0x341 (en: 'acute tone mark embellishment', google translation) - - - "ΪΫϏ": # 0x3aa, 0x3ab, 0x3cf - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "大寫"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [SPELL: "translate('.', 'ΪΫϏ', 'ιυϗ')"] - - t: "with dialytika" # (en: 'with dialytika', google translation) - - "ϊ": [t: "iota with dialytika"] # 0x3ca (en: 'iota with dialytika') - - "ϋ": [t: "upsilon with dialytika"] # 0x3cb (en: 'upsilon with dialytika') - - "ό": [t: "omicron with tonos"] # 0x3cc (en: 'omicron with tonos') - - "ύ": [t: "upsilon with tonos"] # 0x3cd (en: 'upsilon with tonos') - - "ώ": [t: "omega with tonos"] # 0x3ce (en: 'omega with tonos') - - "ϐ": [t: "beta"] # 0x3d0 (en: 'beta') - - "ϑ": [t: "theta"] # 0x3d1 (en: 'theta') - - "ϒ": [t: "upsilon with hook"] # 0x3d2 (en: 'upsilon with hook') - - "ϓ": [t: "upsilon with acute and hook"] # 0x3d3 (en: 'upsilon with acute and hook') - - "ϔ": [t: "upsilon with diaeresis and hook"] # 0x3d4 (en: 'upsilon with diaeresis and hook') - - "ϗ": [t: "kai"] # 0x3d7 (en: 'kai') - - "А-Я": # 0x410 - 0x42f - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "大寫"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [SPELL: "translate('.', 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ', 'абвгдежзийклмнопрстуфхцчшщъыьэюя')"] - - "а": [T: "a"] # 0x430 (en: 'a', google translation) - - "б": [T: "be"] # 0x431 (en: 'be', google translation) - - "в": [t: "ve"] # 0x432 (google translation) - - "г": [t: "ghe"] # 0x433 (google translation) - - "д": [t: "de"] # 0x434 (google translation) - - "е": [t: "ie"] # 0x435 (google translation) - - "ж": [t: "zhe"] # 0x436 (google translation) - - "з": [t: "ze"] # 0x437 (google translation) - - "и": [t: "i"] # 0x438 (en: 'i', google translation) - - "й": [t: "short i"] # 0x439 (en: 'short i', google translation) - - "к": [t: "ka"] # 0x43a (en: 'ka', google translation) - - "л": [t: "el"] # 0x43b (google translation) - - "м": [t: "em"] # 0x43c (google translation) - - "н": [t: "en"] # 0x43d (google translation) - - "о": [t: "o"] # 0x43e (en: 'o', google translation) - - "п": [t: "pe"] # 0x43f (google translation) - - "р": [t: "er"] # 0x440 (en: 'er', google translation) - - "с": [t: "es"] # 0x441 (google translation) - - "т": [t: "te"] # 0x442 (google translation) - - "у": [t: "u"] # 0x443 (en: 'u', google translation) - - "ф": [t: "ef"] # 0x444 (google translation) - - "х": [t: "ha"] # 0x445 (en: 'ha', google translation) - - "ц": [t: "tse"] # 0x446 (google translation) - - "ч": [t: "che"] # 0x447 (en: 'che', google translation) - - "ш": [t: "sha"] # 0x448 (en: 'sha', google translation) - - "щ": [t: "shcha"] # 0x449 (google translation) - - "ъ": [t: "hard sign"] # 0x44a (en: 'hard sign', google translation) - - "ы": [t: "yeru"] # 0x44b (google translation) - - "ь": [t: "soft sign"] # 0x44c (en: 'soft sign', google translation) - - "э": [t: "e"] # 0x44d (en: 'e', google translation) - - "ю": [t: "yu"] # 0x44e (google translation) - - "я": [T: "ya"] # 0x44f (en: 'ya', google translation) - - "‐": [T: "連字符"] # 0x2010 (en: 'hyphen', google translation) - - "‑": [T: "連字符"] # 0x2011 (en: 'hyphen', google translation) - - "‒": [t: "圖破折號"] # 0x2012 (en: 'figure dash', google translation) - - "‖": [T: "雙垂直線"] # 0x2016 (en: 'double vertical line', google translation) - - "†": [t: "dagger"] # 0x2020 (en: 'dagger', google translation) - - "‡": [t: "double dagger"] # 0x2021 (en: 'double dagger', google translation) - - - "•": # 0x2022 - - test: - if: "@data-chem-formula-op" - then: [T: "dot"] # (en: 'dot', google translation) - else: [T: "bullet"] # (en: 'bullet', google translation) - - - "‰": [T: "千分"] # 0x2030 (en: 'per mille', google translation) - - "‱": [T: "萬分"] # 0x2031 (en: 'per ten thousand', google translation) - - "′": [T: "prime"] # 0x2032 - - "″": [T: "double prime"] # 0x2033 - - "‴": [T: "triple prime"] # 0x2034 - - "‵": [t: "reversed prime"] # 0x2035 (en: 'reversed prime', google translation) - - "‶": [t: "reversed double prime"] # 0x2036 (en: 'reversed double prime', google translation) - - "‷": [t: "reversed triple prime"] # 0x2037 (en: 'reversed triple prime', google translation) - - "‸": [t: "到"] # 0x2038 (en: 'to the', google translation) - - "‹": [t: "single left pointing angle quote mark"] # 0x2039 (en: 'single left pointing angle quote mark', google translation) - - "›": [t: "single right pointing angle quote mark"] # 0x203a (en: 'single right pointing angle quote mark', google translation) - - "‼": [T: "雙階乘"] # 0x203c (en: 'double factorial', google translation) - - "⁄": [T: "除以"] # 0x2044 (en: 'divided by', google translation) - - "⁅": [T: "帶毛左中括號"] # 0x2045 (en: 'left square bracket with quill', google translation) - - "⁆": [T: "帶毛右中括號"] # 0x2046 (en: 'right square bracket with quill', google translation) - - "⁗": [T: "quadruple prime"] # 0x2057 (en: 'quadruple prime', google translation) - - "⁠": [t: ""] # 0x2060 - - "⁰": [T: "上標零"] # 0x2070 (en: 'to the zeroth power', google translation) - - "ⁱ": [T: "上標1"] # 0x2071 (en: 'to the eihth power', google translation) - - "⁴": [T: "上標4"] # 0x2074 (en: 'to the fourth power', google translation) - - "⁵": [T: "上標5"] # 0x2075 (en: 'to the fifth power', google translation) - - "⁶": [T: "上標6"] # 0x2076 (en: 'to the sixth power', google translation) - - "⁷": [T: "上標7"] # 0x2077 (en: 'to the seventh power', google translation) - - "⁸": [T: "上標8"] # 0x2078 (en: 'to the eighth power', google translation) - - "⁹": [T: "上標9"] # 0x2079 (en: 'to the ninth power', google translation) - - "⁺": [T: "上標加號"] # 0x207a (en: 'superscript plus sign', google translation) - - "⁻": [T: "上標減號"] # 0x207b (en: 'superscript minus', google translation) - - "⁼": [T: "上標等於"] # 0x207c (en: 'superscript equals sign', google translation) - - "⁽": [T: "上標左括號"] # 0x207d (en: 'superscript left parenthesis', google translation) - - "⁾": [T: "上標右括號"] # 0x207e (en: 'superscript right parenthesis', google translation) - - "ⁿ": [T: "上標n"] # 0x207f (en: 'to the ennth power', google translation) - - "₀": [T: "下標0"] # 0x2080 (en: 'sub zero', google translation) - - "₁": [T: "下標1"] # 0x2081 (en: 'sub one', google translation) - - "₂": [T: "下標2"] # 0x2082 (en: 'sub two', google translation) - - "₃": [T: "下標3"] # 0x2083 (en: 'sub three', google translation) - - "₄": [T: "下標4"] # 0x2084 (en: 'sub four', google translation) - - "₅": [T: "下標5"] # 0x2085 (en: 'sub five', google translation) - - "₆": [T: "下標6"] # 0x2086 (en: 'sub six', google translation) - - "₇": [T: "下標7"] # 0x2087 (en: 'sub seven', google translation) - - "₈": [T: "下標8"] # 0x2088 (en: 'sub eight', google translation) - - "₉": [T: "下標9"] # 0x2089 (en: 'sub nine', google translation) - - "₊": [T: "下標加號"] # 0x208a (en: 'subscript plus sign', google translation) - - "₋": [T: "下標減號"] # 0x208b (en: 'subscript minus sign', google translation) - - "₌": [T: "下標等於"] # 0x208c (en: 'subscript equals sign', google translation) - - "₍": [T: "下標左括號"] # 0x208d (en: 'subscript left parenthesis', google translation) - - "₎": [T: "下標右括號"] # 0x208e (en: 'subscript right parenthesis', google translation) - - "ₐ": [T: "下標a"] # 0x2090 (en: 'sub A', google translation) - - "ₑ": [T: "下標e"] # 0x2091 (en: 'sub E', google translation) - - "ₒ": [T: "下標o"] # 0x2092 (en: 'sub O', google translation) - - "ₓ": [T: "下標x"] # 0x2093 (en: 'sub X', google translation) - - "ₕ": [T: "下標h"] # 0x2095 (en: 'sub H', google translation) - - "ₖ": [T: "下標k"] # 0x2096 (en: 'sub K', google translation) - - "ₗ": [T: "下標l"] # 0x2097 (en: 'sub L', google translation) - - "ₘ": [T: "下標m"] # 0x2098 (en: 'sub M', google translation) - - "ₙ": [T: "下標n"] # 0x2099 (en: 'sub N', google translation) - - "ₚ": [T: "下標p"] # 0x209a (en: 'sub P', google translation) - - "ₛ": [T: "下標s"] # 0x209b (en: 'sub S', google translation) - - "ₜ": [T: "下標t"] # 0x209c (en: 'sub T', google translation) - - "₠": [T: "歐洲貨幣單位"] # 0x20a0 (en: 'european currenty units', google translation) - - "₡": [t: "colons"] # 0x20a1 (en: 'colons', google translation) - - "₢": [t: "cruzeiro"] # 0x20a2 (en: 'cruzeiro', google translation) - - "₣": [T: "法郎"] # 0x20a3 (en: 'franc', google translation) - - "₤": [T: "里拉"] # 0x20a4 (en: 'lira', google translation) - - "₥": [t: "mills"] # 0x20a5 (en: 'mills', google translation) - - "₦": [t: "naira"] # 0x20a6 (en: 'naira', google translation) - - "₧": [t: "peseta"] # 0x20a7 (en: 'peseta', google translation) - - "₨": [T: "盧布"] # 0x20a8 (en: 'rupees', google translation) - - "₩": [T: "韓元"] # 0x20a9 (en: 'won', google translation) - - "₪": [t: "new sheqels"] # 0x20aa (en: 'new sheqels', google translation) - - "₫": [t: "dong"] # 0x20ab (en: 'dong', google translation) - - "€": [T: "歐元"] # 0x20ac (en: 'euros', google translation) - - "₭": [t: "kip"] # 0x20ad (google translation) - - "₮": [t: "tugrik"] # 0x20ae (en: 'tugrik', google translation) - - "₯": [t: "drachma"] # 0x20af (en: 'drachma', google translation) - - "₰": [T: "德國便士"] # 0x20b0 (en: 'german pennies', google translation) - - "₱": [T: "比索"] # 0x20b1 (en: 'pesos', google translation) - - "₲": [t: "guaranis"] # 0x20b2 (en: 'guaranis', google translation) - - "₳": [t: "australs"] # 0x20b3 (en: 'australs', google translation) - - "₴": [t: "hryvnias"] # 0x20b4 (google translation) - - "₵": [t: "cedis"] # 0x20b5 (en: 'cedis', google translation) - - "₶": [t: "livre tournois"] # 0x20b6 (en: 'livre tournois', google translation) - - "₷": [t: "spesmilos"] # 0x20b7 (google translation) - - "₸": [t: "tenges"] # 0x20b8 (google translation) - - "₹": [T: "印度盧比"] # 0x20b9 (en: 'indian rupees', google translation) - - "₺": [T: "土耳其里拉"] # 0x20ba (en: 'turkish liras', google translation) - - "⃐": [t: "left harpoon above embellishment"] # 0x20d0 (en: 'left harpoon above embellishment', google translation) - - "⃑": [T: "向量"] # 0x20d1 (en: 'right harpoon above embellishment', google translation) - - "⃒": [t: "long vertical line overlay embellishment"] # 0x20d2 (en: 'long vertical line overlay embellishment', google translation) - - "⃓": [t: "short vertical line overlay embellishment"] # 0x20d3 (en: 'short vertical line overlay embellishment', google translation) - - "⃔": [t: "anticlockwise arrow above embellishment"] # 0x20d4 (en: 'anticlockwise arrow above embellishment', google translation) - - "⃕": [t: "clockwise arrow above embellishment"] # 0x20d5 (en: 'clockwise arrow above embellishment', google translation) - - "⃖": [t: "left arrow above embellishment"] # 0x20d6 (en: 'left arrow above embellishment', google translation) - - "⃗": [t: "right arrow above embellishment"] # 0x20d7 (en: 'right arrow above embellishment', google translation) - - "⃘": [t: "ring overlay embellishment"] # 0x20d8 (en: 'ring overlay embellishment', google translation) - - "⃙": [t: "clockwise ring overlay embellishment"] # 0x20d9 (en: 'clockwise ring overlay embellishment', google translation) - - "⃚": [t: "anticlockwise ring overlay embellishment"] # 0x20da (en: 'anticlockwise ring overlay embellishment', google translation) - - "⃛": [T: "triple dot"] # 0x20db (en: 'triple dot', google translation) - - "⃜": [T: "quadruple dot"] # 0x20dc (en: 'quadruple dot', google translation) - - "⃝": [t: "封閉圓圈點綴"] # 0x20dd (en: 'enclosing circle embellishment', google translation) - - "⃞": [t: "封閉正方形點綴"] # 0x20de (en: 'enclosing square embellishment', google translation) - - "⃟": [t: "封閉鑽石點綴"] # 0x20df (en: 'enclosing diamond embellishment', google translation) - - "⃠": [t: "封閉了圓形閃爍點綴"] # 0x20e0 (en: 'enclosing circle backslash embellishment', google translation) - - "⃡": [t: "左右箭頭上方"] # 0x20e1 (en: 'left right arrow above embellishment', google translation) - - "⃢": [t: "enclosing screen embellishment"] # 0x20e2 (en: 'enclosing screen embellishment', google translation) - - "⃣": [t: "enclosing keycap embellishment"] # 0x20e3 (en: 'enclosing keycap embellishment', google translation) - - "⃤": [t: "封閉向上三角形點綴"] # 0x20e4 (en: 'enclosing upward pointing triangle embellishment', google translation) - - "⃥": [t: "reverse solidus overlay embellishment"] # 0x20e5 (en: 'reverse solidus overlay embellishment', google translation) - - "⃦": [t: "雙垂直中空點綴"] # 0x20e6 (en: 'double verticle stroke embellishment', google translation) - - "⃧": [t: "annuity symbol embellishment"] # 0x20e7 (en: 'annuity symbol embellishment', google translation) - - "⃨": [t: "triple underdot"] # 0x20e8 (en: 'triple underdot', google translation) - - "⃩": [t: "wide bridge above embellishment"] # 0x20e9 (en: 'wide bridge above embellishment', google translation) - - "⃪": [t: "leftwards arrow overlay embellishment"] # 0x20ea (en: 'leftwards arrow overlay embellishment', google translation) - - "⃫": [t: "long double solidus overlay embellishmen"] # 0x20eb (en: 'long double solidus overlay embellishment', google translation) - - "⃬": [t: "rightwards harpoon with barb downwards embellishment"] # 0x20ec (en: 'rightwards harpoon with barb downwards embellishment', google translation) - - "⃭": [t: "leftwards harpoon with barb downwards embellishment"] # 0x20ed (en: 'leftwards harpoon with barb downwards embellishment', google translation) - - "⃮": [t: "下方左箭頭"] # 0x20ee (en: 'left arrow below embellishment', google translation) - - "⃯": [t: "下方右箭頭"] # 0x20ef (en: 'right arrow below embellishment', google translation) - - "⃰": [t: "上方星號"] # 0x20f0 (en: 'asterisk above embellishment', google translation) - - "℄": [t: "中心線符號"] # 0x2104 (en: 'center line symbol', google translation) - - "℅": [t: "care of"] # 0x2105 (en: 'care of', google translation) - - "℆": [t: "cada una"] # 0x2106 (en: 'cada una', google translation) - - "ℇ": [T: "歐拉常數"] # 0x2107 (en: 'euler's constant', google translation) - - "℈": [t: "scruples"] # 0x2108 (en: 'scruples', google translation) - - "℉": [T: "華氏度"] # 0x2109 (en: 'degrees fahrenheit', google translation) - - "ℊ": [T: "草體g"] # 0x210a (en: 'script g', google translation) - - "ℌℑℨℭ": # 0x210c, 0x2111, 0x2128, 0x212d - - T: "fraktur" # (google translation) - - SPELL: "translate('.', 'ℌℑℨℭ', 'HIZC')" - - - "ℍℙℾℿ": # 0x210d, 0x2119, 0x213e, 0x213f - - test: - if: "$Verbosity!='Terse'" - then: [T: "空心"] # (en: 'double struck', google translation) - - SPELL: "translate('.', 'ℍℙℾℿ', 'HPΓΠ')" - - - "ℎ": [T: "普朗克常數"] # 0x210e (en: 'planck constant', google translation) - - "ℏ": # 0x210f - - test: - if: "($Verbosity='Terse')" - then: [T: "h bar"] # (google translation) - else: [T: "約化普朗克常數"] # (en: 'reduced planck constant', google translation) - - - "ℐℒ℘ℬℰℱℳ": # 0x2110, 0x2112, 0x2118, 0x2130, 0x2131, 0x2133 - - T: "草體" # (en: 'script', google translation) - - SPELL: "translate('.', 'ℐℒ℘ℬℰℱℳ', 'ILPBEFM')" - - - "℔": [T: "磅"] # 0x2114 (en: 'pounds', google translation) - - "№": [T: "數字"] # 0x2116 (en: 'number', google translation) - - "℥": [T: "盎司"] # 0x2125 (en: 'ounces', google translation) - - "Ω": [T: "歐姆"] # 0x2126 (en: 'ohms', google translation) - - "℧": [t: "mho"] # 0x2127 (en: 'mhos', google translation) - - "℩": [t: "turned iota"] # 0x2129 (en: 'turned iota', google translation) - - "K": [T: "kelvin"] # 0x212a (en: 'kelvin', google translation) - - "Å": [T: "angstroms"] # 0x212b (en: 'angstroms', google translation) - - "ℯ": [T: "草體e"] # 0x212f (en: 'script e', google translation) - - # coalesced some chars that use cap letters - - "Ⅎ℺⅁⅂⅃⅄": # 0x2132, 0x213a, 0x2141, 0x2142, 0x2143, 0x2144 - - test: - - if: "'.' = '℺'" - then: [T: "旋轉"] # (en: 'rotated', google translation) - - else_if: "'.' = 'Ⅎ'" - then: [T: "翻身"] # (en: 'turned', google translation) - - else_if: "'.' = '⅃'" - then: [T: "左右反向sanserif"] # (en: 'reversed sans-serif', google translation) - else: [T: "翻身sanserif"] # (en: 'turned sans-serif', google translation) - - SPELL: "translate('.', 'Ⅎ℺⅁⅂⅃⅄', 'FQGLLY')" - - - "ℴ": [T: "草體o"] # 0x2134 (en: 'script o', google translation) - - "ℵ": [T: "第一transfinite cardinal"] # 0x2135 (en: 'first transfinite cardinal', google translation) - - "ℶ": [T: "第二transfinite cardinal"] # 0x2136 (en: 'second transfinite cardinal', google translation) - - "ℷ": [T: "第三transfinite cardinal"] # 0x2137 (en: 'third transfinite cardinal', google translation) - - "ℸ": [T: "第四transfinite cardinal"] # 0x2138 (en: 'fourth transfinite cardinal', google translation) - - "ℼ": [T: "空心pi"] # 0x213c (en: 'double struck pi', google translation) - - "ℽ": [T: "空心伽瑪"] # 0x213d (en: 'double struck gamma', google translation) - - "⅀": [T: "空心總和"] # 0x2140 (en: 'double struck n-ary summation', google translation) - - "⅋": [T: "轉向ampersand"] # 0x214b (en: 'turned ampersand', google translation) - - "⅌": [T: "每"] # 0x214c (en: 'per', google translation) - - "ⅎ": [T: "翻身f"] # 0x214e (en: 'turned F', google translation) - - "⅐": [T: "七分之1"] # 0x2150 (en: 'one seventh', google translation) - - "⅑": [T: "九分之1"] # 0x2151 (en: 'one ninth', google translation) - - "⅒": [T: "十分之1"] # 0x2152 (en: 'one tenth', google translation) - - "⅓": [T: "三分之1"] # 0x2153 (en: 'one third', google translation) - - "⅔": [T: "三分之2"] # 0x2154 (en: 'two thirds', google translation) - - "⅕": [T: "五分之1"] # 0x2155 (en: 'one fifth', google translation) - - "⅖": [T: "五分之2"] # 0x2156 (en: 'two fifths', google translation) - - "⅗": [T: "五分之3"] # 0x2157 (en: 'three fifths', google translation) - - "⅘": [T: "五分之4"] # 0x2158 (en: 'four fifths', google translation) - - "⅙": [T: "六分之1"] # 0x2159 (en: 'one sixth', google translation) - - "⅚": [T: "六分之5"] # 0x215a (en: 'five sixths', google translation) - - "⅛": [T: "八分之1"] # 0x215b (en: 'one eighth', google translation) - - "⅜": [T: "八分之3"] # 0x215c (en: 'three eighths', google translation) - - "⅝": [T: "八分之5"] # 0x215d (en: 'five eighths', google translation) - - "⅞": [T: "八分之7"] # 0x215e (en: 'seven eighths', google translation) - - "⅟": [t: "one over"] # 0x215f (en: 'one over', google translation) - - "Ⅰ": [T: "Ⅰ"] # 0x2160 (en: 'I', google translation) - - "Ⅱ": [T: "I I"] # 0x2161 (en: 'I I', google translation) - - "Ⅲ": [T: "I I I"] # 0x2162 (en: 'I I I', google translation) - - "Ⅳ": [T: "I V"] # 0x2163 (en: 'I V', google translation) - - "Ⅴ": [T: "V"] # 0x2164 (en: 'V', google translation) - - "Ⅵ": [T: "V I"] # 0x2165 (en: 'V I', google translation) - - "Ⅶ": [T: "V I I"] # 0x2166 (en: 'V I I', google translation) - - "Ⅷ": [T: "V I I I"] # 0x2167 (en: 'V I I I', google translation) - - "Ⅸ": [T: "I X"] # 0x2168 (en: 'I X', google translation) - - "Ⅹ": [T: "X"] # 0x2169 (en: 'X', google translation) - - "Ⅺ": [T: "X I"] # 0x216a (en: 'X I', google translation) - - "Ⅻ": [T: "X I I"] # 0x216b (en: 'X I I', google translation) - - "Ⅼ": [T: "L"] # 0x216c (en: 'L', google translation) - - "Ⅽ": [T: "C"] # 0x216d (en: 'C', google translation) - - "Ⅾ": [T: "D"] # 0x216e (en: 'D', google translation) - - "Ⅿ": [T: "M"] # 0x216f (en: 'M', google translation) - - "ⅰ": [T: "i"] # 0x2170 (en: 'I', google translation) - - "ⅱ": [T: "i i"] # 0x2171 (en: 'I I', google translation) - - "ⅲ": [T: "i i i"] # 0x2172 (en: 'I I I', google translation) - - "ⅳ": [T: "i v"] # 0x2173 (en: 'I V', google translation) - - "ⅴ": [T: "v"] # 0x2174 (en: 'V', google translation) - - "ⅵ": [T: "v i"] # 0x2175 (en: 'V I', google translation) - - "ⅶ": [T: "v i i"] # 0x2176 (en: 'V I I', google translation) - - "ⅷ": [T: "v i i i"] # 0x2177 (en: 'V I I I', google translation) - - "ⅸ": [T: "i x"] # 0x2178 (en: 'I X', google translation) - - "ⅹ": [T: "x"] # 0x2179 (en: 'X', google translation) - - "ⅺ": [T: "x i"] # 0x217a (en: 'X I', google translation) - - "ⅻ": [T: "x i i"] # 0x217b (en: 'X I I', google translation) - - "ⅼ": [T: "l"] # 0x217c (en: 'L', google translation) - - "ⅽ": [T: "c"] # 0x217d (en: 'C', google translation) - - "ⅾ": [T: "d"] # 0x217e (en: 'D', google translation) - - "ⅿ": [T: "m"] # 0x217f (en: 'M', google translation) - - "↉": [T: "三分之0"] # 0x2189 (en: 'zero thirds', google translation) - - "←": [T: "左箭頭"] # 0x2190 (en: 'leftwards arrow', google translation) - - "↑": [T: "向上箭頭"] # 0x2191 (en: 'upwards arrow', google translation) - - "↓": [T: "向下箭頭"] # 0x2193 (en: 'downwards arrow', google translation) - - "↔": [T: "左右雙箭頭"] # 0x2194 (en: 'left right arrow') - - "↕": [T: "上下雙箭頭"] # 0x2195 (en: 'up down arrow', google translation) - - "↖": [T: "左上箭頭"] # 0x2196 (en: 'north west arrow', google translation) - - "↗": # 0x2197 - - test: - if: "ancestor::*[2][self::m:limit]" - then: [T: "從下方趨近"] # (en: 'approaches from below', google translation) - else: [T: "右上箭頭"] # (en: 'north east arrow', google translation) - - - "↘": # 0x2198 - - test: - if: "ancestor::*[2][self::m:limit]" - then: [T: "從上方趨近"] # (en: 'approaches from above', google translation) - else: [T: "右下箭頭"] # (en: 'south east arrow', google translation) - - - "↙": [T: "左下箭頭"] # 0x2199 (en: 'south west arrow', google translation) - - "↚": [T: "帶撇左箭頭"] # 0x219a (en: 'leftwards arrow with stroke', google translation) - - "↛": [T: "帶撇右箭頭"] # 0x219b (en: 'rightwards arrow with stroke', google translation) - - "↜": [T: "向左波浪箭頭"] # 0x219c (en: 'leftwards wave arrow', google translation) - - "↝": [T: "向右波浪箭頭"] # 0x219d (en: 'rightwards wave arrow', google translation) - - "↞": [T: "向左雙箭頭"] # 0x219e (en: 'leftwards two headed arrow', google translation) - - "↟": [T: "向上雙箭頭"] # 0x219f (en: 'upwards two headed arrow', google translation) - - "↠": [T: "向右雙箭頭"] # 0x21a0 (en: 'rightwards two headed arrow', google translation) - - "↡": [T: "向下雙箭頭"] # 0x21a1 (en: 'downwards two headed arrow', google translation) - - "↢": [T: "有尾巴左箭頭"] # 0x21a2 (en: 'leftwards arrow with tail', google translation) - - "↣": [T: "有尾巴右箭頭"] # 0x21a3 (en: 'rightwards arrow with tail', google translation) - - "↤": [T: "左箭頭尾直線"] # 0x21a4 (en: 'leftwards arrow from bar', google translation) - - "↥": [T: "向上箭頭尾直線"] # 0x21a5 (en: 'upwards arrow from bar', google translation) - - "↦": [T: "右箭頭的箭頭"] # 0x21a6 (en: 'rightwards arrow from bar', google translation) - - "↧": [T: "向下箭頭尾直線"] # 0x21a7 (en: 'downwards arrow from bar', google translation) - - "↨": [T: "上下雙箭頭有底線"] # 0x21a8 (en: 'up down arrow with base', google translation) - - "↩": [T: "帶鉤向左箭頭"] # 0x21a9 (en: 'leftwards arrow with hook', google translation) - - "↪": [T: "帶鉤向右箭頭"] # 0x21aa (en: 'rightwards arrow with hook', google translation) - - "↫": [T: "帶環左箭頭"] # 0x21ab (en: 'leftwards arrow with loop', google translation) - - "↬": [T: "帶環右箭頭"] # 0x21ac (en: 'rightwards arrow with loop', google translation) - - "↭": [T: "左右波浪箭頭"] # 0x21ad (en: 'left right wave arrow', google translation) - - "↮": [T: "帶撇左右雙箭頭"] # 0x21ae (en: 'left right arrow with stroke', google translation) - - "↯": [T: "向下曲折箭頭"] # 0x21af (en: 'downwards zigzag arrow', google translation) - - "↰": [T: "向上轉左箭頭"] # 0x21b0 (en: 'upwards arrow with tip leftwards', google translation) - - "↱": [T: "向上轉右箭頭"] # 0x21b1 (en: 'upwards arrow with tip rightwards', google translation) - - "↲": [T: "向下轉左箭頭"] # 0x21b2 (en: 'downwards arrow with tip leftwards', google translation) - - "↳": [T: "向下轉右箭頭"] # 0x21b3 (en: 'downwards arrow with tip rightwards', google translation) - - "↴": [T: "向右轉下箭頭"] # 0x21b4 (en: 'rightwards arrow with corner downwards', google translation) - - "↵": [T: "下轉左箭頭"] # 0x21b5 (en: 'downwards arrow with corner leftwards', google translation) - - "↶": [T: "逆時針往左半圓箭頭"] # 0x21b6 (en: 'anticlockwise top semicircle arrow', google translation) - - "↷": [T: "順時針往右半圓箭頭"] # 0x21b7 (en: 'clockwise top semicircle arrow', google translation) - - "↸": [t: "左上箭頭到橫線"] # 0x21b8 (en: 'north west arrow to long bar', google translation) - - "↹": [t: "上方左箭頭到垂線下方右箭頭到垂線"] # 0x21b9 (en: 'leftwards arrow to bar over rightwards arrow to bar', google translation) - - "↺": [t: "逆時針開放圓箭頭"] # 0x21ba (en: 'anticlockwise open circle arrow', google translation) - - "↻": [t: "順時針開放圓箭頭"] # 0x21bb (en: 'clockwise open circle arrow', google translation) - - "↼": [t: "向左魚叉尖朝上"] # 0x21bc (en: 'left harpoon up', google translation) - - "↽": [t: "向左魚叉尖朝下"] # 0x21bd (en: 'left harpoon down', google translation) - - "↾": [t: "向上魚叉尖朝右"] # 0x21be (en: 'up harpoon right', google translation) - - "↿": [t: "向上魚叉尖朝左"] # 0x21bf (en: 'up harpoon left', google translation) - - "⇀": [t: "向量"] # 0x21c0 (en: 'right harpoon up') - - "⇁": [t: "向右魚叉尖朝下"] # 0x21c1 (en: 'right harpoon down', google translation) - - "⇂": [t: "向下魚叉尖朝右"] # 0x21c2 (en: 'down harpoon right', google translation) - - "⇃": [t: "向下魚叉尖朝左"] # 0x21c3 (en: 'down harpoon left', google translation) - - "⇄": [t: "上方右箭頭下方左箭頭"] # 0x21c4 (en: 'rightwards arrow over leftwards arrow', google translation) - - "⇅": [t: "左方向上右方向下箭頭"] # 0x21c5 (en: 'upwards arrow leftwards of downwards arrow', google translation) - - "⇆": [t: "上方向左下方向右箭頭"] # 0x21c6 (en: 'leftwards arrow over rightwards arrow', google translation) - - "⇇": [t: "向左成對箭頭"] # 0x21c7 (en: 'leftwards paired arrows', google translation) - - "⇈": [t: "向上成對箭頭"] # 0x21c8 (en: 'upwards paired arrows', google translation) - - "⇉": [t: "向右成對箭頭"] # 0x21c9 (en: 'rightwards paired arrows', google translation) - - "⇊": [t: "向下成對箭頭"] # 0x21ca (en: 'downwards paired arrows', google translation) - - "⇋": [t: "上方向左下方向右魚叉"] # 0x21cb (en: 'left harpoon over right harpoon', google translation) - - "⇌": [t: "上方向右下方向左魚叉"] # 0x21cc (en: 'right harpoon over left harpoon', google translation) - - "⇍": [t: "帶撇向左粗箭頭"] # 0x21cd (en: 'leftwards double arrow with stroke', google translation) - - "⇎": [t: "帶撇左右粗箭頭"] # 0x21ce (en: 'left right double arrow with stroke', google translation) - - "⇏": [t: "帶撇向右粗箭頭"] # 0x21cf (en: 'rightwards double arrow with stroke', google translation) - - "⇐": [t: "向左粗箭頭"] # 0x21d0 (en: 'leftwards double arrow', google translation) - - "⇑": [t: "向上粗箭頭"] # 0x21d1 (en: 'upwards double arrow', google translation) - - "⇓": [t: "向下粗箭頭"] # 0x21d3 (en: 'downwards double arrow', google translation) - - "⇔": [t: "左右粗箭頭"] # 0x21d4 (en: 'left right double arrow', google translation) - - "⇕": [t: "上下粗箭頭"] # 0x21d5 (en: 'up down double arrow', google translation) - - "⇖": [t: "左上粗箭頭"] # 0x21d6 (en: 'north west double arrow', google translation) - - "⇗": [t: "右上粗箭頭"] # 0x21d7 (en: 'north east double arrow', google translation) - - "⇘": [t: "右下粗箭頭"] # 0x21d8 (en: 'south east double arrow', google translation) - - "⇙": [t: "左下粗箭頭"] # 0x21d9 (en: 'south west double arrow', google translation) - - "⇚": [t: "向左重箭頭"] # 0x21da (en: 'leftwards triple arrow', google translation) - - "⇛": [t: "向右重箭頭"] # 0x21db (en: 'rightwards triple arrow', google translation) - - "⇜": [t: "向左花箭頭"] # 0x21dc (en: 'leftwards squiggle arrow', google translation) - - "⇝": [t: "向右花箭頭"] # 0x21dd (en: 'rightwards squiggle arrow', google translation) - - "⇞": [t: "雙撇向上箭頭"] # 0x21de (en: 'upwards arrow with double stroke', google translation) - - "⇟": [t: "雙撇向下箭頭"] # 0x21df (en: 'downwards arrow with double stroke', google translation) - - "⇠": [t: "向左虛線箭頭"] # 0x21e0 (en: 'leftwards dashed arrow', google translation) - - "⇡": [t: "向上虛線箭頭"] # 0x21e1 (en: 'upwards dashed arrow', google translation) - - "⇢": [t: "向右虛線箭頭"] # 0x21e2 (en: 'rightwards dashed arrow', google translation) - - "⇣": [t: "向下虛線箭頭"] # 0x21e3 (en: 'downwards dashed arrow', google translation) - - "⇤": [t: "向左箭頭到垂線"] # 0x21e4 (en: 'leftwards arrow to bar', google translation) - - "⇥": [t: "向右箭頭到垂線"] # 0x21e5 (en: 'rightwards arrow to bar', google translation) - - "⇦": [t: "左白箭頭"] # 0x21e6 (en: 'leftwards white arrow', google translation) - - "⇧": [t: "向上空心箭頭"] # 0x21e7 (en: 'upwards white arrow', google translation) - - "⇨": [t: "向右空心箭頭"] # 0x21e8 (en: 'rightwards white arrow', google translation) - - "⇩": [t: "向下空心箭頭"] # 0x21e9 (en: 'downwards white arrow', google translation) - - "⇪": [t: "起頭橫線向上空心箭頭"] # 0x21ea (en: 'upwards white arrow from bar', google translation) - - "⇫": [t: "有座向上空心箭頭"] # 0x21eb (en: 'upwards white arrow on pedestal', google translation) - - "⇬": [t: "有座向上空心橫線箭頭"] # 0x21ec (en: 'upwards white arrow on pedestal with horizontal bar', google translation) - - "⇭": [t: "有座向上中心垂線空心箭頭"] # 0x21ed (en: 'upwards white arrow on pedestal with vertical bar', google translation) - - "⇮": [t: "向上空心雙箭頭"] # 0x21ee (en: 'upwards white double arrow', google translation) - - "⇯": [t: "有座向上空心雙箭頭"] # 0x21ef (en: 'upwards white double arrow on pedestal', google translation) - - "⇰": [t: "有座向空心箭頭"] # 0x21f0 (en: 'rightwards white arrow from wall', google translation) - - "⇱": [t: "左上箭頭到拐角"] # 0x21f1 (en: 'north west arrow to corner', google translation) - - "⇲": [t: "右下箭頭到拐角"] # 0x21f2 (en: 'south east arrow to corner', google translation) - - "⇳": [t: "上下空心箭頭"] # 0x21f3 (en: 'up down white arrow', google translation) - - "⇴": [t: "右箭頭有小圓圈"] # 0x21f4 (en: 'right arrow with small circle', google translation) - - "⇵": [t: "左方向下右方向上箭頭"] # 0x21f5 (en: 'downwards arrow leftwards of upwards arrow', google translation) - - "⇶": [t: "三個向右箭頭"] # 0x21f6 (en: 'three rightwards arrows', google translation) - - "⇷": [t: "左箭頭帶有垂直衝程"] # 0x21f7 (en: 'leftwards arrow with vertical stroke', google translation) - - "⇸": [t: "垂直中風的右箭頭"] # 0x21f8 (en: 'rightwards arrow with vertical stroke', google translation) - - "⇹": [t: "左右箭頭帶有垂線"] # 0x21f9 (en: 'left right arrow with vertical stroke', google translation) - - "⇺": [t: "向左箭頭帶有二垂線"] # 0x21fa (en: 'leftwards arrow with double vertical stroke', google translation) - - "⇻": [t: "向右箭頭帶有二垂線"] # 0x21fb (en: 'rightwards arrow with double vertical stroke', google translation) - - "⇼": [t: "左右箭頭帶有二垂線"] # 0x21fc (en: 'left right arrow with double vertical stroke', google translation) - - "⇽": [t: "向左開頭箭頭"] # 0x21fd (en: 'leftwards open headed arrow', google translation) - - "⇾": [t: "向右開頭箭頭"] # 0x21fe (en: 'rightwards open headed arrow', google translation) - - "⇿": [t: "左右開頭箭頭"] # 0x21ff (en: 'left right open headed arrow', google translation) - - "∁": # 0x2201 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'the', google translation) - - T: "補集" # (en: 'complement of') - - "∃": [T: "存在"] # 0x2203 (en: 'there exists') - - "∄": [T: "不存在"] # 0x2204 (en: 'there does not exist') - - "∅": [T: "空集合"] # 0x2205 (en: 'empty set') - - "∇": # 0x2207 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'the', google translation) - - T: "梯度" # (en: 'gradient of') - - "∋": [T: "包含"] # 0x220b (en: 'contains the member') - - "∌": [T: "不包含"] # 0x220c (en: 'does not contain the member') - - "∍": [T: "包含"] # 0x220d (en: 'contains the member') - - "∎": [T: "結束證明"] # 0x220e (en: 'end of proof') - - "∏": [T: "積"] # 0x220f (en: 'product') - - "∐": [T: "餘積"] # 0x2210 (en: 'coproduct') - - "∑": [T: "和"] # 0x2211 (en: 'sum') - - "−": [T: "減"] # 0x2212 (en: 'minus') - - "∓": [T: "減加號"] # 0x2213 (en: 'minus or plus') - - "∔": [T: "點加號"] # 0x2214 (en: 'dot plus') - - "∕": [T: "除以"] # 0x2215 (en: 'divided by') - - "∖": [T: "差集"] # 0x2216 (en: 'set minus') - - "∗": [T: "乘"] # 0x2217 (en: 'times', google translation) - - "∘": [T: "合成"] # 0x2218 (en: 'composed with') - - "∙": # 0x2219 - - test: - if: "@data-chem-formula-op" - then: [T: "dot"] # (en: 'dot', google translation) - else: [T: "乘"] # (en: 'times') - - - "∛": # 0x221b - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'the', google translation) - - T: "開立方根" # (en: 'cube root of') - - "∜": # 0x221c - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'the', google translation) - - T: "開四次方根" # (en: 'fourth root of') - - "∞": [T: "無限大"] # 0x221e (en: 'infinity') - - "∟": [T: "直角"] # 0x221f (en: 'right angle') - - "∠": [T: "角"] # 0x2220 (en: 'angle') - - "∡": [T: "測量角"] # 0x2221 (en: 'measured angle') - - "∢": [T: "球面角"] # 0x2222 (en: 'spherical angle') - - "∣": [T: "整除"] # 0x2223 (en: 'divides') - - "∤": [T: "不整除"] # 0x2224 (en: 'does not divide') - - "∩": [T: "交集"] # 0x2229 (en: 'intersection') - - "∪": [T: "聯集"] # 0x222a (en: 'union') - - "∫": [T: "積分"] # 0x222b (en: 'integral') - - "∬": [T: "雙重積分"] # 0x222c (en: 'double integral') - - "∭": [T: "三重積分"] # 0x222d (en: 'triple integral') - - "∮": [T: "輪廓積分"] # 0x222e (en: 'contour integral') - - "∯": [T: "曲面積分"] # 0x222f (en: 'surface integral') - - "∰": [T: "立體積分"] # 0x2230 (en: 'volume integral') - - "∱": [T: "順時針積分"] # 0x2231 (en: 'clockwise integral') - - "∲": [T: "順時針輪廓積分"] # 0x2232 (en: 'clockwise contour integral') - - "∳": [T: "逆時針輪廓積分"] # 0x2233 (en: 'anticlockwise contour integral') - - "∴": [T: "所以"] # 0x2234 (en: 'therefore') - - "∵": [T: "因為"] # 0x2235 (en: 'because') - - "∷": [T: "當成"] # 0x2237 (en: 'as') - - "∸": [T: "點負號"] # 0x2238 (en: 'dot minus') - - "∹": [T: "超出"] # 0x2239 (en: 'has excess compared to') - - "∺": # 0x223a - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "幾何正比於" # (en: 'geometrically proportional to') - - "∻": # 0x223b - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "同位" # (en: 'homothetic to') - - "∼": [T: "波浪符"] # 0x223c (en: 'varies with') - - "∽": [T: "反波浪符"] # 0x223d (en: 'reversed tilde') - - "∿": [T: "正弦波型"] # 0x223f (en: 'sine wave') - - "≀": [t: "wreath product"] # 0x2240 (en: 'wreath product') - - "≁": [t: "not tilde"] # 0x2241 (en: 'not tilde') - - "≂": [t: "minus tilde"] # 0x2242 (en: 'minus tilde') - - "≃": # 0x2243 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "漸近等於" # (en: 'asymptotically equal to') - - "≄": # 0x2244 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不漸近等於" # (en: 'not asymptotically equal to') - - "≅": # 0x2245 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "近似等於" # (en: 'approximately equal to') - - "≆": # 0x2246 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "近似但不真等於" # (en: 'approximately but not actually equal to') - - "≇": # 0x2247 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不近似且不真等於" # (en: 'neither approximately nor actually equal to') - - "≈": # 0x2248 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "約等於" # (en: 'almost equal to') - - "≉": # 0x2249 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不約等於" # (en: 'not almost equal to') - - "≊": # 0x224a - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "約等於或等於" # (en: 'almost equal or equal to') - - "≋": [T: "三重波浪符"] # 0x224b (en: 'triple tilde') - - "≌": [T: "全等於"] # 0x224c (en: 'are all equal to') - - "≍": # 0x224d - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "等價於" # (en: 'equivalent to') - - "≎": # 0x224e - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "幾何等於" # (en: 'geometrically equivalent to') - - "≏": # 0x224f - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'the', google translation) - - T: "相差" # (en: 'difference between') - - "≐": [T: "近似於"] # 0x2250 (en: 'approaches the limit') - - "≑": # 0x2251 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "幾何等於" # (en: 'geometrically equal to') - - "≒": # 0x2252 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "近似於或像" # (en: 'approximately equal to or the image of') - - "≓": # 0x2253 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is the', google translation) - - T: "像或近似於" # (en: 'image of or approximately equal to') - - "≔": [T: "冒號等號"] # 0x2254 (en: 'colon equals') - - "≕": [T: "等號冒號"] # 0x2255 (en: 'equals colon') - - "≖": [T: "等於中有圓圈"] # 0x2256 (en: 'ring in equal to') - - "≗": # 0x2257 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "等於上方有圈圈" # (en: 'approximately equal to') - - "≘": [T: "對應"] # 0x2258 (en: 'corresponds to') - - "≙": [T: "估計"] # 0x2259 (en: 'estimates') - - "≚": # 0x225a - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "等角於" # (en: 'equiangular to') - - "≛": [T: "星等於"] # 0x225b (en: 'star equals') - - "≜": [T: "delta等於"] # 0x225c (en: 'delta equals') - - "≝": [T: "按定義為"] # 0x225d (en: 'is defined to be') - - "≞": # 0x225e - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "測量" # (en: 'measured by') - - "≟": [T: "問號等於"] # 0x225f (en: 'has an unknown relationship with') - - "≢": # 0x2262 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不恆等於" # (en: 'not identical to') - - "≣": # 0x2263 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "完全等於" # (en: 'strictly equivalent to') - - "≨": # 0x2268 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "小於但不等於" # (en: 'less than but not equal to') - - "≩": # 0x2269 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "大於但不等於" # (en: 'greater than but not equal to') - - "≪": # 0x226a - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "遠小於" # (en: 'much less than') - - "≫": # 0x226b - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "遠大於" # (en: 'much greater than') - - "≬": # 0x226c - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "介於" # (en: 'between') - - "≭": # 0x226d - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不等價於" # (en: 'not equivalent to') - - "≮": # 0x226e - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不小於" # (en: 'not less than') - - "≯": # 0x226f - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不大於" # (en: 'not greater than') - - "≰": # 0x2270 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不小於或等於" # (en: 'neither less than nor equal to') - - "≱": # 0x2271 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不大於或等於" # (en: 'neither greater than nor equal to') - - "≲": # 0x2272 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "小於或等價於" # (en: 'less than or equivalent to') - - "≳": # 0x2273 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "大於或等價於" # (en: 'greater than or equivalent to') - - "≴": # 0x2274 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不小於等價於" # (en: 'neither less than nor equivalent to') - - "≵": # 0x2275 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不大於等價於" # (en: 'neither greater than nor equivalent to') - - "≶": # 0x2276 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "小於或大於" # (en: 'less than or greater than') - - "≷": # 0x2277 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "大於或小於" # (en: 'greater than or less than') - - "≸": # 0x2278 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不小於不大於" # (en: 'neither less than nor greater than') - - "≹": # 0x2279 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不大於不小於" # (en: 'neither greater than nor less than') - - "≺": [T: "先於"] # 0x227a (en: 'precedes') - - "≻": [T: "後於"] # 0x227b (en: 'succeeds') - - "≼": [T: "先於或等於"] # 0x227c (en: 'precedes or is equal to') - - "≽": [T: "後於或等於"] # 0x227d (en: 'succeeds or is equal to') - - "≾": [T: "先於或等價於"] # 0x227e (en: 'precedes or is equivalent to') - - "≿": [T: "後於或等價於"] # 0x227f (en: 'succeeds or is equivalent to') - - "⊀": [T: "不先於"] # 0x2280 (en: 'does not precede') - - "⊁": [T: "不後於"] # 0x2281 (en: 'does not succeed') - - "⊈": # 0x2288 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不包含於也不等於" # (en: 'neither a subset of nor equal to') - - "⊉": # 0x2289 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不包含也不等於" # (en: 'neither a superset of nor equal to') - - "⊊": [T: "真包含於"] # 0x228a (en: 'subset of with not equal to') - - "⊋": [T: "真包含"] # 0x228b (en: 'superset of with not equal to') - - "⊌": [T: "多重集"] # 0x228c (en: 'multiset') - - "⊍": [T: "多重集乘積"] # 0x228d (en: 'multiset multiplication') - - "⊎": [T: "多重集聯集"] # 0x228e (en: 'multiset union') - - "⊏": [t: "方形像"] # 0x228f (en: 'square image of') - - "⊐": [t: "方形原"] # 0x2290 (en: 'square original of') - - "⊑": [t: "方形像或等於"] # 0x2291 (en: 'square image of or equal to') - - "⊒": [t: "方形原或等於"] # 0x2292 (en: 'square original of or equal to') - - "⊓": [t: "方形帽"] # 0x2293 (en: 'square cap') - - "⊔": [t: "方形杯"] # 0x2294 (en: 'square cup') - - "⊕": [T: "圈內加號"] # 0x2295 (en: 'circled plus') - - "⊖": [T: "圈內減號"] # 0x2296 (en: 'circled minus') - - "⊗": [T: "圈內乘號"] # 0x2297 (en: 'circled times') - - "⊘": [T: "圈內正斜線"] # 0x2298 (en: 'circled slash') - - "⊙": [T: "圈內點"] # 0x2299 (en: 'circled dot operator') - - "⊚": [T: "圈內環"] # 0x229a (en: 'circled ring') - - "⊛": [T: "圈內星號"] # 0x229b (en: 'circled asterisk') - - "⊜": [T: "圈內等號"] # 0x229c (en: 'circled equals') - - "⊝": [T: "圈內長劃"] # 0x229d (en: 'circled dash') - - "⊞": [T: "方塊內加號"] # 0x229e (en: 'squared plus') - - "⊟": [T: "方塊內減號"] # 0x229f (en: 'squared minus') - - "⊠": [T: "方塊內乘號"] # 0x22a0 (en: 'squared times') - - "⊡": [T: "方塊內點"] # 0x22a1 (en: 'squared dot operator') - - "⊢": [t: "proves"] # 0x22a2 (en: 'proves') - - "⊣": [t: "does not yield"] # 0x22a3 (en: 'does not yield') - - "⊤": [t: "top"] # 0x22a4 (en: 'top') - - "⊥": # 0x22a5 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "垂直" # (en: 'bottom') - - "⊦": [t: "化簡"] # 0x22a6 (en: 'reduces to') - - "⊧": [t: "模型"] # 0x22a7 (en: 'models') - - "⊨": # 0x22a8 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "真" # (en: 'true') - - "⊩": [t: "強制"] # 0x22a9 (en: 'forces') - - "⊪": [t: "triple vertical bar right turnstile"] # 0x22aa (en: 'triple vertical bar right turnstile') - - "⊫": [t: "double vertical bar double right turnstile"] # 0x22ab (en: 'double vertical bar double right turnstile') - - "⊬": [t: "does not prove"] # 0x22ac (en: 'does not prove') - - "⊭": # 0x22ad - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不真" # (en: 'not true') - - "⊮": [t: "does not force"] # 0x22ae (en: 'does not force') - - "⊯": [t: "negated double vertical bar double right turnstile"] # 0x22af (en: 'negated double vertical bar double right turnstile') - - "⊰": [t: "先於下關係"] # 0x22b0 (en: 'precedes under relation') - - "⊱": [t: "超於下關係"] # 0x22b1 (en: 'succeeds under relation') - - "⊲": # 0x22b2 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "正規子群" # (en: 'a normal subgroup of') - - "⊳": [t: "contains as a normal subgroup"] # 0x22b3 (en: 'contains as a normal subgroup') - - "⊴": # 0x22b4 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "正規子群或等於" # (en: 'a normal subgroup of or equal to') - - "⊵": [t: "contains as a normal subgroup or equal to"] # 0x22b5 (en: 'contains as a normal subgroup or equal to') - - "⊶": # 0x22b6 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "原" # (en: 'the original of') - - "⊷": # 0x22b7 - - test: - if: "$Verbosity!='Terse'" - then: [t: ""] # (en: 'is', google translation) - - t: "像" # (en: 'an image of') - - "⊸": [t: "多重映射"] # 0x22b8 (en: 'multimap') - - "⊹": [t: "hermitian共軛矩陣"] # 0x22b9 (en: 'hermitian conjugate matrix') - - "⊺": [t: "intercalate"] # 0x22ba (en: 'intercalate') - - "⊻": [t: "xor"] # 0x22bb (en: 'xor') - - "⊼": [t: "nand"] # 0x22bc (en: 'nand') - - "⊽": [t: "nor"] # 0x22bd (en: 'nor') - - "⊾": [t: "帶有弧的直角"] # 0x22be (en: 'right angle with arc') - - "⊿": [t: "直角三角形"] # 0x22bf (en: 'right triangle') - - "⋀": [T: "邏輯且"] # 0x22c0 (en: 'logical and') - - "⋁": [T: "邏輯或"] # 0x22c1 (en: 'logical or') - - "⋂": [T: "交集"] # 0x22c2 (en: 'intersection') - - "⋃": [T: "聯集"] # 0x22c3 (en: 'union') - - "⋄": [T: "菱形運算符"] # 0x22c4 (en: 'diamond operator') - - "⋅": # 0x22c5 - - test: - if: "@data-chem-formula-op" - then: [T: "dot"] # (en: 'dot', google translation) - else: [T: "乘"] # (en: 'times') - - - "⋆": [T: "星號運算符"] # 0x22c6 (en: 'times') - - "⋇": [T: "乘除號"] # 0x22c7 (en: 'division times') - - "⋈": [t: "蝴蝶結"] # 0x22c8 (en: 'bowtie') - - "⋉": # 0x22c9 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - t: "the left normal factor semidirect product of" # (en: 'the left normal factor semidirect product of') - - "⋊": # 0x22ca - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - t: "the right normal factor semidirect product of" # (en: 'the right normal factor semidirect product of') - - "⋋": # 0x22cb - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - t: "the left semidirect product of" # (en: 'the left semidirect product of') - - "⋌": # 0x22cc - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - t: "the right semidirect product of" # (en: 'the right semidirect product of') - - "⋍": [t: "reversed tilde equals"] # 0x22cd (en: 'reversed tilde equals') - - "⋎": [t: "curly logical or"] # 0x22ce (en: 'curly logical or') - - "⋏": [t: "curly logical and"] # 0x22cf (en: 'curly logical and') - - "⋐": # 0x22d0 - - test: - if: "$Verbosity!='Terse'" - then: [t: ""] # (en: 'is', google translation) - - t: "a double subset of" # (en: 'a double subset of') - - "⋑": # 0x22d1 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - t: "a double superset of" # (en: 'a double superset of') - - "⋒": # 0x22d2 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'the', google translation) - - t: "double intersection of" # (en: 'double intersection of') - - "⋓": # 0x22d3 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'the', google translation) - - t: "double union of" # (en: 'double union of') - - "⋔": # 0x22d4 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'the', google translation) - - t: "proper intersection of" # (en: 'proper intersection of') - - "⋕": # 0x22d5 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "等於且平行" # (en: 'equal to and parallel to') - - "⋖": [T: "帶點小於"] # 0x22d6 (en: 'less than with dot') - - "⋗": [T: "帶點大於"] # 0x22d7 (en: 'greater than with dot') - - "⋘": # 0x22d8 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "非常小於" # (en: 'very much less than') - - "⋙": # 0x22d9 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "非常大於" # (en: 'very much greater than') - - "⋚": # 0x22da - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "小於等於或大於" # (en: 'less than equal to or greater than') - - "⋛": # 0x22db - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "大於等於或小於" # (en: 'greater than equal to or less than') - - "⋜": # 0x22dc - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "等於或小於" # (en: 'equal to or less than') - - "⋝": # 0x22dd - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "等於或大於" # (en: 'equal to or greater than') - - "⋞": # 0x22de - - test: - if: "$Verbosity!='Terse'" - then: [t: ""] # (en: 'is', google translation) - - T: "等於或先於" # (en: 'equal to or precedes') - - "⋟": # 0x22df - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "等於或後於" # (en: 'equal to or succeeds') - - "⋠": [T: "不先於或等於"] # 0x22e0 (en: 'does not precede nor is equal to') - - "⋡": [T: "不先於或後於"] # 0x22e1 (en: 'does not succeed nor is equal to') - - "⋢": [t: "不方像或等於"] # 0x22e2 (en: 'not square image of or equal to') - - "⋣": [t: "不方原或等於"] # 0x22e3 (en: 'not square original of or equal to') - - "⋤": [t: "方像不等於"] # 0x22e4 (en: 'square image of or not equal to') - - "⋥": [t: "方原或不等於"] # 0x22e5 (en: 'square original of or not equal to') - - "⋦": # 0x22e6 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "小於但不等價於" # (en: 'less than but not equivalent to') - - "⋧": # 0x22e7 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "大於但不等價於" # (en: 'greater than but not equivalent to') - - "⋨": [T: "先於但不等價於"] # 0x22e8 (en: 'precedes but is not equivalent to') - - "⋩": [T: "後於但不等價於"] # 0x22e9 (en: 'succeeds but is not equivalent to') - - "⋪": # 0x22ea - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - t: "不正規子群" # (en: 'not a normal subgroup of') - - "⋫": [t: "does not contain as a normal subgroup"] # 0x22eb (en: 'does not contain as a normal subgroup') - - "⋬": # 0x22ec - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - t: "不正規子群或等於" # (en: 'not a normal subgroup of nor is equal to') - - "⋭": [t: "does not contain as a normal subgroup nor is equal to"] # 0x22ed (en: 'does not contain as a normal subgroup nor is equal to') - - "⋮": [T: "垂線省略號"] # 0x22ee (en: 'vertical ellipsis') - - "⋯": [T: "水平省略號"] # 0x22ef (en: 'dot dot dot') - - "⋰": [t: "右上省略號"] # 0x22f0 (en: 'upwards diagonal ellipsis') - - "⋱": [t: "右下省略號"] # 0x22f1 (en: 'diagonal ellipsis') - - "⋲": [t: "有長水平劃的元素"] # 0x22f2 (en: 'element of with long horizontal stroke') - - "⋳": [t: "水平劃末尾有豎條的元素"] # 0x22f3 (en: 'element of with vertical bar at end of horizontal stroke') - - "⋴": [t: "水平劃末尾有豎條的元素"] # 0x22f4 (en: 'element of with vertical bar at end of horizontal stroke') - - "⋵": [t: "上方帶點的元素"] # 0x22f5 (en: 'element of with dot above') - - "⋶": [t: "上方帶線的元素"] # 0x22f6 (en: 'element of with overbar') - - "⋷": [t: "上方帶線的元素"] # 0x22f7 (en: 'element of with overbar') - - "⋸": [t: "有底線的元素"] # 0x22f8 (en: 'element of with underbar') - - "⋹": [t: "有两水平劃的元素"] # 0x22f9 (en: 'element of with two horizontal strokes') - - "⋺": [t: "包含有長水平劃"] # 0x22fa (en: 'contains with long horizontal stroke') - - "⋻": [t: "在水平劃尾有豎線包含"] # 0x22fb (en: 'contains with vertical bar at end of horizontal stroke') - - "⋼": [t: "在水平劃尾有豎線包含"] # 0x22fc (en: 'contains with vertical bar at end of horizontal stroke') - - "⋽": [t: "上方帶線包含"] # 0x22fd (en: 'contains with overbar') - - "⋾": [t: "上方帶線包含"] # 0x22fe (en: 'contains with overbar') - - "⋿": [t: "z notation bag membership"] # 0x22ff (en: 'z notation bag membership') - - "⌀": [T: "直徑"] # 0x2300 (en: 'diameter', google translation) - - "⌁": [T: "電箭頭"] # 0x2301 (en: 'electric arrow', google translation) - - "⌂": [T: "房子"] # 0x2302 (en: 'house', google translation) - - "⌃": [t: "向上箭頭"] # 0x2303 (en: 'up arrowhead', google translation) - - "⌄": [t: "向下箭頭"] # 0x2304 (en: 'down arrowhead', google translation) - - "⌅": [t: "投影"] # 0x2305 (en: 'projective', google translation) - - "⌆": [t: "透視"] # 0x2306 (en: 'perspective', google translation) - - "⌇": [t: "波浪線"] # 0x2307 (en: 'wavy line', google translation) - - "⌈": [t: "左天花板"] # 0x2308 (en: 'left ceiling', google translation) - - "⌉": [t: "右天花板"] # 0x2309 (en: 'right ceiling', google translation) - - "⌊": [t: "左地板"] # 0x230a (en: 'left floor', google translation) - - "⌋": [t: "右地板"] # 0x230b (en: 'right floor', google translation) - - "⌌": [t: "右下角外"] # 0x230c (en: 'bottom right crop', google translation) - - "⌍": [t: "左下角外"] # 0x230d (en: 'bottom left crop', google translation) - - "⌎": [t: "右上角外"] # 0x230e (en: 'top right crop', google translation) - - "⌏": [t: "左上角外"] # 0x230f (en: 'top left crop', google translation) - - "⌐": [t: "翻轉否定符"] # 0x2310 (en: 'reversed not sign', google translation) - - "⌑": [t: "方片"] # 0x2311 (en: 'square lozenge', google translation) - - "⌒": [T: "弧"] # 0x2312 (en: 'arc', google translation) - - "⌓": [t: "segment"] # 0x2313 (en: 'segment', google translation) - - "⌔": [T: "扇形"] # 0x2314 (en: 'sector', google translation) - - "⌕": [t: "電話錄音機"] # 0x2315 (en: 'telephone recorder', google translation) - - "⌖": [t: "位置指示十字線"] # 0x2316 (en: 'position indicator crosshairs', google translation) - - "⌗": [t: "viewdata square"] # 0x2317 (en: 'viewdata square', google translation) - - "⌘": [t: "興趣的跡象"] # 0x2318 (en: 'place of interest sign', google translation) - - "⌙": [t: "旋轉否定符"] # 0x2319 (en: 'turned not sign', google translation) - - "⌚": [T: "手錶"] # 0x231a (en: 'watch', google translation) - - "⌛": [T: "滴漏"] # 0x231b (en: 'hourglass', google translation) - - "⌜": [T: "左上角"] # 0x231c (en: 'top left corner', google translation) - - "⌝": [T: "右上角"] # 0x231d (en: 'top right corner', google translation) - - "⌞": [T: "左下角"] # 0x231e (en: 'bottom left corner', google translation) - - "⌟": [T: "右下角"] # 0x231f (en: 'bottom right corner', google translation) - - "⌠": [T: "積分上半部"] # 0x2320 (en: 'top half integral', google translation) - - "⌡": [T: "積分下半部"] # 0x2321 (en: 'bottom half integral', google translation) - - "⌢": [T: "弧"] # 0x2322 (en: 'frown') - - "⌣": [T: "微笑"] # 0x2323 (en: 'smile', google translation) - - "⌤": [t: "up arrowhead between two horizontal bars"] # 0x2324 (en: 'up arrowhead between two horizontal bars', google translation) - - "⌥": [t: "option key"] # 0x2325 (en: 'option key', google translation) - - "⌦": [T: "向右擦除"] # 0x2326 (en: 'erase to the right', google translation) - - "⌧": [T: "x 在矩形內"] # 0x2327 (en: 'x in a rectangle box', google translation) - - "⌨": [T: "鍵盤"] # 0x2328 (en: 'keyboard', google translation) - - "〈": [T: "左尖括"] # 0x2329 (en: 'left pointing angle bracket') - - "〉": [T: "右尖括"] # 0x232a (en: 'right pointing angle bracket') - - "⌫": [T: "在左擦除"] # 0x232b (en: 'erase to the left', google translation) - - "⌬": [t: "苯環"] # 0x232c (en: 'benzene ring', google translation) - - "⌭": [t: "cylindricity"] # 0x232d (en: 'cylindricity', google translation) - - "⌮": [t: "all around profile"] # 0x232e (en: 'all around profile', google translation) - - "⌯": [t: "對稱"] # 0x232f (en: 'symmetry', google translation) - - "⌰": [t: "total runout"] # 0x2330 (en: 'total runout', google translation) - - "⌱": [t: "dimension origin"] # 0x2331 (en: 'dimension origin', google translation) - - "⌲": [t: "conical taper"] # 0x2332 (en: 'conical taper', google translation) - - "⌳": [t: "slope"] # 0x2333 (en: 'slope', google translation) - - "⌴": [t: "counterbore"] # 0x2334 (en: 'counterbore', google translation) - - "⌵": [t: "counterink"] # 0x2335 (en: 'countersink', google translation) - - "⍰": [T: "盒內問號"] # 0x2370 (en: 'unknown box', google translation) - - "⎕": [T: "盒子"] # 0x2395 (en: 'box', google translation) - - "⏞": [T: "頂大括"] # 0x23DE (en: 'top brace', google translation) - - "⏟": [T: "底大括"] # 0x23DF (en: 'bottom brace', google translation) - - "①-⑨": # 0x2460 - 0x2469 - - T: "圈圈" # (en: 'circled', google translation) - - SPELL: "translate('.', '①②③④⑤⑥⑦⑧⑨', '123456789')" - - "⑩": [T: "圈圈十"] # 0x2469 (en: 'circled ten', google translation) - - "⑪": [T: "圈圈十一"] # 0x246a (en: 'circled eleven', google translation) - - "⑫": [T: "圈圈十二"] # 0x246b (en: 'circled twelve', google translation) - - "⑬": [T: "圈圈十三"] # 0x246c (en: 'circled thirteen', google translation) - - "⑭": [T: "圈圈十四"] # 0x246d (en: 'circled fourteen', google translation) - - "⑮": [T: "圈圈十五"] # 0x246e (en: 'circled fifteen', google translation) - - "⑯": [T: "圈圈十六"] # 0x246f (en: 'circled sixteen', google translation) - - "⑰": [T: "圈圈十七"] # 0x2470 (en: 'circled seventeen', google translation) - - "⑱": [T: "圈圈18"] # 0x2471 (en: 'circled eighteen', google translation) - - "⑲": [T: "圈圈19"] # 0x2472 (en: 'circled nineteen', google translation) - - "⑳": [T: "圈圈20"] # 0x2473 (en: 'circled twenty', google translation) - - "⑴-⑼": # 0x2474 - 0x247d - - T: "括號圍繞" # (en: 'parenthesized', google translation) - - SPELL: "translate('.', '⑴⑵⑶⑷⑸⑹⑺⑻⑼', '123456789')" - - "⑽": [T: "括號圍繞10"] # 0x247d (en: 'parenthesized ten', google translation) - - "⑾": [T: "括號圍繞11"] # 0x247e (en: 'parenthesized eleven', google translation) - - "⑿": [T: "括號圍繞12"] # 0x247f (en: 'parenthesized twelve', google translation) - - "⒀": [T: "括號圍繞13"] # 0x2480 (en: 'parenthesized thirteen', google translation) - - "⒁": [T: "括號圍繞14"] # 0x2481 (en: 'parenthesized fourteen', google translation) - - "⒂": [T: "括號圍繞15"] # 0x2482 (en: 'parenthesized fifteen', google translation) - - "⒃": [T: "括號圍繞16"] # 0x2483 (en: 'parenthesized sixteen', google translation) - - "⒄": [T: "括號圍繞17"] # 0x2484 (en: 'parenthesized seventeen', google translation) - - "⒅": [T: "括號圍繞18"] # 0x2485 (en: 'parenthesized eighteen', google translation) - - "⒆": [T: "括號圍繞19"] # 0x2486 (en: 'parenthesized nineteen', google translation) - - "⒇": [T: "括號圍繞20"] # 0x2487 (en: 'parenthesized twenty', google translation) - - "⒈-⒐": # 0x2488 - 0x2491 - - SPELL: "translate('.', '⒈⒉⒊⒋⒌⒍⒎⒏⒐', '123456789')" - - T: "點" # (en: 'with period', google translation) - - "⒑": [T: "10點"] # 0x2491 (en: 'ten with period', google translation) - - "⒒": [T: "11點"] # 0x2492 (en: 'eleven with period', google translation) - - "⒓": [T: "12點"] # 0x2493 (en: 'twelve with period', google translation) - - "⒔": [T: "13點"] # 0x2494 (en: 'thirteen with period', google translation) - - "⒕": [T: "14點"] # 0x2495 (en: 'fourteen with period', google translation) - - "⒖": [T: "15點"] # 0x2496 (en: 'fifteen with period', google translation) - - "⒗": [T: "16點"] # 0x2497 (en: 'sixteen with period', google translation) - - "⒘": [T: "17點"] # 0x2498 (en: 'seventeen with period', google translation) - - "⒙": [T: "18點"] # 0x2499 (en: 'eighteen with period', google translation) - - "⒚": [T: "19點"] # 0x249a (en: 'nineteen with period', google translation) - - "⒛": [T: "20點"] # 0x249b (en: 'twenty with period', google translation) - - "⒜-⒵": # 0x249c - 0x24b5 - - T: "括號圍繞" # (en: 'parenthesized', google translation) - - SPELL: "translate('.', '⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵', 'abcdefghijklmnopqrstuvwxyz')" - - - "Ⓐ-Ⓩ": - - T: "圈圈" # (en: 'circled', google translation) - - SPELL: "translate('.', 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "🅐-🅩": # 0x1f150 - 0x1f169 - - T: "黑圈圈" # (en: 'black circled', google translation) - - SPELL: "translate('.', '🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "ⓐ-ⓩ": # 0x24d0 - 0x24e9 - - T: "圈圈" # (en: 'circled', google translation) - - SPELL: "translate('.', 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ', 'abcdefghijklmnopqrstuvwxyz')" - - "⓪": [T: "圓圈零"] # 0x24ea (en: 'circled zero', google translation) - - "⓫": [T: "黑圈圈11"] # 0x24eb (en: 'black circled eleven', google translation) - - "⓬": [T: "黑圈圈12"] # 0x24ec (en: 'black circled twelve', google translation) - - "⓭": [T: "黑圈圈13"] # 0x24ed (en: 'black circled thirteen', google translation) - - "⓮": [T: "黑圈圈14"] # 0x24ee (en: 'black circled fourteen', google translation) - - "⓯": [T: "黑圈圈15"] # 0x24ef (en: 'black circled fifteen', google translation) - - "⓰": [T: "黑圈圈16"] # 0x24f0 (en: 'black circled sixteen', google translation) - - "⓱": [T: "黑圈圈17"] # 0x24f1 (en: 'black circled seventeen', google translation) - - "⓲": [T: "黑圈圈18"] # 0x24f2 (en: 'black circled eighteen', google translation) - - "⓳": [T: "黑圈圈19"] # 0x24f3 (en: 'black circled nineteen', google translation) - - "⓴": [T: "黑圈圈20"] # 0x24f4 (en: 'black circled twenty', google translation) - - "⓵-⓽": # 0x24f5 - 0x24fe - - T: "雙圈" # (en: 'double circled', google translation) - - SPELL: "translate('.', '⓵⓶⓷⓸⓹⓺⓻⓼⓽', '123456789')" - - "⓾": [T: "雙圈10"] # 0x24fe (en: 'double circled ten', google translation) - - "⓿": [T: "黑圈圈0"] # 0x24ff (en: 'black circled zero', google translation) - - "■": [T: "黑方塊"] # 0x25a0 (en: 'black square', google translation) - - "□": [T: "白方塊"] # 0x25a1 (en: 'white square', google translation) - - "▢": [T: "白圓角方塊"] # 0x25a2 (en: 'white square with rounded corners', google translation) - - "▣": [t: "白方塊內有黑方塊"] # 0x25a3 (en: 'white square containing small black square', google translation) - - "▤": [t: "方塊內佈滿水平線"] # 0x25a4 (en: 'square with horizontal fill', google translation) - - "▥": [t: "方塊內佈滿垂直線"] # 0x25a5 (en: 'square with vertical fill', google translation) - - "▦": [t: "正方形內填充橫豎線"] # 0x25a6 (en: 'square with orthogonal crosshatch fill', google translation) - - "▧": [t: "正方形內填充反斜線"] # 0x25a7 (en: 'square with upper left to lower right fill', google translation) - - "▨": [t: "正方形內填充正斜線"] # 0x25a8 (en: 'square with upper right to lower left fill', google translation) - - "▩": [t: "正方形內填充正反斜線"] # 0x25a9 (en: 'square with diagonal crosshatch fill', google translation) - - "▪": [T: "黑小方塊"] # 0x25aa (en: 'black small square', google translation) - - "▫": [T: "小方塊"] # 0x25ab (en: 'white small square', google translation) - - "▬": [T: "黑小矩形"] # 0x25ac (en: 'black rectangle', google translation) - - "▭": [T: "矩形"] # 0x25ad (en: 'white rectangle', google translation) - - "▮": [T: "黑垂直矩形"] # 0x25ae (en: 'black vertical rectangle', google translation) - - "▯": [T: "垂直矩形"] # 0x25af (en: 'white vertical rectangle', google translation) - - "▰": [T: "黑平行四邊形"] # 0x25b0 (en: 'black parallelogram', google translation) - - "▱": [T: "平行四邊形"] # 0x25b1 (en: 'white parallelogram', google translation) - - "▲": [T: "黑三角形"] # 0x25b2 (en: 'black up pointing triangle', google translation) - - "△": [T: "三角形"] # 0x25b3 (en: 'white up pointing triangle', google translation) - - "▴": [T: "黑小三角形"] # 0x25b4 (en: 'black up pointing small triangle', google translation) - - "▵": [T: "小三角形"] # 0x25b5 (en: 'white up pointing small triangle', google translation) - - "▶": [T: "黑向右三角形"] # 0x25b6 (en: 'black right pointing triangle', google translation) - - "▷": [T: "向右三角形"] # 0x25b7 (en: 'white right pointing triangle', google translation) - - "▸": [T: "黑向右小三角形"] # 0x25b8 (en: 'black right pointing small triangle', google translation) - - "▹": [T: "向右小三角形"] # 0x25b9 (en: 'white right pointing small triangle', google translation) - - "►": [t: "黑色指右指針"] # 0x25ba (en: 'black right pointing pointer', google translation) - - "▻": [t: "白色指右指針"] # 0x25bb (en: 'white right pointing pointer', google translation) - - "▼": [T: "黑倒三角形"] # 0x25bc (en: 'black down pointing triangle', google translation) - - "▽": [T: "倒三角形"] # 0x25bd (en: 'white down pointing triangle', google translation) - - "▾": [T: "黑倒小三角形"] # 0x25be (en: 'black down pointing small triangle', google translation) - - "▿": [T: "倒小三角形"] # 0x25bf (en: 'white down pointing small triangle', google translation) - - "◀": [T: "黑向左三角形"] # 0x25c0 (en: 'black left pointing triangle', google translation) - - "◁": [T: "向左三角形"] # 0x25c1 (en: 'white left pointing triangle', google translation) - - "◂": [T: "黑向左小三角形"] # 0x25c2 (en: 'black left pointing small triangle', google translation) - - "◃": [T: "向左小三角形"] # 0x25c3 (en: 'white left pointing small triangle', google translation) - - "◄": [t: "黑色指左指針"] # 0x25c4 (en: 'black left pointing pointer', google translation) - - "◅": [t: "白色指左指針"] # 0x25c5 (en: 'white left pointing pointer', google translation) - - "◆": [t: "黑鑽石"] # 0x25c6 (en: 'black diamond', google translation) - - "◇": [t: "白鑽石"] # 0x25c7 (en: 'white diamond', google translation) - - "◈": [t: "白鑽石含黑小鑽石"] # 0x25c8 (en: 'white diamond containing black small diamond', google translation) - - "◉": [t: "魚眼"] # 0x25c9 (en: 'fisheye', google translation) - - "◊": [t: "白菱形"] # 0x25ca (en: 'lozenge', google translation) - - "○": [t: "白色圓圈"] # 0x25cb (en: 'white circle', google translation) - - "◌": [t: "虛線圓圈"] # 0x25cc (en: 'dotted circle', google translation) - - "◍": [t: "用垂直填充圓圈"] # 0x25cd (en: 'circle with vertical fill', google translation) - - "◎": [t: "靶心"] # 0x25ce (en: 'bullseye', google translation) - - "●": [t: "黑色圓圈"] # 0x25cf (en: 'black circle', google translation) - - "◐": [t: "圓內左半黑"] # 0x25d0 (en: 'circle with left half black', google translation) - - "◑": [t: "圓內右半黑"] # 0x25d1 (en: 'circle with right half black', google translation) - - "◒": [t: "圓內下半黑"] # 0x25d2 (en: 'circle with lower half black', google translation) - - "◓": [t: "圓內上半黑"] # 0x25d3 (en: 'circle with upper half black', google translation) - - "◔": [t: "圓內右上黑"] # 0x25d4 (en: 'circle with upper right quadrant black', google translation) - - "◕": [t: "圓內左上白"] # 0x25d5 (en: 'circle with all but upper left quadrant black', google translation) - - "◖": [t: "左半圓黑"] # 0x25d6 (en: 'left half black circle', google translation) - - "◗": [t: "右半圓黑"] # 0x25d7 (en: 'right half black circle', google translation) - - "◘": [t: "inverse bullet"] # 0x25d8 (en: 'inverse bullet', google translation) - - "◙": [t: "inverse white circle"] # 0x25d9 (en: 'inverse white circle', google translation) - - "◚": [t: "上半部逆白色圓圈"] # 0x25da (en: 'upper half inverse white circle', google translation) - - "◛": [t: "下半部逆白色圓圈"] # 0x25db (en: 'lower half inverse white circle', google translation) - - "◜": [t: "左上圓弧"] # 0x25dc (en: 'upper left quadrant circular arc', google translation) - - "◝": [t: "右上圓弧"] # 0x25dd (en: 'upper right quadrant circular arc', google translation) - - "◞": [t: "右下圓弧"] # 0x25de (en: 'lower right quadrant circular arc', google translation) - - "◟": [t: "左下圓弧"] # 0x25df (en: 'lower left quadrant circular arc', google translation) - - "◠": [t: "上半圓弧"] # 0x25e0 (en: 'upper half circle', google translation) - - "◡": [t: "下半圈弧"] # 0x25e1 (en: 'lower half circle', google translation) - - "◢": [t: "黑色右下三角"] # 0x25e2 (en: 'black lower right triangle', google translation) - - "◣": [t: "黑色左下三角"] # 0x25e3 (en: 'black lower left triangle', google translation) - - "◤": [t: "黑色左上三角"] # 0x25e4 (en: 'black upper left triangle', google translation) - - "◥": [t: "黑色右上三角"] # 0x25e5 (en: 'black upper right triangle', google translation) - - "◦": [t: "合成"] # 0x25e6 (en: 'composition', google translation) - - "◧": [t: "正方形內左半黑"] # 0x25e7 (en: 'square with left half black', google translation) - - "◨": [t: "正方形內右半黑"] # 0x25e8 (en: 'square with right half black', google translation) - - "◩": [t: "正方形內左上黑"] # 0x25e9 (en: 'square with upper left half black', google translation) - - "◪": [t: "正方形內右下黑"] # 0x25ea (en: 'square with lower right half black', google translation) - - "◫": [t: "正方形內一垂線"] # 0x25eb (en: 'white square with bisecting line', google translation) - - "◬": [t: "白色指上三角內有圓點"] # 0x25ec (en: 'white up pointing triangle with dot', google translation) - - "◭": [t: "指上三角形內左半黑"] # 0x25ed (en: 'up pointing triangle with left half black', google translation) - - "◮": [t: "指上三角形內右半黑"] # 0x25ee (en: 'up pointing triangle with right half black', google translation) - - "◯": [t: "大圓圈"] # 0x25ef (en: 'large circle', google translation) - - "◰": [t: "白正方形左上象限"] # 0x25f0 (en: 'white square with upper left quadrant', google translation) - - "◱": [t: "白正方形左下象限"] # 0x25f1 (en: 'white square with lower left quadrant', google translation) - - "◲": [t: "白正方形右下象限"] # 0x25f2 (en: 'white square with lower right quadrant', google translation) - - "◳": [t: "白正方形右上象限"] # 0x25f3 (en: 'white square with upper right quadrant', google translation) - - "◴": [t: "白圓圈左上象限"] # 0x25f4 (en: 'white circle with upper left quadrant', google translation) - - "◵": [t: "白圓圈左下象限"] # 0x25f5 (en: 'white circle with lower left quadrant', google translation) - - "◶": [t: "白圓圈右下象限"] # 0x25f6 (en: 'white circle with lower right quadrant', google translation) - - "◷": [t: "白圓圈右上象限"] # 0x25f7 (en: 'white circle with upper right quadrant', google translation) - - "◸": [t: "左上三角"] # 0x25f8 (en: 'upper left triangle', google translation) - - "◹": [t: "右上三角"] # 0x25f9 (en: 'upper right triangle', google translation) - - "◺": [t: "左下三角"] # 0x25fa (en: 'lower left triangle', google translation) - - "◻": [t: "白中方塊"] # 0x25fb (en: 'white medium square', google translation) - - "◼": [t: "黑中方塊"] # 0x25fc (en: 'black medium square', google translation) - - "◽": [t: "黑中小型方塊"] # 0x25fd (en: 'white medium small square', google translation) - - "◾": [t: "白中小型方塊"] # 0x25fe (en: 'black medium small square', google translation) - - "◿": [t: "右下三角"] # 0x25ff (en: 'lower right triangle', google translation) - - "♠": [t: "黑心"] # 0x2660 (en: 'black spade suit', google translation) - - "♡": [t: "紅心"] # 0x2661 (en: 'white heart suit', google translation) - - "♢": [t: "白方鑽"] # 0x2662 (en: 'white diamond suit', google translation) - - "♣": [t: "黑梅花"] # 0x2663 (en: 'black club suit', google translation) - - "♤": [t: "白黑心"] # 0x2664 (en: 'white spade suit', google translation) - - "♥": [t: "黑紅心"] # 0x2665 (en: 'black heart suit', google translation) - - "♦": [t: "黑方鑽"] # 0x2666 (en: 'black diamond suit', google translation) - - "♧": [t: "白梅花"] # 0x2667 (en: 'white club suit', google translation) - - "❨": [t: "中左括號"] # 0x2768 (en: 'medium left parentheses ornament', google translation) - - "❩": [t: "中右括號"] # 0x2769 (en: 'medium right parentheses ornament', google translation) - - "❪": [t: "中扁平左括"] # 0x276a (en: 'medium flattened left parentheses ornament', google translation) - - "❫": [t: "中扁平右括"] # 0x276b (en: 'medium flattened right parentheses ornament', google translation) - - "❬": [t: "中左角括"] # 0x276c (en: 'medium left-pointing angle bracket ornament', google translation) - - "❭": [t: "中右角括"] # 0x276d (en: 'medium right-pointing angle bracket ornament', google translation) - - "❮": [t: "重左角括"] # 0x276e (en: 'heavy left-pointing angle quotation mark ornament', google translation) - - "❯": [t: "重右角括"] # 0x276f (en: 'heavy right-pointing angle quotation mark ornament', google translation) - - "❰": [t: "粗左角括"] # 0x2770 (en: 'heavy left-pointing angle bracket ornament', google translation) - - "❱": [t: "粗右角括"] # 0x2771 (en: 'heavy right-pointing angle bracket ornament', google translation) - - "❲": [t: "輕左龜殼"] # 0x2772 (en: 'light left tortoise shell bracket ornament', google translation) - - "❳": [t: "輕右龜殼"] # 0x2773 (en: 'light right tortoise shell bracket ornament', google translation) - - "❴": [t: "中左大括"] # 0x2774 (en: 'medium left brace ornament', google translation) - - "❵": [t: "中右大括"] # 0x2775 (en: 'medium right brace ornament', google translation) - - "❶": [T: "黑圈內1"] # 0x2776 (en: 'black circled one', google translation) - - "❷": [T: "黑圈內2"] # 0x2777 (en: 'black circled two', google translation) - - "❸": [T: "黑圈內3"] # 0x2778 (en: 'black circled three', google translation) - - "❹": [T: "黑圈內4"] # 0x2779 (en: 'black circled four', google translation) - - "❺": [T: "黑圈內5"] # 0x277a (en: 'black circled five', google translation) - - "❻": [T: "黑圈內6"] # 0x277b (en: 'black circled six', google translation) - - "❼": [T: "黑圈內7"] # 0x277c (en: 'black circled seven', google translation) - - "❽": [T: "黑圈內8"] # 0x277d (en: 'black circled eight', google translation) - - "❾": [T: "黑圈內9"] # 0x277e (en: 'black circled nine', google translation) - - "❿": [T: "黑圈內10"] # 0x277f (en: 'black circled ten', google translation) - - "➀": [T: "圈圈內1"] # 0x2780 (en: 'circled sans serif one', google translation) - - "➁": [T: "圈圈內2"] # 0x2781 (en: 'circled sans serif two', google translation) - - "➂": [T: "圈圈內3"] # 0x2782 (en: 'circled sans serif three', google translation) - - "➃": [T: "圈圈內4"] # 0x2783 (en: 'circled sans serif four', google translation) - - "➄": [T: "圈圈內5"] # 0x2784 (en: 'circled sans serif five', google translation) - - "➅": [T: "圈圈內6"] # 0x2785 (en: 'circled sans serif six', google translation) - - "➆": [T: "圈圈內7"] # 0x2786 (en: 'circled sans serif seven', google translation) - - "➇": [T: "圈圈內8"] # 0x2787 (en: 'circled sans serif eight', google translation) - - "➈": [T: "圈圈內9"] # 0x2788 (en: 'circled sans serif nine', google translation) - - "➉": [T: "圈圈內10"] # 0x2789 (en: 'circled sans serif ten', google translation) - - "➊": [T: "黑圈內1"] # 0x278a (en: 'black circled sans serif one', google translation) - - "➋": [T: "黑圈內2"] # 0x278b (en: 'black circled sans serif two', google translation) - - "➌": [T: "黑圈內3"] # 0x278c (en: 'black circled sans serif three', google translation) - - "➍": [T: "黑圈內4"] # 0x278d (en: 'black circled sans serif four', google translation) - - "➎": [T: "黑圈內5"] # 0x278e (en: 'black circled sans serif five', google translation) - - "➏": [T: "黑圈內6"] # 0x278f (en: 'black circled sans serif six', google translation) - - "➐": [T: "黑圈內7"] # 0x2790 (en: 'black circled sans serif seven', google translation) - - "➑": [T: "黑圈內8"] # 0x2791 (en: 'black circled sans serif eight', google translation) - - "➒": [T: "黑圈內9"] # 0x2792 (en: 'black circled sans serif nine', google translation) - - "➓": [T: "黑圈內10"] # 0x2793 (en: 'black circled sans serif ten', google translation) - - "➔": [t: "厚重向右箭頭"] # 0x2794 (en: 'heavy wide-headed rightwards arrow', google translation) - - "➕": [t: "重加標誌"] # 0x2795 (en: 'heavy plus sign', google translation) - - "➖": [t: "重減標誌"] # 0x2796 (en: 'heavy minus sign', google translation) - - "➗": [t: "重分區標誌"] # 0x2797 (en: 'heavy division sign', google translation) - - "➘": [t: "重右下箭頭"] # 0x2798 (en: 'heavy south east arrow', google translation) - - "➙": [t: "重右箭頭"] # 0x2799 (en: 'heavy rightwards arrow', google translation) - - "➚": [t: "重右上箭頭"] # 0x279a (en: 'heavy north east arrow', google translation) - - "➛": [t: "簡略右箭頭"] # 0x279b (en: 'drafting point rightwards arrow', google translation) - - "➜": [t: "重圓右箭頭"] # 0x279c (en: 'heavy round-tipped rightwards arrow', google translation) - - "➝": [t: "三角形右箭頭"] # 0x279d (en: 'triangle-headed rightwards arrow', google translation) - - "➞": [t: "重三角形右箭頭"] # 0x279e (en: 'heavy triangle-headed rightwards arrow', google translation) - - "➟": [t: "虛線三角形右箭頭"] # 0x279f (en: 'dashed triangle-headed rightwards arrow', google translation) - - "➠": [t: "重虛線三角形右箭頭"] # 0x27a0 (en: 'heavy dashed triangle-headed rightwards arrow', google translation) - - "➡": [t: "黑右箭頭"] # 0x27a1 (en: 'black rightwards arrow', google translation) - - "➢": [t: "立體頂部白向右箭頭"] # 0x27a2 (en: 'three d top lighted rightwards arrow', google translation) - - "➣": [t: "立體底部白向右箭頭"] # 0x27a3 (en: 'three d bottom lighted rightwards arrow', google translation) - - "➤": [t: "立體向右箭頭"] # 0x27a4 (en: 'black rightwards arrowhead', google translation) - - "➥": [t: "重黑色向下向右彎曲箭頭"] # 0x27a5 (en: 'heavy black curved downwards and rightwards arrow', google translation) - - "➦": [t: "重黑色向上向右彎曲箭頭"] # 0x27a6 (en: 'heavy black curved upwards and rightwards arrow', google translation) - - "➧": [t: "短向右箭頭"] # 0x27a7 (en: 'squat black rightwards arrow', google translation) - - "➨": [t: "重黑色向右凹箭頭"] # 0x27a8 (en: 'heavy concave-pointed black rightwards arrow', google translation) - - "➩": [t: "右側陰影白右箭頭"] # 0x27a9 (en: 'right-shaded white rightwards arrow', google translation) - - "➪": [t: "左側陰影白右箭頭"] # 0x27aa (en: 'left-shaded white rightwards arrow', google translation) - - "➫": [t: "下側陰影白右箭頭"] # 0x27ab (en: 'back-tilted shadowed white rightwards arrow', google translation) - - "➬": [t: "上側陰影白右箭頭"] # 0x27ac (en: 'front-tilted shadowed white rightwards arrow', google translation) - - "➭": [t: "重右下陰影右箭頭"] # 0x27ad (en: 'heavy lower right-shadowed white rightwards arrow', google translation) - - "➮": [t: "重右上陰影右箭頭"] # 0x27ae (en: 'heavy upper right-shadowed white rightwards arrow', google translation) - - "➯": [t: "右下陰影右箭頭"] # 0x27af (en: 'notched lower right-shadowed white rightwards arrow', google translation) - - "➱": [t: "左上陰影右箭頭"] # 0x27b1 (en: 'notched upper right-shadowed white rightwards arrow', google translation) - - "➲": [t: "重白色向右箭頭"] # 0x27b2 (en: 'circled heavy white rightwards arrow', google translation) - - "➳": [t: "白羽毛向右箭頭"] # 0x27b3 (en: 'white-feathered rightwards arrow', google translation) - - "➴": [t: "黑羽毛右下箭頭"] # 0x27b4 (en: 'black-feathered south east arrow', google translation) - - "➵": [t: "黑羽毛右箭頭"] # 0x27b5 (en: 'black-feathered rightwards arrow', google translation) - - "➶": [t: "黑羽毛右上箭頭"] # 0x27b6 (en: 'black-feathered north east arrow', google translation) - - "➷": [t: "重黑羽有下箭頭"] # 0x27b7 (en: 'heavy black-feathered south east arrow', google translation) - - "➸": [t: "重黑羽右箭頭"] # 0x27b8 (en: 'heavy black-feathered rightwards arrow', google translation) - - "➹": [t: "重黑羽右上箭頭"] # 0x27b9 (en: 'heavy black-feathered north east arrow', google translation) - - "➺": [t: "teradrop寬邊向右箭頭"] # 0x27ba (en: 'teradrop-barbed rightwards arrow', google translation) - - "➻": [t: "重淚珠向右箭頭"] # 0x27bb (en: 'heavy teardrop-shanked rightwards arrow', google translation) - - "➼": [t: "楔形尾向右箭頭"] # 0x27bc (en: 'wedge-tailed rightwards arrow', google translation) - - "➽": [t: "重楔形尾右箭頭"] # 0x27bd (en: 'heavy wedge-tailed rightwards arrow', google translation) - - "➾": [t: "向右開箭頭"] # 0x27be (en: 'open-outlined rightwards arrow', google translation) - - "⟀": [t: "三維角"] # 0x27c0 (en: 'three dimensional angle', google translation) - - "⟁": [t: "白色三角形內小白色三角形"] # 0x27c1 (en: 'white triangle containing small white triangle', google translation) - - "⟂": # 0x27c2 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "垂直於" # (en: 'perpendicular to', google translation) - - "⟃": # 0x27c3 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "一個開子集" # (en: 'an open subset of', google translation) - - "⟄": # 0x27c4 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "一個開的超集" # (en: 'an open superset of', google translation) - - "⟅": [t: "左s形袋子分界符"] # 0x27c5 (en: 'left s-shaped bag delimiter', google translation) - - "⟆": [t: "右s形袋子分界符"] # 0x27c6 (en: 'right s-shaped bag delimiter', google translation) - - "⟇": [T: "或裡面圓點"] # 0x27c7 (en: 'or with dot inside', google translation) - - "⟈": [t: "reverse solidus preceding subset"] # 0x27c8 (en: 'reverse solidus preceding subset', google translation) - - "⟉": [t: "superset preceding solidus"] # 0x27c9 (en: 'superset preceding solidus', google translation) - - "⟊": [t: "垂線有水平劃記"] # 0x27ca (en: 'vertical bar with horizontal stroke', google translation) - - "⟋": [t: "數學上升對角線"] # 0x27cb (en: 'mathematical rising diagonal', google translation) - - "⟌": [T: "長除法"] # 0x27cc (en: 'long division', google translation) - - "⟍": [t: "數學下降對角線"] # 0x27cd (en: 'mathematical falling diagonal', google translation) - - "⟎": [T: "方塊邏輯和"] # 0x27ce (en: 'squared logical and', google translation) - - "⟏": [T: "方塊邏輯或"] # 0x27cf (en: 'squared logical or', google translation) - - "⟐": [t: "白鑽內圓點"] # 0x27d0 (en: 'white diamond with centered dot', google translation) - - "⟑": [t: "且裡面點"] # 0x27d1 (en: 'and with dot', google translation) - - "⟒": [t: "向上開放的元素"] # 0x27d2 (en: 'element of opening upwards', google translation) - - "⟓": [t: "右下角帶有點"] # 0x27d3 (en: 'lower right corner with dot', google translation) - - "⟔": [t: "左上角帶有點"] # 0x27d4 (en: 'upper left corner with dot', google translation) - - "⟕": [t: "左外連接"] # 0x27d5 (en: 'left outer join', google translation) - - "⟖": [t: "右外連接"] # 0x27d6 (en: 'right outer join', google translation) - - "⟗": [t: "完整的外部連接"] # 0x27d7 (en: 'full outer join', google translation) - - "⟘": [t: "大型大頭釘"] # 0x27d8 (en: 'large up tack', google translation) - - "⟙": [t: "大型向下大頭釘"] # 0x27d9 (en: 'large down tack', google translation) - - "⟚": [t: "左右雙旋轉門"] # 0x27da (en: 'left and right double turnstile', google translation) - - "⟛": [t: "左右兩頭"] # 0x27db (en: 'left and right tack', google translation) - - "⟜": [t: "左圖"] # 0x27dc (en: 'left multimap', google translation) - - "⟝": [t: "長右釘"] # 0x27dd (en: 'long right tack', google translation) - - "⟞": [t: "長左釘"] # 0x27de (en: 'long left tack', google translation) - - "⟟": [t: "圓在釘上"] # 0x27df (en: 'up tack with circle above', google translation) - - "⟠": [t: "lozenge被水平線隔開"] # 0x27e0 (en: 'lozenge divided by horizontal rule', google translation) - - "⟡": [t: "白色凹面鑽石"] # 0x27e1 (en: 'white concave sided diamond', google translation) - - "⟢": [t: "白色凹面鑽石左滴答"] # 0x27e2 (en: 'white concave sided diamond with leftwards tick', google translation) - - "⟣": [t: "白色的凹面鑽石右滴答"] # 0x27e3 (en: 'white concave sided diamond with rightwards tick', google translation) - - "⟤": [t: "白色正方形左有記號"] # 0x27e4 (en: 'white square with leftwards tick', google translation) - - "⟥": [t: "白色正方形右有記號"] # 0x27e5 (en: 'white square with rightwards tick', google translation) - - "⟦": [t: "左白中括"] # 0x27e6 (en: 'left white square bracket', google translation) - - "⟧": [t: "右白中括"] # 0x27e7 (en: 'right white square bracket', google translation) - - "⟨": [t: "左角括"] # 0x27e8 (en: 'left angle bracket', google translation) - - "⟩": [t: "右角括"] # 0x27e9 (en: 'right angle bracket', google translation) - - "⟪": [t: "左雙角括"] # 0x27ea (en: 'left double angle bracket', google translation) - - "⟫": [t: "右雙角括"] # 0x27eb (en: 'right double angle bracket', google translation) - - "⟬": [t: "左白龜殼"] # 0x27ec (en: 'left white tortoise shell bracket', google translation) - - "⟭": [t: "右白龜殼"] # 0x27ed (en: 'right white tortoise shell bracket', google translation) - - "⟮": [t: "左扁括號"] # 0x27ee (en: 'left flattened parenthesis', google translation) - - "⟯": [t: "右扁括號"] # 0x27ef (en: 'right flattened parenthesis', google translation) - - "⟰": [t: "向上四箭頭"] # 0x27f0 (en: 'upwards quadruple arrow', google translation) - - "⟱": [t: "向下四箭頭"] # 0x27f1 (en: 'downwards quadruple arrow', google translation) - - "⟲": [t: "逆時針方向的箭頭"] # 0x27f2 (en: 'anticlockwise gapped circle arrow', google translation) - - "⟳": [t: "順時針方向的箭頭"] # 0x27f3 (en: 'clockwise gapped circle arrow', google translation) - - "⟴": [t: "右箭頭帶有圓圈"] # 0x27f4 (en: 'right arrow with circled plus', google translation) - - "⟵": [t: "長左箭頭"] # 0x27f5 (en: 'long leftwards arrow', google translation) - - "⟶": [t: "長右箭頭"] # 0x27f6 (en: 'long rightwards arrow', google translation) - - "⟷": [t: "左右箭頭"] # 0x27f7 (en: 'long left right arrow', google translation) - - "⟸": [t: "長粗左箭頭"] # 0x27f8 (en: 'long leftwards double arrow') - - "⟹": [t: "長粗右箭頭"] # 0x27f9 (en: 'long rightwards double arrow') - - "⟺": [t: "左右粗箭頭"] # 0x27fa (en: 'long left right double arrow') - - "⟻": [t: "從吧台上遠的箭頭"] # 0x27fb (en: 'long leftwards arrow from bar', google translation) - - "⟼": [t: "起自豎線長右箭頭"] # 0x27fc (en: 'long rightwards arrow from bar', google translation) - - "⟽": [t: "起自豎線長粗左箭頭"] # 0x27fd (en: 'long leftwards double arrow from bar', google translation) - - "⟾": [t: "起自豎線長粗右箭頭"] # 0x27fe (en: 'long rightwards double arrow from bar', google translation) - - "⟿": [t: "長向右花箭頭"] # 0x27ff (en: 'long rightwards squiggle arrow', google translation) - - "⤀": [t: "向右帶有垂線的雙箭頭"] # 0x2900 (en: 'rightwards two headed arrow with vertical stroke', google translation) - - "⤁": [t: "向右帶有雙垂線的雙箭頭"] # 0x2901 (en: 'rightwards two headed arrow with double vertical stroke', google translation) - - "⤂": [t: "向左帶有垂線的粗箭頭"] # 0x2902 (en: 'leftwards double arrow with vertical stroke', google translation) - - "⤃": [t: "向右帶有垂線的粗箭頭"] # 0x2903 (en: 'rightwards double arrow with vertical stroke', google translation) - - "⤄": [t: "左右帶有垂線的粗箭頭"] # 0x2904 (en: 'left right double arrow with vertical stroke', google translation) - - "⤅": [t: "起自豎線向右雙箭頭"] # 0x2905 (en: 'rightwards two headed arrow from bar', google translation) - - "⤆": [t: "起自豎線向左粗箭頭"] # 0x2906 (en: 'leftwards double arrow from bar', google translation) - - "⤇": [t: "起自豎線向右粗箭頭"] # 0x2907 (en: 'rightwards double arrow from bar', google translation) - - "⤈": [t: "向下帶有橫線的箭頭"] # 0x2908 (en: 'downwards arrow with horizontal stroke', google translation) - - "⤉": [t: "向上帶有橫線的箭頭"] # 0x2909 (en: 'upwards arrow with horizontal stroke', google translation) - - "⤊": [t: "向上三重箭頭"] # 0x290a (en: 'upwards triple arrow', google translation) - - "⤋": [t: "向下三重箭頭"] # 0x290b (en: 'downwards triple arrow', google translation) - - "⤌": [t: "左向兩節虛線箭頭"] # 0x290c (en: 'leftwards double dash arrow', google translation) - - "⤍": [t: "右向兩節線箭頭"] # 0x290d (en: 'rightwards double dash arrow', google translation) - - "⤎": [t: "左向三節虛線箭頭"] # 0x290e (en: 'leftwards triple dash arrow', google translation) - - "⤏": [t: "左向兩節虛線箭頭"] # 0x290f (en: 'rightwards triple dash arrow', google translation) - - "⤐": [t: "右向兩節虛線雙頭箭頭"] # 0x2910 (en: 'rightwards two headed triple dash arrow', google translation) - - "⤑": [t: "向右虛線箭頭"] # 0x2911 (en: 'rightwards arrow with dotted stem', google translation) - - "⤒": [t: "向上箭頭到橫線"] # 0x2912 (en: 'upwards arrow to bar', google translation) - - "⤓": [t: "向下箭頭到橫線"] # 0x2913 (en: 'downwards arrow to bar', google translation) - - "⤔": [t: "向右箭頭,帶有尾部和垂線"] # 0x2914 (en: 'rightwards arrow with tail and vertical stroke', google translation) - - "⤕": [t: "向右箭頭,帶有尾巴和雙垂線"] # 0x2915 (en: 'rightwards arrow with tail and double vertical stroke', google translation) - - "⤖": [t: "向右帶尾巴的雙頭箭頭"] # 0x2916 (en: 'rightwards two headed arrow with tail', google translation) - - "⤗": [t: "向右有尾帶有垂線的雙頭箭頭"] # 0x2917 (en: 'rightwards two headed arrow with tail with vertical stroke', google translation) - - "⤘": [t: "向右有尾帶有雙垂線的雙頭箭頭"] # 0x2918 (en: 'rightwards two headed arrow with tail with double vertical stroke', google translation) - - "⤙": [t: "左箭頭尾巴"] # 0x2919 (en: 'leftwards arrow tail', google translation) - - "⤚": [t: "向右箭頭尾巴"] # 0x291a (en: 'rightwards arrow tail', google translation) - - "⤛": [t: "左箭頭尾巴"] # 0x291b (en: 'leftwards double arrow tail', google translation) - - "⤜": [t: "右雙箭頭尾巴"] # 0x291c (en: 'rightwards double arrow tail', google translation) - - "⤝": [t: "向左箭頭填充鑽石"] # 0x291d (en: 'leftwards arrow to filled diamond', google translation) - - "⤞": [t: "向右箭頭填充鑽石"] # 0x291e (en: 'rightwards arrow to filled diamond', google translation) - - "⤟": [t: "從酒吧到裝滿鑽石的左箭頭"] # 0x291f (en: 'leftwards arrow from bar to filled diamond', google translation) - - "⤠": [t: "從酒吧到裝滿的鑽石的向右箭頭"] # 0x2920 (en: 'rightwards arrow from bar to filled diamond', google translation) - - "⤡": [t: "西北和東南箭頭"] # 0x2921 (en: 'north west and south east arrow', google translation) - - "⤢": [t: "東北和西南箭頭"] # 0x2922 (en: 'north east and south west arrow', google translation) - - "⤣": [t: "西北箭頭與鉤子"] # 0x2923 (en: 'north west arrow with hook', google translation) - - "⤤": [t: "東北箭頭與鉤子"] # 0x2924 (en: 'north east arrow with hook', google translation) - - "⤥": [t: "東南箭頭與鉤子"] # 0x2925 (en: 'south east arrow with hook', google translation) - - "⤦": [t: "西南箭頭與鉤子"] # 0x2926 (en: 'south west arrow with hook', google translation) - - "⤧": [t: "西北箭頭和東北箭頭"] # 0x2927 (en: 'north west arrow and north east arrow', google translation) - - "⤨": [t: "東北箭頭和東南箭頭"] # 0x2928 (en: 'north east arrow and south east arrow', google translation) - - "⤩": [t: "東南箭頭和西南箭頭"] # 0x2929 (en: 'south east arrow and south west arrow', google translation) - - "⤪": [t: "西南箭頭和西北箭頭"] # 0x292a (en: 'south west arrow and north west arrow', google translation) - - "⤫": [t: "對角線越過對角線的上升"] # 0x292b (en: 'rising diagonal crossing falling diagonal', google translation) - - "⤬": [t: "對角線降落的對角線上升"] # 0x292c (en: 'falling diagonal crossing rising diagonal', google translation) - - "⤭": [t: "東南箭頭越過東北箭頭"] # 0x292d (en: 'south east arrow crossing north east arrow', google translation) - - "⤮": [t: "東北箭頭穿過東南箭頭"] # 0x292e (en: 'north east arrow crossing south east arrow', google translation) - - "⤯": [t: "落下對角線穿過東北箭頭"] # 0x292f (en: 'falling diagonal crossing north east arrow', google translation) - - "⤰": [t: "上升的對角線穿越東南箭頭"] # 0x2930 (en: 'rising diagonal crossing south east arrow', google translation) - - "⤱": [t: "東北箭頭越過西北箭頭"] # 0x2931 (en: 'north east arrow crossing north west arrow', google translation) - - "⤲": [t: "西北箭頭穿過東北箭頭"] # 0x2932 (en: 'north west arrow crossing north east arrow', google translation) - - "⤳": [t: "箭頭向右指向箭頭"] # 0x2933 (en: 'wave arrow pointing directly right', google translation) - - "⤴": [t: "箭頭向右指向,然後向上彎曲"] # 0x2934 (en: 'arrow pointing rightwards then curving upwards', google translation) - - "⤵": [t: "箭頭向右指向,然後向下彎曲"] # 0x2935 (en: 'arrow pointing rightwards then curving downwards', google translation) - - "⤶": [t: "箭頭向下指向,然後向左彎曲"] # 0x2936 (en: 'arrow pointing downwards then curving leftwards', google translation) - - "⤷": [t: "箭頭向下指向,然後向右彎曲"] # 0x2937 (en: 'arrow pointing downwards then curving rightwards', google translation) - - "⤸": [t: "右側弧順時針箭頭"] # 0x2938 (en: 'right side arc clockwise arrow', google translation) - - "⤹": [t: "左側弧逆時針箭頭"] # 0x2939 (en: 'left side arc anticlockwise arrow', google translation) - - "⤺": [t: "頂弧逆時針箭頭"] # 0x293a (en: 'top arc anticlockwise arrow', google translation) - - "⤻": [t: "底部弧逆時針箭頭"] # 0x293b (en: 'bottom arc anticlockwise arrow', google translation) - - "⤼": [t: "帶有減去的頂弧順時針箭頭"] # 0x293c (en: 'top arc clockwise arrow with minus', google translation) - - "⤽": [t: "帶有加號的頂弧逆時針箭頭"] # 0x293d (en: 'top arc anticlockwise arrow with plus', google translation) - - "⤾": [t: "右下半圓形順時針箭頭"] # 0x293e (en: 'lower right semicircular clockwise arrow', google translation) - - "⤿": [t: "左下半圓形逆時針箭頭"] # 0x293f (en: 'lower left semicircular anticlockwise arrow', google translation) - - "⥀": [t: "逆時針封閉圓箭頭"] # 0x2940 (en: 'anticlockwise closed circle arrow', google translation) - - "⥁": [t: "順時針關閉圓圈箭頭"] # 0x2941 (en: 'clockwise closed circle arrow', google translation) - - "⥂": [t: "向右箭頭向左箭頭上方"] # 0x2942 (en: 'rightwards arrow above short leftwards arrow', google translation) - - "⥃": [t: "向左箭頭向右箭頭上方"] # 0x2943 (en: 'leftwards arrow above short rightwards arrow', google translation) - - "⥄": [t: "向左箭頭上方的短箭頭箭頭"] # 0x2944 (en: 'short rightwards arrow above leftwards arrow', google translation) - - "⥅": [t: "向右箭頭,加上下方"] # 0x2945 (en: 'rightwards arrow with plus below', google translation) - - "⥆": [t: "左下方的左箭頭"] # 0x2946 (en: 'leftwards arrow with plus below', google translation) - - "⥇": [t: "向右箭頭通過x"] # 0x2947 (en: 'rightwards arrow through x', google translation) - - "⥈": [t: "左右箭頭穿過圓圈"] # 0x2948 (en: 'left right arrow through circle', google translation) - - "⥉": [t: "從圓圈上向上兩個頭箭頭"] # 0x2949 (en: 'upwards two headed arrow from circle', google translation) - - "⥊": [t: "留下倒鉤向右倒鉤,倒在魚叉下"] # 0x294a (en: 'left barb up right barb down harpoon', google translation) - - "⥋": [t: "留下倒鉤向右倒鉤在魚叉上"] # 0x294b (en: 'left barb down right barb up harpoon', google translation) - - "⥌": [t: "倒在倒鉤的倒鉤左難題"] # 0x294c (en: 'up barb right down barb left harpoon', google translation) - - "⥍": [t: "向上倒鉤向下倒鉤右魚叉"] # 0x294d (en: 'up barb left down barb right harpoon', google translation) - - "⥎": [t: "留下倒鉤向右倒鉤在魚叉上"] # 0x294e (en: 'left barb up right barb up harpoon', google translation) - - "⥏": [t: "倒在倒鉤的倒鉤右魚叉"] # 0x294f (en: 'up barb right down barb right harpoon', google translation) - - "⥐": [t: "將倒鉤向右倒鉤倒在魚叉下"] # 0x2950 (en: 'left barb down right barb down harpoon', google translation) - - "⥑": [t: "倒在倒鉤下倒鉤左魚叉"] # 0x2951 (en: 'up barb left down barb left harpoon', google translation) - - "⥒": [t: "左腳魚叉,倒鉤到酒吧"] # 0x2952 (en: 'leftwards harpoon with barb up to bar', google translation) - - "⥓": [t: "右邊的魚叉,倒鉤到酒吧"] # 0x2953 (en: 'rightwards harpoon with barb up to bar', google translation) - - "⥔": [t: "用倒鉤向上的魚叉"] # 0x2954 (en: 'upwards harpoon with barb right to bar', google translation) - - "⥕": [t: "用倒鉤向下的魚叉,右bar"] # 0x2955 (en: 'downwards harpoon with barb right to bar', google translation) - - "⥖": [t: "剩下的魚叉,倒鉤到酒吧"] # 0x2956 (en: 'leftwards harpoon with barb down to bar', google translation) - - "⥗": [t: "右邊的魚叉,倒鉤到酒吧"] # 0x2957 (en: 'rightwards harpoon with barb down to bar', google translation) - - "⥘": [t: "向上帶倒鉤到酒吧的魚叉"] # 0x2958 (en: 'upwards harpoon with barb left to bar', google translation) - - "⥙": [t: "向下的魚叉,用倒鉤左至酒吧"] # 0x2959 (en: 'downwards harpoon with barb left to bar', google translation) - - "⥚": [t: "左邊的魚叉,從酒吧上倒鉤"] # 0x295a (en: 'leftwards harpoon with barb up from bar', google translation) - - "⥛": [t: "右邊的魚叉,從酒吧里倒鉤"] # 0x295b (en: 'rightwards harpoon with barb up from bar', google translation) - - "⥜": [t: "從酒吧到倒鉤向上帶倒鉤"] # 0x295c (en: 'upwards harpoon with barb right from bar', google translation) - - "⥝": [t: "從酒吧向下帶倒鉤的魚叉"] # 0x295d (en: 'downwards harpoon with barb right from bar', google translation) - - "⥞": [t: "左下角是小酒吧的倒鉤"] # 0x295e (en: 'leftwards harpoon with barb down from bar', google translation) - - "⥟": [t: "右邊的魚叉從酒吧倒下"] # 0x295f (en: 'rightwards harpoon with barb down from bar', google translation) - - "⥠": [t: "向上倒在魚下,從酒吧剩下"] # 0x2960 (en: 'upwards harpoon with barb left from bar', google translation) - - "⥡": [t: "向下的魚叉,倒在酒吧里"] # 0x2961 (en: 'downwards harpoon with barb left from bar', google translation) - - "⥢": [t: "左上的魚叉,倒在左上的魚叉上方,倒鉤倒下"] # 0x2962 (en: 'leftwards harpoon with barb up above leftwards harpoon with barb down', google translation) - - "⥣": [t: "向上倒著倒鉤的魚叉,右邊的魚叉右向上"] # 0x2963 (en: 'upwards harpoon with barb left beside upwards harpoon with barb right', google translation) - - "⥤": [t: "右邊的魚叉,在倒在倒鉤的情況下,倒鉤倒下"] # 0x2964 (en: 'rightwards harpoon with barb up above rightwards harpoon with barb down', google translation) - - "⥥": [t: "向下的魚叉,倒鉤旁邊留在倒鉤右下角"] # 0x2965 (en: 'downwards harpoon with barb left beside downwards harpoon with barb right', google translation) - - "⥦": [t: "左邊的魚叉,倒在右上方的魚叉上,倒鉤"] # 0x2966 (en: 'leftwards harpoon with barb up above rightwards harpoon with barb up', google translation) - - "⥧": [t: "左上角的魚叉,在右上方的魚叉下方,倒鉤倒下"] # 0x2967 (en: 'leftwards harpoon with barb down above rightwards harpoon with barb down', google translation) - - "⥨": [t: "向右的魚叉,倒在左上的魚叉上方,倒鉤"] # 0x2968 (en: 'rightwards harpoon with barb up above leftwards harpoon with barb up', google translation) - - "⥩": [t: "右邊的魚叉,倒在左上的魚叉上方,倒鉤倒下"] # 0x2969 (en: 'rightwards harpoon with barb down above leftwards harpoon with barb down', google translation) - - "⥪": [t: "左上角的魚叉上方長長的破折號"] # 0x296a (en: 'leftwards harpoon with barb up above long dash', google translation) - - "⥫": [t: "左腳魚叉下方的小折磨到長star"] # 0x296b (en: 'leftwards harpoon with barb down below long dash', google translation) - - "⥬": [t: "右邊的魚叉,倒在長stash上方"] # 0x296c (en: 'rightwards harpoon with barb up above long dash', google translation) - - "⥭": [t: "右翼魚叉,倒鉤在長儀表板下方"] # 0x296d (en: 'rightwards harpoon with barb down below long dash', google translation) - - "⥮": [t: "向上倒著倒鉤的魚叉,旁邊的魚叉向下倒鉤"] # 0x296e (en: 'upwards harpoon with barb left beside downwards harpoon with barb right', google translation) - - "⥯": [t: "向下的魚叉,倒鉤旁邊是倒鉤右向上的魚叉"] # 0x296f (en: 'downwards harpoon with barb left beside upwards harpoon with barb right', google translation) - - "⥰": [t: "右雙箭頭,頭有圓頭"] # 0x2970 (en: 'right double arrow with rounded head', google translation) - - "⥱": [t: "等於向右箭頭"] # 0x2971 (en: 'equals above rightwards arrow', google translation) - - "⥲": [t: "右上方箭頭上方的tilde操作員"] # 0x2972 (en: 'tilde operator above rightwards arrow', google translation) - - "⥳": [t: "tilde操作員上方的左箭頭"] # 0x2973 (en: 'leftwards arrow above tilde operator', google translation) - - "⥴": [t: "tilde操作員上方的右箭頭"] # 0x2974 (en: 'rightwards arrow above tilde operator', google translation) - - "⥵": [t: "向右箭頭幾乎等於"] # 0x2975 (en: 'rightwards arrow above almost equal to', google translation) - - "⥶": [t: "小於左上方箭頭"] # 0x2976 (en: 'less than above leftwards arrow', google translation) - - "⥷": [t: "左箭頭不到"] # 0x2977 (en: 'leftwards arrow through less than', google translation) - - "⥸": [t: "大於向右箭頭上方"] # 0x2978 (en: 'greater than above rightwards arrow', google translation) - - "⥹": [t: "向右箭頭上方的子集"] # 0x2979 (en: 'subset above rightwards arrow', google translation) - - "⥺": [t: "向左箭頭穿過子集"] # 0x297a (en: 'leftwards arrow through subset', google translation) - - "⥻": [t: "在左上方箭頭上方超集"] # 0x297b (en: 'superset above leftwards arrow', google translation) - - "⥼": [t: "左魚尾巴"] # 0x297c (en: 'left fish tail', google translation) - - "⥽": [t: "右魚尾"] # 0x297d (en: 'right fish tail', google translation) - - "⥾": [t: "向上魚尾"] # 0x297e (en: 'up fish tail', google translation) - - "⥿": [t: "下來的魚尾"] # 0x297f (en: 'down fish tail', google translation) - - "⦀": [t: "三重垂直桿定界符"] # 0x2980 (en: 'triple vertical bar delimiter', google translation) - - "⦁": [t: "z符號點"] # 0x2981 (en: 'z notation spot', google translation) - - "⦂": [t: "z符號類型結腸"] # 0x2982 (en: 'z notation type colon', google translation) - - "⦃": [t: "留下白色支撐"] # 0x2983 (en: 'left white brace', google translation) - - "⦄": [t: "正確的白色支撐"] # 0x2984 (en: 'right white brace', google translation) - - "⦅": [t: "左白括號"] # 0x2985 (en: 'left white parenthesis', google translation) - - "⦆": [t: "右白色括號"] # 0x2986 (en: 'right white parenthesis', google translation) - - "⦇": [t: "z符號左圖像括號"] # 0x2987 (en: 'z notation left image bracket', google translation) - - "⦈": [t: "z符號正確的圖像支架"] # 0x2988 (en: 'z notation right image bracket', google translation) - - "⦉": [t: "z符號左裝括號"] # 0x2989 (en: 'z notation left binding bracket', google translation) - - "⦊": [t: "z符號正確的綁定括號"] # 0x298a (en: 'z notation right binding bracket', google translation) - - "⦋": [t: "左方方括號帶有下桿"] # 0x298b (en: 'left square bracket with underbar', google translation) - - "⦌": [t: "右方式托架帶有underbar"] # 0x298c (en: 'right square bracket with underbar', google translation) - - "⦍": [t: "左側方括號在頂角"] # 0x298d (en: 'left square bracket with tick in top corner', google translation) - - "⦎": [t: "右平方支架,底角有滴答"] # 0x298e (en: 'right square bracket with tick in bottom corner', google translation) - - "⦏": [t: "左方方括號在底角"] # 0x298f (en: 'left square bracket with tick in bottom corner', google translation) - - "⦐": [t: "右方方括號在頂角"] # 0x2990 (en: 'right square bracket with tick in top corner', google translation) - - "⦑": [t: "左角支架帶有點"] # 0x2991 (en: 'left angle bracket with dot', google translation) - - "⦒": [t: "與點的直角支架"] # 0x2992 (en: 'right angle bracket with dot', google translation) - - "⦓": [t: "左弧少於支架"] # 0x2993 (en: 'left arc less than bracket', google translation) - - "⦔": [t: "右弧大於支架"] # 0x2994 (en: 'right arc greater than bracket', google translation) - - "⦕": [t: "雙左弧大於支架"] # 0x2995 (en: 'double left arc greater than bracket', google translation) - - "⦖": [t: "雙右弧線小於支架"] # 0x2996 (en: 'double right arc less than bracket', google translation) - - "⦗": [t: "剩下的黑色烏龜殼支架"] # 0x2997 (en: 'left black tortoise shell bracket', google translation) - - "⦘": [t: "右黑烏龜殼支架"] # 0x2998 (en: 'right black tortoise shell bracket', google translation) - - "⦙": [t: "虛線圍欄"] # 0x2999 (en: 'dotted fence', google translation) - - "⦚": [t: "垂直曲折線"] # 0x299a (en: 'vertical zigzag line', google translation) - - "⦛": [t: "測得的角度左開口"] # 0x299b (en: 'measured angle opening left', google translation) - - "⦜": [t: "正方形的直角變體"] # 0x299c (en: 'right angle variant with square', google translation) - - "⦝": [t: "用dot測量直角"] # 0x299d (en: 'measured right angle with dot', google translation) - - "⦞": [t: "內部的角度"] # 0x299e (en: 'angle with s inside', google translation) - - "⦟": [t: "銳角"] # 0x299f (en: 'acute angle', google translation) - - "⦠": [t: "球形角度左開"] # 0x29a0 (en: 'spherical angle opening left', google translation) - - "⦡": [t: "球形角度開放"] # 0x29a1 (en: 'spherical angle opening up', google translation) - - "⦢": [t: "轉角"] # 0x29a2 (en: 'turned angle', google translation) - - "⦣": [t: "反向角度"] # 0x29a3 (en: 'reversed angle', google translation) - - "⦤": [t: "與underbar的角度"] # 0x29a4 (en: 'angle with underbar', google translation) - - "⦥": [t: "用underbar逆轉角度"] # 0x29a5 (en: 'reversed angle with underbar', google translation) - - "⦦": [t: "傾斜角度開頭"] # 0x29a6 (en: 'oblique angle opening up', google translation) - - "⦧": [t: "傾斜角度向下開放"] # 0x29a7 (en: 'oblique angle opening down', google translation) - - "⦨": [t: "測量的角度以敞開的臂結尾,指向右側並向右指向"] # 0x29a8 (en: 'measured angle with open arm ending in arrow pointing up and to the right', google translation) - - "⦩": [t: "用敞開的臂末端測量角度,指向箭頭,向左指向"] # 0x29a9 (en: 'measured angle with open arm ending in arrow pointing up and to the left', google translation) - - "⦪": [t: "測量的角度在箭頭向下和向右指向箭頭的距離末端"] # 0x29aa (en: 'measured angle with open arm ending in arrow pointing down and to the right', google translation) - - "⦫": [t: "測量的角度在箭頭向下和向左的箭頭以開放臂結尾"] # 0x29ab (en: 'measured angle with open arm ending in arrow pointing down and to the left', google translation) - - "⦬": [t: "測量的角度以右臂向右指向的箭頭以開放臂結尾"] # 0x29ac (en: 'measured angle with open arm ending in arrow pointing right and up', google translation) - - "⦭": [t: "測量的角度以敞開的臂結尾,左右指向箭頭"] # 0x29ad (en: 'measured angle with open arm ending in arrow pointing left and up', google translation) - - "⦮": [t: "右臂以右側和向下的箭頭結尾,測得的角度"] # 0x29ae (en: 'measured angle with open arm ending in arrow pointing right and down', google translation) - - "⦯": [t: "測量的角度以敞開的臂結尾,左右指向箭頭"] # 0x29af (en: 'measured angle with open arm ending in arrow pointing left and down', google translation) - - "⦰": [t: "反向空集"] # 0x29b0 (en: 'reversed empty set', google translation) - - "⦱": [t: "用鋼製空心設置"] # 0x29b1 (en: 'empty set with overbar', google translation) - - "⦲": [t: "空設置,上面有小圓圈"] # 0x29b2 (en: 'empty set with small circle above', google translation) - - "⦳": [t: "在上方帶有右箭頭的空設置"] # 0x29b3 (en: 'empty set with right arrow above', google translation) - - "⦴": [t: "在上方帶有左箭頭的空設置"] # 0x29b4 (en: 'empty set with left arrow above', google translation) - - "⦵": [t: "用水平桿圓圈"] # 0x29b5 (en: 'circle with horizontal bar', google translation) - - "⦶": [t: "盤旋垂直條"] # 0x29b6 (en: 'circled vertical bar', google translation) - - "⦷": [t: "平行"] # 0x29b7 (en: 'circled parallel', google translation) - - "⦸": [t: "圓圈反向固體"] # 0x29b8 (en: 'circled reverse solidus', google translation) - - "⦹": [t: "圓圈垂直"] # 0x29b9 (en: 'circled perpendicular', google translation) - - "⦺": [t: "圓圈除以水平桿,上半部除以垂直條"] # 0x29ba (en: 'circled divided by horizontal bar and top half divided by vertical bar', google translation) - - "⦻": [t: "用疊加x圓圈"] # 0x29bb (en: 'circle with superimposed x', google translation) - - "⦼": [t: "盤旋逆時針旋轉的劃分符號"] # 0x29bc (en: 'circled anticlockwise rotated division sign', google translation) - - "⦽": [t: "向上箭頭"] # 0x29bd (en: 'up arrow through circle', google translation) - - "⦾": [t: "盤旋白色子彈"] # 0x29be (en: 'circled white bullet', google translation) - - "⦿": [t: "盤旋子彈"] # 0x29bf (en: 'circled bullet', google translation) - - "⧀": [t: "盤旋少於"] # 0x29c0 (en: 'circled less than', google translation) - - "⧁": [t: "盤旋大於"] # 0x29c1 (en: 'circled greater than', google translation) - - "⧂": [t: "右圓圈向右圓圈"] # 0x29c2 (en: 'circle with small circle to the right', google translation) - - "⧃": [t: "右側用兩個水平筆觸圈出"] # 0x29c3 (en: 'circle with two horizontal strokes to the right', google translation) - - "⧄": [t: "平方上升的對角線斜線"] # 0x29c4 (en: 'squared rising diagonal slash', google translation) - - "⧅": [t: "平方落下的對角線斜線"] # 0x29c5 (en: 'squared falling diagonal slash', google translation) - - "⧆": [t: "平方星號"] # 0x29c6 (en: 'squared asterisk', google translation) - - "⧇": [t: "平方小圓圈"] # 0x29c7 (en: 'squared small circle', google translation) - - "⧈": [t: "平方廣場"] # 0x29c8 (en: 'squared square', google translation) - - "⧉": [t: "兩個正方形"] # 0x29c9 (en: 'two joined squares', google translation) - - "⧊": [t: "三角形,點上方"] # 0x29ca (en: 'triangle with dot above', google translation) - - "⧋": [t: "三角形與underbar"] # 0x29cb (en: 'triangle with underbar', google translation) - - "⧌": [t: "s在三角形中"] # 0x29cc (en: 's in triangle', google translation) - - "⧍": [t: "三角形,底部有襯線"] # 0x29cd (en: 'triangle with serifs at bottom', google translation) - - "⧎": [t: "左三角上方的右三角形"] # 0x29ce (en: 'right triangle above left triangle', google translation) - - "⧏": [t: "在垂直條旁邊的左三角"] # 0x29cf (en: 'left triangle beside vertical bar', google translation) - - "⧐": [t: "右三角形旁邊的垂直條"] # 0x29d0 (en: 'vertical bar beside right triangle', google translation) - - "⧑": [t: "bowtie左半黑"] # 0x29d1 (en: 'bowtie with left half black', google translation) - - "⧒": [t: "bowtie與右半黑色"] # 0x29d2 (en: 'bowtie with right half black', google translation) - - "⧓": [t: "黑色領結"] # 0x29d3 (en: 'black bowtie', google translation) - - "⧔": [t: "剩下的半黑色"] # 0x29d4 (en: 'times with left half black', google translation) - - "⧕": [t: "右半黑"] # 0x29d5 (en: 'times with right half black', google translation) - - "⧖": [T: "白色沙漏"] # 0x29d6 (en: 'white hourglass', google translation) - - "⧗": [T: "黑色沙漏"] # 0x29d7 (en: 'black hourglass', google translation) - - "⧘": [t: "左wiggly籬笆"] # 0x29d8 (en: 'left wiggly fence', google translation) - - "⧙": [t: "右wiggly柵欄"] # 0x29d9 (en: 'right wiggly fence', google translation) - - "⧚": [t: "左雙搖擺籬笆"] # 0x29da (en: 'left double wiggly fence', google translation) - - "⧛": [t: "右雙搖擺柵欄"] # 0x29db (en: 'right double wiggly fence', google translation) - - "⧜": [t: "無窮大"] # 0x29dc (en: 'incomplete infinity', google translation) - - "⧝": [t: "綁在無窮大"] # 0x29dd (en: 'tie over infinity', google translation) - - "⧞": [t: "無窮大,垂直桿否定"] # 0x29de (en: 'infinity negated with vertical bar', google translation) - - "⧟": [t: "雙端的多套件"] # 0x29df (en: 'double-ended multimap', google translation) - - "⧠": [t: "與輪廓輪廓的正方形"] # 0x29e0 (en: 'square with contoured outline', google translation) - - "⧡": [t: "增加為"] # 0x29e1 (en: 'increases as', google translation) - - "⧢": [t: "洗牌產品"] # 0x29e2 (en: 'shuffle product', google translation) - - "⧣": [t: "等於符號和平行的傾斜"] # 0x29e3 (en: 'equals sign and slanted parallel', google translation) - - "⧤": [t: "等於符號和傾斜的傾斜與上方的tilde"] # 0x29e4 (en: 'equals sign and slanted parallel with tilde above', google translation) - - "⧥": [t: "與平行和傾斜相同"] # 0x29e5 (en: 'identical to and slanted parallel', google translation) - - "⧦": [t: "格利希·史塔克(gleich stark)"] # 0x29e6 (en: 'gleich stark', google translation) - - "⧧": [t: "熱力學"] # 0x29e7 (en: 'thermodynamic', google translation) - - "⧨": [t: "向下指向三角形,左半黑"] # 0x29e8 (en: 'down pointing triangle with left half black', google translation) - - "⧩": [t: "向下指向三角形,右半黑"] # 0x29e9 (en: 'down pointing triangle with right half black', google translation) - - "⧪": [t: "黑色鑽石和下箭"] # 0x29ea (en: 'black diamond with down arrow', google translation) - - "⧫": [t: "黑色片"] # 0x29eb (en: 'black lozenge', google translation) - - "⧬": [t: "白色圓圈和向下箭頭"] # 0x29ec (en: 'white circle with down arrow', google translation) - - "⧭": [t: "黑色圓圈和向下箭頭"] # 0x29ed (en: 'black circle with down arrow', google translation) - - "⧮": [t: "錯誤的白色廣場"] # 0x29ee (en: 'error-barred white square', google translation) - - "⧯": [t: "錯誤的黑色廣場"] # 0x29ef (en: 'error-barred black square', google translation) - - "⧰": [t: "錯誤的白色鑽石"] # 0x29f0 (en: 'error-barred white diamond', google translation) - - "⧱": [t: "錯誤的黑色鑽石"] # 0x29f1 (en: 'error-barred black diamond', google translation) - - "⧲": [t: "錯誤的白色圓圈"] # 0x29f2 (en: 'error-barred white circle', google translation) - - "⧳": [t: "錯誤的黑色圓圈"] # 0x29f3 (en: 'error-barred black circle', google translation) - - "⧴": [t: "規則延遲"] # 0x29f4 (en: 'rule-delayed', google translation) - - "⧵": [T: "差集"] # 0x29f5 (en: 'reverse solidus operator') - - "⧶": [t: "固體帶有槓鈴"] # 0x29f6 (en: 'solidus with overbar', google translation) - - "⧷": [t: "與水平衝程的反向固相"] # 0x29f7 (en: 'reverse solidus with horizontal stroke', google translation) - - "⧸": [t: "big solidus"] # 0x29f8 (google translation) - - "⧹": [t: "大反向實體"] # 0x29f9 (en: 'big reverse solidus', google translation) - - "⧺": [t: "雙加"] # 0x29fa (en: 'double plus', google translation) - - "⧻": [t: "三重加"] # 0x29fb (en: 'triple plus', google translation) - - "⧼": [t: "左向彎曲角括號"] # 0x29fc (en: 'left pointing curved angle bracket', google translation) - - "⧽": [t: "右指向彎曲角括號"] # 0x29fd (en: 'right pointing curved angle bracket', google translation) - - "⧾": [t: "微小的"] # 0x29fe (en: 'tiny', google translation) - - "⧿": [t: "微小"] # 0x29ff (en: 'miny', google translation) - - "⨀": [t: "圓圈操作員"] # 0x2a00 (en: 'circled dot operator', google translation) - - "⨁": [t: "圓圈加操作員"] # 0x2a01 (en: 'circled plus operator', google translation) - - "⨂": [t: "圓圈操作員"] # 0x2a02 (en: 'circled times operator', google translation) - - "⨃": [t: "dot的工會運營商"] # 0x2a03 (en: 'union operator with dot', google translation) - - "⨄": [t: "加上工會運營商"] # 0x2a04 (en: 'union operator with plus', google translation) - - "⨅": [t: "方形交叉操作員"] # 0x2a05 (en: 'square intersection operator', google translation) - - "⨆": [t: "平方聯盟操作員"] # 0x2a06 (en: 'square union operator', google translation) - - "⨇": [t: "兩個邏輯和操作員"] # 0x2a07 (en: 'two logical and operator', google translation) - - "⨈": [t: "兩個邏輯或操作員"] # 0x2a08 (en: 'two logical or operator', google translation) - - "⨉": [t: "時代操作員"] # 0x2a09 (en: 'times operator', google translation) - - "⨊": [t: "modulo兩個總和"] # 0x2a0a (en: 'modulo two sum', google translation) - - "⨋": [t: "總結不可或缺"] # 0x2a0b (en: 'summation with integral', google translation) - - "⨌": [T: "四重積分"] # 0x2a0c (en: 'quadruple integral operator', google translation) - - "⨍": [t: "有限零件積分"] # 0x2a0d (en: 'finite part integral', google translation) - - "⨎": [t: "具有雙沖程的積分"] # 0x2a0e (en: 'integral with double stroke', google translation) - - "⨏": [t: "斜線的整體平均值"] # 0x2a0f (en: 'integral average with slash', google translation) - - "⨐": [t: "循環功能"] # 0x2a10 (en: 'circulation function', google translation) - - "⨑": [t: "逆時針整合"] # 0x2a11 (en: 'anticlockwise integration', google translation) - - "⨒": [t: "線在極周圍的矩形路徑積分"] # 0x2a12 (en: 'line integration with rectangular path around pole', google translation) - - "⨓": [t: "線在極周圍的半圓路徑的線積分"] # 0x2a13 (en: 'line integration with semicircular path around pole', google translation) - - "⨔": [t: "線集成不包括桿"] # 0x2a14 (en: 'line integration not including the pole', google translation) - - "⨕": [t: "圍繞點運算符的積分"] # 0x2a15 (en: 'integral around a point operator', google translation) - - "⨖": [t: "四元組整體操作員"] # 0x2a16 (en: 'quaternion integral operator', google translation) - - "⨗": [t: "與左箭頭的積分與鉤子"] # 0x2a17 (en: 'integral with leftwards arrow with hook', google translation) - - "⨘": [t: "與時代符號的積分"] # 0x2a18 (en: 'integral with times sign', google translation) - - "⨙": [t: "與交集的積分"] # 0x2a19 (en: 'integral with intersection', google translation) - - "⨚": [t: "與聯合的整體"] # 0x2a1a (en: 'integral with union', google translation) - - "⨛": [t: "與overbar的積分"] # 0x2a1b (en: 'integral with overbar', google translation) - - "⨜": [t: "與underbar的積分"] # 0x2a1c (en: 'integral with underbar', google translation) - - "⨝": [t: "加入"] # 0x2a1d (en: 'join', google translation) - - "⨞": [t: "大左三角操作員"] # 0x2a1e (en: 'large left triangle operator', google translation) - - "⨟": [t: "z符號模式組成"] # 0x2a1f (en: 'z notation schema composition', google translation) - - "⨠": [t: "z符號架構管道"] # 0x2a20 (en: 'z notation schema piping', google translation) - - "⨡": [t: "z符號模式投影"] # 0x2a21 (en: 'z notation schema projection', google translation) - - "⨢": [t: "加上上方的圓形簽名"] # 0x2a22 (en: 'plus sign with circle above', google translation) - - "⨣": [t: "加上上面帶有繞行口音的符號"] # 0x2a23 (en: 'plus sign with circumflex accent above', google translation) - - "⨤": [t: "加上上面帶有tilde的簽名"] # 0x2a24 (en: 'plus sign with tilde above', google translation) - - "⨥": [t: "加上dot的簽名"] # 0x2a25 (en: 'plus sign with dot below', google translation) - - "⨦": [t: "加上tilde的簽名"] # 0x2a26 (en: 'plus sign with tilde below', google translation) - - "⨧": [t: "加上標記兩個"] # 0x2a27 (en: 'plus sign with subscript two', google translation) - - "⨨": [t: "加上黑色三角形的簽名"] # 0x2a28 (en: 'plus sign with black triangle', google translation) - - "⨩": [t: "上面的逗號減去標誌"] # 0x2a29 (en: 'minus sign with comma above', google translation) - - "⨪": [t: "在下面的點減去符號"] # 0x2a2a (en: 'minus sign with dot below', google translation) - - "⨫": [t: "減去點落點"] # 0x2a2b (en: 'minus sign with falling dots', google translation) - - "⨬": [t: "減去點升高的點數"] # 0x2a2c (en: 'minus sign with rising dots', google translation) - - "⨭": [t: "加上左半圓圈"] # 0x2a2d (en: 'plus sign in left half circle', google translation) - - "⨮": [t: "加上右半圈登錄"] # 0x2a2e (en: 'plus sign in right half circle', google translation) - - "⨯": [t: "跨產品"] # 0x2a2f (en: 'cross product', google translation) - - "⨰": [t: "上面有點的乘法標誌"] # 0x2a30 (en: 'multiplication sign with dot above', google translation) - - "⨱": [t: "帶有underbar的乘法標誌"] # 0x2a31 (en: 'multiplication sign with underbar', google translation) - - "⨲": [t: "底部關閉的半程產品"] # 0x2a32 (en: 'semidirect product with bottom closed', google translation) - - "⨳": [t: "粉碎產品"] # 0x2a33 (en: 'smash product', google translation) - - "⨴": [t: "左半圓圈中的乘法標誌"] # 0x2a34 (en: 'multiplication sign in left half circle', google translation) - - "⨵": [t: "右半圓中的乘法標誌"] # 0x2a35 (en: 'multiplication sign in right half circle', google translation) - - "⨶": [t: "帶有環繞式口音的圓圈乘法標誌"] # 0x2a36 (en: 'circled multiplication sign with circumflex accent', google translation) - - "⨷": [t: "雙圓圈中的乘法標誌"] # 0x2a37 (en: 'multiplication sign in double circle', google translation) - - "⨸": [t: "圓形的劃分標誌"] # 0x2a38 (en: 'circled division sign', google translation) - - "⨹": [t: "加上三角形的簽名"] # 0x2a39 (en: 'plus sign in triangle', google translation) - - "⨺": [t: "減去三角形"] # 0x2a3a (en: 'minus sign in triangle', google translation) - - "⨻": [t: "三角形中的乘法標誌"] # 0x2a3b (en: 'multiplication sign in triangle', google translation) - - "⨼": [t: "內部產品"] # 0x2a3c (en: 'interior product', google translation) - - "⨽": [t: "右內部產品"] # 0x2a3d (en: 'righthand interior product', google translation) - - "⨿": [t: "合併或合併"] # 0x2a3f (en: 'amalgamation or coproduct', google translation) - - "⩀": [t: "與點的交點"] # 0x2a40 (en: 'intersection with dot', google translation) - - "⩁": [t: "與減號的結合"] # 0x2a41 (en: 'union with minus sign', google translation) - - "⩂": [t: "與overbar結合"] # 0x2a42 (en: 'union with overbar', google translation) - - "⩃": [t: "與overbar的交點"] # 0x2a43 (en: 'intersection with overbar', google translation) - - "⩄": [t: "與邏輯和交集"] # 0x2a44 (en: 'intersection with logical and', google translation) - - "⩅": [t: "與邏輯或"] # 0x2a45 (en: 'union with logical or', google translation) - - "⩆": [t: "交叉點上方的聯合"] # 0x2a46 (en: 'union above intersection', google translation) - - "⩇": [t: "超過聯合的交叉點"] # 0x2a47 (en: 'intersection above union', google translation) - - "⩈": [t: "交叉點上方的欄上方的聯合"] # 0x2a48 (en: 'union above bar above intersection', google translation) - - "⩉": [t: "在聯盟上方的欄上方的交叉路口"] # 0x2a49 (en: 'intersection above bar above union', google translation) - - "⩊": [t: "聯盟旁邊並與聯盟一起"] # 0x2a4a (en: 'union beside and joined with union', google translation) - - "⩋": [t: "在旁邊並與交點相交"] # 0x2a4b (en: 'intersection beside and joined with intersection', google translation) - - "⩌": [t: "與襯線關閉聯盟"] # 0x2a4c (en: 'closed union with serifs', google translation) - - "⩍": [t: "與襯線的封閉交叉點"] # 0x2a4d (en: 'closed intersection with serifs', google translation) - - "⩎": [t: "雙方交叉點"] # 0x2a4e (en: 'double square intersection', google translation) - - "⩏": [t: "雙方平等聯盟"] # 0x2a4f (en: 'double square union', google translation) - - "⩐": [t: "與襯線和粉碎產品關閉聯盟"] # 0x2a50 (en: 'closed union with serifs and smash product', google translation) - - "⩑": [t: "邏輯和上面的點"] # 0x2a51 (en: 'logical and with dot above', google translation) - - "⩒": [t: "邏輯或上面的點"] # 0x2a52 (en: 'logical or with dot above', google translation) - - "⩓": [t: "雙重邏輯和"] # 0x2a53 (en: 'double logical and', google translation) - - "⩔": [t: "雙邏輯或"] # 0x2a54 (en: 'double logical or', google translation) - - "⩕": [t: "兩個相交的邏輯和"] # 0x2a55 (en: 'two intersecting logical and', google translation) - - "⩖": [t: "兩個相交的邏輯或"] # 0x2a56 (en: 'two intersecting logical or', google translation) - - "⩗": [t: "傾斜大或"] # 0x2a57 (en: 'sloping large or', google translation) - - "⩘": [t: "傾斜大"] # 0x2a58 (en: 'sloping large and', google translation) - - "⩙": [t: "邏輯或重疊的邏輯和重疊"] # 0x2a59 (en: 'logical or overlapping logical and', google translation) - - "⩚": [t: "邏輯和中間莖"] # 0x2a5a (en: 'logical and with middle stem', google translation) - - "⩛": [t: "邏輯或中間莖"] # 0x2a5b (en: 'logical or with middle stem', google translation) - - "⩜": [t: "邏輯和水平破折號"] # 0x2a5c (en: 'logical and with horizontal dash', google translation) - - "⩝": [t: "邏輯或水平破折號"] # 0x2a5d (en: 'logical or with horizontal dash', google translation) - - "⩞": [t: "邏輯和雙重鍵"] # 0x2a5e (en: 'logical and with double overbar', google translation) - - "⩟": [t: "邏輯且具有underbar"] # 0x2a5f (en: 'logical and with underbar', google translation) - - "⩠": [t: "邏輯且具有雙underbar"] # 0x2a60 (en: 'logical and with double underbar', google translation) - - "⩡": [t: "帶有內褲的小vee"] # 0x2a61 (en: 'small vee with underbar', google translation) - - "⩢": [t: "邏輯或雙重鍵"] # 0x2a62 (en: 'logical or with double overbar', google translation) - - "⩣": [t: "邏輯或雙子鍵"] # 0x2a63 (en: 'logical or with double underbar', google translation) - - "⩤": [t: "z符號域抗脅迫"] # 0x2a64 (en: 'z notation domain antirestriction', google translation) - - "⩥": [t: "z符號範圍抗激氣"] # 0x2a65 (en: 'z notation range antirestriction', google translation) - - "⩦": [t: "等於下面的點"] # 0x2a66 (en: 'equals sign with dot below', google translation) - - "⩧": [t: "與上面的點相同"] # 0x2a67 (en: 'identical with dot above', google translation) - - "⩨": [t: "三重水平條帶有雙垂直衝程"] # 0x2a68 (en: 'triple horizontal bar with double vertical stroke', google translation) - - "⩩": [t: "三重水平條,帶有三重垂直衝程"] # 0x2a69 (en: 'triple horizontal bar with triple vertical stroke', google translation) - - "⩪": [t: "蒂爾德操作員上面有點"] # 0x2a6a (en: 'tilde operator with dot above', google translation) - - "⩫": [t: "tilde操作員帶有上升的點"] # 0x2a6b (en: 'tilde operator with rising dots', google translation) - - "⩬": [t: "類似的負相似"] # 0x2a6c (en: 'similar minus similar', google translation) - - "⩭": [t: "與上面的點一致"] # 0x2a6d (en: 'congruent with dot above', google translation) - - "⩮": [t: "等於星號"] # 0x2a6e (en: 'equals with asterisk', google translation) - - "⩯": [t: "幾乎等於帶繞的口音"] # 0x2a6f (en: 'almost equal to with circumflex accent', google translation) - - "⩰": [t: "大約等於或等於"] # 0x2a70 (en: 'approximately equal to or equal to', google translation) - - "⩱": [t: "等於符號上方加上符號"] # 0x2a71 (en: 'equals sign above plus sign', google translation) - - "⩲": [t: "加上符號等於標誌"] # 0x2a72 (en: 'plus sign above equals sign', google translation) - - "⩳": [t: "等於tilde操作員上方的標誌"] # 0x2a73 (en: 'equals sign above tilde operator', google translation) - - "⩴": [t: "雙結腸相等"] # 0x2a74 (en: 'double colon equal', google translation) - - "⩵": [t: "兩個連續的等於符號"] # 0x2a75 (en: 'two consecutive equals signs', google translation) - - "⩶": [t: "連續三個等於標誌"] # 0x2a76 (en: 'three consecutive equals signs', google translation) - - "⩷": [t: "等於符號上方有兩個點和下面的兩個點"] # 0x2a77 (en: 'equals sign with two dots above and two dots below', google translation) - - "⩸": [t: "等效,上面有四個點"] # 0x2a78 (en: 'equivalent with four dots above', google translation) - - "⩹": [t: "比里面的圓少"] # 0x2a79 (en: 'less than with circle inside', google translation) - - "⩺": [t: "比里面的圓大"] # 0x2a7a (en: 'greater than with circle inside', google translation) - - "⩻": [t: "少於上面的問號"] # 0x2a7b (en: 'less than with question mark above', google translation) - - "⩼": [t: "比上面的問號要大"] # 0x2a7c (en: 'greater than with question mark above', google translation) - - "⩽": [t: "小於或傾斜等於"] # 0x2a7d (en: 'less than or slanted equal to', google translation) - - "⩾": [t: "大於或傾斜等於"] # 0x2a7e (en: 'greater than or slanted equal to', google translation) - - "⩿": [t: "小於或傾斜與內部的點相等"] # 0x2a7f (en: 'less than or slanted equal to with dot inside', google translation) - - "⪀": [t: "大於或傾斜與內部的點相等"] # 0x2a80 (en: 'greater than or slanted equal to with dot inside', google translation) - - "⪁": [t: "小於或傾斜與上方的點相等"] # 0x2a81 (en: 'less than or slanted equal to with dot above', google translation) - - "⪂": [t: "大於或傾斜與上方的點相等"] # 0x2a82 (en: 'greater than or slanted equal to with dot above', google translation) - - "⪃": [t: "小於或傾斜等於右上方的點"] # 0x2a83 (en: 'less than or slanted equal to with dot above right', google translation) - - "⪄": [t: "大於左上方的點大於或傾斜"] # 0x2a84 (en: 'greater than or slanted equal to with dot above left', google translation) - - "⪅": [t: "小於或近似"] # 0x2a85 (en: 'less than or approximate', google translation) - - "⪆": [t: "大於或近似"] # 0x2a86 (en: 'greater than or approximate', google translation) - - "⪇": [t: "小於和單線不等於"] # 0x2a87 (en: 'less than and single line not equal to', google translation) - - "⪈": [t: "大於不等於的單線"] # 0x2a88 (en: 'greater than and single line not equal to', google translation) - - "⪉": [t: "少於近似"] # 0x2a89 (en: 'less than and not approximate', google translation) - - "⪊": [t: "大於近似"] # 0x2a8a (en: 'greater than and not approximate', google translation) - - "⪋": [t: "小於高於雙線的高於大於大於大於的雙線"] # 0x2a8b (en: 'less than above double line equal above greater than', google translation) - - "⪌": [t: "大於雙線高於小於小於小於小於的雙線"] # 0x2a8c (en: 'greater than above double line equal above less than', google translation) - - "⪍": [t: "小於相似或相等"] # 0x2a8d (en: 'less than above similar or equal', google translation) - - "⪎": [t: "大於相似或相等"] # 0x2a8e (en: 'greater than above similar or equal', google translation) - - "⪏": [t: "小於高於大於大於的高於相似之處"] # 0x2a8f (en: 'less than above similar above greater than', google translation) - - "⪐": [t: "大於相似的高於小於小於相似之處"] # 0x2a90 (en: 'greater than above similar above less than', google translation) - - "⪑": [t: "小於高於雙線的高於大於雙線"] # 0x2a91 (en: 'less than above greater than above double line equal', google translation) - - "⪒": [t: "大於小於雙線相等的高於小於少於雙線"] # 0x2a92 (en: 'greater than above less than above double line equal', google translation) - - "⪓": [t: "小於上方等於大於傾斜相等的傾斜等相等"] # 0x2a93 (en: 'less than above slanted equal above greater than above slanted equal', google translation) - - "⪔": [t: "大於上面的傾斜高於小於傾斜相等的等於"] # 0x2a94 (en: 'greater than above slanted equal above less than above slanted equal', google translation) - - "⪕": [t: "傾斜等於或小於或小"] # 0x2a95 (en: 'slanted equal to or less than', google translation) - - "⪖": [t: "傾斜等於或大於或大於"] # 0x2a96 (en: 'slanted equal to or greater than', google translation) - - "⪗": [t: "傾斜等於或小於內部的點"] # 0x2a97 (en: 'slanted equal to or less than with dot inside', google translation) - - "⪘": [t: "傾斜等於或大於內部點"] # 0x2a98 (en: 'slanted equal to or greater than with dot inside', google translation) - - "⪙": [t: "雙線等於或小於或小"] # 0x2a99 (en: 'double line equal to or less than', google translation) - - "⪚": [t: "雙線等於或大於或大於"] # 0x2a9a (en: 'double line equal to or greater than', google translation) - - "⪛": [t: "雙線傾斜等於或小於或小"] # 0x2a9b (en: 'double line slanted equal to or less than', google translation) - - "⪜": [t: "雙線傾斜等於或大於或大於"] # 0x2a9c (en: 'double line slanted equal to or greater than', google translation) - - "⪝": [t: "相似或少於"] # 0x2a9d (en: 'similar or less than', google translation) - - "⪞": [t: "相似或大於"] # 0x2a9e (en: 'similar or greater than', google translation) - - "⪟": [t: "在少於以上的高於符號的符號"] # 0x2a9f (en: 'similar above less than above equals sign', google translation) - - "⪠": [t: "在上面大於上方的上方等於符號"] # 0x2aa0 (en: 'similar above greater than above equals sign', google translation) - - "⪡": [t: "雙嵌套小於"] # 0x2aa1 (en: 'double nested less than', google translation) - - "⪢": [t: "雙嵌套大於"] # 0x2aa2 (en: 'double nested greater than', google translation) - - "⪣": [t: "雙嵌套比underbar少"] # 0x2aa3 (en: 'double nested less than with underbar', google translation) - - "⪤": [t: "大於重疊小於小於重疊"] # 0x2aa4 (en: 'greater than overlapping less than', google translation) - - "⪥": [t: "比旁邊大"] # 0x2aa5 (en: 'greater than beside less than', google translation) - - "⪦": [t: "小於曲線閉合"] # 0x2aa6 (en: 'less than closed by curve', google translation) - - "⪧": [t: "大於曲線封閉"] # 0x2aa7 (en: 'greater than closed by curve', google translation) - - "⪨": [t: "小於傾斜上方相等的曲線閉合"] # 0x2aa8 (en: 'less than closed by curve above slanted equal', google translation) - - "⪩": [t: "大於傾斜上方相等的曲線閉合"] # 0x2aa9 (en: 'greater than closed by curve above slanted equal', google translation) - - "⪪": [t: "小於"] # 0x2aaa (en: 'smaller than', google translation) - - "⪫": [t: "比大"] # 0x2aab (en: 'larger than', google translation) - - "⪬": [t: "小於或等於"] # 0x2aac (en: 'smaller than or equal to', google translation) - - "⪭": [t: "大於或等於"] # 0x2aad (en: 'larger than or equal to', google translation) - - "⪮": [t: "等於標誌,上面有顛簸"] # 0x2aae (en: 'equals sign with bumpy above', google translation) - - "⪯": [t: "在單線上方等於符號之前"] # 0x2aaf (en: 'precedes above single line equals sign', google translation) - - "⪰": [t: "在單線上的成功等於符號"] # 0x2ab0 (en: 'succeeds above single line equals sign', google translation) - - "⪱": [t: "在不等於的單線上方"] # 0x2ab1 (en: 'precedes above single line not equal to', google translation) - - "⪲": [t: "超過單線不等於"] # 0x2ab2 (en: 'succeeds above single line not equal to', google translation) - - "⪳": [t: "在上方等於符號"] # 0x2ab3 (en: 'precedes above equals sign', google translation) - - "⪴": [t: "超過超過符號"] # 0x2ab4 (en: 'succeeds above equals sign', google translation) - - "⪵": [t: "先於不等於"] # 0x2ab5 (en: 'precedes above not equal to', google translation) - - "⪶": [t: "成功超過不等於"] # 0x2ab6 (en: 'succeeds above not equal to', google translation) - - "⪷": [t: "在幾乎等於"] # 0x2ab7 (en: 'precedes above almost equal to', google translation) - - "⪸": [t: "成功幾乎等於"] # 0x2ab8 (en: 'succeeds above almost equal to', google translation) - - "⪹": [t: "先前幾乎不等於"] # 0x2ab9 (en: 'precedes above not almost equal to', google translation) - - "⪺": [t: "成功超過幾乎不等於"] # 0x2aba (en: 'succeeds above not almost equal to', google translation) - - "⪻": [t: "雙重之前"] # 0x2abb (en: 'double precedes', google translation) - - "⪼": [t: "雙重成功"] # 0x2abc (en: 'double succeeds', google translation) - - "⪽": [t: "用點子集"] # 0x2abd (en: 'subset with dot', google translation) - - "⪾": [t: "帶有點的超集"] # 0x2abe (en: 'superset with dot', google translation) - - "⪿": [t: "在下面帶有加號的子集"] # 0x2abf (en: 'subset with plus sign below', google translation) - - "⫀": [t: "帶有加上符號的超集"] # 0x2ac0 (en: 'superset with plus sign below', google translation) - - "⫁": [t: "在下面帶有乘法標誌的子集"] # 0x2ac1 (en: 'subset with multiplication sign below', google translation) - - "⫂": [t: "在下面帶有乘法標誌的超集"] # 0x2ac2 (en: 'superset with multiplication sign below', google translation) - - "⫃": [t: "子集的子集或與上方的點相等"] # 0x2ac3 (en: 'subset of or equal to with dot above', google translation) - - "⫄": [t: "上面的點或與點相等"] # 0x2ac4 (en: 'superset of or equal to with dot above', google translation) - - "⫅": [t: "上述子集等於符號"] # 0x2ac5 (en: 'subset of above equals sign', google translation) - - "⫆": [t: "上述超集等於符號"] # 0x2ac6 (en: 'superset of above equals sign', google translation) - - "⫇": [t: "上述tilde操作員的子集"] # 0x2ac7 (en: 'subset of above tilde operator', google translation) - - "⫈": [t: "上面的tilde操作員的超集"] # 0x2ac8 (en: 'superset of above tilde operator', google translation) - - "⫉": [t: "以上的子集幾乎等於"] # 0x2ac9 (en: 'subset of above almost equal to', google translation) - - "⫊": [t: "超過幾乎等於"] # 0x2aca (en: 'superset of above almost equal to', google translation) - - "⫋": [t: "真包含於"] # 0x2acb (en: 'subset above not equal to') - - "⫌": [t: "真包含"] # 0x2acc (en: 'superset of above not equal to') - - "⫍": [t: "square左開盒操作員"] # 0x2acd (en: 'square left open box operator', google translation) - - "⫎": [t: "正方形右開箱操作員"] # 0x2ace (en: 'square right open box operator', google translation) - - "⫏": [t: "封閉子集"] # 0x2acf (en: 'closed subset', google translation) - - "⫐": [t: "封閉的超集"] # 0x2ad0 (en: 'closed superset', google translation) - - "⫑": [t: "閉合子集或等於"] # 0x2ad1 (en: 'closed subset or equal to', google translation) - - "⫒": [t: "封閉的超集或等於"] # 0x2ad2 (en: 'closed superset or equal to', google translation) - - "⫓": [t: "子集上方的子集"] # 0x2ad3 (en: 'subset above superset', google translation) - - "⫔": [t: "在子集上方的超集"] # 0x2ad4 (en: 'superset above subset', google translation) - - "⫕": [t: "子集上方子集"] # 0x2ad5 (en: 'subset above subset', google translation) - - "⫖": [t: "超集在超集上方"] # 0x2ad6 (en: 'superset above superset', google translation) - - "⫗": [t: "子集旁邊的超級集"] # 0x2ad7 (en: 'superset beside subset', google translation) - - "⫘": [t: "在旁邊的超級集,並與dash一起與子集一起加入"] # 0x2ad8 (en: 'superset beside and joined by dash with subset', google translation) - - "⫙": [t: "向下開放的要素"] # 0x2ad9 (en: 'element of opening downwards', google translation) - - "⫚": [t: "帶有t卹頂的干草叉"] # 0x2ada (en: 'pitchfork with tee top', google translation) - - "⫛": [t: "橫向交集"] # 0x2adb (en: 'transversal intersection', google translation) - - "⫝̸": [t: "分叉"] # 0x2adc (en: 'forking', google translation) - - "⫝": [t: "非fork"] # 0x2add (en: 'nonforking', google translation) - - "⫞": [t: "左釘"] # 0x2ade (en: 'short left tack', google translation) - - "⫟": [t: "短釘"] # 0x2adf (en: 'short down tack', google translation) - - "⫠": [t: "短釘"] # 0x2ae0 (en: 'short up tack', google translation) - - "⫡": [t: "垂直於s"] # 0x2ae1 (en: 'perpendicular with s', google translation) - - "⫢": [t: "垂直桿右旋轉門"] # 0x2ae2 (en: 'vertical bar triple right turnstile', google translation) - - "⫣": [t: "雙垂直桿左旋轉門"] # 0x2ae3 (en: 'double vertical bar left turnstile', google translation) - - "⫤": [t: "垂直桿左旋轉門"] # 0x2ae4 (en: 'vertical bar double left turnstile', google translation) - - "⫥": [t: "雙垂直桿左旋轉門"] # 0x2ae5 (en: 'double vertical bar double left turnstile', google translation) - - "⫦": [t: "雙垂直左右成員的長儀表"] # 0x2ae6 (en: 'long dash from left member of double vertical', google translation) - - "⫧": [t: "用overbar短路"] # 0x2ae7 (en: 'short down tack with overbar', google translation) - - "⫨": [t: "與underbar短釘"] # 0x2ae8 (en: 'short up tack with underbar', google translation) - - "⫩": [t: "短釘在短釘上"] # 0x2ae9 (en: 'short up tack above short down tack', google translation) - - "⫪": [t: "雙重釘"] # 0x2aea (en: 'double down tack', google translation) - - "⫫": [t: "加倍大頭釘"] # 0x2aeb (en: 'double up tack', google translation) - - "⫬": [t: "雙沖程沒有簽名"] # 0x2aec (en: 'double stroke not sign', google translation) - - "⫭": [t: "逆轉雙沖程沒有簽名"] # 0x2aed (en: 'reversed double stroke not sign', google translation) - - "⫮": [t: "不與反向的否定斜線分開"] # 0x2aee (en: 'does not divide with reversed negation slash', google translation) - - "⫯": [t: "垂直線,上面有圓"] # 0x2aef (en: 'vertical line with circle above', google translation) - - "⫰": [t: "垂直線,下面有圓"] # 0x2af0 (en: 'vertical line with circle below', google translation) - - "⫱": [t: "下面的圓形下方"] # 0x2af1 (en: 'down tack with circle below', google translation) - - "⫲": [t: "與水平衝程平行"] # 0x2af2 (en: 'parallel with horizontal stroke', google translation) - - "⫳": [t: "與tilde操作員平行"] # 0x2af3 (en: 'parallel with tilde operator', google translation) - - "⫴": [t: "三重垂直桿二進制關係"] # 0x2af4 (en: 'triple vertical bar binary relation', google translation) - - "⫵": [t: "三重垂直條帶水平衝程"] # 0x2af5 (en: 'triple vertical bar with horizontal stroke', google translation) - - "⫶": [t: "三重結腸操作員"] # 0x2af6 (en: 'triple colon operator', google translation) - - "⫷": [t: "三重嵌套比"] # 0x2af7 (en: 'triple nested less than', google translation) - - "⫸": [t: "三重築巢大於"] # 0x2af8 (en: 'triple nested greater than', google translation) - - "⫹": [t: "雙線傾斜小於或等於"] # 0x2af9 (en: 'double line slanted less than or equal to', google translation) - - "⫺": [t: "雙線傾斜大於或等於"] # 0x2afa (en: 'double line slanted greater than or equal to', google translation) - - "⫻": [t: "三固體二元關係"] # 0x2afb (en: 'triple solidus binary relation', google translation) - - "⫼": [t: "大三重垂直桿操作員"] # 0x2afc (en: 'large triple vertical bar operator', google translation) - - "⫽": [t: "雙固體操作員"] # 0x2afd (en: 'double solidus operator', google translation) - - "⫾": [t: "白色垂直條"] # 0x2afe (en: 'white vertical bar', google translation) - - "⫿": [t: "白色垂直條"] # 0x2aff (en: 'white vertical bar', google translation) - - "⬀": [t: "東北白色箭頭"] # 0x2b00 (en: 'north east white arrow', google translation) - - "⬁": [t: "西北白色箭頭"] # 0x2b01 (en: 'north west white arrow', google translation) - - "⬂": [t: "東南白色箭頭"] # 0x2b02 (en: 'south east white arrow', google translation) - - "⬃": [t: "西南白色箭頭"] # 0x2b03 (en: 'south west white arrow', google translation) - - "⬄": [t: "左右白色箭頭"] # 0x2b04 (en: 'left right white arrow', google translation) - - "⬅": [t: "左黑箭頭"] # 0x2b05 (en: 'leftwards black arrow', google translation) - - "⬆": [t: "向上黑色箭頭"] # 0x2b06 (en: 'upwards black arrow', google translation) - - "⬇": [t: "向下黑色箭頭"] # 0x2b07 (en: 'downwards black arrow', google translation) - - "⬈": [t: "東北黑色箭頭"] # 0x2b08 (en: 'north east black arrow', google translation) - - "⬉": [t: "西北黑色箭頭"] # 0x2b09 (en: 'north west black arrow', google translation) - - "⬊": [t: "東南黑色箭頭"] # 0x2b0a (en: 'south east black arrow', google translation) - - "⬋": [t: "西南黑色箭頭"] # 0x2b0b (en: 'south west black arrow', google translation) - - "⬌": [t: "左右黑色箭頭"] # 0x2b0c (en: 'left right black arrow', google translation) - - "⬍": [t: "向上沿黑色箭頭"] # 0x2b0d (en: 'up down black arrow', google translation) - - "⬎": [t: "向右的箭頭向下向下"] # 0x2b0e (en: 'rightwards arrow with tip downwards', google translation) - - "⬏": [t: "向右的箭頭向上"] # 0x2b0f (en: 'rightwards arrow with tip upwards', google translation) - - "⬐": [t: "左箭頭,尖端向下"] # 0x2b10 (en: 'leftwards arrow with tip downwards', google translation) - - "⬑": [t: "左箭頭上向上"] # 0x2b11 (en: 'leftwards arrow with tip upwards', google translation) - - "⬒": [t: "正方形與上半黑色"] # 0x2b12 (en: 'square with top half black', google translation) - - "⬓": [t: "正方形與下半部分"] # 0x2b13 (en: 'square with bottom half black', google translation) - - "⬔": [t: "與右上角半黑色的正方形"] # 0x2b14 (en: 'square with upper right diagonal half black', google translation) - - "⬕": [t: "正方形與左下對角線半黑色"] # 0x2b15 (en: 'square with lower left diagonal half black', google translation) - - "⬖": [t: "鑽石左半黑"] # 0x2b16 (en: 'diamond with left half black', google translation) - - "⬗": [t: "鑽石與右半黑色"] # 0x2b17 (en: 'diamond with right half black', google translation) - - "⬘": [t: "鑽石上半黑色"] # 0x2b18 (en: 'diamond with top half black', google translation) - - "⬙": [t: "鑽石與下半部分"] # 0x2b19 (en: 'diamond with bottom half black', google translation) - - "⬚": [t: "盒子"] # 0x2b1a (en: 'box', google translation) - - "⬛": [t: "黑色大正方形"] # 0x2b1b (en: 'black large square', google translation) - - "⬜": [t: "白色大正方形"] # 0x2b1c (en: 'white large square', google translation) - - "⬝": [t: "黑色非常小的正方形"] # 0x2b1d (en: 'black very small square', google translation) - - "⬞": [t: "白色非常小的正方形"] # 0x2b1e (en: 'white very small square', google translation) - - "⬟": [t: "黑色五角大樓"] # 0x2b1f (en: 'black pentagon', google translation) - - "⬠": [t: "白五角大樓"] # 0x2b20 (en: 'white pentagon', google translation) - - "⬡": [t: "白色六角形"] # 0x2b21 (en: 'white hexagon', google translation) - - "⬢": [t: "黑色六角形"] # 0x2b22 (en: 'black hexagon', google translation) - - "⬣": [t: "水平黑色六角形"] # 0x2b23 (en: 'horizontal black hexagon', google translation) - - "⬤": [t: "黑色大圓圈"] # 0x2b24 (en: 'black large circle', google translation) - - "⬥": [t: "黑色中鑽"] # 0x2b25 (en: 'black medium diamond', google translation) - - "⬦": [t: "白色中型鑽石"] # 0x2b26 (en: 'white medium diamond', google translation) - - "⬧": [t: "黑色中型潤滑油"] # 0x2b27 (en: 'black medium lozenge', google translation) - - "⬨": [t: "白色中型潤滑脂"] # 0x2b28 (en: 'white medium lozenge', google translation) - - "⬩": [t: "黑色小鑽石"] # 0x2b29 (en: 'black small diamond', google translation) - - "⬪": [t: "黑色的小烤"] # 0x2b2a (en: 'black small lozenge', google translation) - - "⬫": [t: "白色小烤"] # 0x2b2b (en: 'white small lozenge', google translation) - - "⬬": [t: "黑色水平橢圓"] # 0x2b2c (en: 'black horizontal ellipse', google translation) - - "⬭": [t: "白色水平橢圓"] # 0x2b2d (en: 'white horizontal ellipse', google translation) - - "⬮": [t: "黑色垂直橢圓"] # 0x2b2e (en: 'black vertical ellipse', google translation) - - "⬯": [t: "白色垂直橢圓"] # 0x2b2f (en: 'white vertical ellipse', google translation) - - "⬰": [t: "左箭頭有小圓圈"] # 0x2b30 (en: 'left arrow with small circle', google translation) - - "⬱": [t: "三個左箭頭"] # 0x2b31 (en: 'three leftwards arrows', google translation) - - "⬲": [t: "左箭頭帶有圓圈"] # 0x2b32 (en: 'left arrow with circled plus', google translation) - - "⬳": [t: "長左彎曲箭頭"] # 0x2b33 (en: 'long leftwards squiggle arrow', google translation) - - "⬴": [t: "左兩個帶有垂直衝程的頭箭頭"] # 0x2b34 (en: 'leftwards two headed arrow with vertical stroke', google translation) - - "⬵": [t: "左兩個帶有雙垂直衝程的頭箭頭"] # 0x2b35 (en: 'leftwards two headed arrow with double vertical stroke', google translation) - - "⬶": [t: "從酒吧左下有兩個頭箭頭"] # 0x2b36 (en: 'leftwards two headed arrow from bar', google translation) - - "⬷": [t: "左兩個頭三翼箭頭"] # 0x2b37 (en: 'leftwards two headed triple dash arrow', google translation) - - "⬸": [t: "左箭頭帶有虛線"] # 0x2b38 (en: 'leftwards arrow with dotted stem', google translation) - - "⬹": [t: "左箭頭,帶有垂直衝程"] # 0x2b39 (en: 'leftwards arrow with tail with vertical stroke', google translation) - - "⬺": [t: "左箭頭,帶有雙垂直衝程"] # 0x2b3a (en: 'leftwards arrow with tail with double vertical stroke', google translation) - - "⬻": [t: "向左兩個帶有尾巴的頭箭頭"] # 0x2b3b (en: 'leftwards two headed arrow with tail', google translation) - - "⬼": [t: "向左兩個頭箭頭,帶有垂直衝程"] # 0x2b3c (en: 'leftwards two headed arrow with tail with vertical stroke', google translation) - - "⬽": [t: "左兩個頭箭,帶有雙垂直行程"] # 0x2b3d (en: 'leftwards two headed arrow with tail with double vertical stroke', google translation) - - "⬾": [t: "向左箭頭穿過x"] # 0x2b3e (en: 'leftwards arrow through x', google translation) - - "⬿": [t: "箭頭直接向左指向"] # 0x2b3f (en: 'wave arrow pointing directly left', google translation) - - "⭀": [t: "等於向左箭頭上方的標誌"] # 0x2b40 (en: 'equals sign above leftwards arrow', google translation) - - "⭁": [t: "向左箭頭上方反向tilde操作員"] # 0x2b41 (en: 'reverse tilde operator above leftwards arrow', google translation) - - "⭂": [t: "反向上方的左箭頭幾乎等於"] # 0x2b42 (en: 'leftwards arrow above reverse almost equal to', google translation) - - "⭃": [t: "向右箭頭大於大於"] # 0x2b43 (en: 'rightwards arrow through greater than', google translation) - - "⭄": [t: "向右箭頭穿過超集"] # 0x2b44 (en: 'rightwards arrow through superset', google translation) - - "⭅": [t: "左四倍箭頭"] # 0x2b45 (en: 'leftwards quadruple arrow', google translation) - - "⭆": [t: "向右四倍箭頭"] # 0x2b46 (en: 'rightwards quadruple arrow', google translation) - - "⭇": [t: "向右箭頭上方反向tilde操作員"] # 0x2b47 (en: 'reverse tilde operator above rightwards arrow', google translation) - - "⭈": [t: "反向上方的右箭頭幾乎等於"] # 0x2b48 (en: 'rightwards arrow above reverse almost equal to', google translation) - - "⭉": [t: "tilde操作員在左上方箭頭上方"] # 0x2b49 (en: 'tilde operator above leftwards arrow', google translation) - - "⭊": [t: "左箭頭幾乎等於"] # 0x2b4a (en: 'leftwards arrow above almost equal to', google translation) - - "⭋": [t: "反向tilde操作員上方的左箭頭"] # 0x2b4b (en: 'leftwards arrow above reverse tilde operator', google translation) - - "⭌": [t: "右箭頭上方的箭頭操作員上方"] # 0x2b4c (en: 'rightwards arrow above reverse tilde operator', google translation) - - "⭐": [t: "白色中等星星"] # 0x2b50 (en: 'white medium star', google translation) - - "⭑": [t: "黑色小星星"] # 0x2b51 (en: 'black small star', google translation) - - "⭒": [t: "白色的小星星"] # 0x2b52 (en: 'white small star', google translation) - - "⭓": [t: "黑色右指向五角大樓"] # 0x2b53 (en: 'black right pointing pentagon', google translation) - - "⭔": [t: "白色右指向五角大樓"] # 0x2b54 (en: 'white right pointing pentagon', google translation) - - "⭕": [t: "沉重的大圓圈"] # 0x2b55 (en: 'heavy large circle', google translation) - - "⭖": [t: "內部有橢圓形的重橢圓形"] # 0x2b56 (en: 'heavy oval with oval inside', google translation) - - "⭗": [t: "內部有圓圈的重圓"] # 0x2b57 (en: 'heavy circle with circle inside', google translation) - - "⭘": [t: "沉重的圓圈"] # 0x2b58 (en: 'heavy circle', google translation) - - "⭙": [t: "沉重盤旋的鹽鹽"] # 0x2b59 (en: 'heavy circled saltire', google translation) - - "⸀": [t: "直角替代標記"] # 0x2e00 (en: 'right angle substitution marker', google translation) - - "⸁": [t: "直角虛線替代標記"] # 0x2e01 (en: 'right angle dotted substitution marker', google translation) - - "⸂": [t: "左替代括號"] # 0x2e02 (en: 'left substitution bracket', google translation) - - "⸃": [t: "正確的替換括號"] # 0x2e03 (en: 'right substitution bracket', google translation) - - "⸄": [t: "左虛線替代括號"] # 0x2e04 (en: 'left dotted substitution bracket', google translation) - - "⸅": [t: "右虛線替代括號"] # 0x2e05 (en: 'right dotted substitution bracket', google translation) - - "⸆": [t: "提出的插值標記"] # 0x2e06 (en: 'raised interpolation marker', google translation) - - "⸇": [t: "凸起的虛線插值標記"] # 0x2e07 (en: 'raised dotted interpolation marker', google translation) - - "⸈": [t: "虛線換位標記標記"] # 0x2e08 (en: 'dotted transposition marker marker', google translation) - - "⸉": [t: "左置式支架"] # 0x2e09 (en: 'left transposition bracket', google translation) - - "⸊": [t: "右轉位支架"] # 0x2e0a (en: 'right transposition bracket', google translation) - - "⸋": [t: "高架廣場"] # 0x2e0b (en: 'raised square', google translation) - - "⸌": [t: "左提出的遺漏支架"] # 0x2e0c (en: 'left raised omission bracket', google translation) - - "⸍": [t: "右凸起的遺漏支架"] # 0x2e0d (en: 'right raised omission bracket', google translation) - - "⸎": [t: "社論coronis"] # 0x2e0e (en: 'editorial coronis', google translation) - - "⸏": [t: "段落"] # 0x2e0f (en: 'paragraphos', google translation) - - "⸐": [t: "分叉的段落"] # 0x2e10 (en: 'forked paragraphos', google translation) - - "⸑": [t: "反向叉式段落"] # 0x2e11 (en: 'reversed forked paragraphos', google translation) - - "⸒": [t: "低消血管"] # 0x2e12 (en: 'hypodiastole', google translation) - - "⸓": [t: "虛線的obelos"] # 0x2e13 (en: 'dotted obelos', google translation) - - "⸔": [t: "向下ancora"] # 0x2e14 (en: 'downwards ancora', google translation) - - "⸕": [t: "向上ancora"] # 0x2e15 (en: 'upwards ancora', google translation) - - "⸖": [t: "點綴的右指向角"] # 0x2e16 (en: 'dotted right pointing angle', google translation) - - "⸗": [t: "雙傾斜連字符"] # 0x2e17 (en: 'double oblique hyphen', google translation) - - "⸘": [t: "倒立的跨凸"] # 0x2e18 (en: 'inverted interrobang', google translation) - - "⸙": [t: "棕櫚分支"] # 0x2e19 (en: 'palm branch', google translation) - - "⸚": [t: "連字符,透視"] # 0x2e1a (en: 'hyphen with diaeresis', google translation) - - "⸛": [t: "帶有環上的tilde"] # 0x2e1b (en: 'tilde with ring above', google translation) - - "⸜": [t: "左低術語括號"] # 0x2e1c (en: 'left low paraphrase bracket', google translation) - - "⸝": [t: "右低釋義括號"] # 0x2e1d (en: 'right low paraphrase bracket', google translation) - - "⸞": [t: "上面有點"] # 0x2e1e (en: 'tilde with dot above', google translation) - - "⸟": [t: "tilde在下面的點"] # 0x2e1f (en: 'tilde with dot below', google translation) - - "⸠": [t: "左垂直條帶鵝毛筆"] # 0x2e20 (en: 'left vertical bar with quill', google translation) - - "⸡": [t: "右垂直條帶鵝毛筆"] # 0x2e21 (en: 'right vertical bar with quill', google translation) - - "⸢": [t: "左上半支架"] # 0x2e22 (en: 'top left half bracket', google translation) - - "⸣": [t: "右上半支架"] # 0x2e23 (en: 'top right half bracket', google translation) - - "⸤": [t: "左下半支架"] # 0x2e24 (en: 'bottom left half bracket', google translation) - - "⸥": [t: "右下半支架"] # 0x2e25 (en: 'bottom right half bracket', google translation) - - "⸦": [t: "左側身你支架"] # 0x2e26 (en: 'left sideways u bracket', google translation) - - "⸧": [t: "右側u括號"] # 0x2e27 (en: 'right sideways u bracket', google translation) - - "⸨": [t: "左雙括號"] # 0x2e28 (en: 'left double parentheses', google translation) - - "⸩": [t: "右雙括號"] # 0x2e29 (en: 'right double parentheses', google translation) - - "⸪": [t: "一個點標點符號上有兩個點"] # 0x2e2a (en: 'two dots over one dot punctuation', google translation) - - "⸫": [t: "一個點在兩個點標點符號上"] # 0x2e2b (en: 'one dot over two dots punctuation', google translation) - - "⸬": [t: "平方四個點標點符號"] # 0x2e2c (en: 'squared four dot punctuation', google translation) - - "⸭": [t: "五個點標記"] # 0x2e2d (en: 'five dot mark', google translation) - - "⸮": [t: "反向問號"] # 0x2e2e (en: 'reversed question mark', google translation) - - "ⸯ": [t: "垂直tilde"] # 0x2e2f (en: 'vertical tilde', google translation) - - "⸰": [t: "環點"] # 0x2e30 (en: 'ring point', google translation) - - "⸱": [t: "單詞分離器中間點"] # 0x2e31 (en: 'word separator middle dot', google translation) - - "⸲": [t: "轉了逗號"] # 0x2e32 (en: 'turned comma', google translation) - - "⸳": [t: "凸起的點"] # 0x2e33 (en: 'raised dot', google translation) - - "⸴": [t: "提高逗號"] # 0x2e34 (en: 'raised comma', google translation) - - "⸵": [t: "變成了半隆"] # 0x2e35 (en: 'turned semicolon', google translation) - - "⸶": [t: "匕首與左後衛"] # 0x2e36 (en: 'dagger with left guard', google translation) - - "⸷": [t: "匕首與右後衛"] # 0x2e37 (en: 'dagger with right guard', google translation) - - "⸸": [t: "變成匕首"] # 0x2e38 (en: 'turned dagger', google translation) - - "⸹": [t: "上半場符號"] # 0x2e39 (en: 'top half section sign', google translation) - - "⸺": [t: "兩個em破折號"] # 0x2e3a (en: 'two em dash', google translation) - - "⸻": [t: "三個em破折號"] # 0x2e3b (en: 'three em dash', google translation) - - "〃": [t: "同上馬克"] # 0x3003 (en: 'ditto mark', google translation) - - "〈": [t: "左角支架"] # 0x3008 (en: 'left angle bracket', google translation) - - "〉": [t: "直角支架"] # 0x3009 (en: 'right angle bracket', google translation) - - "《": [t: "左雙角支架"] # 0x300a (en: 'left double angle bracket', google translation) - - "》": [t: "右雙角括號"] # 0x300b (en: 'right double angle bracket', google translation) - - "「": [t: "左角支架"] # 0x300c (en: 'left corner bracket', google translation) - - "」": [t: "右角支架"] # 0x300d (en: 'right corner bracket', google translation) - - "『": [t: "左白角支架"] # 0x300e (en: 'left white corner bracket', google translation) - - "』": [t: "右白角支架"] # 0x300f (en: 'right white corner bracket', google translation) - - "【": [t: "左黑色寬角支架"] # 0x3010 (en: 'left black lenticular bracket', google translation) - - "】": [t: "右黑色寬角支架"] # 0x3011 (en: 'right black lenticular bracket', google translation) - - "〔": [t: "左烏龜殼支架"] # 0x3014 (en: 'left tortoise shell bracket', google translation) - - "〕": [t: "右龜甲支架"] # 0x3015 (en: 'right tortoise shell bracket', google translation) - - "〖": [t: "左白色凸括號"] # 0x3016 (en: 'left white lenticular bracket', google translation) - - "〗": [t: "右白色凸括號"] # 0x3017 (en: 'right white lenticular bracket', google translation) - - "〘": [t: "剩下的白色烏龜殼支架"] # 0x3018 (en: 'left white tortoise shell bracket', google translation) - - "〙": [t: "右白色烏龜殼支架"] # 0x3019 (en: 'right white tortoise shell bracket', google translation) - - "〚": [t: "剩下的白色正方形支架"] # 0x301a (en: 'left white square bracket', google translation) - - "〛": [t: "右白色正方形支架"] # 0x301b (en: 'right white square bracket', google translation) - - "〜": [t: "波浪破折號"] # 0x301c (en: 'wave dash', google translation) - - "〰": [t: "波浪st"] # 0x3030 (en: 'wavy dash', google translation) - - "㉈": [t: "在黑色廣場上盤旋十字"] # 0x3248 (en: 'circled number ten on black square', google translation) - - "㉉": [t: "在黑色廣場上盤旋二十個"] # 0x3249 (en: 'circled number twenty on black square', google translation) - - "㉊": [t: "黑色廣場上的三十個圓數"] # 0x324a (en: 'circled number thirty on black square', google translation) - - "㉋": [t: "在黑色廣場上盤旋40個"] # 0x324b (en: 'circled number forty on blacks square', google translation) - - "㉌": [t: "黑色廣場上的五十個圓圈"] # 0x324c (en: 'circled number fifty on black square', google translation) - - "㉍": [t: "在黑色廣場上盤旋六十"] # 0x324d (en: 'circled number sixty on black square', google translation) - - "㉎": [t: "在黑色廣場上盤旋七十"] # 0x324e (en: 'circled number seventy on black square', google translation) - - "㉏": [t: "在黑色廣場上盤旋的數字"] # 0x324f (en: 'circled number eighty on black square', google translation) - - "㉑": [T: "圈圈內21"] # 0x3251 (en: 'circled number twenty one', google translation) - - "㉒": [T: "圈圈內22"] # 0x3252 (en: 'circled number twenty two', google translation) - - "㉓": [T: "圈圈內23"] # 0x3253 (en: 'circled number twenty three', google translation) - - "㉔": [T: "圈圈內24"] # 0x3254 (en: 'circled number twenty four', google translation) - - "㉕": [T: "圈圈內25"] # 0x3255 (en: 'circled number twenty five', google translation) - - "㉖": [T: "圈圈內26"] # 0x3256 (en: 'circled number twenty six', google translation) - - "㉗": [T: "圈圈內27"] # 0x3257 (en: 'circled number twenty seven', google translation) - - "㉘": [T: "圈圈內28"] # 0x3258 (en: 'circled number twenty eight', google translation) - - "㉙": [T: "圈圈內29"] # 0x3259 (en: 'circled number twenty nine', google translation) - - "㉚": [T: "圈圈內30"] # 0x325a (en: 'circled number thirty', google translation) - - "㉛": [T: "圈圈內31"] # 0x325b (en: 'circled number thirty one', google translation) - - "㉜": [T: "圈圈內32"] # 0x325c (en: 'circled number thirty two', google translation) - - "㉝": [T: "圈圈內33"] # 0x325d (en: 'circled number thirty three', google translation) - - "㉞": [T: "圈圈內34"] # 0x325e (en: 'circled number thirty four', google translation) - - "㉟": [T: "圈圈內35"] # 0x325f (en: 'circled number thirty five', google translation) - - "㊱": [T: "圈圈內36"] # 0x32b1 (en: 'circled number thirty six', google translation) - - "㊲": [T: "圈圈內37"] # 0x32b2 (en: 'circled number thirty seven', GPT-5.4 translation) - - "㊳": [T: "圈圈內38"] # 0x32b3 (en: 'circled number thirty eight', GPT-5.4 translation) - - "㊴": [T: "圈圈內39"] # 0x32b4 (en: 'circled number thirty nine', GPT-5.4 translation) - - "㊵": [T: "圈圈內40"] # 0x32b5 (en: 'circled number forty', GPT-5.4 translation) - - "㊶": [T: "圈圈內41"] # 0x32b6 (en: 'circled number forty one', GPT-5.4 translation) - - "㊷": [T: "圈圈內42"] # 0x32b7 (en: 'circled number forty two', GPT-5.4 translation) - - "㊸": [T: "圈圈內43"] # 0x32b8 (en: 'circled number forty three', GPT-5.4 translation) - - "㊹": [T: "圈圈內44"] # 0x32b9 (en: 'circled number forty four', GPT-5.4 translation) - - "㊺": [T: "圈圈內45"] # 0x32ba (en: 'circled number forty five', GPT-5.4 translation) - - "㊻": [T: "圈圈內46"] # 0x32bb (en: 'circled number forty six', GPT-5.4 translation) - - "㊼": [T: "圈圈內47"] # 0x32bc (en: 'circled number forty seven', GPT-5.4 translation) - - "㊽": [T: "圈圈內48"] # 0x32bd (en: 'circled number forty eight', GPT-5.4 translation) - - "㊾": [T: "圈圈內49"] # 0x32be (en: 'circled number forty nine', GPT-5.4 translation) - - "㊿": [T: "圈圈內50"] # 0x32bf (en: 'circled number fifty', GPT-5.4 translation) - - "㋌": [T: "汞柱"] # 0x32cc (en: 'mercury', google translation) - - "㋍": [T: "耳格"] # 0x32cd (google translation) - - "㋎": [T: "電子伏特"] # 0x32ce (en: 'electron volts', google translation) - - "㋏": [T: "有限責任標誌"] # 0x32cf (en: 'limited liability sign', google translation) - - "㍱": [T: "百帕"] # 0x3371 (en: 'hectopascals', google translation) - - "㍲": [T: "道爾頓"] # 0x3372 (en: 'daltons', google translation) - - "㍳": [T: "天文單位"] # 0x3373 (en: 'astronomical units', google translation) - - "㍴": [T: "巴"] # 0x3374 (en: 'bars', google translation) - - "㍵": [t: "o v"] # 0x3375 (google translation) - - "㍶": [T: "秒差距"] # 0x3376 (google translation) - - "㍷": [T: "分米"] # 0x3377 (en: 'decimeters', google translation) - - "㍸": [T: "平方分米"] # 0x3378 (en: 'decimeters squared', google translation) - - "㍹": [T: "立方分米"] # 0x3379 (en: 'decimeters cubed', google translation) - - "㍺": [t: "樂器單元"] # 0x337a (en: 'instrumental units', google translation) - - "㎀": [t: "皮安培"] # 0x3380 (google translation) - - "㎁": [t: "奈安培"] # 0x3381 (en: 'nanoamps', google translation) - - "㎂": [t: "微安培"] # 0x3382 (en: 'microamps', google translation) - - "㎃": [t: "毫安培"] # 0x3383 (en: 'milliamps', google translation) - - "㎄": [T: "千安培"] # 0x3384 (en: 'kiloamps', google translation) - - "㎅": [T: "KB"] # 0x3385 (en: 'kilobytes', google translation) - - "㎆": [T: "MB"] # 0x3386 (en: 'megabytes', google translation) - - "㎇": [T: "GB"] # 0x3387 (en: 'gigabytes', google translation) - - "㎈": [T: "卡"] # 0x3388 (en: 'calories', google translation) - - "㎉": [T: "大卡"] # 0x3389 (en: 'kilocalories', google translation) - - "㎊": [t: "皮法拉"] # 0x338a (google translation) - - "㎋": [t: "奈法拉"] # 0x338b (en: 'nanofarads', google translation) - - "㎌": [t: "微法拉"] # 0x338c (en: 'microfarads', google translation) - - "㎍": [T: "微克"] # 0x338d (en: 'micrograms', google translation) - - "㎎": [T: "毫克"] # 0x338e (en: 'milligrams', google translation) - - "㎏": [T: "公斤"] # 0x338f (en: 'kilograms', google translation) - - "㎐": [T: "赫茲"] # 0x3390 (en: 'hertz', google translation) - - "㎑": [T: "千赫"] # 0x3391 (en: 'kilohertz', google translation) - - "㎒": [T: "百萬赫"] # 0x3392 (en: 'megahertz', google translation) - - "㎓": [T: "吉赫"] # 0x3393 (en: 'gigahertz', google translation) - - "㎔": [t: "兆赫"] # 0x3394 (google translation) - - "㎕": [T: "微升"] # 0x3395 (en: 'microliters', google translation) - - "㎖": [T: "毫升"] # 0x3396 (en: 'milliliters', google translation) - - "㎗": [t: "分升"] # 0x3397 (en: 'deciliters', google translation) - - "㎘": [T: "公秉"] # 0x3398 (en: 'kiloliters', google translation) - - "㎙": [t: "飛米"] # 0x3399 (google translation) - - "㎚": [T: "奈米"] # 0x339a (en: 'nanometers', google translation) - - "㎛": [T: "微米"] # 0x339b (en: 'micrometers', google translation) - - "㎜": [T: "毫米"] # 0x339c (en: 'millimeters', google translation) - - "㎝": [T: "公分"] # 0x339d (en: 'centimeters', google translation) - - "㎞": [T: "公里"] # 0x339e (en: 'kilometers', google translation) - - "㎟": [T: "平方毫米"] # 0x339f (en: 'millimeters squared', google translation) - - "㎠": [T: "平方公分"] # 0x33a0 (en: 'centimeters squared', google translation) - - "㎡": [T: "平方公尺"] # 0x33a1 (en: 'meters squared', google translation) - - "㎢": [T: "平方公里"] # 0x33a2 (en: 'kilometers squared', google translation) - - "㎣": [T: "立方毫米"] # 0x33a3 (en: 'millimeters cubed', google translation) - - "㎤": [T: "立方公分"] # 0x33a4 (en: 'centimeters cubed', google translation) - - "㎥": [T: "立方公尺"] # 0x33a5 (en: 'meters cubed', google translation) - - "㎦": [T: "立方公里"] # 0x33a6 (en: 'kilometers cubed', google translation) - - "㎧": [T: "公尺/秒"] # 0x33a7 (en: 'meters per second', google translation) - - "㎨": [T: "公尺/平方秒"] # 0x33a8 (en: 'meters per second squared', google translation) - - "㎩": [t: "帕"] # 0x33a9 (en: 'pascals', google translation) - - "㎪": [t: "千帕"] # 0x33aa (google translation) - - "㎫": [t: "百萬帕"] # 0x33ab (en: 'megapascals', google translation) - - "㎬": [t: "吉帕"] # 0x33ac (google translation) - - "㎭": [T: "弳"] # 0x33ad (en: 'rads', google translation) - - "㎮": [T: "弳/秒"] # 0x33ae (en: 'rads per second', google translation) - - "㎯": [T: "弳/平方秒"] # 0x33af (en: 'rads per second squared', google translation) - - "㎰": [t: "皮秒"] # 0x33b0 (en: 'picoseconds', google translation) - - "㎱": [t: "奈秒"] # 0x33b1 (en: 'nanoseconds', google translation) - - "㎲": [T: "微秒"] # 0x33b2 (en: 'microseconds', google translation) - - "㎳": [T: "毫秒"] # 0x33b3 (en: 'milliseconds', google translation) - - "㎴": [t: "皮伏特"] # 0x33b4 (google translation) - - "㎵": [t: "奈伏特"] # 0x33b5 (en: 'nanovolts', google translation) - - "㎶": [T: "微伏特"] # 0x33b6 (en: 'microvolts', google translation) - - "㎷": [T: "毫伏特"] # 0x33b7 (en: 'millivolts', google translation) - - "㎸": [T: "千伏特"] # 0x33b8 (en: 'kilovolts', google translation) - - "㎹": [t: "百萬伏特"] # 0x33b9 (google translation) - - "㎺": [t: "皮瓦"] # 0x33ba (google translation) - - "㎻": [t: "奈瓦"] # 0x33bb (en: 'nanowatts', google translation) - - "㎼": [t: "微瓦"] # 0x33bc (google translation) - - "㎽": [T: "毫瓦"] # 0x33bd (en: 'milliwatts', google translation) - - "㎾": [T: "千瓦"] # 0x33be (en: 'kilowatts', google translation) - - "㎿": [T: "百萬瓦"] # 0x33bf (en: 'megawatts', google translation) - - "㏀": [T: "千歐姆"] # 0x33c0 (en: 'kilo-ohms', google translation) - - "㏁": [T: "百萬歐姆"] # 0x33c1 (google translation) - - "㏂": [t: "attometers"] # 0x33c2 (google translation) - - "㏃": [t: "貝克"] # 0x33c3 (en: 'becquerels', google translation) - - "㏄": [T: "cc"] # 0x33c4 (en: 'cubic centimeters', google translation) - - "㏅": [t: "燭光"] # 0x33c5 (en: 'candelas', google translation) - - "㏆": [t: "庫侖/公斤"] # 0x33c6 (en: 'coulombs per kilogram', google translation) - - "㏇": [t: "cardiac output"] # 0x33c7 (en: 'cardiac output', google translation) - - "㏈": [T: "分貝"] # 0x33c8 (en: 'decibels', google translation) - - "㏉": [t: "戈雷"] # 0x33c9 (en: 'grays', google translation) - - "㏊": [t: "公頃"] # 0x33ca (en: 'hectares', google translation) - - "㏋": [T: "馬力"] # 0x33cb (en: 'horsepower', google translation) - - "㏌": [T: "英寸"] # 0x33cc (en: 'inches', google translation) - - "㏍": [t: "kilokelvins"] # 0x33cd (google translation) - - "㏎": [T: "公里"] # 0x33ce (en: 'kilometers', google translation) - - "㏏": [t: "節"] # 0x33cf (en: 'knots', google translation) - - "㏐": [T: "流明"] # 0x33d0 (en: 'lumens', google translation) - - "㏑": [T: "自然對數"] # 0x33d1 (en: 'natural log', google translation) - - "㏒": [T: "對數"] # 0x33d2 (en: 'logarithm', google translation) - - "㏓": [t: "勒克斯"] # 0x33d3 (en: 'lux', google translation) - - "㏔": [t: "毫邦"] # 0x33d4 (google translation) - - "㏕": [t: "密耳"] # 0x33d5 (en: 'mills', google translation) - - "㏖": [t: "莫耳"] # 0x33d6 (en: 'moles', google translation) - - "㏗": [T: "pH"] # 0x33d7 (google translation) - - "㏘": [t: "picometers"] # 0x33d8 (en: 'picometers', google translation) - - "㏙": [T: "PPM"] # 0x33d9 (en: 'parts per million', google translation) - - "㏚": [t: "拍侖琴"] # 0x33da (google translation) - - "㏛": [t: "立弳"] # 0x33db (en: 'steradians', google translation) - - "㏜": [t: "西弗"] # 0x33dc (google translation) - - "㏝": [t: "韋伯"] # 0x33dd (en: 'webers', google translation) - - "㏞": [T: "伏特/公尺"] # 0x33de (en: 'volts per meter', google translation) - - "㏟": [T: "安培/公尺"] # 0x33df (en: 'amps per meter', google translation) - - "㏿": [T: "加侖"] # 0x33ff (en: 'gallons', google translation) - - "": [t: "等於下面的帽子"] # 0xe900 (en: 'equals with hat below', google translation) - - "": [t: "等於上面"] # 0xe901 (en: 'equals with plus above', google translation) - - "": [t: "等於下方"] # 0xe902 (en: 'equals with plus below', google translation) - - "": [t: "帶有上面的蒂爾德"] # 0xe903 (en: 'tilde with plus above', google translation) - - "": [t: "蒂爾德(tilde),加上下方"] # 0xe904 (en: 'tilde with plus below', google translation) - - "": [t: "相等的雙倍超過大於"] # 0xe908 (en: 'equal double over greater than', google translation) - - "": [t: "相等的雙倍超過少於"] # 0xe909 (en: 'equal double over less than', google translation) - - "": [t: "包含或等於"] # 0xe90a (en: 'contains or equal to', google translation) - - "": [t: "超級或等於"] # 0xe90b (en: 'superset of or equal to', google translation) - - "": [t: "子集或等於"] # 0xe90c (en: 'subset of or equal to', google translation) - - "": [t: "等於少於"] # 0xe90d (en: 'equal over less than', google translation) - - "": [t: "元素或等於"] # 0xe912 (en: 'element of or equal to', google translation) - - "": [t: "等於或大於或大於"] # 0xe913 (en: 'equal to or greater than', google translation) - - "": [t: "大約超集"] # 0xe914 (en: 'approximate superset of', google translation) - - "": [t: "大約子集"] # 0xe915 (en: 'approximate subset of', google translation) - - "": [t: "與dot的超集包含子關係"] # 0xe916 (en: 'superset of with dot includes as sub relation', google translation) - - "": [t: "as子關係中包含with dot的子集"] # 0xe917 (en: 'subset of with dot is included in as sub relation', google translation) - - "": [t: "與以下點相等"] # 0xe918 (en: 'equal with dot below', google translation) - - "": [t: "在右點上左點左點"] # 0xe919 (en: 'left dot over minus over right dot', google translation) - - "": [t: "右點在左點上負"] # 0xe91a (en: 'right dot over minus over left dot', google translation) - - "": [t: "幾乎等於負"] # 0xe91f (en: 'almost equal to minus', google translation) - - "": [t: "雙方杯"] # 0xe920 (en: 'double square cup', google translation) - - "": [t: "雙方大寫"] # 0xe921 (en: 'double square cap', google translation) - - "": [t: "小於或大於或大於"] # 0xe922 (en: 'less than equal to or greater than', google translation) - - "": [t: "蒂爾德與點"] # 0xe924 (en: 'tilde with dot', google translation) - - "": [t: "帶有兩個點"] # 0xe925 (en: 'tilde with two dots', google translation) - - "": [t: "小於大於或等於"] # 0xe926 (en: 'less than greater than or equal to', google translation) - - "": [t: "大於或等於或等於"] # 0xe927 (en: 'greater than less than or equal to', google translation) - - "": [t: "等效於或小於或小"] # 0xe928 (en: 'equivalent to or less than', google translation) - - "": [t: "等效於或大於或大"] # 0xe929 (en: 'equivalent to or greater than', google translation) - - "": [t: "左打開盒操作員"] # 0xe92a (en: 'left open box operator', google translation) - - "": [t: "右打開框操作員"] # 0xe92b (en: 'right open box operator', google translation) - - "": [t: "與點相同"] # 0xe92c (en: 'identical to with dot', google translation) - - "": [t: "大於或等於或小於或小"] # 0xe92d (en: 'greater than equal to or less than', google translation) - - "": [t: "酒吧操作員"] # 0xe92e (en: 'bar operator', google translation) - - "": [t: "雙桿操作員"] # 0xe92f (en: 'double bar operator', google translation) - - "": [t: "三桿操作員"] # 0xe930 (en: 'triple bar operator', google translation) - - "": [t: "小於或大約等於"] # 0xe932 (en: 'less than or approximately equal to', google translation) - - "": [t: "大於或大約等於"] # 0xe933 (en: 'greater than or approximately equal to', google translation) - - "": [t: "嵌套比"] # 0xe936 (en: 'nested less than', google translation) - - "": [t: "嵌套大於"] # 0xe937 (en: 'nested greater than', google translation) - - "": [t: "前面或等效"] # 0xe93a (en: 'precedes or equivalent to', google translation) - - "": [t: "成功或等同於"] # 0xe93b (en: 'succeeds or equivalent to', google translation) - - "": [t: "在相等的之前"] # 0xe940 (en: 'precedes over equal', google translation) - - "": [t: "超越平等"] # 0xe941 (en: 'succeeds over equal', google translation) - - "": [t: "降低的傾斜度較小"] # 0xe942 (en: 'less equal slanted greater', google translation) - - "": [t: "更大的相等傾斜較少"] # 0xe943 (en: 'greater equal slanted less', google translation) - - "": [t: "滿足"] # 0xe948 (en: 'satisfied by', google translation) - - "": [t: "懶惰"] # 0xe949 (en: 'lazy s', google translation) - - "": [t: "不斷言"] # 0xe94a (en: 'not assertion', google translation) - - "": [t: "雙等相等"] # 0xe94b (en: 'double equal', google translation) - - "": [t: "三重相等"] # 0xe94c (en: 'triple equal', google translation) - - "": [t: "規則延遲"] # 0xe94d (en: 'rule delayed', google translation) - - "": [t: "別名定界符"] # 0xe94e (en: 'alias delimiter', google translation) - - "": [t: "與條的正常亞組"] # 0xe950 (en: 'normal subgroup of with bar', google translation) - - "": [t: "包含與bar一樣正常的亞組"] # 0xe951 (en: 'contains as normal subgroup with bar', google translation) - - "": [t: "圓形暗示"] # 0xe954 (en: 'round implies', google translation) - - "": [t: "在酒吧下微笑"] # 0xe955 (en: 'smile under bar', google translation) - - "": [t: "皺著眉頭"] # 0xe956 (en: 'frown over bar', google translation) - - "": [t: "超級或幾乎等於"] # 0xe957 (en: 'superset of or almost equal to', google translation) - - "": [t: "子集的子集或幾乎等於"] # 0xe958 (en: 'subset of or almost equal to', google translation) - - "": [t: "大於幾乎等於或小於或小"] # 0xe959 (en: 'greater than almost equal to or less than', google translation) - - "": [t: "小於幾乎等於或大於"] # 0xe95a (en: 'less than almost equal or greater than', google translation) - - "": [t: "雙邏輯或"] # 0xe95c (en: 'double logical or', google translation) - - "": [t: "雙重邏輯和"] # 0xe95d (en: 'double logical and', google translation) - - "": [t: "邏輯或雙欄以下"] # 0xe95e (en: 'logical or with double bar below', google translation) - - "": [t: "邏輯或在下面的欄"] # 0xe95f (en: 'logical or with bar below', google translation) - - "": [t: "幾乎相等"] # 0xe962 (en: 'almost equal over equal', google translation) - - "": [t: "左指向三角形,並帶有一分為二的條"] # 0xe964 (en: 'left pointing triangle with bisecting bar', google translation) - - "": [t: "正確指向三角形與二等欄"] # 0xe965 (en: 'right pointing triangle with bisecting bar', google translation) - - "": [t: "等於虛線頂線"] # 0xe966 (en: 'equals with dotted top line', google translation) - - "": [t: "在結腸之前"] # 0xe967 (en: 'precedes with colon', google translation) - - "": [t: "與結腸成功"] # 0xe968 (en: 'succeeds with colon', google translation) - - "": [t: "小於或相等的傾斜"] # 0xe969 (en: 'smaller than or equal slanted', google translation) - - "": [t: "大於或相等的傾斜"] # 0xe96a (en: 'larger than or equal slanted', google translation) - - "": [t: "嵌套得遠小得多"] # 0xe96b (en: 'nested very much less than', google translation) - - "": [t: "嵌套比大得多"] # 0xe96c (en: 'nested very much greater than', google translation) - - "": [t: "變體之間的差異"] # 0xe96d (en: 'difference between variant', google translation) - - "": [t: "小於覆蓋層"] # 0xe96e (en: 'less than greater than overlay', google translation) - - "": [t: "邏輯或邏輯和覆蓋"] # 0xe96f (en: 'logical or logical and overlay', google translation) - - "": [t: "超級超集"] # 0xe970 (en: 'superset over superset', google translation) - - "": [t: "子集對子集"] # 0xe971 (en: 'subset over subset', google translation) - - "": [t: "超級子集"] # 0xe972 (en: 'superset over subset', google translation) - - "": [t: "子集超級集"] # 0xe973 (en: 'subset over superset', google translation) - - "": [t: "三重垂直條"] # 0xe979 (en: 'triple vertical bar', google translation) - - "": [t: "配對的四倍垂直點"] # 0xe97a (en: 'paired quadruple vertical dots', google translation) - - "": [t: "垂直於欄"] # 0xe97b (en: 'perpendicular over bar', google translation) - - "": [t: "左旋轉門雙垂直條"] # 0xe97c (en: 'left turnstile double vertical bar', google translation) - - "": [t: "雙左旋轉門雙垂直條"] # 0xe97d (en: 'double left turnstile double vertical bar', google translation) - - "": [t: "垂直於垂直的垂直"] # 0xe97e (en: 'perpendicular over inverted perpendicular', google translation) - - "": [t: "雙左旋轉門垂直條"] # 0xe97f (en: 'double left turnstile vertical bar', google translation) - - "": [t: "球形角度開放"] # 0xe980 (en: 'spherical angle opening up', google translation) - - "": [t: "雙斜線"] # 0xe981 (en: 'double slash', google translation) - - "": [t: "與角落直角"] # 0xe982 (en: 'right angle with corner', google translation) - - "": [t: "盤旋垂直條"] # 0xe984 (en: 'circled vertical bar', google translation) - - "": [t: "圓形的劃分標誌"] # 0xe985 (en: 'circled division sign', google translation) - - "": [t: "虛線"] # 0xe986 (en: 'dashed solidus', google translation) - - "": [t: "虛線後斜線"] # 0xe987 (en: 'dashed backslash', google translation) - - "": [t: "虛線中線"] # 0xe988 (en: 'dashed mid line', google translation) - - "": [t: "虛擬的垂直條"] # 0xe989 (en: 'dashed vertical bar', google translation) - - "": [t: "垂直於s"] # 0xe98a (en: 'perpendicular with s', google translation) - - "": [t: "與s的角度"] # 0xe98b (en: 'angle with s', google translation) - - "": [t: "球形角度左開"] # 0xe98c (en: 'spherical angle opening left', google translation) - - "": [t: "左角開口"] # 0xe98d (en: 'angle opening left', google translation) - - "": [t: "帶雙鉤的垂直條"] # 0xe98e (en: 'vertical bar with double hook', google translation) - - "": [t: "中點操作員自由基"] # 0xe98f (en: 'medium dot operator free radical', google translation) - - "": [t: "白色指向三角形上方"] # 0xe990 (en: 'white up pointing triangle above bar', google translation) - - "": [t: "相同且平行"] # 0xe991 (en: 'identical and parallel to', google translation) - - "": [t: "粉碎產品"] # 0xe992 (en: 'smash product', google translation) - - "": [t: "帶有水平條的三重桿操作員"] # 0xe993 (en: 'triple bar operator with horizontal bar', google translation) - - "": [t: "與雙斜線相同"] # 0xe994 (en: 'identical to with double slash', google translation) - - "": [t: "三重越過條"] # 0xe995 (en: 'triple crossed bars', google translation) - - "": [t: "圓形的垂直條"] # 0xe996 (en: 'vertical bar over circle', google translation) - - "": [t: "垂直成正比"] # 0xe997 (en: 'vertical proportional to', google translation) - - "": [t: "黑色最後一季度月亮"] # 0xe998 (en: 'black last quarter moon', google translation) - - "": [t: "黑色第一季度月亮"] # 0xe999 (en: 'black first quarter moon', google translation) - - "": [t: "負正弦波"] # 0xe9a0 (en: 'negative sine wave', google translation) - - "": [t: "括號插曲的點"] # 0xe9a1 (en: 'parenthesized dot', google translation) - - "": [t: "括號"] # 0xe9a2 (en: 'parens', google translation) - - "": [t: "白色的微笑"] # 0xe9a3 (en: 'white smile', google translation) - - "": [t: "白色皺眉"] # 0xe9a4 (en: 'white frown', google translation) - - "": [t: "六邊形"] # 0xe9a5 (en: 'hexagon', google translation) - - "": [t: "等效於超級"] # 0xe9a6 (en: 'equivalent to over plus', google translation) - - "": [t: "加上相當於"] # 0xe9a7 (en: 'plus over equivalent to', google translation) - - "": [t: "交點襯線"] # 0xe9b0 (en: 'intersection serifs', google translation) - - "": [t: "聯盟襯線"] # 0xe9b1 (en: 'union serifs', google translation) - - "": [t: "方形交叉襯線"] # 0xe9b2 (en: 'square intersection serifs', google translation) - - "": [t: "平方聯盟襯線"] # 0xe9b3 (en: 'square union serifs', google translation) - - "": [t: "先於等同於或成功"] # 0xe9e0 (en: 'precedes equivalent to or succeeds', google translation) - - "": [t: "成功等同於或先前"] # 0xe9e1 (en: 'succeeds equivalent to or precedes', google translation) - - "": [t: "在幾乎等於或成功之前"] # 0xe9e2 (en: 'precedes almost equal to or succeeds', google translation) - - "": [t: "成功幾乎等於或先前"] # 0xe9e3 (en: 'succeeds almost equal to or precedes', google translation) - - "": [t: "小於或大於或大於"] # 0xe9f0 (en: 'less than equivalent to or greater than', google translation) - - "": [t: "大於或等同於或小於或小"] # 0xe9f1 (en: 'greater than equivalent to or less than', google translation) - - "": [t: "不遠遠遠不止於此"] # 0xea00 (en: 'not vert much less than', google translation) - - "": [t: "不超過比這大得多"] # 0xea01 (en: 'not vert much greater than', google translation) - - "": [t: "不少於變體"] # 0xea02 (en: 'not much less than variant', google translation) - - "": [t: "不比變體大得多"] # 0xea03 (en: 'not much greater than variant', google translation) - - "": [t: "較少的vert不相等"] # 0xea04 (en: 'less vert not double equals', google translation) - - "": [t: "gt vert不相等"] # 0xea05 (en: 'gt vert not double equals', google translation) - - "": [t: "不小於或等於"] # 0xea06 (en: 'not less than or equal to', google translation) - - "": [t: "不大於或等於"] # 0xea07 (en: 'not greater than or equal to', google translation) - - "": [t: "既不等於也不等於"] # 0xea09 (en: 'neither equal to nor less than', google translation) - - "": [t: "不包含或等於"] # 0xea0a (en: 'does not contain or equal to', google translation) - - "": [t: "既不等於也不等於"] # 0xea0b (en: 'neither superset of nor equal to', google translation) - - "": [t: "既不等於也不等於"] # 0xea0c (en: 'neither subset of nor equal to', google translation) - - "": [t: "反向固體子集"] # 0xea0d (en: 'reverse solidus subset', google translation) - - "": [t: "既不等於也不大"] # 0xea0e (en: 'neither equal to nor greater than', google translation) - - "": [t: "不是減去tilde操作員"] # 0xea0f (en: 'not minus tilde operator', google translation) - - "": [t: "既不等於也不等於"] # 0xea10 (en: 'neither equal to nor less than', google translation) - - "": [t: "不是tilde操作員"] # 0xea11 (en: 'not tilde operator', google translation) - - "": [t: "不是或等於元素"] # 0xea12 (en: 'not element of or equal to', google translation) - - "": [t: "既不等於也不大"] # 0xea13 (en: 'neither equal to nor greater than', google translation) - - "": [t: "幾乎不相等"] # 0xea14 (en: 'not almost equal', google translation) - - "": [t: "成功不一樣"] # 0xea15 (en: 'not succeeds similar', google translation) - - "": [t: "小於或傾斜等於斜線"] # 0xea16 (en: 'less than or slanted equal to with slash', google translation) - - "": [t: "大於或傾斜等於斜線"] # 0xea17 (en: 'greater than or slanted equal to with slash', google translation) - - "": [t: "superset solidus"] # 0xea1a (google translation) - - "": [t: "不含"] # 0xea1b (en: 'does not contain', google translation) - - "": [t: "不小於或等於"] # 0xea1d (en: 'not less than or equal to', google translation) - - "": [t: "不大於或等於"] # 0xea1e (en: 'not greater than or equal to', google translation) - - "": [t: "幾乎不等於負"] # 0xea1f (en: 'not almost equal to minus', google translation) - - "": [t: "上面否定的會員點"] # 0xea22 (en: 'negated set membership dot above', google translation) - - "": [t: "不是垂直角度"] # 0xea2c (en: 'not vert angle', google translation) - - "": [t: "不平行"] # 0xea2d (en: 'not parallel slanted', google translation) - - "": [t: "不是吧台操作員"] # 0xea2e (en: 'not bar operator', google translation) - - "": [t: "不是雙欄操作員"] # 0xea2f (en: 'not double bar operator', google translation) - - "": [t: "不是三重欄操作員"] # 0xea30 (en: 'not triple bar operator', google translation) - - "": [t: "小於但不等於"] # 0xea32 (en: 'less than but not approximately equal to', google translation) - - "": [t: "大於但不等於"] # 0xea33 (en: 'greater than but not approximately equal to', google translation) - - "": [t: "小於或不等於"] # 0xea34 (en: 'less than or not equal to', google translation) - - "": [t: "大於或不等於"] # 0xea35 (en: 'greater than or not equal to', google translation) - - "": [t: "不嵌套比"] # 0xea36 (en: 'not nested less than', google translation) - - "": [t: "嵌套不大"] # 0xea37 (en: 'not nested greater than', google translation) - - "": [t: "遠不止"] # 0xea38 (en: 'not much less than', google translation) - - "": [t: "不超過大量"] # 0xea39 (en: 'not much greater than', google translation) - - "": [t: "前面但不等同"] # 0xea3a (en: 'precedes but not equivalent to', google translation) - - "": [t: "成功但不等同"] # 0xea3b (en: 'succeeds but not equivalent to', google translation) - - "": [t: "前面但不等於"] # 0xea3c (en: 'precedes but not equal to', google translation) - - "": [t: "成功但不等於"] # 0xea3d (en: 'succeeds but not equal to', google translation) - - "": [t: "不等於或之前"] # 0xea3e (en: 'does not equal or precede', google translation) - - "": [t: "不等或成功"] # 0xea3f (en: 'does not equal or succeed', google translation) - - "": [t: "前面但不等於"] # 0xea40 (en: 'precedes but not equal to', google translation) - - "": [t: "成功但不等於"] # 0xea41 (en: 'succeeds but not equal to', google translation) - - "": [t: "不等於"] # 0xea42 (en: 'not subset of nor equal to', google translation) - - "": [t: "不等於或不等於"] # 0xea43 (en: 'not superset of nor equal to', google translation) - - "": [t: "子集或不等於"] # 0xea44 (en: 'subset of or not equal to', google translation) - - "": [t: "超級或不等於"] # 0xea45 (en: 'superset of or not equal to', google translation) - - "": [t: "不等於"] # 0xea46 (en: 'not subset of nor equal to', google translation) - - "": [t: "不等於或不等於"] # 0xea47 (en: 'not superset of nor equal to', google translation) - - "": [t: "不小於三倍"] # 0xea48 (en: 'not triple less than', google translation) - - "": [t: "不大於三倍"] # 0xea49 (en: 'not triple greater than', google translation) - - "": [t: "不在之前"] # 0xea4c (en: 'not precedes equals', google translation) - - "": [t: "不成功"] # 0xea4d (en: 'not succeeds equals', google translation) - - "": [t: "不是bar的正常亞組"] # 0xea50 (en: 'not normal subgroup of with bar', google translation) - - "": [t: "不包含帶有bar的正常亞組"] # 0xea51 (en: 'does not contain as normal subgroup with bar', google translation) - - "": [t: "之間沒有區別"] # 0xea52 (en: 'not difference between', google translation) - - "": [t: "在幾何上等同於"] # 0xea53 (en: 'not geometrically equivalent to', google translation) - - "": [t: "不類似"] # 0xea54 (en: 'not vert similar', google translation) - - "": [t: "不相等或相似"] # 0xea55 (en: 'not equal or similar', google translation) - - "": [t: "不是近似值"] # 0xea56 (en: 'not vert approximate', google translation) - - "": [t: "與大致相同"] # 0xea57 (en: 'not approximately identical to', google translation) - - "": [t: "不等於顛簸"] # 0xea58 (en: 'not bumpy equals', google translation) - - "": [t: "不顛簸的單相等"] # 0xea59 (en: 'not bumpy single equals', google translation) - - "": [t: "不相等的點"] # 0xea5a (en: 'not equal dot', google translation) - - "": [t: "反向不等效"] # 0xea5b (en: 'reverse not equivalent', google translation) - - "": [t: "不是正方形子集"] # 0xea60 (en: 'not square subset', google translation) - - "": [t: "不是方形超集"] # 0xea61 (en: 'not square superset', google translation) - - "": [t: "幾乎不等於相等"] # 0xea62 (en: 'not almost equal over equal', google translation) - - "": [t: "並非嚴格等同"] # 0xea63 (en: 'not strictly equivalent to', google translation) - - "": [t: "不是一致的點"] # 0xea64 (en: 'not congruent dot', google translation) - - "": [t: "反向不相等"] # 0xea65 (en: 'reverse not equal', google translation) - - "": [t: "不是左三角形等於"] # 0xea70 (en: 'not vert left triangle equals', google translation) - - "": [t: "不是右三角形等於"] # 0xea71 (en: 'not vert right triangle equals', google translation) - - "": [t: "不是部分"] # 0xea80 (en: 'not partial', google translation) - - "": [t: "箭頭裝飾擴展器"] # 0xeb00 (en: 'arrow embellishment extender', google translation) - - "": [t: "箭頭向右箭頭"] # 0xeb01 (en: 'arrow rightwards over arrow leftwards', google translation) - - "": [t: "箭頭向右箭頭"] # 0xeb02 (en: 'arrow rightwards over arrow leftwards', google translation) - - "": [t: "魚叉向左走"] # 0xeb03 (en: 'harpoon right over harpoon left', google translation) - - "": [t: "魚叉向左走"] # 0xeb04 (en: 'harpoon right over harpoon left', google translation) - - "": [t: "東北東北"] # 0xeb05 (en: 'double arrow northeast southwest', google translation) - - "": [t: "東南部雙箭頭"] # 0xeb06 (en: 'double arrow northwest southeast', google translation) - - "": [t: "水平魚叉擴展器"] # 0xeb07 (en: 'horizontal harpoon extender', google translation) - - "": [t: "逆時針弧向左箭頭"] # 0xeb08 (en: 'anticlockwise arc leftwards arrow', google translation) - - "": [t: "逆時針弧向右箭頭"] # 0xeb09 (en: 'anticlockwise arc rightwards arrow', google translation) - - "": [t: "大右箭頭重音"] # 0xeb0b (en: 'large rightwards arrow accent', google translation) - - "": [t: "大的左箭頭重音"] # 0xeb0c (en: 'large leftwards arrow accent', google translation) - - "": [t: "左箭頭"] # 0xeb0d (en: 'leftwards arrowhead', google translation) - - "": [t: "向右箭頭"] # 0xeb0e (en: 'rightwards arrowhead', google translation) - - "": [t: "大左右箭頭帶中風"] # 0xeb0f (en: 'large left right arrow with stroke', google translation) - - "": [t: "水平雙箭頭擴展器"] # 0xeb10 (en: 'horizontal double arrow extender', google translation) - - "": [t: "大左右雙箭頭帶中風"] # 0xeb11 (en: 'large left right double arrow with stroke', google translation) - - "": [t: "向下向下箭頭箭頭"] # 0xeb12 (en: 'downwards arrow leftwards of upwards arrow', google translation) - - "": [t: "向左箭頭向下拐角"] # 0xeb13 (en: 'leftwards arrow with corner downwards', google translation) - - "": [t: "向右的箭頭向上"] # 0xeb14 (en: 'rightwards arrow with corner upwards', google translation) - - "": [t: "向左箭頭向上"] # 0xeb15 (en: 'leftwards arrow with corner upwards', google translation) - - "": [t: "逆時針方向的頂部半圓箭"] # 0xeb16 (en: 'anticlockwise top semicircle arrow with plus', google translation) - - "": [t: "順時針頂部半圓形箭頭,帶負箭頭"] # 0xeb17 (en: 'clockwise top semicircle arrow with minus', google translation) - - "": [t: "向右箭頭帶有尾部"] # 0xeb18 (en: 'rightwards arrow with tail with stroke', google translation) - - "": [t: "右魚叉下來"] # 0xeb19 (en: 'right harpoon down', google translation) - - "": [t: "將魚叉放下"] # 0xeb1a (en: 'left harpoon down', google translation) - - "": [t: "左右魚叉下來"] # 0xeb1b (en: 'left right harpoon down', google translation) - - "": [t: "左右魚叉向上"] # 0xeb1c (en: 'left right harpoon up', google translation) - - "": [t: "在魚叉向下走"] # 0xeb1d (en: 'up down harpoon left', google translation) - - "": [t: "向下沿魚叉向右"] # 0xeb1e (en: 'up down harpoon right', google translation) - - "": [t: "向上向下向下箭頭的箭頭"] # 0xeb1f (en: 'upwards arrow to the right of downwards arrow', google translation) - - "": [t: "左難以倒在倒鉤的情況下"] # 0xeb20 (en: 'leftwards harpoon to bar with barb upwards', google translation) - - "": [t: "向右的魚叉,用倒鉤向上bar"] # 0xeb21 (en: 'rightwards harpoon to bar with barb upwards', google translation) - - "": [t: "左腳魚叉向下bar"] # 0xeb22 (en: 'leftwards harpoon to bar with barb downwards', google translation) - - "": [t: "向右的魚叉,用倒鉤向下bar"] # 0xeb23 (en: 'rightwards harpoon to bar with barb downwards', google translation) - - "": [t: "從酒吧向左倒鉤的魚叉,倒鉤向上"] # 0xeb24 (en: 'leftwards harpoon from bar with barb upwards', google translation) - - "": [t: "從酒吧到倒鉤的右warding魚"] # 0xeb25 (en: 'rightwards harpoon from bar with barb upwards', google translation) - - "": [t: "從酒吧向左倒鉤的魚叉,倒鉤向下"] # 0xeb26 (en: 'leftwards harpoon from bar with barb downwards', google translation) - - "": [t: "右邊的魚叉,倒鉤向下"] # 0xeb27 (en: 'rightwards harpoon from bar with barb downwards', google translation) - - "": [t: "向上倒鉤,將魚叉向左向左"] # 0xeb28 (en: 'upwards harpoon to bar with barb leftwards', google translation) - - "": [t: "向下向下倒鉤的魚叉"] # 0xeb29 (en: 'downwards harpoon to bar with barb leftwards', google translation) - - "": [t: "向上向上用倒鉤的魚叉"] # 0xeb2a (en: 'upwards harpoon to bar with barb rightwards', google translation) - - "": [t: "向下向右倒鉤的魚叉"] # 0xeb2b (en: 'downwards harpoon to bar with barb rightwards', google translation) - - "": [t: "從酒吧向上倒鉤,向上倒鉤"] # 0xeb2c (en: 'upwards harpoon from bar with barb leftwards', google translation) - - "": [t: "從酒吧向下倒鉤,向下倒鉤"] # 0xeb2d (en: 'downwards harpoon from bar with barb leftwards', google translation) - - "": [t: "向右倒鉤,向上倒鉤"] # 0xeb2e (en: 'upwards harpoon from bar with barb rightwards', google translation) - - "": [t: "向右倒鉤,向右倒鉤"] # 0xeb2f (en: 'downwards harpoon from bar with barb rightwards', google translation) - - "": [t: "向上箭頭到酒吧"] # 0xeb30 (en: 'upwards arrow to bar', google translation) - - "": [t: "向下箭頭到酒吧"] # 0xeb31 (en: 'downwards arrow to bar', google translation) - - "": [t: "向上向下的魚叉向下的魚叉"] # 0xeb32 (en: 'upwards harpoon to the left of downwards harpoon', google translation) - - "": [t: "向上向下的魚叉向下的魚叉"] # 0xeb33 (en: 'upwards harpoon to the right of downwards harpoon', google translation) - - "": [t: "向上箭頭"] # 0xeb34 (en: 'upwards arrowhead', google translation) - - "": [t: "向下箭頭"] # 0xeb35 (en: 'downwards arrowhead', google translation) - - "": [t: "雙子魚叉,左倒鉤向右倒鉤"] # 0xeb36 (en: 'double harpoon with leftwards barb down rightwards barb up', google translation) - - "": [t: "雙打魚叉,向左倒鉤向右倒鉤"] # 0xeb37 (en: 'double harpoon with leftwards barb up rightwards barb down', google translation) - - "": [t: "向左箭頭上"] # 0xeb38 (en: 'leftwards arrow over bar', google translation) - - "": [t: "向右箭頭上"] # 0xeb39 (en: 'rightwards arrow over bar', google translation) - - "": [t: "左箭頭下的箭頭"] # 0xeb3a (en: 'leftwards arrow under bar', google translation) - - "": [t: "右下方的箭頭"] # 0xeb3b (en: 'rightwards arrow under bar', google translation) - - "": [t: "左右三重箭頭"] # 0xeb3c (en: 'left right triple arrow', google translation) - - "": [t: "東南部雙箭頭"] # 0xeb3f (en: 'double arrow northeast southeast', google translation) - - "": [t: "逆時針方向的左半圓箭頭"] # 0xeb40 (en: 'anticlockwise left semicircle arrow', google translation) - - "": [t: "順時針左半圓箭頭"] # 0xeb41 (en: 'clockwise left semicircle arrow', google translation) - - "": [t: "左開圓左右箭頭"] # 0xeb42 (en: 'left open circle left right arrow', google translation) - - "": [t: "向右箭頭上的箭頭"] # 0xeb44 (en: 'rightwards arrow over tilde', google translation) - - "": [t: "向左箭頭上的箭頭"] # 0xeb45 (en: 'leftwards arrow over tilde', google translation) - - "": [t: "左邊的魚叉在酒吧上"] # 0xeb48 (en: 'leftwards harpoon over bar', google translation) - - "": [t: "右邊的魚叉在酒吧上"] # 0xeb49 (en: 'rightwards harpoon over bar', google translation) - - "": [t: "酒吧下方的魚叉"] # 0xeb4a (en: 'leftwards harpoon under bar', google translation) - - "": [t: "在酒吧下方的魚叉"] # 0xeb4b (en: 'rightwards harpoon under bar', google translation) - - "": [t: "蹲下黑左箭頭"] # 0xeb4c (en: 'squat black leftwards arrow', google translation) - - "": [t: "順時針右半圓箭頭"] # 0xeb50 (en: 'clockwise right semicircle arrow', google translation) - - "": [t: "逆時針右半圓箭頭"] # 0xeb51 (en: 'anticlockwise right semicircle arrow', google translation) - - "": [t: "左開環左右魚叉"] # 0xeb52 (en: 'left open circle left right harpoon', google translation) - - "": [t: "垂直桿向左向上箭頭"] # 0xeb58 (en: 'upwards arrow leftwards of vertical bar', google translation) - - "": [t: "向下向下垂直條的箭頭"] # 0xeb59 (en: 'downwards arrow leftwards of vertical bar', google translation) - - "": [t: "向上垂直條的箭頭"] # 0xeb5a (en: 'upwards arrow rightwards of vertical bar', google translation) - - "": [t: "垂直條的向下向下箭頭"] # 0xeb5b (en: 'downwards arrow rightwards of vertical bar', google translation) - - "": [t: "向右箭頭向下向下掛鉤"] # 0xeb5c (en: 'rightwards arrow with extended downwards hook', google translation) - - "": [t: "左箭頭帶有擴展鉤"] # 0xeb5d (en: 'leftwards arrow with extended hook', google translation) - - "": [t: "向左向下向下掛鉤的左箭頭"] # 0xeb5e (en: 'leftwards arrow with extended downwards hook', google translation) - - "": [t: "向右箭頭帶有擴展鉤"] # 0xeb5f (en: 'rightwards arrow with extended hook', google translation) - - "": [t: "不正確的箭頭波浪"] # 0xeb60 (en: 'not right arrow wavy', google translation) - - "": [t: "不正確的箭頭彎曲"] # 0xeb61 (en: 'not right arrow curved', google translation) - - "": [t: "向上向左垂直條形桿"] # 0xeb68 (en: 'upwards harpoon leftwards of vertical bar', google translation) - - "": [t: "向下垂直條的魚叉向左"] # 0xeb69 (en: 'downwards harpoon leftwards of vertical bar', google translation) - - "": [t: "向上垂直條的魚叉"] # 0xeb6a (en: 'upwards harpoon rightwards of vertical bar', google translation) - - "": [t: "向下垂直條的魚叉"] # 0xeb6b (en: 'downwards harpoon rightwards of vertical bar', google translation) - - "": [t: "垂直雙箭頭擴展器"] # 0xeb6c (en: 'vertical double arrow extender', google translation) - - "": [t: "垂直魚叉,帶有倒鉤左擴展器"] # 0xeb6d (en: 'vertical harpoon with barb left extender', google translation) - - "": [t: "垂直魚叉,帶倒鉤右擴展器"] # 0xeb6e (en: 'vertical harpoon with barb right extender', google translation) - - "": [t: "右左難題的右右魚叉"] # 0xeb6f (en: 'right harpoon over left harpoon right', google translation) - - "": [t: "右邊的魚叉左上是左邊的魚叉"] # 0xeb70 (en: 'right harpoon over left harpoon left', google translation) - - "": [t: "右邊的魚叉左右右"] # 0xeb71 (en: 'left harpoon over right harpoon right', google translation) - - "": [t: "左右魚叉向左左邊的魚叉"] # 0xeb72 (en: 'left harpoon over right harpoon left', google translation) - - "": [t: "從箭頭箭頭左箭頭"] # 0xeb73 (en: 'leftwards arrow from bar arrowhead', google translation) - - "": [t: "左右箭頭向右箭頭"] # 0xeb74 (en: 'leftwards rightwards arrow from bar extender', google translation) - - "": [t: "從條形尾部向左箭頭"] # 0xeb75 (en: 'leftwards arrow from bar tail', google translation) - - "": [t: "從條形尾部向右箭頭"] # 0xeb76 (en: 'rightwards arrow from bar tail', google translation) - - "": [t: "從箭頭箭頭向右箭頭"] # 0xeb77 (en: 'rightwards arrow from bar arrowhead', google translation) - - "": [t: "從酒吧向上帶倒鉤左箭頭的魚叉"] # 0xeb78 (en: 'upwards harpoon from bar with barb leftwards arrowhead', google translation) - - "": [t: "向左箭頭向右箭頭向右"] # 0xeb79 (en: 'rightwards arrow over leftwards arrow right', google translation) - - "": [t: "向左箭頭向左箭頭"] # 0xeb7a (en: 'rightwards arrow over leftwards arrow left', google translation) - - "": [t: "向右箭頭向右箭頭向右"] # 0xeb7b (en: 'leftwards arrow over rightwards arrow right', google translation) - - "": [t: "向左向右箭頭箭頭向左"] # 0xeb7c (en: 'leftwards arrow over rightwards arrow left', google translation) - - "": [t: "從箭頭箭頭向上箭頭"] # 0xeb7d (en: 'upwards arrow from bar arrowhead', google translation) - - "": [t: "從鋼筋尾部向上箭頭"] # 0xeb7e (en: 'upwards arrow from bar tail', google translation) - - "": [t: "從條形尾部向下箭頭"] # 0xeb7f (en: 'downwards arrow from bar tail', google translation) - - "": [t: "從箭頭箭頭向下箭頭"] # 0xeb80 (en: 'downwards arrow from bar arrowhead', google translation) - - "": [t: "從酒吧向下向下帶有倒鉤的箭頭箭頭"] # 0xeb81 (en: 'downwards harpoon from bar with barb rightwards arrowhead', google translation) - - "": [t: "向下向下的魚叉向下的魚叉底部"] # 0xeb82 (en: 'upwards harpoon to the left of downwards harpoon bottom', google translation) - - "": [t: "向上向下的魚叉向下向下的魚叉延伸器"] # 0xeb83 (en: 'upwards harpoon to the left of downwards harpoon extender', google translation) - - "": [t: "向上向上的魚叉向上的魚叉頂"] # 0xeb84 (en: 'downwards harpoon to the left of upwards harpoon top', google translation) - - "": [t: "向上向下的魚叉向下的魚叉頂"] # 0xeb85 (en: 'upwards harpoon to the left of downwards harpoon top', google translation) - - "": [t: "向上向上的魚叉向上的魚叉延伸器"] # 0xeb86 (en: 'downwards harpoon to the left of the upwards harpoon extender', google translation) - - "": [t: "向上向上的魚叉向上的魚叉底部"] # 0xeb87 (en: 'downwards harpoon to the left of the upwards harpoon bottom', google translation) - - "": [t: "向下向下向下的箭頭箭頭底部"] # 0xeb88 (en: 'upwards arrow leftwards of downwards arrow bottom', google translation) - - "": [t: "向下向下箭頭的箭頭"] # 0xeb89 (en: 'downwards arrow leftwards of upwards arrow top', google translation) - - "": [t: "向下向下箭頭箭頭頂"] # 0xeb8a (en: 'upwards arrow leftwards of downwards arrow top', google translation) - - "": [t: "向下向下的箭頭向左箭頭底部"] # 0xeb8b (en: 'downwards arrow leftwards of upwards arrow bottom', google translation) - - "": [t: "向右向右箭頭擴展器"] # 0xeb8c (en: 'leftwards rightwards arrows extender', google translation) - - "": [t: "東北箭頭擴展器"] # 0xeb8d (en: 'north east arrow extender', google translation) - - "": [t: "西北箭頭擴展器"] # 0xeb8e (en: 'north west arrow extender', google translation) - - "": [t: "向下指向支架"] # 0xec00 (en: 'down pointing brace left', google translation) - - "": [t: "向下指向括號中間"] # 0xec01 (en: 'down pointing brace mid', google translation) - - "": [t: "向下指向支架"] # 0xec02 (en: 'down pointing brace right', google translation) - - "": [t: "水平支撐擴展器"] # 0xec03 (en: 'horizontal brace extender', google translation) - - "": [t: "向左指向支架"] # 0xec04 (en: 'up pointing brace left', google translation) - - "": [t: "向上指向括號中間"] # 0xec05 (en: 'up pointing brace mid', google translation) - - "": [t: "向上支架正確"] # 0xec06 (en: 'up-pointing brace right', google translation) - - "": [t: "左垂直條"] # 0xec07 (en: 'left vertical bar', google translation) - - "": [t: "右垂直條"] # 0xec08 (en: 'right vertical bar', google translation) - - "": [t: "左雙垂直條"] # 0xec09 (en: 'left double vertical bar', google translation) - - "": [t: "右雙垂直條"] # 0xec0a (en: 'right double vertical bar', google translation) - - "": [t: "水平支架擴展器"] # 0xec0b (en: 'horizontal bracket extender', google translation) - - "": [t: "在方括號下"] # 0xec0c (en: 'under square bracket', google translation) - - "⎵": [t: "在方括號下"] # 0x23b5 (en: 'under square bracket', google translation) - - "": [t: "在方括號上"] # 0xec0d (en: 'over square bracket', google translation) - - "⎴": [t: "在方括號上"] # 0x23b4 (en: 'over square bracket', google translation) - - "": [t: "左下方"] # 0xec0e (en: 'under bracket left', google translation) - - "": [t: "在托架下"] # 0xec0f (en: 'under bracket right', google translation) - - "": [t: "左上"] # 0xec10 (en: 'over bracket left', google translation) - - "": [t: "右上方"] # 0xec11 (en: 'over bracket right', google translation) - - "": [t: "左括號1"] # 0xec12 (en: 'left parens 1', google translation) - - "": [t: "左括號2"] # 0xec13 (en: 'left parens 2', google translation) - - "": [t: "左括號3"] # 0xec14 (en: 'left parens 3', google translation) - - "": [t: "左括號4"] # 0xec15 (en: 'left parens 4', google translation) - - "": [t: "右括號1"] # 0xec16 (en: 'right parens 1', google translation) - - "": [t: "右括號2"] # 0xec17 (en: 'right parens 2', google translation) - - "": [t: "右括號3"] # 0xec18 (en: 'right parens 3', google translation) - - "": [t: "右括號4"] # 0xec19 (en: 'right parens 4', google translation) - - "": [t: "激進1"] # 0xec1a (en: 'radical 1', google translation) - - "": [t: "激進2"] # 0xec1b (en: 'radical 2', google translation) - - "": [t: "激進3"] # 0xec1c (en: 'radical 3', google translation) - - "": [t: "激進4"] # 0xec1d (en: 'radical 4', google translation) - - "": [t: "激進5"] # 0xec1e (en: 'radical 5', google translation) - - "": [t: "根本底部"] # 0xec1f (en: 'radical bottom', google translation) - - "": [t: "根本的垂直擴展器"] # 0xec20 (en: 'radical vertical extender', google translation) - - "": [t: "根部"] # 0xec21 (en: 'radical top', google translation) - - "": [t: "左白色支架頂部"] # 0xec22 (en: 'left white bracket top', google translation) - - "": [t: "左白支架擴展器"] # 0xec23 (en: 'left white bracket extender', google translation) - - "": [t: "左白支架底部"] # 0xec24 (en: 'left white bracket bottom', google translation) - - "": [t: "右白色支架上衣"] # 0xec25 (en: 'right white bracket top', google translation) - - "": [t: "右白色支架擴展器"] # 0xec26 (en: 'right white bracket extender', google translation) - - "": [t: "右白色支架底部"] # 0xec27 (en: 'right white bracket bottom', google translation) - - "": [t: "左白色捲髮支架"] # 0xec30 (en: 'left white curly bracket', google translation) - - "": [t: "右白色捲曲支架"] # 0xec31 (en: 'right white curly bracket', google translation) - - "": [t: "長師標誌"] # 0xec32 (en: 'long division sign', google translation) - - "": [t: "長度符號擴展器"] # 0xec33 (en: 'long division sign extender', google translation) - - "": [t: "短師"] # 0xec34 (en: 'short division', google translation) - - "": [t: "向西南到東北em債券的雙重"] # 0xec40 (en: 'double southwest to northeast em bond', google translation) - - "": [t: "西北至東南em債券"] # 0xec41 (en: 'double northwest to southeast em bond', google translation) - - "": [t: "單個水平em鍵"] # 0xec42 (en: 'single horizontal em bond', google translation) - - "": [t: "雙層em鍵"] # 0xec43 (en: 'double horizontal em bond', google translation) - - "": [t: "三重水平em鍵"] # 0xec44 (en: 'triple horizontal em bond', google translation) - - "": [t: "單垂直em鍵"] # 0xec45 (en: 'single vertical em bond', google translation) - - "": [t: "雙垂直em鍵"] # 0xec46 (en: 'double vertical em bond', google translation) - - "": [t: "三重垂直em鍵"] # 0xec47 (en: 'triple vertical em bond', google translation) - - "": [t: "小於em鍵"] # 0xec48 (en: 'less than em bond', google translation) - - "": [t: "大於em鍵"] # 0xec49 (en: 'greater than em bond', google translation) - - "": [t: "單個水平en鍵"] # 0xec4a (en: 'single horizontal en bond', google translation) - - "": [t: "雙水平en鍵"] # 0xec4b (en: 'double horizontal en bond', google translation) - - "": [t: "三重水平en鍵"] # 0xec4c (en: 'triple horizontal en bond', google translation) - - "": [t: "左上矩形"] # 0xec80 (en: 'top left rectangle', google translation) - - "": [t: "左下方矩形"] # 0xec81 (en: 'bottom left rectangle', google translation) - - "": [t: "右上方的矩形"] # 0xec90 (en: 'top right rectangle', google translation) - - "": [t: "右下方矩形"] # 0xec91 (en: 'bottom right rectangle', google translation) - - "": [t: "合成劃分角"] # 0xec92 (en: 'synthetic division corner', google translation) - - "": [t: "合成劃分水平擴展器"] # 0xec93 (en: 'synthetic division horizontal extender', google translation) - - "": [t: "合成劃分垂直擴展器"] # 0xec94 (en: 'synthetic division vertical extender', google translation) - - "": [t: "左天花板地板擴展器"] # 0xec95 (en: 'left ceiling floor extender', google translation) - - "": [t: "右天花板地板擴展器"] # 0xec96 (en: 'right ceiling floor extender', google translation) - - "": [t: "超過支架擴展器"] # 0xec97 (en: 'over bracket extender', google translation) - - "": [t: "垂直桿擴展器"] # 0xec98 (en: 'vertical bar extender', google translation) - - "": [t: "左雙垂直桿擴展器"] # 0xec99 (en: 'left double vertical bar extender', google translation) - - "": [t: "水平棒擴展器"] # 0xec9a (en: 'horizontal bar extender', google translation) - - "": [t: "在支架擴展器下"] # 0xec9c (en: 'under bracket extender', google translation) - - "": [t: "向下指向括號正確"] # 0xec9d (en: 'down pointing paren right', google translation) - - "": [t: "向下指向括號擴展器"] # 0xec9e (en: 'down pointing paren extender', google translation) - - "": [t: "向下指向括號"] # 0xec9f (en: 'down pointing paren left', google translation) - - "": [t: "向上指向布雷斯擴展器"] # 0xeca0 (en: 'up pointing brace extender', google translation) - - "": [t: "向上指向括號"] # 0xeca1 (en: 'up pointing paren left', google translation) - - "": [t: "向上指向括號擴展器"] # 0xeca2 (en: 'up pointing paren extender', google translation) - - "": [t: "向上指向括號正確"] # 0xeca3 (en: 'up pointing paren right', google translation) - - "": [t: "向下指向支架擴展器"] # 0xeca4 (en: 'down pointing brace extender', google translation) - - "": [t: "普朗克在兩個pi欄上常數"] # 0xed00 (en: 'planck constant over two pi bar', google translation) - - "": [t: "鏡子g"] # 0xed01 (en: 'mirror g', google translation) - - "": [t: "無點j"] # 0xed02 (en: 'dotless j', google translation) - - "": [t: "digamma"] # 0xed03 (google translation) - - "ϝ": [t: "Diggmma"] # 0x3dd (en: 'digamma') - - "": [T: "d"] # 0xed10 (en: 'd', google translation) - - "": [T: "e"] # 0xed11 (en: 'e', google translation) - - "": [T: "i"] # 0xed12 (en: 'i', google translation) - - "": [T: "j"] # 0xed13 (en: 'j', google translation) - - "ⅅ": - - SPELL: "translate('.', 'ⅅ', 'DD')" # 0xed16, 0x2145 - -# The private use chars are from MathType - - "": [t: "逆時針輪廓整體環"] # 0xee00 (en: 'anticlockwise contour integral loop', google translation) - - "": [t: "順時針輪廓積分循環"] # 0xee01 (en: 'clockwise contour integral loop', google translation) - - "": [t: ""] # 0xee04 - - "": [t: ""] # 0xee05 - - "": [t: ""] # 0xee06 - - "": [t: ""] # 0xee07 - - "": [t: ""] # 0xee08 - - "": [t: ""] # 0xee09 - - "": [t: ""] # 0xee0a - - "": [t: ""] # 0xee0b - - "": [t: ""] # 0xee0c - - "": [t: "聯合身份點綴"] # 0xee0d (en: 'joint status embellishment', google translation) - - "": [t: "聯合身份點綴"] # 0xee0e (en: 'joint status embellishment left', google translation) - - "": [t: "聯合身份修飾權"] # 0xee0f (en: 'joint status embellishment right', google translation) - - "": [t: "聯合身份點綴擴展器"] # 0xee10 (en: 'joint status embellishment extender', google translation) - - "": [t: "積分循環"] # 0xee11 (en: 'integral loop', google translation) - - "": [t: "積分循環雙重"] # 0xee12 (en: 'integral loop double', google translation) - - "": [t: "積分循環三重"] # 0xee13 (en: 'integral loop triple', google translation) - - "": [t: "擴展積分循環雙重"] # 0xee15 (en: 'expanding integral loop double', google translation) - - "": [t: "擴展積分循環三倍"] # 0xee16 (en: 'expanding integral loop triple', google translation) - - "": [t: "漸近等於重音"] # 0xee17 (en: 'asymptotically equal to accent', google translation) - - "": [t: "同等標誌口音"] # 0xee18 (en: 'equal sign accent', google translation) - - "": [t: "四元素"] # 0xee19 (en: 'quadruple prime', google translation) - - "": [t: "左圓的吧台口音"] # 0xee1a (en: 'bar accent with open circle left', google translation) - - "": [t: "桿重音,左圓"] # 0xee1b (en: 'bar accent with closed circle left', google translation) - - "": [t: "帶有開放圓的吧台口音"] # 0xee1c (en: 'bar accent with open circle right', google translation) - - "": [t: "帶有多點的吧台口音"] # 0xee1d (en: 'bar accent with over dot', google translation) - - "": [t: "帶下點的條重音"] # 0xee1e (en: 'bar accent with under dot', google translation) - - "": [t: "帶雙點的吧台口音"] # 0xee1f (en: 'bar accent with double over dot', google translation) - - "": [t: "桿重音,double dot"] # 0xee20 (en: 'bar accent with double under dot', google translation) - - "": [t: "酒吧口音"] # 0xee21 (en: 'bar accent with caret', google translation) - - "": [t: "濃密的條件"] # 0xee22 (en: 'thick under bar accent', google translation) - - "": [t: "帶閉合右圓的條重音"] # 0xee23 (en: 'bar accent with closed circle right', google translation) - - "": [t: "上面的大點"] # 0xee24 (en: 'large dot above', google translation) - - "": [t: "對準標記"] # 0xef00 (en: 'alignment mark', google translation) - - "": [t: ""] # 0xef01 - - "​": [t: ""] # 0x200b - - "": [t: ""] # 0xef02 - - " ": [t: ""] # 0x2009 - - "": [t: ""] # 0xef03 - - " ": [t: ""] # 0x205f - - "": [t: ""] # 0xef04 - - "": [t: ""] # 0xef05 - - " ": [t: ""] # 0x2003 - - "": [t: ""] # 0xef06 - - "": [t: ""] # 0xef07 - - "": [t: ""] # 0xef08 - - "": [t: ""] # 0xef09 - - "": [t: ""] # 0xef0a - - " ": [t: ""] # 0x200a - - "": [t: ""] # 0xef22 - - "": [t: ""] # 0xef23 - - "": [t: ""] # 0xef24 - - "": [t: ""] # 0xef29 - - "": [t: "缺少期限"] # 0xef41 (en: 'missing term', google translation) - - "": [t: "左側的順時針輪廓積分箭頭"] # 0xef80 (en: 'clockwise contour integral arrow on left', google translation) - - "": [t: "與正方形的積分"] # 0xef81 (en: 'integral with square', google translation) - - "": [t: "與斜線的積分"] # 0xef82 (en: 'integral with slash', google translation) - - "": [t: "反向積分"] # 0xef83 (en: 'reversed integral', google translation) - - "": [t: "雙零以上零零"] # 0xef90 (en: 'double zero over double zero', google translation) - - "": [t: "用斜線為零"] # 0xef91 (en: 'zero with slash', google translation) - - # fraktur chars in math alphabetic block and also MathType private use area - # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display - - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) - - T: "fraktur" # (google translation) - - SPELL: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" - - - "-": # 0xf000 - 0xf018 - - T: "fraktur" # (google translation) - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" - - - "𝔞-𝔷": # 0x1d51e - 0x1d537 - - T: "fraktur" # (google translation) - - SPELL: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf01a - 0xf033 - - T: "fraktur" # (google translation) - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝕬-𝖅": # 0x1D56C - 0x1D585 - - T: "fraktur 粗體" # (google translation) - - SPELL: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf040 - 0xf059 - - T: "fraktur 粗體" # (google translation) - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝖆-𝖟": # 0x1d586 - 0x1d59f - - T: "fraktur 粗體" # (google translation) - - SPELL: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf05a - 0xf073 - - T: "fraktur 粗體" # (google translation) - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area - # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display - - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) - - test: - if: "$Verbosity!='Terse'" - then: [T: "空心"] # (en: 'double struck', google translation) - - SPELL: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf080 - 0xf098 - - test: - if: "$Verbosity!='Terse'" - then: [T: "空心"] # (en: 'double struck', google translation) - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝕒-𝕫": # 0x1d552 - 0x1d56b - - test: - if: "$Verbosity!='Terse'" - then: [T: "空心"] # (en: 'double struck', google translation) - - SPELL: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf09a - 0xf0b3 - - test: - if: "$Verbosity!='Terse'" - then: [T: "空心"] # (en: 'double struck', google translation) - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - "𝟘-𝟡": # 0x1d7d8 - 0x1d7e1 - - test: - if: "$Verbosity!='Terse'" - then: [T: "空心"] # (en: 'double struck', google translation) - - SPELL: "translate('.', '𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡', '0123456789')" - - "-": # 0xf0c0 - 0xf0c9 - - test: - if: "$Verbosity!='Terse'" - then: [T: "空心"] # (en: 'double struck', google translation) - - SPELL: "translate('.', '', '0123456789')" - - - "": [T: "空心nabla"] # 0xf0ca (en: 'double struck nabla', google translation) - - "": [T: "空心歐拉常數"] # 0xf0cb (en: 'double struck euler constant', google translation) - - # script chars in math alphabetic block and also MathType private use area - - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 - - T: "草體" # (en: 'script', google translation) - - SPELL: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf100 - 0xf119 - - T: "草體" # (en: 'script', google translation) - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf - - T: "草體" # (en: 'script', google translation) - - SPELL: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf11a - 0xf133 - - T: "草體" # (en: 'script', google translation) - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - # bold script chars in math alphabetic block and also MathType private use area - - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 - - T: "粗草體" # (en: 'script bold', google translation) - - SPELL: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf140 - 0xf159 - - T: "粗草體" # (en: 'script bold', google translation) - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝓪-𝔃": # 0x1d4ea - 0x1d503 - - T: "粗草體" # (en: 'script bold', google translation) - - SPELL: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" - - "-": # 0xf15a - 0xf173 - - T: "粗草體" # (en: 'script bold', google translation) - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf180 - 0xf199 - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "": # 0xf19a - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "大寫"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [T: "結紮ae"] # (en: 'ligature ae', google translation) - - "": # 0xf19b - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "大寫"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [t: "sharp s"] # (en: 'sharp s', google translation) - - "": # 0xf19c - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "大寫"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: [t: "o with stroke"] # (en: 'o with stroke', google translation) - - # MathType only has a few of the cap Greek letters in PUA - - "": # 0xf201 - 0xf209 - - test: - if: "$Verbosity!='Terse'" - then: [T: "空心"] # (en: 'double struck', google translation) - - SPELL: "translate('.', '', 'ΔΨΛΠΣΘΓΩΥ')" - - - "-": # 0xf220 - 0xf236 - - test: - if: "$Verbosity!='Terse'" - then: [T: "空心"] # (en: 'double struck', google translation) - - SPELL: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "": [T: "空心final sigma"] # 0xf237 (en: 'double struck final sigma', google translation) - - "": [T: "空心rho"] # 0xf250 (en: 'double struck rho', google translation) - - "": [T: "空心phi"] # 0xf251 (en: 'double struck phi', google translation) - - "𝐀-𝐙": # 0x1d400 - 0x1d419 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf260 - 0xf279 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝐚-𝐳": # 0x1d41a - 0x1d433 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf27a - 0xf293 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝐴-𝑍": # 0x1d434 - 0x1d44d - - SPELL: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf294 - 0xf2ad - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝑎-𝑧": # 0x1d44e - 0x1d467 - - SPELL: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf2ae - 0xf2c7 - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝑨-𝒁": # 0x1d468 - 0x1d481 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf2c8 - 0xf2e1 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝒂-𝒛": # 0x1d482 - 0x1d49b - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf2e2 - 0xf2fb - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 - - SPELL: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf300 - 0xf319 - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 - - SPELL: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf31a - 0xf333 - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf334 - 0xf34d - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝗮-𝘇": # 0x1d5ee - 0x1d607 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf34e - 0xf367 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - "𝘈-𝘡": # 0x1d608 - 0x1d621 - # - t: "斜體" - - SPELL: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - "-": # 0xf368 - 0xf381 - # - t: "斜體" - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝘢-𝘻": # 0x1d622 - 0x1d63b - # - t: "斜體" - - SPELL: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf382 - 0xf39b - # - t: "斜體" - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝘼-𝙕": # 0x1d63c - 0x1d655 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf39c - 0xf3b5 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝙖-𝙯": # 0x1d656 - 0x1d66f - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf3b6 - 0xf3cf - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "𝙰-𝚉": # 0x1d670 - 0x1d689 - - SPELL: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "-": # 0xf3d0 - 0xf3e9 - - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" - - - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 - - SPELL: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" - - - "-": # 0xf3ea - 0xf403 - - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - - "": [T: "無點i"] # 0xf404 (en: 'dotless i', google translation) - - "𝚤": [T: "無點i"] # 0x1d6a4 (en: 'dotless i', google translation) - - "𝚥": [T: "無點j"] # 0x1d6a5 (en: 'dotless j', google translation) - - - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf408 - 0xf420 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf422 - 0xf43a - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "": [T: "粗體nabla"] # 0xf421 (en: 'bold nabla', google translation) - - "𝛁": [T: "粗體nabla"] # 0x1d6c1 (en: 'bold nabla', google translation) - - - "𝛛𝛜𝛝𝛞𝛟𝛠𝛡": # 0x1D6DB - 0x1D6E1 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠𝛡', '∂εθκφρπ')" - - - "": # 0xF43C - 0xF441 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', '∂εθκφρπ')" - - - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa - # - t: "斜體" - - SPELL: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf442 - 0xf45a - # - t: "斜體" - - SPELL: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝛼-𝜔": # 0x1d6fc - 0x1d714 - # - t: "斜體" - - SPELL: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf45c - 0xf474 - # - t: "斜體" - - SPELL: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "": [T: "斜體nabla"] # 0xf45b (en: 'italic nabla', google translation) - - "𝛻": [T: "斜體nabla"] # 0x1d6fb (en: 'italic nabla', google translation) - - - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b - # - t: "斜體" - - SPELL: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" - - - "": # 0xf475 - 0xf47b - # - t: "斜體" - - SPELL: "translate('.', '', '∂εθκφρπ')" - - - "𝜜-𝜴": # 0x1d71c - 0x1d734 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf47c - 0xf494 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝜶-𝝎": # 0x1d736 - 0x1d74e - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf496 - 0xf4ae - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝝏𝝐𝝑𝝒𝝓𝝔𝝕": # 0x1d74f - 0x1d755 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔𝝕', '∂εθκφρπ')" - - - "": # 0xf422 - 0xf43a - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', '∂εθκφρπ')" - - - "𝜵": [T: "粗斜體nabla"] # 0x1d735 (en: 'bold italic nabla', google translation) - - "": [T: "粗斜體nabla"] # 0xf495 (en: 'bold italic nabla', google translation) - - - "𝝖-𝝮": # 0x1d756 - 0x1d76e - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - "-": # 0xf4b6 - 0xf4ce - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝝰-𝞈": # 0x1d770 - 0x1d788 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf4d0 - 0xf4e8 - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝞉𝞊𝞋𝞌𝞍𝞎𝞏": # 0x1d789 - 0x1d78f - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎𝞏', '∂εθκφρπ')" - - - "": # 0xf4e9 - 0xf4ef - - T: "粗體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', '∂εθκφρπ')" - - - "": [T: "粗體nabla"] # 0xf4cf (en: 'bold nabla', google translation) - - "𝝯": [T: "粗體nabla"] # 0x1d76f (en: 'bold nabla', google translation) - - - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "-": # 0xf4f0 - 0xf508 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" - - - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "-": # 0xf50a - 0xf522 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" - - - "𝟃𝟄𝟅𝟆𝟇𝟈𝟉": # 0x1d7c3 - 0x1d7c9 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈𝟉', '∂εθκφρπ')" - - - "": # 0xf523 - 0xf529 - # - t: "bold italic" - - T: "粗斜體" # (en: 'bold', google translation) - - SPELL: "translate('.', '', '∂εθκφρπ')" - - - "": [T: "粗體nabla"] # 0xf509 (en: 'bold nabla', google translation) - - "𝞩": [T: "粗體nabla"] # 0x1d7a9 (en: 'bold nabla', google translation) - - - "": [T: "粗體0"] # 0xf52e (en: 'bold zero', google translation) - - "𝟎": [T: "粗體0"] # 0x1d7ce (en: 'bold zero', google translation) - - "": [T: "粗體1"] # 0xf52f (en: 'bold one', google translation) - - "𝟏": [T: "粗體1"] # 0x1d7cf (en: 'bold one', google translation) - - "": [T: "粗體2"] # 0xf530 (en: 'bold two', google translation) - - "𝟐": [T: "粗體2"] # 0x1d7d0 (en: 'bold two', google translation) - - "": [T: "粗體3"] # 0xf531 (en: 'bold three', google translation) - - "𝟑": [T: "粗體3"] # 0x1d7d1 (en: 'bold three', google translation) - - "": [T: "粗體4"] # 0xf532 (en: 'bold four', google translation) - - "𝟒": [T: "粗體4"] # 0x1d7d2 (en: 'bold four', google translation) - - "": [T: "粗體5"] # 0xf533 (en: 'bold five', google translation) - - "𝟓": [T: "粗體5"] # 0x1d7d3 (en: 'bold five', google translation) - - "": [T: "粗體6"] # 0xf534 (en: 'bold six', google translation) - - "𝟔": [T: "粗體6"] # 0x1d7d4 (en: 'bold six', google translation) - - "": [T: "粗體7"] # 0xf535 (en: 'bold seven', google translation) - - "𝟕": [T: "粗體7"] # 0x1d7d5 (en: 'bold seven', google translation) - - "": [T: "粗體8"] # 0xf536 (en: 'bold eight', google translation) - - "𝟖": [T: "粗體8"] # 0x1d7d6 (en: 'bold eight', google translation) - - "": [T: "粗體9"] # 0xf537 (en: 'bold nine', google translation) - - "𝟗": [T: "粗體9"] # 0x1d7d7 (en: 'bold nine', google translation) - - "": [T: "零"] # 0xf542 (en: 'zero', google translation) - - "𝟢": [T: "零"] # 0x1d7e2 (en: 'zero', google translation) - - "": [T: "一"] # 0xf543 (en: 'one', google translation) - - "𝟣": [T: "一"] # 0x1d7e3 (en: 'one', google translation) - - "": [T: "二"] # 0xf544 (en: 'two', google translation) - - "𝟤": [T: "二"] # 0x1d7e4 (en: 'two', google translation) - - "": [T: "三"] # 0xf545 (en: 'three', google translation) - - "𝟥": [T: "三"] # 0x1d7e5 (en: 'three', google translation) - - "": [T: "四"] # 0xf546 (en: 'four', google translation) - - "𝟦": [T: "四"] # 0x1d7e6 (en: 'four', google translation) - - "": [T: "五"] # 0xf547 (en: 'five', google translation) - - "𝟧": [T: "五"] # 0x1d7e7 (en: 'five', google translation) - - "": [T: "六"] # 0xf548 (en: 'six', google translation) - - "𝟨": [T: "六"] # 0x1d7e8 (en: 'six', google translation) - - "": [T: "七"] # 0xf549 (en: 'seven', google translation) - - "𝟩": [T: "七"] # 0x1d7e9 (en: 'seven', google translation) - - "": [T: "八"] # 0xf54a (en: 'eight', google translation) - - "𝟪": [T: "八"] # 0x1d7ea (en: 'eight', google translation) - - "": [T: "九"] # 0xf54b (en: 'nine', google translation) - - "𝟫": [T: "九"] # 0x1d7eb (en: 'nine', google translation) - - "": [T: "粗體零"] # 0xf54c (en: 'bold zero', google translation) - - "𝟬": [T: "粗體零"] # 0x1d7ec (en: 'bold zero', google translation) - - "": [T: "粗體1"] # 0xf54d (en: 'bold one', google translation) - - "𝟭": [T: "粗體1"] # 0x1d7ed (en: 'bold one', google translation) - - "": [T: "粗體2"] # 0xf54e (en: 'bold two', google translation) - - "𝟮": [T: "粗體2"] # 0x1d7ee (en: 'bold two', google translation) - - "": [T: "粗體3"] # 0xf54f (en: 'bold three', google translation) - - "𝟯": [T: "粗體3"] # 0x1d7ef (en: 'bold three', google translation) - - "": [T: "粗體4"] # 0xf550 (en: 'bold four', google translation) - - "𝟰": [T: "粗體4"] # 0x1d7f0 (en: 'bold four', google translation) - - "": [T: "粗體5"] # 0xf551 (en: 'bold five', google translation) - - "𝟱": [T: "粗體5"] # 0x1d7f1 (en: 'bold five', google translation) - - "": [T: "粗體6"] # 0xf552 (en: 'bold six', google translation) - - "𝟲": [T: "粗體6"] # 0x1d7f2 (en: 'bold six', google translation) - - "": [T: "粗體7"] # 0xf553 (en: 'bold seven', google translation) - - "𝟳": [T: "粗體7"] # 0x1d7f3 (en: 'bold seven', google translation) - - "": [T: "粗體8"] # 0xf554 (en: 'bold eight', google translation) - - "𝟴": [T: "粗體8"] # 0x1d7f4 (en: 'bold eight', google translation) - - "": [T: "粗體9"] # 0xf555 (en: 'bold nine', google translation) - - "𝟵": [T: "粗體9"] # 0x1d7f5 (en: 'bold nine', google translation) - - "": [T: "零"] # 0xf556 (en: 'zero', google translation) - - "𝟶": [T: "零"] # 0x1d7f6 (en: 'zero', google translation) - - "": [T: "一"] # 0xf557 (en: 'one', google translation) - - "𝟷": [T: "一"] # 0x1d7f7 (en: 'one', google translation) - - "": [T: "二"] # 0xf558 (en: 'two', google translation) - - "𝟸": [T: "二"] # 0x1d7f8 (en: 'two', google translation) - - "": [T: "三"] # 0xf559 (en: 'three', google translation) - - "𝟹": [T: "三"] # 0x1d7f9 (en: 'three', google translation) - - "": [T: "四"] # 0xf55a (en: 'four', google translation) - - "𝟺": [T: "四"] # 0x1d7fa (en: 'four', google translation) - - "": [T: "五"] # 0xf55b (en: 'five', google translation) - - "𝟻": [T: "五"] # 0x1d7fb (en: 'five', google translation) - - "": [T: "六"] # 0xf55c (en: 'six', google translation) - - "𝟼": [T: "六"] # 0x1d7fc (en: 'six', google translation) - - "": [T: "七"] # 0xf55d (en: 'seven', google translation) - - "𝟽": [T: "七"] # 0x1d7fd (en: 'seven', google translation) - - "": [T: "八"] # 0xf55e (en: 'eight', google translation) - - "𝟾": [T: "八"] # 0x1d7fe (en: 'eight', google translation) - - "": [T: "九"] # 0xf55f (en: 'nine', google translation) - - "𝟿": [T: "九"] # 0x1d7ff (en: 'nine', google translation) - - "": [T: "未知字元"] # 0xf700 (en: 'unknown character', google translation) - - "": [t: "右下三角形"] # 0xf726 (en: 'lower right and lower left triangles', google translation) - - "": [t: "水平省略於擴展器"] # 0xf72d (en: 'horizontal ellipsis extender', google translation) - - "": [t: "中線水平橢圓擴展器"] # 0xf72e (en: 'midline horizontal ellipsis extender', google translation) - - "": [t: "激進的擴展器"] # 0xf8e5 (en: 'radical extender', google translation) - - "": [t: "垂直箭頭擴展器"] # 0xf8e6 (en: 'vertical arrow extender', google translation) - - "": [t: "水平箭頭擴展器"] # 0xf8e7 (en: 'horizontal arrow extender', google translation) - - "": [t: "註冊標誌sans serif"] # 0xf8e8 (en: 'registered sign sans serif', google translation) - - "": [t: "版權標誌無襯線"] # 0xf8e9 (en: 'copyright sign sans serif', google translation) - - "": [t: "商標標誌sans serif"] # 0xf8ea (en: 'trade mark sign sans serif', google translation) - - "": [t: "左括號頂部"] # 0xf8eb (en: 'left paren top', google translation) - - "": [t: "左括號擴展器"] # 0xf8ec (en: 'left paren extender', google translation) - - "": [t: "左括號底部"] # 0xf8ed (en: 'left paren bottom', google translation) - - "": [t: "左支架頂部"] # 0xf8ee (en: 'left bracket top', google translation) - - "": [t: "左支架擴展器"] # 0xf8ef (en: 'left bracket extender', google translation) - - "": [t: "左支架底部"] # 0xf8f0 (en: 'left bracket bottom', google translation) - - "": [t: "左支架上衣"] # 0xf8f1 (en: 'left brace top', google translation) - - "": [t: "左支架中間"] # 0xf8f2 (en: 'left brace mid', google translation) - - "": [t: "左支撐底部"] # 0xf8f3 (en: 'left brace bottom', google translation) - - "": [t: "支撐擴展器"] # 0xf8f4 (en: 'brace extender', google translation) - - "": [t: "積分擴展器"] # 0xf8f5 (en: 'integral extender', google translation) - - "": [t: "右括號頂部"] # 0xf8f6 (en: 'right paren top', google translation) - - "": [t: "右括號擴展器"] # 0xf8f7 (en: 'right paren extender', google translation) - - "": [t: "右括號底部"] # 0xf8f8 (en: 'right paren bottom', google translation) - - "": [t: "右支架上衣"] # 0xf8f9 (en: 'right bracket top', google translation) - - "": [t: "右支架擴展器"] # 0xf8fa (en: 'right bracket extender', google translation) - - "": [t: "右支架底部"] # 0xf8fb (en: 'right bracket bottom', google translation) - - "": [t: "右支撐頂"] # 0xf8fc (en: 'right brace top', google translation) - - "": [t: "右支撐中間"] # 0xf8fd (en: 'right brace mid', google translation) - - "": [t: "右支撐底部"] # 0xf8fe (en: 'right brace bottom', google translation) - - "": [t: "蘋果徽標"] # 0xf8ff (en: 'apple logo', google translation) - - "ff": [T: "ff"] # 0xfb00 (google translation) - - "fi": [T: "fi"] # 0xfb01 (google translation) - - "fl": [T: "fl"] # 0xfb02 (en: 'fl', google translation) - - "ffi": [T: "ffi"] # 0xfb03 (google translation) - - "ffl": [T: "ffl"] # 0xfb04 (google translation) - - "ſt": [T: "英尺"] # 0xfb05 (en: 'ft', google translation) - - "st": [t: "st"] # 0xfb06 (en: 'st', google translation) - - "︠": [t: "結紮剩下半點"] # 0xfe20 (en: 'ligature left half embellishment', google translation) - - "︡": [t: "綁紮右半點綴"] # 0xfe21 (en: 'ligature right half embellishment', google translation) - - "︢": [t: "雙tilde留下一半點綴"] # 0xfe22 (en: 'double tilde left half embellishment', google translation) - - "︣": [t: "雙tilde右半點綴"] # 0xfe23 (en: 'double tilde right half embellishment', google translation) - - "︤": [t: "馬克龍離開了半點"] # 0xfe24 (en: 'macron left half embellishment', google translation) - - "︥": [t: "馬克龍右半點綴"] # 0xfe25 (en: 'macron right half embellishment', google translation) - - "︦": [t: "連接馬克龍點綴"] # 0xfe26 (en: 'conjoining macron embellishment', google translation) - - "︵": [T: "上括號"] # 0xfe35 (en: 'over paren', google translation) - - "︶": [T: "下括號"] # 0xfe36 (en: 'under paren', google translation) - - "︷": [T: "上大括"] # 0xfe37 (en: 'over brace', google translation) - - "︸": [T: "下大括"] # 0xfe38 (en: 'under brace', google translation) - - "︿": [T: "上角括"] # 0xfe3f (en: 'over angle bracket', google translation) - - "﹀": [T: "下角括"] # 0xfe40 (en: 'under angle bracket', google translation) - - "﹨": [T: "整數除以"] # 0xfe68 (en: 'integer divide', google translation) - - "": [T: "未知或缺失物件"] # 0xfffc (en: 'unknown or missing object', google translation) - - "�": [T: "未知或缺失字元"] # 0xfffd (en: 'unknown or missing character', google translation) +--- + + + - "¢": [T: "美分"] # 0xa2 (en: 'cents', google translation) + - "£": [T: "英磅"] # 0xa3 (en: 'pounds', google translation) + - "¤": [T: "貨幣標誌"] # 0xa4 (en: 'currency sign', google translation) + - "¥": [T: "日元"] # 0xa5 (en: 'yen', google translation) + - "¦": [T: "破折號"] # 0xa6 (en: 'broken bar', google translation) + - "§": [T: "節"] # 0xa7 (en: 'section', google translation) + - "¨": [T: "double dot"] # 0xa8 (en: 'double dot', google translation) + - "©": [T: "版權"] # 0xa9 (en: 'copyright', google translation) + - "ª": [t: "feminine ordinal indicator"] # 0xaa (en: 'feminine ordinal indicator', google translation) + - "¬": [T: "非"] # 0xac (en: 'not', google translation) + - "«": [t: "left-pointing double angle quote mark"] # 0xab (en: 'left-pointing double angle quote mark', google translation) + - "¯": # 0xaf + - test: + if: "ancestor::m:modified-variable and preceding-sibling::*[1][self::m:mi]" + then: [T: "橫線"] # (en: 'bar', google translation) + else: [T: "橫線"] # (en: 'line') + - "²": [T: "二"] # 0xb2 (en: 'two', google translation) + - "³": [T: "三"] # 0xb3 (en: 'three', google translation) + - "´": [t: "acute"] # 0xb4 (en: 'acute', google translation) + - "µ": [T: "微"] # 0xb5 (en: 'micro', google translation) + - "¹": [T: "一"] # 0xb9 (en: 'one', google translation) + - "º": [t: "masculine ordinal indicator"] # 0xb9 (en: 'masculine ordinal indicator', google translation) + - "·": + - test: + if: "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_MultSymbolDot = 'Auto'" + then: [T: "乘"] # (en: 'times', google translation) + else: [T: "內積"] # (en: 'dot') + - "×": # 0xd7 + - test: + if: "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_MultSymbolX = 'Auto'" + then: [T: "乘"] # (en: 'times', google translation) + else_test: + if: $ClearSpeak_MultSymbolX = 'By' + then: [T: "乘"] # (en: 'by', google translation) + else: [T: "乘"] # (en: 'cross') + - "÷": [T: "除以"] # 0xf7 (en: 'divided by') + - "¡": [t: "inverted exclamation mark"] # 0xa1 + - "¶": [t: "paragraph mark"] # 0xb6 + - "¿": [t: "inverted question mark"] # 0xbf + - "ʰ": [t: "modifier small h"] # 0x2b0 (en: 'modifier small h', google translation) + - "ʱ": [t: "modifier small h with hook"] # 0x2b1 (en: 'modifier small h with hook', google translation) + - "ʲ": [t: "modifier small j"] # 0x2b2 (en: 'modifier small j', google translation) + - "ʳ": [t: "modifier small r"] # 0x2b3 (en: 'modifier small r', google translation) + - "ʴ": [t: "modifier small turned r"] # 0x2b4 (en: 'modifier small turned r', google translation) + - "ʵ": [t: "modifier small turned r with hook"] # 0x2b5 (en: 'modifier small turned r with hook', google translation) + - "ʶ": # 0x2b6 + - t: "modifier small inverted" # (en: 'modifier small inverted', google translation) + - SPELL: "translate('R', 'R', 'R')" + + - "ʷ": [t: "modifier small w"] # 0x2b7 (en: 'modifier small w', google translation) + - "ʸ": [t: "modifier small y"] # 0x2b8 (en: 'modifier small y', google translation) + - "ʹ": [t: "modifier prime"] # 0x2b9 (en: 'modifier prime', google translation) + - "ʺ": [t: "modifier double prime"] # 0x2ba (en: 'modifier double prime', google translation) + - "ʻ": [t: "modifier turned comma"] # 0x2bb (en: 'modifier turned comma', google translation) + - "ʼ": [t: "modifier apostrophe"] # 0x2bc (en: 'modifier apostrophe', google translation) + - "ʽ": [t: "modifier reversed comma"] # 0x2bd (en: 'modifier reversed comma', google translation) + - "ʾ": [t: "modifier right half ring"] # 0x2be (en: 'modifier right half ring', google translation) + - "ʿ": [t: "modifier left half ring"] # 0x2bf (en: 'modifier left half ring', google translation) + - "ˀ": [t: "modifier glottal stop"] # 0x2c0 (en: 'modifier glottal stop', google translation) + - "ˁ": [t: "modifier reversed glottal stop"] # 0x2c1 (en: 'modifier reversed glottal stop', google translation) + - "˂": [t: "modifier left arrowhead"] # 0x2c2 (en: 'modifier left arrowhead', google translation) + - "˃": [t: "modifier right arrowhead"] # 0x2c3 (en: 'modifier right arrowhead', google translation) + - "˄": [t: "modifier up arrowhead"] # 0x2c4 (en: 'modifier up arrowhead', google translation) + - "˅": [t: "modifier down arrowhead"] # 0x2c5 (en: 'modifier down arrowhead', google translation) + - "ˆ": [t: "modifier circumflex accent"] # 0x2c6 (en: 'modifier circumflex accent', google translation) + - "ˇ": [T: "check"] # 0x2c7 (en: 'caron', google translation) + - "ˈ": [t: "modifier vertical line"] # 0x2c8 (en: 'modifier vertical line', google translation) + - "ˉ": [t: "macron的修飾符"] # 0x2c9 (en: 'modifier macron', google translation) + - "ˊ": [t: "modifier acute accent"] # 0x2ca (en: 'modifier acute accent', google translation) + - "ˋ": [t: "modifier grave accent"] # 0x2cb (en: 'modifier grave accent', google translation) + - "ˌ": [t: "modifier low vertical line"] # 0x2cc (en: 'modifier low vertical line', google translation) + - "ˍ": [t: "modifier low macron"] # 0x2cd (en: 'modifier low macron', google translation) + - "ˎ": [t: "modifier low grave accent"] # 0x2ce (en: 'modifier low grave accent', google translation) + - "ˏ": [t: "modifier low acute accent"] # 0x2cf (en: 'modifier low acute accent', google translation) + - "ː": [t: "modifier triangular colon"] # 0x2d0 (en: 'modifier triangular colon', google translation) + - "ˑ": [t: "modifier half triangular colon"] # 0x2d1 (en: 'modifier half triangular colon', google translation) + - "˒": [t: "modifier centered right half ring"] # 0x2d2 (en: 'modifier centered right half ring', google translation) + - "˓": [t: "modifier centered left half ring"] # 0x2d3 (en: 'modifier centered left half ring', google translation) + - "˔": [t: "modifier up tadck"] # 0x2d4 (en: 'modifier up tadck', google translation) + - "˕": [t: "modifier down tack"] # 0x2d5 (en: 'modifier down tack', google translation) + - "˖": [t: "modifier plus sign"] # 0x2d6 (en: 'modifier plus sign', google translation) + - "˗": [t: "modifier minus sign"] # 0x2d7 (en: 'modifier minus sign', google translation) + - "˘": [T: "breve"] # 0x2d8 (en: 'breve', google translation) + - "˙": [T: "dot"] # 0x2d9 (en: 'dot', google translation) + - "˚": [t: "ring above"] # 0x2da (en: 'ring above', google translation) + - "˛": [t: "ogonek"] # 0x2db (google translation) + - "˜": [t: "small tilde"] # 0x2dc (en: 'small tilde', google translation) + - "˝": [t: "double acute accent"] # 0x2dd (en: 'double acute accent', google translation) + - "˞": [t: "modifier rhotic hook"] # 0x2de (en: 'modifier rhotic hook', google translation) + - "˟": [t: "modifier cross accent"] # 0x2df (en: 'modifier cross accent', google translation) + - "ˠ": [t: "modifier small gamma"] # 0x2e0 (en: 'modifier small gamma', google translation) + - "ˡ": [t: "modifier small l"] # 0x2e1 (en: 'modifier small l', google translation) + - "ˢ": [t: "modifier small s"] # 0x2e2 (en: 'modifier small s', google translation) + - "ˣ": [t: "modifier small x"] # 0x2e3 (en: 'modifier small x', google translation) + - "ˤ": [t: "modifier small reversed glottal stop"] # 0x2e4 (en: 'modifier small reversed glottal stop', google translation) + - "˥": [t: "modifier extra-high tone bar"] # 0x2e5 (en: 'modifier extra-high tone bar', google translation) + - "˦": [t: "modifier high tone bar"] # 0x2e6 (en: 'modifier high tone bar', google translation) + - "˧": [t: "modifier mid tone bar"] # 0x2e7 (en: 'modifier mid tone bar', google translation) + - "˨": [t: "modifier low tone bar"] # 0x2e8 (en: 'modifier low tone bar', google translation) + - "˩": [t: "modifier extra-low tone bar"] # 0x2e9 (en: 'modifier extra-low tone bar', google translation) + - "˪": [t: "modifier yin departing tone mark"] # 0x2ea (en: 'modifier yin departing tone mark', google translation) + - "˫": [t: "modifier yang departing tone mark"] # 0x2eb (en: 'modifier yang departing tone mark', google translation) + - "ˬ": [t: "modifier voicing"] # 0x2ec (en: 'modifier voicing', google translation) + - "˭": [t: "modifier unaspirated"] # 0x2ed (en: 'modifier unaspirated', google translation) + - "ˮ": [t: "modifier double apostrophe"] # 0x2ee (en: 'modifier double apostrophe', google translation) + - "˯": [t: "modifier low down arrowhead"] # 0x2ef (en: 'modifier low down arrowhead', google translation) + - "˰": [t: "modifier low up arrowhead"] # 0x2f0 (en: 'modifier low up arrowhead', google translation) + - "˱": [t: "modifier low left arrowhead"] # 0x2f1 (en: 'modifier low left arrowhead', google translation) + - "˲": [t: "modifier low right arrowhead"] # 0x2f2 (en: 'modifier low right arrowhead', google translation) + - "˳": [t: "modifier low ring"] # 0x2f3 (en: 'modifier low ring', google translation) + - "˴": [t: "modifier middle grave accent"] # 0x2f4 (en: 'modifier middle grave accent', google translation) + - "˵": [t: "modifier middle double grave accent"] # 0x2f5 (en: 'modifier middle double grave accent', google translation) + - "˶": [t: "modifier middle double acute accent"] # 0x2f6 (en: 'modifier middle double acute accent', google translation) + - "˷": [t: "modifier low tilde"] # 0x2f7 (en: 'modifier low tilde', google translation) + - "˸": [t: "modifier raised colon"] # 0x2f8 (en: 'modifier raised colon', google translation) + - "˹": [t: "modifier begin high tone"] # 0x2f9 (en: 'modifier begin high tone', google translation) + - "˺": [t: "modifier end high tone"] # 0x2fa (en: 'modifier end high tone', google translation) + - "˻": [t: "modifier begin low tone"] # 0x2fb (en: 'modifier begin low tone', google translation) + - "˼": [t: "modifier end low tone"] # 0x2fc (en: 'modifier end low tone', google translation) + - "˽": [t: "modifier shelf"] # 0x2fd (en: 'modifier shelf', google translation) + - "˾": [t: "modifier open shelf"] # 0x2fe (en: 'modifier open shelf', google translation) + - "˿": [t: "modifier low left arrow"] # 0x2ff (en: 'modifier low left arrow', google translation) + - "̀": [t: "grave accent embellishment"] # 0x300 (en: 'grave accent embellishment', google translation) + - "́": [t: "acute accent embellishment"] # 0x301 (en: 'acute accent embellishment', google translation) + - "̂": [t: "circumflex accent embellishment"] # 0x302 (en: 'circumflex accent embellishment', google translation) + - "̃": [t: "tilde embellishment"] # 0x303 (en: 'tilde embellishment', google translation) + - "̄": [t: "macron embellishment"] # 0x304 (en: 'macron embellishment', google translation) + - "̅": [t: "overbar embellishment"] # 0x305 (en: 'overbar embellishment', google translation) + - "̆": [t: "breve embellishment"] # 0x306 (en: 'breve embellishment', google translation) + - "̇": [t: "dot above embellishment"] # 0x307 (en: 'dot above embellishment', google translation) + - "̈": [t: "diaeresis embellishment"] # 0x308 (en: 'diaeresis embellishment', google translation) + - "̉": [t: "hook above embellishment"] # 0x309 (en: 'hook above embellishment', google translation) + - "̊": [t: "ring above embellishment"] # 0x30a (en: 'ring above embellishment', google translation) + - "̋": [t: "double acute accent embellishment"] # 0x30b (en: 'double acute accent embellishment', google translation) + - "̌": [T: "check"] # 0x30c (en: 'check', google translation) + - "̍": [t: "vertical line above embellishment"] # 0x30d (en: 'vertical line above embellishment', google translation) + - "̎": [t: "double vertical line above embellishment"] # 0x30e (en: 'double vertical line above embellishment', google translation) + - "̏": [t: "double grave accent embellishment"] # 0x30f (en: 'double grave accent embellishment', google translation) + - "̐": [t: "candrabindu embellishment"] # 0x310 (en: 'candrabindu embellishment', google translation) + - "̑": [t: "inverted breve embellishment"] # 0x311 (en: 'inverted breve embellishment', google translation) + - "̒": [t: "turned comma above embellishment"] # 0x312 (en: 'turned comma above embellishment', google translation) + - "̓": [t: "comma above embellishment"] # 0x313 (en: 'comma above embellishment', google translation) + - "̔": [t: "reversed comma above embellishment"] # 0x314 (en: 'reversed comma above embellishment', google translation) + - "̕": [t: "comma above right embellishment"] # 0x315 (en: 'comma above right embellishment', google translation) + - "̖": [t: "grave accent below embellishment"] # 0x316 (en: 'grave accent below embellishment', google translation) + - "̗": [t: "acute accent below embellishment"] # 0x317 (en: 'acute accent below embellishment', google translation) + - "̘": [t: "left tack below embellishment"] # 0x318 (en: 'left tack below embellishment', google translation) + - "̙": [t: "right tack below embellishment"] # 0x319 (en: 'right tack below embellishment', google translation) + - "̚": [t: "left angle above embellishment"] # 0x31a (en: 'left angle above embellishment', google translation) + - "̛": [t: "horn embellishment"] # 0x31b (en: 'horn embellishment', google translation) + - "̜": [t: "left half ring below embellishment"] # 0x31c (en: 'left half ring below embellishment', google translation) + - "̝": [t: "up tack below embellishment"] # 0x31d (en: 'up tack below embellishment', google translation) + - "̞": [t: "down tack below embellishment"] # 0x31e (en: 'down tack below embellishment', google translation) + - "̟": [t: "plus sign below embellishment"] # 0x31f (en: 'plus sign below embellishment', google translation) + - "̠": [t: "minus sign below embellishment"] # 0x320 (en: 'minus sign below embellishment', google translation) + - "̡": [t: "palatalized hook below embellishment"] # 0x321 (en: 'palatalized hook below embellishment', google translation) + - "̢": [t: "retroflex hook below embellishment"] # 0x322 (en: 'retroflex hook below embellishment', google translation) + - "̣": [t: "dot below embellishment"] # 0x323 (en: 'dot below embellishment', google translation) + - "̤": [t: "diaeresis below embellishment"] # 0x324 (en: 'diaeresis below embellishment', google translation) + - "̥": [t: "ring below embellishment"] # 0x325 (en: 'ring below embellishment', google translation) + - "̦": [t: "comma below embellishment"] # 0x326 (en: 'comma below embellishment', google translation) + - "̧": [t: "cedilla embellishment"] # 0x327 (en: 'cedilla embellishment', google translation) + - "̨": [t: "ogonek embellishment"] # 0x328 (en: 'ogonek embellishment', google translation) + - "̩": [t: "vertical line below embellishment"] # 0x329 (en: 'vertical line below embellishment', google translation) + - "̪": [t: "bridge below embellishment"] # 0x32a (en: 'bridge below embellishment', google translation) + - "̫": [t: "inverted double arch below embellishment"] # 0x32b (en: 'inverted double arch below embellishment', google translation) + - "̬": [t: "caron below embellishment"] # 0x32c (en: 'caron below embellishment', google translation) + - "̭": [t: "circumflex accent below embellishment"] # 0x32d (en: 'circumflex accent below embellishment', google translation) + - "̮": [t: "breve below embellishment"] # 0x32e (en: 'breve below embellishment', google translation) + - "̯": [t: "inverted breve below embellishment"] # 0x32f (en: 'inverted breve below embellishment', google translation) + - "̰": [t: "tilde below embellishment"] # 0x330 (en: 'tilde below embellishment', google translation) + - "̱": [t: "macron below embellishment"] # 0x331 (en: 'macron below embellishment', google translation) + - "̲": [t: "low line embellishment"] # 0x332 (en: 'low line embellishment', google translation) + - "̳": [t: "double low line embellishment"] # 0x333 (en: 'double low line embellishment', google translation) + - "̴": [t: "tilde overlay embellishment"] # 0x334 (en: 'tilde overlay embellishment', google translation) + - "̵": [t: "short stroke overlay embellishment"] # 0x335 (en: 'short stroke overlay embellishment', google translation) + - "̶": [t: "long stroke overlay embellishment"] # 0x336 (en: 'long stroke overlay embellishment', google translation) + - "̷": [t: "short solidus overlay embellishment"] # 0x337 (en: 'short solidus overlay embellishment', google translation) + - "̸": [t: "long solidus overlay embellishment"] # 0x338 (en: 'long solidus overlay embellishment') + - "̹": [t: "right half ring below embellishment"] # 0x339 (en: 'right half ring below embellishment', google translation) + - "̺": [t: "inverted bridge below embellishment"] # 0x33a (en: 'inverted bridge below embellishment', google translation) + - "̻": [t: "square below embellishment"] # 0x33b (en: 'square below embellishment', google translation) + - "̼": [t: "seagull below embellishment"] # 0x33c (en: 'seagull below embellishment', google translation) + - "̽": [t: "x above embellishment"] # 0x33d (en: 'x above embellishment', google translation) + - "̾": [t: "vertical tilde embellishment"] # 0x33e (en: 'vertical tilde embellishment', google translation) + - "̿": [t: "double overline embellishment"] # 0x33f (en: 'double overline embellishment', google translation) + - "̀": [t: "grave tone mark embellishment"] # 0x340 (en: 'grave tone mark embellishment', google translation) + - "́": [t: "acute tone mark embellishment"] # 0x341 (en: 'acute tone mark embellishment', google translation) + + - "͆": [t: "bridge above"] # 0x346 + - "ΪΫϏ": # 0x3aa, 0x3ab, 0x3cf + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "大寫"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [SPELL: "translate('.', 'ΪΫϏ', 'ιυϗ')"] + - t: "with dialytika" # (en: 'with dialytika', google translation) + - "ϊ": [t: "iota with dialytika"] # 0x3ca (en: 'iota with dialytika') + - "ϋ": [t: "upsilon with dialytika"] # 0x3cb (en: 'upsilon with dialytika') + - "ό": [t: "omicron with tonos"] # 0x3cc (en: 'omicron with tonos') + - "ύ": [t: "upsilon with tonos"] # 0x3cd (en: 'upsilon with tonos') + - "ώ": [t: "omega with tonos"] # 0x3ce (en: 'omega with tonos') + - "ϐ": [t: "beta"] # 0x3d0 (en: 'beta') + - "ϑ": [t: "theta"] # 0x3d1 (en: 'theta') + - "ϒ": [t: "upsilon with hook"] # 0x3d2 (en: 'upsilon with hook') + - "ϓ": [t: "upsilon with acute and hook"] # 0x3d3 (en: 'upsilon with acute and hook') + - "ϔ": [t: "upsilon with diaeresis and hook"] # 0x3d4 (en: 'upsilon with diaeresis and hook') + - "ϕ": [T: "phi"] # 0x3d5 (en: 'phi') + - "ϖ": [t: "pi"] # 0x3d6 (en: 'pi') + - "ϗ": [t: "kai"] # 0x3d7 (en: 'kai') + - "Ϙ": [t: "cap archaic koppa"] # 0x3d8 + - "ϙ": [t: "archaic koppa"] # 0x3d9 + - "ϵ": [T: "epsilon"] # 0x3f5 (en: 'epsilon') + - "϶": [t: "reversed epsilon"] # 0x3f6 (en: 'reversed epsilon') + - "А-Я": # 0x410 - 0x42f + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "大寫"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [SPELL: "translate('.', 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ', 'абвгдежзийклмнопрстуфхцчшщъыьэюя')"] + - "а": [T: "a"] # 0x430 (en: 'a', google translation) + - "б": [T: "be"] # 0x431 (en: 'be', google translation) + - "в": [t: "ve"] # 0x432 (google translation) + - "г": [t: "ghe"] # 0x433 (google translation) + - "д": [t: "de"] # 0x434 (google translation) + - "е": [t: "ie"] # 0x435 (google translation) + - "ж": [t: "zhe"] # 0x436 (google translation) + - "з": [t: "ze"] # 0x437 (google translation) + - "и": [t: "i"] # 0x438 (en: 'i', google translation) + - "й": [t: "short i"] # 0x439 (en: 'short i', google translation) + - "к": [t: "ka"] # 0x43a (en: 'ka', google translation) + - "л": [t: "el"] # 0x43b (google translation) + - "м": [t: "em"] # 0x43c (google translation) + - "н": [t: "en"] # 0x43d (google translation) + - "о": [t: "o"] # 0x43e (en: 'o', google translation) + - "п": [t: "pe"] # 0x43f (google translation) + - "р": [t: "er"] # 0x440 (en: 'er', google translation) + - "с": [t: "es"] # 0x441 (google translation) + - "т": [t: "te"] # 0x442 (google translation) + - "у": [t: "u"] # 0x443 (en: 'u', google translation) + - "ф": [t: "ef"] # 0x444 (google translation) + - "х": [t: "ha"] # 0x445 (en: 'ha', google translation) + - "ц": [t: "tse"] # 0x446 (google translation) + - "ч": [t: "che"] # 0x447 (en: 'che', google translation) + - "ш": [t: "sha"] # 0x448 (en: 'sha', google translation) + - "щ": [t: "shcha"] # 0x449 (google translation) + - "ъ": [t: "hard sign"] # 0x44a (en: 'hard sign', google translation) + - "ы": [t: "yeru"] # 0x44b (google translation) + - "ь": [t: "soft sign"] # 0x44c (en: 'soft sign', google translation) + - "э": [t: "e"] # 0x44d (en: 'e', google translation) + - "ю": [t: "yu"] # 0x44e (google translation) + - "я": [T: "ya"] # 0x44f (en: 'ya', google translation) + - "؆": [t: "Arabic-Indic cube root"] # 0x606 + - "؇": [t: "Arabic-Indic fourth root"] # 0x607 + - "؈": [t: "Arabic ray"] # 0x608 + - "‐": [T: "連字符"] # 0x2010 (en: 'hyphen', google translation) + - "‑": [T: "連字符"] # 0x2011 (en: 'hyphen', google translation) + - "‒": [t: "圖破折號"] # 0x2012 (en: 'figure dash', google translation) + - "–": [t: "en dash"] # 0x2013 (google translation) + - "—": [t: "em dash"] # 0x2014 (google translation) + - "―": [T: "橫線"] # 0x2015 (en: 'horizontal bar', google translation) + - "‖": [T: "雙豎線"] # 0x2016 (en: 'double vertical line', google translation) + - "†": [t: "dagger"] # 0x2020 (en: 'dagger', google translation) + - "‡": [t: "double dagger"] # 0x2021 (en: 'double dagger', google translation) + + - " - ": [t: " "] # 0x2000 - 0x2007 + - "•": # 0x2022 + - test: + if: "@data-chem-formula-op" + then: [T: "dot"] # (en: 'dot', google translation) + else: [T: "bullet"] # (en: 'bullet', google translation) + + - "…": # 0x2026 + test: + if: + - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or" + # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn' + # speak '…' as 'and so on...' unless expr starts with '…' + - "../*[1][.='…']" + then: [T: "點點點"] # (en: 'dot dot dot', google translation) + else_test: # must have $ClearSpeak_Ellipses = 'AndSoOn' + if: "count(following-sibling::*) = 0" + then: [T: "等等"] # (en: 'and so on', google translation) + else: [T: "等等"] # (en: 'and so on up to', google translation) + + - "‰": [T: "千分"] # 0x2030 (en: 'per mille', google translation) + - "‱": [T: "萬分"] # 0x2031 (en: 'per ten thousand', google translation) + - "′": [T: "prime"] # 0x2032 + - "″": [T: "double prime"] # 0x2033 + - "‴": [T: "triple prime"] # 0x2034 + - "‵": [t: "reversed prime"] # 0x2035 (en: 'reversed prime', google translation) + - "‶": [t: "reversed double prime"] # 0x2036 (en: 'reversed double prime', google translation) + - "‷": [t: "reversed triple prime"] # 0x2037 (en: 'reversed triple prime', google translation) + - "‸": [t: "到"] # 0x2038 (en: 'to the', google translation) + - "‹": [t: "single left pointing angle quote mark"] # 0x2039 (en: 'single left pointing angle quote mark', google translation) + - "›": [t: "single right pointing angle quote mark"] # 0x203a (en: 'single right pointing angle quote mark', google translation) + - "‼": # 0x203c (en: 'double factorial', google translation) + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [t: "double exclamation point"] # 0x203c + else: [T: "雙階乘"] # 0x203c + - "⁄": # 0x2044 + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [t: "large slash"] # 0x203c + else: [T: "除以"] # 0x203c + - "⁅": [T: "帶毛左中括號"] # 0x2045 (en: 'left square bracket with quill', google translation) + - "⁆": [T: "帶毛右中括號"] # 0x2046 (en: 'right square bracket with quill', google translation) + - "※": [t: "reference mark"] # 0x203b + - "‿": [t: "under tie"] # 0x203F + - "⁀": [t: "tie"] # 0x2040 + - "⁎": [t: "low asterisk"] # 0x204e + - "⁏": [t: "reversed semicolon"] # 0x204f + - "⁐": [t: "close up"] # 0x2050 + - "⁑": [t: "two vertical asterisks"] # 0x2051 + - "⁒": [t: "commercial minus sign"] # 0x2052 + - "⁗": [T: "quadruple prime"] # 0x2057 (en: 'quadruple prime', google translation) + - "⁠": [t: ""] # 0x2060 + - "⁰": [T: "上標零"] # 0x2070 (en: 'to the zeroth power', google translation) + - "ⁱ": [T: "上標1"] # 0x2071 (en: 'to the eihth power', google translation) + - "⁴": [T: "上標4"] # 0x2074 (en: 'to the fourth power', google translation) + - "⁵": [T: "上標5"] # 0x2075 (en: 'to the fifth power', google translation) + - "⁶": [T: "上標6"] # 0x2076 (en: 'to the sixth power', google translation) + - "⁷": [T: "上標7"] # 0x2077 (en: 'to the seventh power', google translation) + - "⁸": [T: "上標8"] # 0x2078 (en: 'to the eighth power', google translation) + - "⁹": [T: "上標9"] # 0x2079 (en: 'to the ninth power', google translation) + - "⁺": [T: "上標加號"] # 0x207a (en: 'superscript plus sign', google translation) + - "⁻": [T: "上標減號"] # 0x207b (en: 'superscript minus', google translation) + - "⁼": [T: "上標等於"] # 0x207c (en: 'superscript equals sign', google translation) + - "⁽": [T: "上標左括號"] # 0x207d (en: 'superscript left parenthesis', google translation) + - "⁾": [T: "上標右括號"] # 0x207e (en: 'superscript right parenthesis', google translation) + - "ⁿ": [T: "上標n"] # 0x207f (en: 'to the ennth power', google translation) + - "₀": [T: "下標0"] # 0x2080 (en: 'sub zero', google translation) + - "₁": [T: "下標1"] # 0x2081 (en: 'sub one', google translation) + - "₂": [T: "下標2"] # 0x2082 (en: 'sub two', google translation) + - "₃": [T: "下標3"] # 0x2083 (en: 'sub three', google translation) + - "₄": [T: "下標4"] # 0x2084 (en: 'sub four', google translation) + - "₅": [T: "下標5"] # 0x2085 (en: 'sub five', google translation) + - "₆": [T: "下標6"] # 0x2086 (en: 'sub six', google translation) + - "₇": [T: "下標7"] # 0x2087 (en: 'sub seven', google translation) + - "₈": [T: "下標8"] # 0x2088 (en: 'sub eight', google translation) + - "₉": [T: "下標9"] # 0x2089 (en: 'sub nine', google translation) + - "₊": [T: "下標加號"] # 0x208a (en: 'subscript plus sign', google translation) + - "₋": [T: "下標減號"] # 0x208b (en: 'subscript minus sign', google translation) + - "₌": [T: "下標等於"] # 0x208c (en: 'subscript equals sign', google translation) + - "₍": [T: "下標左括號"] # 0x208d (en: 'subscript left parenthesis', google translation) + - "₎": [T: "下標右括號"] # 0x208e (en: 'subscript right parenthesis', google translation) + - "ₐ": [T: "下標a"] # 0x2090 (en: 'sub A', google translation) + - "ₑ": [T: "下標e"] # 0x2091 (en: 'sub E', google translation) + - "ₒ": [T: "下標o"] # 0x2092 (en: 'sub O', google translation) + - "ₓ": [T: "下標x"] # 0x2093 (en: 'sub X', google translation) + - "ₕ": [T: "下標h"] # 0x2095 (en: 'sub H', google translation) + - "ₖ": [T: "下標k"] # 0x2096 (en: 'sub K', google translation) + - "ₗ": [T: "下標l"] # 0x2097 (en: 'sub L', google translation) + - "ₘ": [T: "下標m"] # 0x2098 (en: 'sub M', google translation) + - "ₙ": [T: "下標n"] # 0x2099 (en: 'sub N', google translation) + - "ₚ": [T: "下標p"] # 0x209a (en: 'sub P', google translation) + - "ₛ": [T: "下標s"] # 0x209b (en: 'sub S', google translation) + - "ₜ": [T: "下標t"] # 0x209c (en: 'sub T', google translation) + - "₠": [T: "歐洲貨幣單位"] # 0x20a0 (en: 'european currenty units', google translation) + - "₡": [t: "colons"] # 0x20a1 (en: 'colons', google translation) + - "₢": [t: "cruzeiro"] # 0x20a2 (en: 'cruzeiro', google translation) + - "₣": [T: "法郎"] # 0x20a3 (en: 'franc', google translation) + - "₤": [T: "里拉"] # 0x20a4 (en: 'lira', google translation) + - "₥": [t: "mills"] # 0x20a5 (en: 'mills', google translation) + - "₦": [t: "naira"] # 0x20a6 (en: 'naira', google translation) + - "₧": [t: "peseta"] # 0x20a7 (en: 'peseta', google translation) + - "₨": [T: "盧布"] # 0x20a8 (en: 'rupees', google translation) + - "₩": [T: "韓元"] # 0x20a9 (en: 'won', google translation) + - "₪": [t: "new sheqels"] # 0x20aa (en: 'new sheqels', google translation) + - "₫": [t: "dong"] # 0x20ab (en: 'dong', google translation) + - "€": [T: "歐元"] # 0x20ac (en: 'euros', google translation) + - "₭": [t: "kip"] # 0x20ad (google translation) + - "₮": [t: "tugrik"] # 0x20ae (en: 'tugrik', google translation) + - "₯": [t: "drachma"] # 0x20af (en: 'drachma', google translation) + - "₰": [T: "德國便士"] # 0x20b0 (en: 'german pennies', google translation) + - "₱": [T: "比索"] # 0x20b1 (en: 'pesos', google translation) + - "₲": [t: "guaranis"] # 0x20b2 (en: 'guaranis', google translation) + - "₳": [t: "australs"] # 0x20b3 (en: 'australs', google translation) + - "₴": [t: "hryvnias"] # 0x20b4 (google translation) + - "₵": [t: "cedis"] # 0x20b5 (en: 'cedis', google translation) + - "₶": [t: "livre tournois"] # 0x20b6 (en: 'livre tournois', google translation) + - "₷": [t: "spesmilos"] # 0x20b7 (google translation) + - "₸": [t: "tenges"] # 0x20b8 (google translation) + - "₹": [T: "印度盧比"] # 0x20b9 (en: 'indian rupees', google translation) + - "₺": [T: "土耳其里拉"] # 0x20ba (en: 'turkish liras', google translation) + - "⃐": [t: "left harpoon above embellishment"] # 0x20d0 (en: 'left harpoon above embellishment', google translation) + - "⃑": [T: "向量"] # 0x20d1 (en: 'right harpoon above embellishment', google translation) + - "⃒": [t: "long vertical line overlay embellishment"] # 0x20d2 (en: 'long vertical line overlay embellishment', google translation) + - "⃓": [t: "short vertical line overlay embellishment"] # 0x20d3 (en: 'short vertical line overlay embellishment', google translation) + - "⃔": [t: "anticlockwise arrow above embellishment"] # 0x20d4 (en: 'anticlockwise arrow above embellishment', google translation) + - "⃕": [t: "clockwise arrow above embellishment"] # 0x20d5 (en: 'clockwise arrow above embellishment', google translation) + - "⃖": [t: "left arrow above embellishment"] # 0x20d6 (en: 'left arrow above embellishment', google translation) + - "⃗": [t: "right arrow above embellishment"] # 0x20d7 (en: 'right arrow above embellishment', google translation) + - "⃘": [t: "ring overlay embellishment"] # 0x20d8 (en: 'ring overlay embellishment', google translation) + - "⃙": [t: "clockwise ring overlay embellishment"] # 0x20d9 (en: 'clockwise ring overlay embellishment', google translation) + - "⃚": [t: "anticlockwise ring overlay embellishment"] # 0x20da (en: 'anticlockwise ring overlay embellishment', google translation) + - "⃛": [T: "triple dot"] # 0x20db (en: 'triple dot', google translation) + - "⃜": [T: "quadruple dot"] # 0x20dc (en: 'quadruple dot', google translation) + - "⃝": [t: "封閉圓圈點綴"] # 0x20dd (en: 'enclosing circle embellishment', google translation) + - "⃞": [t: "封閉正方形點綴"] # 0x20de (en: 'enclosing square embellishment', google translation) + - "⃟": [t: "封閉鑽石點綴"] # 0x20df (en: 'enclosing diamond embellishment', google translation) + - "⃠": [t: "封閉了圓形閃爍點綴"] # 0x20e0 (en: 'enclosing circle backslash embellishment', google translation) + - "⃡": [t: "左右箭頭上方"] # 0x20e1 (en: 'left right arrow above embellishment', google translation) + - "⃢": [t: "enclosing screen embellishment"] # 0x20e2 (en: 'enclosing screen embellishment', google translation) + - "⃣": [t: "enclosing keycap embellishment"] # 0x20e3 (en: 'enclosing keycap embellishment', google translation) + - "⃤": [t: "封閉向上三角形點綴"] # 0x20e4 (en: 'enclosing upward pointing triangle embellishment', google translation) + - "⃥": [t: "reverse solidus overlay embellishment"] # 0x20e5 (en: 'reverse solidus overlay embellishment', google translation) + - "⃦": [t: "雙垂直中空點綴"] # 0x20e6 (en: 'double verticle stroke embellishment', google translation) + - "⃧": [t: "annuity symbol embellishment"] # 0x20e7 (en: 'annuity symbol embellishment', google translation) + - "⃨": [t: "triple underdot"] # 0x20e8 (en: 'triple underdot', google translation) + - "⃩": [t: "wide bridge above embellishment"] # 0x20e9 (en: 'wide bridge above embellishment', google translation) + - "⃪": [t: "leftwards arrow overlay embellishment"] # 0x20ea (en: 'leftwards arrow overlay embellishment', google translation) + - "⃫": [t: "long double solidus overlay embellishmen"] # 0x20eb (en: 'long double solidus overlay embellishment', google translation) + - "⃬": [t: "rightwards harpoon with barb downwards embellishment"] # 0x20ec (en: 'rightwards harpoon with barb downwards embellishment', google translation) + - "⃭": [t: "leftwards harpoon with barb downwards embellishment"] # 0x20ed (en: 'leftwards harpoon with barb downwards embellishment', google translation) + - "⃮": [t: "下方左箭頭"] # 0x20ee (en: 'left arrow below embellishment', google translation) + - "⃯": [t: "下方右箭頭"] # 0x20ef (en: 'right arrow below embellishment', google translation) + - "⃰": [t: "上方星號"] # 0x20f0 (en: 'asterisk above embellishment', google translation) + - "℄": [t: "中心線符號"] # 0x2104 (en: 'center line symbol', google translation) + - "℅": [t: "care of"] # 0x2105 (en: 'care of', google translation) + - "℆": [t: "cada una"] # 0x2106 (en: 'cada una', google translation) + - "ℇ": [T: "歐拉常數"] # 0x2107 (en: 'euler's constant', google translation) + - "℈": [t: "scruples"] # 0x2108 (en: 'scruples', google translation) + - "℉": [T: "華氏度"] # 0x2109 (en: 'degrees fahrenheit', google translation) + - "ℊ": [T: "草體g"] # 0x210a (en: 'script g', google translation) + - "ℌℑℨℭ": # 0x210c, 0x2111, 0x2128, 0x212d + - T: "fraktur" # (google translation) + - SPELL: "translate('.', 'ℌℑℨℭ', 'HIZC')" + + - "ℍℙℾℿ": # 0x210d, 0x2119, 0x213e, 0x213f + - T: "雙線" + - spell: "translate('.', 'ℍℙℾℿ', 'HPΓΠ')" + + - "ℎ": [T: "普朗克常數"] # 0x210e (en: 'planck constant', google translation) + - "ℏ": [t: "h bar"] # 0x210f + + - "ℐℒ℘ℬℰℱℳ": # 0x2110, 0x2112, 0x2118, 0x2130, 0x2131, 0x2133 + - T: "草體" # (en: 'script', google translation) + - SPELL: "translate('.', 'ℐℒ℘ℬℰℱℳ', 'ILPBEFM')" + + - "ℓ": [T: "草體l"] # 0x2113 (en: 'script l', google translation) + - "℔": [T: "磅"] # 0x2114 (en: 'pounds', google translation) + - "№": [T: "數字"] # 0x2116 (en: 'number', google translation) + - "℥": [T: "盎司"] # 0x2125 (en: 'ounces', google translation) + - "Ω": [T: "歐姆"] # 0x2126 (en: 'ohms', google translation) + - "℧": [t: "mho"] # 0x2127 (en: 'mhos', google translation) + - "℩": [t: "turned iota"] # 0x2129 (en: 'turned iota', google translation) + - "K": [T: "kelvin"] # 0x212a (en: 'kelvin', google translation) + - "Å": [T: "angstroms"] # 0x212b (en: 'angstroms', google translation) + - "ℯ": [T: "草體e"] # 0x212f (en: 'script e', google translation) + + # coalesced some chars that use cap letters + - "Ⅎ℺⅁⅂⅃⅄": # 0x2132, 0x213a, 0x2141, 0x2142, 0x2143, 0x2144 + - test: + - if: "'.' = '℺'" + then: [T: "旋轉"] # (en: 'rotated', google translation) + - else_if: "'.' = 'Ⅎ'" + then: [T: "翻身"] # (en: 'turned', google translation) + - else_if: "'.' = '⅃'" + then: [T: "左右反向sanserif"] # (en: 'reversed sans-serif', google translation) + else: [T: "翻身sanserif"] # (en: 'turned sans-serif', google translation) + - SPELL: "translate('.', 'Ⅎ℺⅁⅂⅃⅄', 'FQGLLY')" + + - "ℴ": [T: "草體o"] # 0x2134 (en: 'script o', google translation) + - "ℵ": [T: "第一transfinite cardinal"] # 0x2135 (en: 'first transfinite cardinal', google translation) + - "ℶ": [T: "第二transfinite cardinal"] # 0x2136 (en: 'second transfinite cardinal', google translation) + - "ℷ": [T: "第三transfinite cardinal"] # 0x2137 (en: 'third transfinite cardinal', google translation) + - "ℸ": [T: "第四transfinite cardinal"] # 0x2138 (en: 'fourth transfinite cardinal', google translation) + - "ℼ": [T: "雙線pi"] # 0x213c (en: 'double struck pi', google translation) + - "ℽ": [T: "雙線伽瑪"] # 0x213d (en: 'double struck gamma', google translation) + - "⅀": [T: "雙線總和"] # 0x2140 (en: 'double struck n-ary summation', google translation) + - "⅋": [T: "轉向ampersand"] # 0x214b (en: 'turned ampersand', google translation) + - "⅌": [T: "每"] # 0x214c (en: 'per', google translation) + - "ⅎ": [T: "翻身f"] # 0x214e (en: 'turned F', google translation) + - "¼": [t: "one quarter"] # 0x00bc + - "½": [t: "one half"] # 0x00bd + - "¾": [t: "three quarters"] # 0x00be + - "⅐": [T: "七分之1"] # 0x2150 (en: 'one seventh', google translation) + - "⅑": [T: "九分之1"] # 0x2151 (en: 'one ninth', google translation) + - "⅒": [T: "十分之1"] # 0x2152 (en: 'one tenth', google translation) + - "⅓": [T: "三分之1"] # 0x2153 (en: 'one third', google translation) + - "⅔": [T: "三分之2"] # 0x2154 (en: 'two thirds', google translation) + - "⅕": [T: "五分之1"] # 0x2155 (en: 'one fifth', google translation) + - "⅖": [T: "五分之2"] # 0x2156 (en: 'two fifths', google translation) + - "⅗": [T: "五分之3"] # 0x2157 (en: 'three fifths', google translation) + - "⅘": [T: "五分之4"] # 0x2158 (en: 'four fifths', google translation) + - "⅙": [T: "六分之1"] # 0x2159 (en: 'one sixth', google translation) + - "⅚": [T: "六分之5"] # 0x215a (en: 'five sixths', google translation) + - "⅛": [T: "八分之1"] # 0x215b (en: 'one eighth', google translation) + - "⅜": [T: "八分之3"] # 0x215c (en: 'three eighths', google translation) + - "⅝": [T: "八分之5"] # 0x215d (en: 'five eighths', google translation) + - "⅞": [T: "八分之7"] # 0x215e (en: 'seven eighths', google translation) + - "⅟": [t: "one over"] # 0x215f (en: 'one over', google translation) + - "Ⅰ": [T: "Ⅰ"] # 0x2160 (en: 'I', google translation) + - "Ⅱ": [T: "I I"] # 0x2161 (en: 'I I', google translation) + - "Ⅲ": [T: "I I I"] # 0x2162 (en: 'I I I', google translation) + - "Ⅳ": [T: "I V"] # 0x2163 (en: 'I V', google translation) + - "Ⅴ": [T: "V"] # 0x2164 (en: 'V', google translation) + - "Ⅵ": [T: "V I"] # 0x2165 (en: 'V I', google translation) + - "Ⅶ": [T: "V I I"] # 0x2166 (en: 'V I I', google translation) + - "Ⅷ": [T: "V I I I"] # 0x2167 (en: 'V I I I', google translation) + - "Ⅸ": [T: "I X"] # 0x2168 (en: 'I X', google translation) + - "Ⅹ": [T: "X"] # 0x2169 (en: 'X', google translation) + - "Ⅺ": [T: "X I"] # 0x216a (en: 'X I', google translation) + - "Ⅻ": [T: "X I I"] # 0x216b (en: 'X I I', google translation) + - "Ⅼ": [T: "L"] # 0x216c (en: 'L', google translation) + - "Ⅽ": [T: "C"] # 0x216d (en: 'C', google translation) + - "Ⅾ": [T: "D"] # 0x216e (en: 'D', google translation) + - "Ⅿ": [T: "M"] # 0x216f (en: 'M', google translation) + - "ⅰ": [T: "i"] # 0x2170 (en: 'I', google translation) + - "ⅱ": [T: "i i"] # 0x2171 (en: 'I I', google translation) + - "ⅲ": [T: "i i i"] # 0x2172 (en: 'I I I', google translation) + - "ⅳ": [T: "i v"] # 0x2173 (en: 'I V', google translation) + - "ⅴ": [T: "v"] # 0x2174 (en: 'V', google translation) + - "ⅵ": [T: "v i"] # 0x2175 (en: 'V I', google translation) + - "ⅶ": [T: "v i i"] # 0x2176 (en: 'V I I', google translation) + - "ⅷ": [T: "v i i i"] # 0x2177 (en: 'V I I I', google translation) + - "ⅸ": [T: "i x"] # 0x2178 (en: 'I X', google translation) + - "ⅹ": [T: "x"] # 0x2179 (en: 'X', google translation) + - "ⅺ": [T: "x i"] # 0x217a (en: 'X I', google translation) + - "ⅻ": [T: "x i i"] # 0x217b (en: 'X I I', google translation) + - "ⅼ": [T: "l"] # 0x217c (en: 'L', google translation) + - "ⅽ": [T: "c"] # 0x217d (en: 'C', google translation) + - "ⅾ": [T: "d"] # 0x217e (en: 'D', google translation) + - "ⅿ": [T: "m"] # 0x217f (en: 'M', google translation) + - "↉": [T: "三分之0"] # 0x2189 (en: 'zero thirds', google translation) + - "←": [T: "左箭頭"] # 0x2190 (en: 'leftwards arrow', google translation) + - "↑": [T: "向上箭頭"] # 0x2191 (en: 'upwards arrow', google translation) + - "↓": [T: "向下箭頭"] # 0x2193 (en: 'downwards arrow', google translation) + - "↔": [T: "左右箭頭"] # 0x2194 (en: 'left right arrow') + - "↕": [T: "上下箭頭"] # 0x2195 (en: 'up down arrow', google translation) + - "↖": [T: "左上箭頭"] # 0x2196 (en: 'north west arrow', google translation) + - "↗": # 0x2197 + - test: + if: "ancestor::*[2][self::m:limit]" + then: [T: "從下方趨近"] # (en: 'approaches from below', google translation) + else: [T: "右上箭頭"] # (en: 'north east arrow', google translation) + + - "↘": # 0x2198 + - test: + if: "ancestor::*[2][self::m:limit]" + then: [T: "從上方趨近"] # (en: 'approaches from above', google translation) + else: [T: "右下箭頭"] # (en: 'south east arrow', google translation) + + - "↙": [T: "左下箭頭"] # 0x2199 (en: 'south west arrow', google translation) + - "↚": [T: "帶撇左箭頭"] # 0x219a (en: 'leftwards arrow with stroke', google translation) + - "↛": [T: "帶撇右箭頭"] # 0x219b (en: 'rightwards arrow with stroke', google translation) + - "↜": [T: "向左波浪箭頭"] # 0x219c (en: 'leftwards wave arrow', google translation) + - "↝": [T: "向右波浪箭頭"] # 0x219d (en: 'rightwards wave arrow', google translation) + - "↞": [T: "向左雙箭頭"] # 0x219e (en: 'leftwards two headed arrow', google translation) + - "↟": [T: "向上雙箭頭"] # 0x219f (en: 'upwards two headed arrow', google translation) + - "↠": [T: "向右雙箭頭"] # 0x21a0 (en: 'rightwards two headed arrow', google translation) + - "↡": [T: "向下雙箭頭"] # 0x21a1 (en: 'downwards two headed arrow', google translation) + - "↢": [T: "有尾巴左箭頭"] # 0x21a2 (en: 'leftwards arrow with tail', google translation) + - "↣": [T: "有尾巴右箭頭"] # 0x21a3 (en: 'rightwards arrow with tail', google translation) + - "↤": [T: "左箭頭尾直線"] # 0x21a4 (en: 'leftwards arrow from bar', google translation) + - "↥": [T: "向上箭頭尾直線"] # 0x21a5 (en: 'upwards arrow from bar', google translation) + - "↦": [T: "右箭頭尾直線"] # 0x21a6 (en: 'rightwards arrow from bar', google translation) + - "↧": [T: "向下箭頭尾直線"] # 0x21a7 (en: 'downwards arrow from bar', google translation) + - "↨": [T: "上下箭頭有底線"] # 0x21a8 (en: 'up down arrow with base', google translation) + - "↩": [T: "帶鉤向左箭頭"] # 0x21a9 (en: 'leftwards arrow with hook', google translation) + - "↪": [T: "帶鉤向右箭頭"] # 0x21aa (en: 'rightwards arrow with hook', google translation) + - "↫": [T: "帶環左箭頭"] # 0x21ab (en: 'leftwards arrow with loop', google translation) + - "↬": [T: "帶環右箭頭"] # 0x21ac (en: 'rightwards arrow with loop', google translation) + - "↭": [T: "左右波浪箭頭"] # 0x21ad (en: 'left right wave arrow', google translation) + - "↮": [T: "帶撇左右箭頭"] # 0x21ae (en: 'left right arrow with stroke', google translation) + - "↯": [T: "向下曲折箭頭"] # 0x21af (en: 'downwards zigzag arrow', google translation) + - "↰": [T: "向上轉左箭頭"] # 0x21b0 (en: 'upwards arrow with tip leftwards', google translation) + - "↱": [T: "向上轉右箭頭"] # 0x21b1 (en: 'upwards arrow with tip rightwards', google translation) + - "↲": [T: "向下轉左箭頭"] # 0x21b2 (en: 'downwards arrow with tip leftwards', google translation) + - "↳": [T: "向下轉右箭頭"] # 0x21b3 (en: 'downwards arrow with tip rightwards', google translation) + - "↴": [T: "向右轉下箭頭"] # 0x21b4 (en: 'rightwards arrow with corner downwards', google translation) + - "↵": [T: "下轉左箭頭"] # 0x21b5 (en: 'downwards arrow with corner leftwards', google translation) + - "↶": [T: "逆時針上半圓箭頭"] # 0x21b6 (en: 'anticlockwise top semicircle arrow', google translation) + - "↷": [T: "順時針上半圓箭頭"] # 0x21b7 (en: 'clockwise top semicircle arrow', google translation) + - "↸": [T: "左上箭頭到橫線"] # 0x21b8 (en: 'north west arrow to long bar', google translation) + - "↹": [T: "上方左箭頭到豎線下方右箭頭到豎線"] # 0x21b9 (en: 'leftwards arrow to bar over rightwards arrow to bar', google translation) + - "↺": [T: "逆時針圓箭頭"] # 0x21ba (en: 'anticlockwise open circle arrow', google translation) + - "↻": [T: "順時針圓箭頭"] # 0x21bb (en: 'clockwise open circle arrow', google translation) + - "↼": [T: "向左魚叉尖朝上"] # 0x21bc (en: 'left harpoon up', google translation) + - "↽": [T: "向左魚叉尖朝下"] # 0x21bd (en: 'left harpoon down', google translation) + - "↾": [T: "向上魚叉尖朝右"] # 0x21be (en: 'up harpoon right', google translation) + - "↿": [T: "向上魚叉尖朝左"] # 0x21bf (en: 'up harpoon left', google translation) + - "⇀": [T: "向右魚叉尖朝上"] # 0x21c0 (en: 'right harpoon up') + - "⇁": [T: "向右魚叉尖朝下"] # 0x21c1 (en: 'right harpoon down', google translation) + - "⇂": [T: "向下魚叉尖朝右"] # 0x21c2 (en: 'down harpoon right', google translation) + - "⇃": [T: "向下魚叉尖朝左"] # 0x21c3 (en: 'down harpoon left', google translation) + - "⇄": [T: "上方右箭頭下方左箭頭"] # 0x21c4 (en: 'rightwards arrow over leftwards arrow', google translation) + - "⇅": [T: "左方向上右方向下箭頭"] # 0x21c5 (en: 'upwards arrow leftwards of downwards arrow', google translation) + - "⇆": [T: "上方向左下方向右箭頭"] # 0x21c6 (en: 'leftwards arrow over rightwards arrow', google translation) + - "⇇": [T: "向左成對箭頭"] # 0x21c7 (en: 'leftwards paired arrows', google translation) + - "⇈": [T: "向上成對箭頭"] # 0x21c8 (en: 'upwards paired arrows', google translation) + - "⇉": [T: "向右成對箭頭"] # 0x21c9 (en: 'rightwards paired arrows', google translation) + - "⇊": [T: "向下成對箭頭"] # 0x21ca (en: 'downwards paired arrows', google translation) + - "⇋": [T: "上方向左下方向右魚叉"] # 0x21cb (en: 'left harpoon over right harpoon', google translation) + - "⇌": [T: "上方向右下方向左魚叉"] # 0x21cc (en: 'right harpoon over left harpoon', google translation) + - "⇍": [T: "帶撇向左粗箭頭"] # 0x21cd (en: 'leftwards double arrow with stroke', google translation) + - "⇎": [T: "帶撇左右粗箭頭"] # 0x21ce (en: 'left right double arrow with stroke', google translation) + - "⇏": [T: "帶撇向右粗箭頭"] # 0x21cf (en: 'rightwards double arrow with stroke', google translation) + - "⇐": [T: "向左粗箭頭"] # 0x21d0 (en: 'leftwards double arrow', google translation) + - "⇑": [T: "向上粗箭頭"] # 0x21d1 (en: 'upwards double arrow', google translation) + - "⇒": [T: "向右粗箭頭"] # 0x21d2 (en: 'rightwards double arrow', google translation) + - "⇓": [T: "向下粗箭頭"] # 0x21d3 (en: 'downwards double arrow', google translation) + - "⇔": [T: "左右粗箭頭"] # 0x21d4 (en: 'left right double arrow', google translation) + - "⇕": [T: "上下粗箭頭"] # 0x21d5 (en: 'up down double arrow', google translation) + - "⇖": [T: "左上粗箭頭"] # 0x21d6 (en: 'north west double arrow', google translation) + - "⇗": [T: "右上粗箭頭"] # 0x21d7 (en: 'north east double arrow', google translation) + - "⇘": [T: "右下粗箭頭"] # 0x21d8 (en: 'south east double arrow', google translation) + - "⇙": [T: "左下粗箭頭"] # 0x21d9 (en: 'south west double arrow', google translation) + - "⇚": [T: "向左重箭頭"] # 0x21da (en: 'leftwards triple arrow', google translation) + - "⇛": [T: "向右重箭頭"] # 0x21db (en: 'rightwards triple arrow', google translation) + - "⇜": [T: "向左波浪箭頭"] # 0x21dc (en: 'leftwards squiggle arrow', google translation) + - "⇝": [T: "向右波浪箭頭"] # 0x21dd (en: 'rightwards squiggle arrow', google translation) + - "⇞": [T: "雙撇向下箭頭"] # 0x21de (en: 'upwards arrow with double stroke', google translation) + - "⇟": [T: "雙撇向上箭頭"] # 0x21df (en: 'downwards arrow with double stroke', google translation) + - "⇠": [T: "向左虛線箭頭"] # 0x21e0 (en: 'leftwards dashed arrow', google translation) + - "⇡": [T: "向上虛線箭頭"] # 0x21e1 (en: 'upwards dashed arrow', google translation) + - "⇢": [T: "向右虛線箭頭"] # 0x21e2 (en: 'rightwards dashed arrow', google translation) + - "⇣": [T: "向下虛線箭頭"] # 0x21e3 (en: 'downwards dashed arrow', google translation) + - "⇤": [T: "向左箭頭到豎線"] # 0x21e4 (en: 'leftwards arrow to bar', google translation) + - "⇥": [T: "向右箭頭到豎線"] # 0x21e5 (en: 'rightwards arrow to bar', google translation) + - "⇦": [T: "左白箭頭"] # 0x21e6 (en: 'leftwards white arrow', google translation) + - "⇧": [T: "向上白箭頭"] # 0x21e7 (en: 'upwards white arrow', google translation) + - "⇨": [T: "向右白箭頭"] # 0x21e8 (en: 'rightwards white arrow', google translation) + - "⇩": [T: "向下白箭頭"] # 0x21e9 (en: 'downwards white arrow', google translation) + - "⇪": [t: "起頭橫線向上白箭頭"] # 0x21ea (en: 'upwards white arrow from bar', google translation) + - "⇫": [t: "有座向上白心箭頭"] # 0x21eb (en: 'upwards white arrow on pedestal', google translation) + - "⇬": [t: "有座向上白橫線箭頭"] # 0x21ec (en: 'upwards white arrow on pedestal with horizontal bar', google translation) + - "⇭": [t: "有座向上中心豎線白箭頭"] # 0x21ed (en: 'upwards white arrow on pedestal with vertical bar', google translation) + - "⇮": [t: "向上白雙箭頭"] # 0x21ee (en: 'upwards white double arrow', google translation) + - "⇯": [t: "有座向上白雙箭頭"] # 0x21ef (en: 'upwards white double arrow on pedestal', google translation) + - "⇰": [T: "有座向右白箭頭"] # 0x21f0 (en: 'rightwards white arrow from wall', google translation) + - "⇱": [T: "左上箭頭到拐角"] # 0x21f1 (en: 'north west arrow to corner', google translation) + - "⇲": [T: "右下箭頭到拐角"] # 0x21f2 (en: 'south east arrow to corner', google translation) + - "⇳": [T: "上下白箭頭"] # 0x21f3 (en: 'up down white arrow', google translation) + - "⇴": [T: "右箭頭有小圓圈"] # 0x21f4 (en: 'right arrow with small circle', google translation) + - "⇵": [T: "左向下右向上箭頭"] # 0x21f5 (en: 'downwards arrow leftwards of upwards arrow', google translation) + - "⇶": [T: "三個向右箭頭"] # 0x21f6 (en: 'three rightwards arrows', google translation) + - "⇷": [T: "左箭頭帶有豎線"] # 0x21f7 (en: 'leftwards arrow with vertical stroke', google translation) + - "⇸": [T: "右箭頭帶有豎線"] # 0x21f8 (en: 'rightwards arrow with vertical stroke', google translation) + - "⇹": [T: "左右箭頭帶有豎線"] # 0x21f9 (en: 'left right arrow with vertical stroke', google translation) + - "⇺": [T: "向左箭頭帶有二豎線"] # 0x21fa (en: 'leftwards arrow with double vertical stroke', google translation) + - "⇻": [T: "向右箭頭帶有二豎線"] # 0x21fb (en: 'rightwards arrow with double vertical stroke', google translation) + - "⇼": [T: "左右箭頭帶有二豎線"] # 0x21fc (en: 'left right arrow with double vertical stroke', google translation) + - "⇽": [T: "向左中空箭頭"] # 0x21fd (en: 'leftwards open headed arrow', google translation) + - "⇾": [T: "向右中空箭頭"] # 0x21fe (en: 'rightwards open headed arrow', google translation) + - "⇿": [T: "左右中空箭頭"] # 0x21ff (en: 'left right open headed arrow', google translation) + - "∀": [T: "對所有的"] # 0x2200 (en: 'for all') + - "∁": # 0x2201 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'the', google translation) + - T: "補集" # (en: 'complement of') + - "∂": # 0x2202 + - test: + if: "$Verbosity='Terse'" + then: [T: "偏微分"] # (en: 'partial', google translation) + else: [T: "偏微分"] # (en: 'partial derivative') + - "∃": [T: "存在"] # 0x2203 (en: 'there exists') + - "∄": [T: "不存在"] # 0x2204 (en: 'there does not exist') + - "∅": [T: "空集合"] # 0x2205 (en: 'empty set') + - "∆": # 0x2206 + - test: + if: "following-sibling::*" + then_test: + if: "$Verbosity!='Terse'" + then: [t: "the LahPlahsian of"] # "LahPlahsian" sounds better than "laplacian" in speech engines tested + else: [t: "LahPlahsian"] + else: [t: "LahPlahsian"] + - "∇": [t: "nahblah"] # 0x2207 + - "∉": # 0x2209 + # rule is identical to 0x2208 + - test: + if: "$SpeechStyle != 'ClearSpeak'" + then: [T: "不屬於"] # (en: 'is not an element of', google translation) + # 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 + then_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "不在"] # (en: 'not in', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "不是成員"] # (en: 'not member of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "不是"] # (en: 'not element of', google translation) + - else: [T: "不屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'not belonging to') + else_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "不是成員"] # (en: 'is not a member of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "不是一個元素"] # (en: 'is not an element of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "不在"] # (en: 'is not in', google translation) + - else: [T: "不屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'does not belong to') + - "∊": # 0x220a + - test: + if: "$SpeechStyle != 'ClearSpeak'" + then: # (en: 'is an element of', google translation) + - test: + if: "$Verbosity!='Terse' and not(parent::m:set)" # "the set x is an element of ..." sounds bad + then: [t: ""] + - T: "屬於" + # 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 + then_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "在"] # (en: 'in', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "成員"] # (en: 'member of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "元素"] # (en: 'element of', google translation) + - else: [T: "屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to') + else_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "是"] # (en: 'is a member of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "是一個元素"] # (en: 'is an element of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "在"] # (en: 'is in', google translation) + - else: [T: "屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to') + - "∋": [T: "包含"] # 0x220b (en: 'contains the member') + - "∌": [T: "不包含"] # 0x220c (en: 'does not contain the member') + - "∍": [T: "包含"] # 0x220d (en: 'contains the member') + - "∎": [T: "結束證明"] # 0x220e (en: 'end of proof') + - "∏": [T: "積"] # 0x220f (en: 'product') + - "∐": [T: "餘積"] # 0x2210 (en: 'coproduct') + - "∑": [T: "和"] # 0x2211 (en: 'sum') + - "−": [T: "減"] # 0x2212 (en: 'minus') + - "∓": [T: "減加號"] # 0x2213 (en: 'minus or plus') + - "∔": [T: "點加號"] # 0x2214 (en: 'dot plus') + - "∕": [T: "除以"] # 0x2215 (en: 'divided by') + - "∖": [T: "差集"] # 0x2216 (en: 'set minus') + - "∗": [T: "乘"] # 0x2217 (en: 'times', google translation) + - "∘": [T: "合成"] # 0x2218 (en: 'composed with') + - "∙": # 0x2219 + - test: + if: "@data-chem-formula-op" + then: [T: "dot"] # (en: 'dot', google translation) + else: [T: "乘"] # (en: 'times') + + - "√": # 0x221a + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'the', google translation) + - T: "開平方根" # (en: 'square root of') + - "∛": # 0x221b + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'the', google translation) + - T: "開立方根" # (en: 'cube root of') + - "∜": # 0x221c + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'the', google translation) + - T: "開四次方根" # (en: 'fourth root of') + - "∝": # 0x221d + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "正比於" # (en: 'proportional to') + - "∞": [T: "無限大"] # 0x221e (en: 'infinity') + - "∟": [T: "直角"] # 0x221f (en: 'right angle') + - "∠": [T: "角"] # 0x2220 (en: 'angle') + - "∡": [T: "測量角"] # 0x2221 (en: 'measured angle') + - "∢": [T: "球面角"] # 0x2222 (en: 'spherical angle') + - "∣": [T: "整除"] # 0x2223 (en: 'divides') + - "∤": [T: "不整除"] # 0x2224 (en: 'does not divide') + - "∧": [T: "邏輯且"] # 0x2227 (en: 'and') + - "∨": [T: "邏輯或"] # 0x2228 (en: 'or') + - "∩": [T: "交集"] # 0x2229 (en: 'intersection') + - "∪": [T: "聯集"] # 0x222a (en: 'union') + - "∫": [T: "積分"] # 0x222b (en: 'integral') + - "∬": [T: "雙重積分"] # 0x222c (en: 'double integral') + - "∭": [T: "三重積分"] # 0x222d (en: 'triple integral') + - "∮": [T: "輪廓積分"] # 0x222e (en: 'contour integral') + - "∯": [T: "曲面積分"] # 0x222f (en: 'surface integral') + - "∰": [T: "立體積分"] # 0x2230 (en: 'volume integral') + - "∱": [T: "順時針積分"] # 0x2231 (en: 'clockwise integral') + - "∲": [T: "順時針輪廓積分"] # 0x2232 (en: 'clockwise contour integral') + - "∳": [T: "逆時針輪廓積分"] # 0x2233 (en: 'anticlockwise contour integral') + - "∴": [T: "所以"] # 0x2234 (en: 'therefore') + - "∵": [T: "因為"] # 0x2235 (en: 'because') + - "∶": # 0x2236 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "比" # (en: 'to') + - "∷": [T: "當成"] # 0x2237 (en: 'as') + - "∸": [T: "點負號"] # 0x2238 (en: 'dot minus') + - "∹": [T: "超出"] # 0x2239 (en: 'has excess compared to') + - "∺": # 0x223a + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "幾何正比於" # (en: 'geometrically proportional to') + - "∻": # 0x223b + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "同位" # (en: 'homothetic to') + - "∼": [T: "相似"] # 0x223c (en: 'varies with') + - "∽": [T: "反波浪符"] # 0x223d (en: 'reversed tilde') + - "∾": # 0x223e + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "正無限大" # (en: 'most positive') + - "∿": [T: "正弦波型"] # 0x223f (en: 'sine wave') + - "≀": [t: "wreath product"] # 0x2240 (en: 'wreath product') + - "≁": [t: "not tilde"] # 0x2241 (en: 'not tilde') + - "≂": [t: "minus tilde"] # 0x2242 (en: 'minus tilde') + - "≃": # 0x2243 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "漸近等於" # (en: 'asymptotically equal to') + - "≄": # 0x2244 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不漸近等於" # (en: 'not asymptotically equal to') + - "≅": # 0x2245 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "全等於" # (en: 'approximately equal to') + - "≆": # 0x2246 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "近似但不真等於" # (en: 'approximately but not actually equal to') + - "≇": # 0x2247 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不近似且不真等於" # (en: 'neither approximately nor actually equal to') + - "≈": # 0x2248 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "約等於" # (en: 'almost equal to') + - "≉": # 0x2249 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不約等於" # (en: 'not almost equal to') + - "≊": # 0x224a + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "約等於或等於" # (en: 'almost equal or equal to') + - "≋": [T: "三重波浪符"] # 0x224b (en: 'triple tilde') + - "≌": [T: "全等於"] # 0x224c (en: 'are all equal to') + - "≍": # 0x224d + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "等價於" # (en: 'equivalent to') + - "≎": # 0x224e + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "幾何等於" # (en: 'geometrically equivalent to') + - "≏": # 0x224f + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'the', google translation) + - T: "相差" # (en: 'difference between') + - "≐": [T: "近似於"] # 0x2250 (en: 'approaches the limit') + - "≑": # 0x2251 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "近似於" # (en: 'geometrically equal to') + - "≒": # 0x2252 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "近似於或像" # (en: 'approximately equal to or the image of') + - "≓": # 0x2253 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is the', google translation) + - T: "像或近似於" # (en: 'image of or approximately equal to') + - "≔": [T: "冒號等號"] # 0x2254 (en: 'colon equals') + - "≕": [T: "等號冒號"] # 0x2255 (en: 'equals colon') + - "≖": [T: "等於中有圓圈"] # 0x2256 (en: 'ring in equal to') + - "≗": # 0x2257 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "等於上方有圈圈" # (en: 'approximately equal to') + - "≘": [T: "對應"] # 0x2258 (en: 'corresponds to') + - "≙": [T: "估計"] # 0x2259 (en: 'estimates') + - "≚": # 0x225a + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "等角於" # (en: 'equiangular to') + - "≛": [T: "星等於"] # 0x225b (en: 'star equals') + - "≜": [T: "delta等於"] # 0x225c (en: 'delta equals') + - "≝": [T: "按定義為"] # 0x225d (en: 'is defined to be') + - "≞": # 0x225e + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "測量" # (en: 'measured by') + - "≟": [T: "問號等於"] # 0x225f (en: 'has an unknown relationship with') + - "≠": # 0x2260 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不等於" # (en: 'not equal to') + - "≡": # 0x2261 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "恆等於" # (en: 'identical to') + - "≢": # 0x2262 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不恆等於" # (en: 'not identical to') + - "≣": # 0x2263 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "完全等於" # (en: 'strictly equivalent to') + - "≦": [T: "小於等於"] # 0x2266 (en: 'less than over equal to') + - "≧": [T: "大於等於"] # 0x2267 (en: 'greater than over equal to') + - "≨": # 0x2268 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "小於但不等於" # (en: 'less than but not equal to') + - "≩": # 0x2269 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "大於但不等於" # (en: 'greater than but not equal to') + - "≪": # 0x226a + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "遠小於" # (en: 'much less than') + - "≫": # 0x226b + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "遠大於" # (en: 'much greater than') + - "≬": # 0x226c + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "介於" # (en: 'between') + - "≭": # 0x226d + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不等價於" # (en: 'not equivalent to') + - "≮": # 0x226e + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不小於" # (en: 'not less than') + - "≯": # 0x226f + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不大於" # (en: 'not greater than') + - "≰": # 0x2270 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不小於或等於" # (en: 'neither less than nor equal to') + - "≱": # 0x2271 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不大於或等於" # (en: 'neither greater than nor equal to') + - "≲": # 0x2272 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "小於或等價於" # (en: 'less than or equivalent to') + - "≳": # 0x2273 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "大於或等價於" # (en: 'greater than or equivalent to') + - "≴": # 0x2274 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不小於等價於" # (en: 'neither less than nor equivalent to') + - "≵": # 0x2275 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不大於等價於" # (en: 'neither greater than nor equivalent to') + - "≶": # 0x2276 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "小於或大於" # (en: 'less than or greater than') + - "≷": # 0x2277 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "大於或小於" # (en: 'greater than or less than') + - "≸": # 0x2278 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不小於不大於" # (en: 'neither less than nor greater than') + - "≹": # 0x2279 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不大於不小於" # (en: 'neither greater than nor less than') + - "≺": [T: "先於"] # 0x227a (en: 'precedes') + - "≻": [T: "後於"] # 0x227b (en: 'succeeds') + - "≼": [T: "先於或等於"] # 0x227c (en: 'precedes or is equal to') + - "≽": [T: "後於或等於"] # 0x227d (en: 'succeeds or is equal to') + - "≾": [T: "先於或等價於"] # 0x227e (en: 'precedes or is equivalent to') + - "≿": [T: "後於或等價於"] # 0x227f (en: 'succeeds or is equivalent to') + - "⊀": [T: "不先於"] # 0x2280 (en: 'does not precede') + - "⊁": [T: "不後於"] # 0x2281 (en: 'does not succeed') + - "⊂": # 0x2282 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is a', google translation) + - T: "包含於" # (en: 'subset of') + - "⊃": # 0x2283 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is a', google translation) + - T: "包含" # (en: 'superset of') + - "⊄": # 0x2284 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不包含於" # (en: 'not a subset of') + - "⊅": # 0x2285 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不包含" # (en: 'not a superset of') + - "⊆": # 0x2286 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is a', google translation) + - T: "包含於或等於" # (en: 'subset of or equal to') + - "⊇": # 0x2287 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is a', google translation) + - T: "包含或等於" # (en: 'superset of or equal to') + - "⊈": # 0x2288 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不包含於也不等於" # (en: 'neither a subset of nor equal to') + - "⊉": # 0x2289 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不包含也不等於" # (en: 'neither a superset of nor equal to') + - "⊊": [T: "真包含於"] # 0x228a (en: 'subset of with not equal to') + - "⊋": [T: "真包含"] # 0x228b (en: 'superset of with not equal to') + - "⊌": [T: "多重集"] # 0x228c (en: 'multiset') + - "⊍": [T: "多重集乘積"] # 0x228d (en: 'multiset multiplication') + - "⊎": [T: "多重集聯集"] # 0x228e (en: 'multiset union') + - "⊏": [t: "方形像"] # 0x228f (en: 'square image of') + - "⊐": [t: "方形原"] # 0x2290 (en: 'square original of') + - "⊑": [t: "方形像或等於"] # 0x2291 (en: 'square image of or equal to') + - "⊒": [t: "方形原或等於"] # 0x2292 (en: 'square original of or equal to') + - "⊓": [t: "方形帽"] # 0x2293 (en: 'square cap') + - "⊔": [t: "方形杯"] # 0x2294 (en: 'square cup') + - "⊕": [T: "圈內加號"] # 0x2295 (en: 'circled plus') + - "⊖": [T: "圈內減號"] # 0x2296 (en: 'circled minus') + - "⊗": [T: "圈內乘號"] # 0x2297 (en: 'circled times') + - "⊘": [T: "圈內正斜線"] # 0x2298 (en: 'circled slash') + - "⊙": [T: "圈內點"] # 0x2299 (en: 'circled dot operator') + - "⊚": [T: "圈內環"] # 0x229a (en: 'circled ring') + - "⊛": [T: "圈內星號"] # 0x229b (en: 'circled asterisk') + - "⊜": [T: "圈內等號"] # 0x229c (en: 'circled equals') + - "⊝": [T: "圈內長劃"] # 0x229d (en: 'circled dash') + - "⊞": [T: "方塊內加號"] # 0x229e (en: 'squared plus') + - "⊟": [T: "方塊內減號"] # 0x229f (en: 'squared minus') + - "⊠": [T: "方塊內乘號"] # 0x22a0 (en: 'squared times') + - "⊡": [T: "方塊內點"] # 0x22a1 (en: 'squared dot operator') + - "⊢": [t: "proves"] # 0x22a2 (en: 'proves') + - "⊣": [t: "does not yield"] # 0x22a3 (en: 'does not yield') + - "⊤": [t: "top"] # 0x22a4 (en: 'top') + - "⊥": # 0x22a5 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "垂直" # (en: 'bottom') + - "⊦": [t: "化簡"] # 0x22a6 (en: 'reduces to') + - "⊧": [t: "模型"] # 0x22a7 (en: 'models') + - "⊨": # 0x22a8 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "真" # (en: 'true') + - "⊩": [t: "強制"] # 0x22a9 (en: 'forces') + - "⊪": [t: "triple vertical bar right turnstile"] # 0x22aa (en: 'triple vertical bar right turnstile') + - "⊫": [t: "double vertical bar double right turnstile"] # 0x22ab (en: 'double vertical bar double right turnstile') + - "⊬": [t: "does not prove"] # 0x22ac (en: 'does not prove') + - "⊭": # 0x22ad + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不真" # (en: 'not true') + - "⊮": [t: "does not force"] # 0x22ae (en: 'does not force') + - "⊯": [t: "negated double vertical bar double right turnstile"] # 0x22af (en: 'negated double vertical bar double right turnstile') + - "⊰": [t: "先於下關係"] # 0x22b0 (en: 'precedes under relation') + - "⊱": [t: "超於下關係"] # 0x22b1 (en: 'succeeds under relation') + - "⊲": # 0x22b2 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "正規子群" # (en: 'a normal subgroup of') + - "⊳": [t: "contains as a normal subgroup"] # 0x22b3 (en: 'contains as a normal subgroup') + - "⊴": # 0x22b4 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "正規子群或等於" # (en: 'a normal subgroup of or equal to') + - "⊵": [t: "contains as a normal subgroup or equal to"] # 0x22b5 (en: 'contains as a normal subgroup or equal to') + - "⊶": # 0x22b6 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "原" # (en: 'the original of') + - "⊷": # 0x22b7 + - test: + if: "$Verbosity!='Terse'" + then: [t: ""] # (en: 'is', google translation) + - t: "像" # (en: 'an image of') + - "⊸": [t: "多重映射"] # 0x22b8 (en: 'multimap') + - "⊹": [t: "hermitian共軛矩陣"] # 0x22b9 (en: 'hermitian conjugate matrix') + - "⊺": [t: "intercalate"] # 0x22ba (en: 'intercalate') + - "⊻": [t: "xor"] # 0x22bb (en: 'xor') + - "⊼": [t: "nand"] # 0x22bc (en: 'nand') + - "⊽": [t: "nor"] # 0x22bd (en: 'nor') + - "⊾": [t: "帶有弧的直角"] # 0x22be (en: 'right angle with arc') + - "⊿": [t: "直角三角形"] # 0x22bf (en: 'right triangle') + - "⋀": [T: "邏輯且"] # 0x22c0 (en: 'logical and') + - "⋁": [T: "邏輯或"] # 0x22c1 (en: 'logical or') + - "⋂": [T: "交集"] # 0x22c2 (en: 'intersection') + - "⋃": [T: "聯集"] # 0x22c3 (en: 'union') + - "⋄": [T: "菱形運算符"] # 0x22c4 (en: 'diamond operator') + - "⋅": # 0x22c5 + - test: + if: "@data-chem-formula-op" + then: [T: "dot"] # (en: 'dot', google translation) + else: [T: "乘"] # (en: 'times') + + - "⋆": [T: "星號運算符"] # 0x22c6 (en: 'times') + - "⋇": [T: "乘除號"] # 0x22c7 (en: 'division times') + - "⋈": [t: "蝴蝶結"] # 0x22c8 (en: 'bowtie') + - "⋉": # 0x22c9 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - t: "the left normal factor semidirect product of" # (en: 'the left normal factor semidirect product of') + - "⋊": # 0x22ca + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - t: "the right normal factor semidirect product of" # (en: 'the right normal factor semidirect product of') + - "⋋": # 0x22cb + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - t: "the left semidirect product of" # (en: 'the left semidirect product of') + - "⋌": # 0x22cc + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - t: "the right semidirect product of" # (en: 'the right semidirect product of') + - "⋍": [t: "reversed tilde equals"] # 0x22cd (en: 'reversed tilde equals') + - "⋎": [t: "curly logical or"] # 0x22ce (en: 'curly logical or') + - "⋏": [t: "curly logical and"] # 0x22cf (en: 'curly logical and') + - "⋐": # 0x22d0 + - test: + if: "$Verbosity!='Terse'" + then: [t: ""] # (en: 'is', google translation) + - t: "a double subset of" # (en: 'a double subset of') + - "⋑": # 0x22d1 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - t: "a double superset of" # (en: 'a double superset of') + - "⋒": # 0x22d2 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'the', google translation) + - t: "double intersection of" # (en: 'double intersection of') + - "⋓": # 0x22d3 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'the', google translation) + - t: "double union of" # (en: 'double union of') + - "⋔": # 0x22d4 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'the', google translation) + - t: "proper intersection of" # (en: 'proper intersection of') + - "⋕": # 0x22d5 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "等於且平行" # (en: 'equal to and parallel to') + - "⋖": [T: "帶點小於"] # 0x22d6 (en: 'less than with dot') + - "⋗": [T: "帶點大於"] # 0x22d7 (en: 'greater than with dot') + - "⋘": # 0x22d8 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "非常小於" # (en: 'very much less than') + - "⋙": # 0x22d9 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "非常大於" # (en: 'very much greater than') + - "⋚": # 0x22da + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "小於等於或大於" # (en: 'less than equal to or greater than') + - "⋛": # 0x22db + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "大於等於或小於" # (en: 'greater than equal to or less than') + - "⋜": # 0x22dc + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "等於或小於" # (en: 'equal to or less than') + - "⋝": # 0x22dd + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "等於或大於" # (en: 'equal to or greater than') + - "⋞": # 0x22de + - test: + if: "$Verbosity!='Terse'" + then: [t: ""] # (en: 'is', google translation) + - T: "等於或先於" # (en: 'equal to or precedes') + - "⋟": # 0x22df + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "等於或後於" # (en: 'equal to or succeeds') + - "⋠": [T: "不先於或等於"] # 0x22e0 (en: 'does not precede nor is equal to') + - "⋡": [T: "不先於或後於"] # 0x22e1 (en: 'does not succeed nor is equal to') + - "⋢": [t: "不方像或等於"] # 0x22e2 (en: 'not square image of or equal to') + - "⋣": [t: "不方原或等於"] # 0x22e3 (en: 'not square original of or equal to') + - "⋤": [t: "方像不等於"] # 0x22e4 (en: 'square image of or not equal to') + - "⋥": [t: "方原或不等於"] # 0x22e5 (en: 'square original of or not equal to') + - "⋦": # 0x22e6 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "小於但不等價於" # (en: 'less than but not equivalent to') + - "⋧": # 0x22e7 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "大於但不等價於" # (en: 'greater than but not equivalent to') + - "⋨": [T: "先於但不等價於"] # 0x22e8 (en: 'precedes but is not equivalent to') + - "⋩": [T: "後於但不等價於"] # 0x22e9 (en: 'succeeds but is not equivalent to') + - "⋪": # 0x22ea + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - t: "不正規子群" # (en: 'not a normal subgroup of') + - "⋫": [t: "does not contain as a normal subgroup"] # 0x22eb (en: 'does not contain as a normal subgroup') + - "⋬": # 0x22ec + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - t: "不正規子群或等於" # (en: 'not a normal subgroup of nor is equal to') + - "⋭": [t: "does not contain as a normal subgroup nor is equal to"] # 0x22ed (en: 'does not contain as a normal subgroup nor is equal to') + - "⋮": [T: "豎線省略號"] # 0x22ee (en: 'vertical ellipsis') + - "⋯": [T: "水平省略號"] # 0x22ef (en: 'dot dot dot') + - "⋰": [t: "右上省略號"] # 0x22f0 (en: 'upwards diagonal ellipsis') + - "⋱": [t: "右下省略號"] # 0x22f1 (en: 'diagonal ellipsis') + - "⋲": [t: "有長水平劃的元素"] # 0x22f2 (en: 'element of with long horizontal stroke') + - "⋳": [t: "水平劃末尾有豎條的元素"] # 0x22f3 (en: 'element of with vertical bar at end of horizontal stroke') + - "⋴": [t: "水平劃末尾有豎條的元素"] # 0x22f4 (en: 'element of with vertical bar at end of horizontal stroke') + - "⋵": [t: "上方帶點的元素"] # 0x22f5 (en: 'element of with dot above') + - "⋶": [t: "上方帶線的元素"] # 0x22f6 (en: 'element of with overbar') + - "⋷": [t: "上方帶線的元素"] # 0x22f7 (en: 'element of with overbar') + - "⋸": [t: "有底線的元素"] # 0x22f8 (en: 'element of with underbar') + - "⋹": [t: "有两水平劃的元素"] # 0x22f9 (en: 'element of with two horizontal strokes') + - "⋺": [t: "包含有長水平劃"] # 0x22fa (en: 'contains with long horizontal stroke') + - "⋻": [t: "在水平劃尾有豎線包含"] # 0x22fb (en: 'contains with vertical bar at end of horizontal stroke') + - "⋼": [t: "在水平劃尾有豎線包含"] # 0x22fc (en: 'contains with vertical bar at end of horizontal stroke') + - "⋽": [t: "上方帶線包含"] # 0x22fd (en: 'contains with overbar') + - "⋾": [t: "上方帶線包含"] # 0x22fe (en: 'contains with overbar') + - "⋿": [t: "z notation bag membership"] # 0x22ff (en: 'z notation bag membership') + - "⌀": [T: "直徑"] # 0x2300 (en: 'diameter', google translation) + - "⌁": [T: "電箭頭"] # 0x2301 (en: 'electric arrow', google translation) + - "⌂": [T: "房子"] # 0x2302 (en: 'house', google translation) + - "⌃": [t: "向上箭頭"] # 0x2303 (en: 'up arrowhead', google translation) + - "⌄": [t: "向下箭頭"] # 0x2304 (en: 'down arrowhead', google translation) + - "⌅": [t: "投影"] # 0x2305 (en: 'projective', google translation) + - "⌆": [t: "透視"] # 0x2306 (en: 'perspective', google translation) + - "⌇": [t: "波浪線"] # 0x2307 (en: 'wavy line', google translation) + - "⌈": [t: "左天花板"] # 0x2308 (en: 'left ceiling', google translation) + - "⌉": [t: "右天花板"] # 0x2309 (en: 'right ceiling', google translation) + - "⌊": [t: "左地板"] # 0x230a (en: 'left floor', google translation) + - "⌋": [t: "右地板"] # 0x230b (en: 'right floor', google translation) + - "⌌": [t: "右下角外"] # 0x230c (en: 'bottom right crop', google translation) + - "⌍": [t: "左下角外"] # 0x230d (en: 'bottom left crop', google translation) + - "⌎": [t: "右上角外"] # 0x230e (en: 'top right crop', google translation) + - "⌏": [t: "左上角外"] # 0x230f (en: 'top left crop', google translation) + - "⌐": [t: "翻轉否定符"] # 0x2310 (en: 'reversed not sign', google translation) + - "⌑": [t: "方片"] # 0x2311 (en: 'square lozenge', google translation) + - "⌒": [T: "弧"] # 0x2312 (en: 'arc', google translation) + - "⌓": [t: "segment"] # 0x2313 (en: 'segment', google translation) + - "⌔": [T: "扇形"] # 0x2314 (en: 'sector', google translation) + - "⌕": [t: "電話錄音機"] # 0x2315 (en: 'telephone recorder', google translation) + - "⌖": [t: "位置指示十字線"] # 0x2316 (en: 'position indicator crosshairs', google translation) + - "⌗": [t: "viewdata square"] # 0x2317 (en: 'viewdata square', google translation) + - "⌘": [t: "興趣的跡象"] # 0x2318 (en: 'place of interest sign', google translation) + - "⌙": [t: "旋轉否定符"] # 0x2319 (en: 'turned not sign', google translation) + - "⌚": [T: "手錶"] # 0x231a (en: 'watch', google translation) + - "⌛": [T: "滴漏"] # 0x231b (en: 'hourglass', google translation) + - "⌜": [T: "左上角"] # 0x231c (en: 'top left corner', google translation) + - "⌝": [T: "右上角"] # 0x231d (en: 'top right corner', google translation) + - "⌞": [T: "左下角"] # 0x231e (en: 'bottom left corner', google translation) + - "⌟": [T: "右下角"] # 0x231f (en: 'bottom right corner', google translation) + - "⌠": [T: "積分上半部"] # 0x2320 (en: 'top half integral', google translation) + - "⌡": [T: "積分下半部"] # 0x2321 (en: 'bottom half integral', google translation) + - "⌢": [T: "弧"] # 0x2322 (en: 'frown') + - "⌣": [T: "微笑"] # 0x2323 (en: 'smile', google translation) + - "⌤": [t: "up arrowhead between two horizontal bars"] # 0x2324 (en: 'up arrowhead between two horizontal bars', google translation) + - "⌥": [t: "option key"] # 0x2325 (en: 'option key', google translation) + - "⌦": [T: "向右擦除"] # 0x2326 (en: 'erase to the right', google translation) + - "⌧": [T: "x 在矩形內"] # 0x2327 (en: 'x in a rectangle box', google translation) + - "⌨": [T: "鍵盤"] # 0x2328 (en: 'keyboard', google translation) + - "〈": [T: "左尖括"] # 0x2329 (en: 'left pointing angle bracket') + - "〉": [T: "右尖括"] # 0x232a (en: 'right pointing angle bracket') + - "⌫": [T: "在左擦除"] # 0x232b (en: 'erase to the left', google translation) + - "⌬": [t: "苯環"] # 0x232c (en: 'benzene ring', google translation) + - "⌭": [t: "cylindricity"] # 0x232d (en: 'cylindricity', google translation) + - "⌮": [t: "all around profile"] # 0x232e (en: 'all around profile', google translation) + - "⌯": [t: "對稱"] # 0x232f (en: 'symmetry', google translation) + - "⌰": [t: "total runout"] # 0x2330 (en: 'total runout', google translation) + - "⌱": [t: "dimension origin"] # 0x2331 (en: 'dimension origin', google translation) + - "⌲": [t: "conical taper"] # 0x2332 (en: 'conical taper', google translation) + - "⌳": [t: "slope"] # 0x2333 (en: 'slope', google translation) + - "⌴": [t: "counterbore"] # 0x2334 (en: 'counterbore', google translation) + - "⌵": [t: "counterink"] # 0x2335 (en: 'countersink', google translation) + - "⌶": [t: "apl i beam"] # 0x2336 + - "⌽": [t: "apl circle stile"] # 0x233d + - "⌿": [t: "apl slash bar"] # 0x233f + - "⍰": [T: "盒內問號"] # 0x2370 (en: 'unknown box', google translation) + - "⍼": [t: "right angle with down zigzag arrow"] # 0x237c + - "⎔": [t: "hexagon"] # 0x2394 + - "⎕": [T: "盒子"] # 0x2395 (en: 'box', google translation) + - "⎶": [t: "bottom square bracket over top square bracket"] # 0x23b6 + - "⏜": [T: "頂小括"] # 0x23dc + - "⏝": [T: "底小括"] # 0x23dd + - "⏞": [T: "頂大括"] # 0x23DE (en: 'top brace', google translation) + - "⏟": [T: "底大括"] # 0x23DF (en: 'bottom brace', google translation) + - "⏠": [t: "top tortoise shell bracket"] # 0x23e0 + - "⏡": [t: "bottom tortoise shell bracket"] # 0x23e1 + - "⏢": [t: "white trapezium"] # 0x23e2 + - "⏣": [t: "benzene right with circle"] # 0x23e3 + - "⏤": [t: "straightness"] # 0x23e4 + - "⏥": [t: "flatness"] # 0x23e5 + - "⏦": # 0x23e6 + - spell: "ac" + - t: "current" + - "⏧": [t: "electrical intersection"] # 0x23e7 + - "①-⑨": # 0x2460 - 0x2469 + - T: "圈圈" # (en: 'circled', google translation) + - SPELL: "translate('.', '①②③④⑤⑥⑦⑧⑨', '123456789')" + - "⑩": [T: "圈圈十"] # 0x2469 (en: 'circled ten', google translation) + - "⑪": [T: "圈圈十一"] # 0x246a (en: 'circled eleven', google translation) + - "⑫": [T: "圈圈十二"] # 0x246b (en: 'circled twelve', google translation) + - "⑬": [T: "圈圈十三"] # 0x246c (en: 'circled thirteen', google translation) + - "⑭": [T: "圈圈十四"] # 0x246d (en: 'circled fourteen', google translation) + - "⑮": [T: "圈圈十五"] # 0x246e (en: 'circled fifteen', google translation) + - "⑯": [T: "圈圈十六"] # 0x246f (en: 'circled sixteen', google translation) + - "⑰": [T: "圈圈十七"] # 0x2470 (en: 'circled seventeen', google translation) + - "⑱": [T: "圈圈18"] # 0x2471 (en: 'circled eighteen', google translation) + - "⑲": [T: "圈圈19"] # 0x2472 (en: 'circled nineteen', google translation) + - "⑳": [T: "圈圈20"] # 0x2473 (en: 'circled twenty', google translation) + - "⑴-⑼": # 0x2474 - 0x247d + - T: "括號圍繞" # (en: 'parenthesized', google translation) + - SPELL: "translate('.', '⑴⑵⑶⑷⑸⑹⑺⑻⑼', '123456789')" + - "⑽": [T: "括號圍繞10"] # 0x247d (en: 'parenthesized ten', google translation) + - "⑾": [T: "括號圍繞11"] # 0x247e (en: 'parenthesized eleven', google translation) + - "⑿": [T: "括號圍繞12"] # 0x247f (en: 'parenthesized twelve', google translation) + - "⒀": [T: "括號圍繞13"] # 0x2480 (en: 'parenthesized thirteen', google translation) + - "⒁": [T: "括號圍繞14"] # 0x2481 (en: 'parenthesized fourteen', google translation) + - "⒂": [T: "括號圍繞15"] # 0x2482 (en: 'parenthesized fifteen', google translation) + - "⒃": [T: "括號圍繞16"] # 0x2483 (en: 'parenthesized sixteen', google translation) + - "⒄": [T: "括號圍繞17"] # 0x2484 (en: 'parenthesized seventeen', google translation) + - "⒅": [T: "括號圍繞18"] # 0x2485 (en: 'parenthesized eighteen', google translation) + - "⒆": [T: "括號圍繞19"] # 0x2486 (en: 'parenthesized nineteen', google translation) + - "⒇": [T: "括號圍繞20"] # 0x2487 (en: 'parenthesized twenty', google translation) + - "⒈-⒐": # 0x2488 - 0x2491 + - SPELL: "translate('.', '⒈⒉⒊⒋⒌⒍⒎⒏⒐', '123456789')" + - T: "點" # (en: 'with period', google translation) + - "⒑": [T: "10點"] # 0x2491 (en: 'ten with period', google translation) + - "⒒": [T: "11點"] # 0x2492 (en: 'eleven with period', google translation) + - "⒓": [T: "12點"] # 0x2493 (en: 'twelve with period', google translation) + - "⒔": [T: "13點"] # 0x2494 (en: 'thirteen with period', google translation) + - "⒕": [T: "14點"] # 0x2495 (en: 'fourteen with period', google translation) + - "⒖": [T: "15點"] # 0x2496 (en: 'fifteen with period', google translation) + - "⒗": [T: "16點"] # 0x2497 (en: 'sixteen with period', google translation) + - "⒘": [T: "17點"] # 0x2498 (en: 'seventeen with period', google translation) + - "⒙": [T: "18點"] # 0x2499 (en: 'eighteen with period', google translation) + - "⒚": [T: "19點"] # 0x249a (en: 'nineteen with period', google translation) + - "⒛": [T: "20點"] # 0x249b (en: 'twenty with period', google translation) + - "⒜-⒵": # 0x249c - 0x24b5 + - T: "括號圍繞" # (en: 'parenthesized', google translation) + - SPELL: "translate('.', '⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵', 'abcdefghijklmnopqrstuvwxyz')" + + - "Ⓐ-Ⓩ": + - T: "圈圈" # (en: 'circled', google translation) + - SPELL: "translate('.', 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "🅐-🅩": # 0x1f150 - 0x1f169 + - T: "黑圈圈" # (en: 'black circled', google translation) + - SPELL: "translate('.', '🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "ⓐ-ⓩ": # 0x24d0 - 0x24e9 + - T: "圈圈" # (en: 'circled', google translation) + - SPELL: "translate('.', 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ', 'abcdefghijklmnopqrstuvwxyz')" + - "⓪": [T: "圓圈零"] # 0x24ea (en: 'circled zero', google translation) + - "⓫": [T: "黑圈圈11"] # 0x24eb (en: 'black circled eleven', google translation) + - "⓬": [T: "黑圈圈12"] # 0x24ec (en: 'black circled twelve', google translation) + - "⓭": [T: "黑圈圈13"] # 0x24ed (en: 'black circled thirteen', google translation) + - "⓮": [T: "黑圈圈14"] # 0x24ee (en: 'black circled fourteen', google translation) + - "⓯": [T: "黑圈圈15"] # 0x24ef (en: 'black circled fifteen', google translation) + - "⓰": [T: "黑圈圈16"] # 0x24f0 (en: 'black circled sixteen', google translation) + - "⓱": [T: "黑圈圈17"] # 0x24f1 (en: 'black circled seventeen', google translation) + - "⓲": [T: "黑圈圈18"] # 0x24f2 (en: 'black circled eighteen', google translation) + - "⓳": [T: "黑圈圈19"] # 0x24f3 (en: 'black circled nineteen', google translation) + - "⓴": [T: "黑圈圈20"] # 0x24f4 (en: 'black circled twenty', google translation) + - "⓵-⓽": # 0x24f5 - 0x24fe + - T: "雙圈" # (en: 'double circled', google translation) + - SPELL: "translate('.', '⓵⓶⓷⓸⓹⓺⓻⓼⓽', '123456789')" + - "⓾": [T: "雙圈10"] # 0x24fe (en: 'double circled ten', google translation) + - "⓿": [T: "黑圈圈0"] # 0x24ff (en: 'black circled zero', google translation) + - "■": [T: "黑方塊"] # 0x25a0 (en: 'black square', google translation) + - "□": [T: "方塊"] # 0x25a1 (en: 'white square', google translation) + - "▢": [T: "圓角方塊"] # 0x25a2 (en: 'white square with rounded corners', google translation) + - "▣": [t: "方塊內有黑方塊"] # 0x25a3 (en: 'white square containing small black square', google translation) + - "▤": [t: "方塊內佈滿水平線"] # 0x25a4 (en: 'square with horizontal fill', google translation) + - "▥": [t: "方塊內佈滿豎線"] # 0x25a5 (en: 'square with vertical fill', google translation) + - "▦": [t: "正方形內填充橫豎線"] # 0x25a6 (en: 'square with orthogonal crosshatch fill', google translation) + - "▧": [t: "正方形內填充反斜線"] # 0x25a7 (en: 'square with upper left to lower right fill', google translation) + - "▨": [t: "正方形內填充正斜線"] # 0x25a8 (en: 'square with upper right to lower left fill', google translation) + - "▩": [t: "正方形內填充正反斜線"] # 0x25a9 (en: 'square with diagonal crosshatch fill', google translation) + - "▪": [T: "黑小方塊"] # 0x25aa (en: 'black small square', google translation) + - "▫": [T: "小方塊"] # 0x25ab (en: 'white small square', google translation) + - "▬": [T: "黑矩形"] # 0x25ac (en: 'black rectangle', google translation) + - "▭": [T: "矩形"] # 0x25ad (en: 'white rectangle', google translation) + - "▮": [T: "黑豎矩形"] # 0x25ae (en: 'black vertical rectangle', google translation) + - "▯": [T: "豎矩形"] # 0x25af (en: 'white vertical rectangle', google translation) + - "▰": [T: "黑平行四邊形"] # 0x25b0 (en: 'black parallelogram', google translation) + - "▱": [T: "平行四邊形"] # 0x25b1 (en: 'white parallelogram', google translation) + - "▲": [T: "黑三角形"] # 0x25b2 (en: 'black up pointing triangle', google translation) + - "△": [T: "三角形"] # 0x25b3 (en: 'white up pointing triangle', google translation) + - "▴": [T: "黑小三角形"] # 0x25b4 (en: 'black up pointing small triangle', google translation) + - "▵": [T: "小三角形"] # 0x25b5 (en: 'white up pointing small triangle', google translation) + - "▶": [T: "黑向右三角形"] # 0x25b6 (en: 'black right pointing triangle', google translation) + - "▷": [T: "向右三角形"] # 0x25b7 (en: 'white right pointing triangle', google translation) + - "▸": [T: "黑向右小三角形"] # 0x25b8 (en: 'black right pointing small triangle', google translation) + - "▹": [T: "向右小三角形"] # 0x25b9 (en: 'white right pointing small triangle', google translation) + - "►": [t: "黑色指右指針"] # 0x25ba (en: 'black right pointing pointer', google translation) + - "▻": [t: "指右指針"] # 0x25bb (en: 'white right pointing pointer', google translation) + - "▼": [T: "黑倒三角形"] # 0x25bc (en: 'black down pointing triangle', google translation) + - "▽": [T: "倒三角形"] # 0x25bd (en: 'white down pointing triangle', google translation) + - "▾": [T: "黑倒小三角形"] # 0x25be (en: 'black down pointing small triangle', google translation) + - "▿": [T: "倒小三角形"] # 0x25bf (en: 'white down pointing small triangle', google translation) + - "◀": [T: "黑向左三角形"] # 0x25c0 (en: 'black left pointing triangle', google translation) + - "◁": [T: "向左三角形"] # 0x25c1 (en: 'white left pointing triangle', google translation) + - "◂": [T: "黑向左小三角形"] # 0x25c2 (en: 'black left pointing small triangle', google translation) + - "◃": [T: "向左小三角形"] # 0x25c3 (en: 'white left pointing small triangle', google translation) + - "◄": [t: "黑色指左指針"] # 0x25c4 (en: 'black left pointing pointer', google translation) + - "◅": [t: "指左指針"] # 0x25c5 (en: 'white left pointing pointer', google translation) + - "◆": [t: "黑鑽石"] # 0x25c6 (en: 'black diamond', google translation) + - "◇": [t: "鑽石"] # 0x25c7 (en: 'white diamond', google translation) + - "◈": [t: "鑽石含黑小鑽石"] # 0x25c8 (en: 'white diamond containing black small diamond', google translation) + - "◉": [t: "魚眼"] # 0x25c9 (en: 'fisheye', google translation) + - "◊": [t: "菱形"] # 0x25ca (en: 'lozenge', google translation) + - "○": [t: "圓圈"] # 0x25cb (en: 'white circle', google translation) + - "◌": [t: "虛線圓圈"] # 0x25cc (en: 'dotted circle', google translation) + - "◍": [t: "用豎線填充圓圈"] # 0x25cd (en: 'circle with vertical fill', google translation) + - "◎": [t: "靶心"] # 0x25ce (en: 'bullseye', google translation) + - "●": [t: "黑色圓圈"] # 0x25cf (en: 'black circle', google translation) + - "◐": [t: "圓內左半黑"] # 0x25d0 (en: 'circle with left half black', google translation) + - "◑": [t: "圓內右半黑"] # 0x25d1 (en: 'circle with right half black', google translation) + - "◒": [t: "圓內下半黑"] # 0x25d2 (en: 'circle with lower half black', google translation) + - "◓": [t: "圓內上半黑"] # 0x25d3 (en: 'circle with upper half black', google translation) + - "◔": [t: "圓內右上黑"] # 0x25d4 (en: 'circle with upper right quadrant black', google translation) + - "◕": [t: "圓內缺左上"] # 0x25d5 (en: 'circle with all but upper left quadrant black', google translation) + - "◖": [t: "左半圓黑"] # 0x25d6 (en: 'left half black circle', google translation) + - "◗": [t: "右半圓黑"] # 0x25d7 (en: 'right half black circle', google translation) + - "◘": [t: "標靶反白"] # 0x25d8 (en: 'inverse bullet', google translation) + - "◙": [t: "圓圈反白"] # 0x25d9 (en: 'inverse white circle', google translation) + - "◚": [t: "圓圈反白上半部"] # 0x25da (en: 'upper half inverse white circle', google translation) + - "◛": [t: "圓圈反白下半部"] # 0x25db (en: 'lower half inverse white circle', google translation) + - "◜": [t: "左上圓弧"] # 0x25dc (en: 'upper left quadrant circular arc', google translation) + - "◝": [t: "右上圓弧"] # 0x25dd (en: 'upper right quadrant circular arc', google translation) + - "◞": [t: "右下圓弧"] # 0x25de (en: 'lower right quadrant circular arc', google translation) + - "◟": [t: "左下圓弧"] # 0x25df (en: 'lower left quadrant circular arc', google translation) + - "◠": [t: "上半圓弧"] # 0x25e0 (en: 'upper half circle', google translation) + - "◡": [t: "下半圈弧"] # 0x25e1 (en: 'lower half circle', google translation) + - "◢": [t: "黑色右下三角形"] # 0x25e2 (en: 'black lower right triangle', google translation) + - "◣": [t: "黑色左下三角形"] # 0x25e3 (en: 'black lower left triangle', google translation) + - "◤": [t: "黑色左上三角形"] # 0x25e4 (en: 'black upper left triangle', google translation) + - "◥": [t: "黑色右上三角形"] # 0x25e5 (en: 'black upper right triangle', google translation) + - "◦": [t: "合成"] # 0x25e6 (en: 'composition', google translation) + - "◧": [t: "正方形內左半黑"] # 0x25e7 (en: 'square with left half black', google translation) + - "◨": [t: "正方形內右半黑"] # 0x25e8 (en: 'square with right half black', google translation) + - "◩": [t: "正方形內左上黑"] # 0x25e9 (en: 'square with upper left half black', google translation) + - "◪": [t: "正方形內右下黑"] # 0x25ea (en: 'square with lower right half black', google translation) + - "◫": [t: "正方形內一豎線"] # 0x25eb (en: 'white square with bisecting line', google translation) + - "◬": [t: "指上三角內有圓點"] # 0x25ec (en: 'white up pointing triangle with dot', google translation) + - "◭": [t: "指上三角形內左半黑"] # 0x25ed (en: 'up pointing triangle with left half black', google translation) + - "◮": [t: "指上三角形內右半黑"] # 0x25ee (en: 'up pointing triangle with right half black', google translation) + - "◯": [t: "大圓圈"] # 0x25ef (en: 'large circle', google translation) + - "◰": [t: "正方形左上象限"] # 0x25f0 (en: 'white square with upper left quadrant', google translation) + - "◱": [t: "正方形左下象限"] # 0x25f1 (en: 'white square with lower left quadrant', google translation) + - "◲": [t: "正方形右下象限"] # 0x25f2 (en: 'white square with lower right quadrant', google translation) + - "◳": [t: "正方形右上象限"] # 0x25f3 (en: 'white square with upper right quadrant', google translation) + - "◴": [t: "圓圈左上象限"] # 0x25f4 (en: 'white circle with upper left quadrant', google translation) + - "◵": [t: "圓圈左下象限"] # 0x25f5 (en: 'white circle with lower left quadrant', google translation) + - "◶": [t: "圓圈右下象限"] # 0x25f6 (en: 'white circle with lower right quadrant', google translation) + - "◷": [t: "圓圈右上象限"] # 0x25f7 (en: 'white circle with upper right quadrant', google translation) + - "◸": [t: "左上三角形"] # 0x25f8 (en: 'upper left triangle', google translation) + - "◹": [t: "右上三角形"] # 0x25f9 (en: 'upper right triangle', google translation) + - "◺": [t: "左下三角形"] # 0x25fa (en: 'lower left triangle', google translation) + - "◻": [t: "中方塊"] # 0x25fb (en: 'white medium square', google translation) + - "◼": [t: "黑中方塊"] # 0x25fc (en: 'black medium square', google translation) + - "◽": [t: "黑中小型方塊"] # 0x25fd (en: 'white medium small square', google translation) + - "◾": [t: "中小型方塊"] # 0x25fe (en: 'black medium small square', google translation) + - "◿": [t: "右下三角形"] # 0x25ff (en: 'lower right triangle', google translation) + - "★": [t: "black star"] # 0x2605 + - "☆": [t: "white star"] # 0x2606 + - "☉": [t: "sun"] # 0x2609 + - "☌": [t: "conjunction"] # 0x260c + - "☒": [t: "ballot box with x"] # 0x2612 + - "☽": [t: "waxing moon"] # 0x263d + - "☾": [t: "waning moon"] # 0x263e + - "☿": [t: "mercury"] # 0x263f + - "♀": [t: "female"] # 0x2640 + - "♁": [t: "earth"] # 0x2641 + - "♂": [t: "male"] # 0x2642 + - "♃": [t: "jupiter"] # 0x2643 + - "♄": [t: "saturn"] # 0x2644 + - "♅": [t: "uranus"] # 0x2645 + - "♆": [t: "neptune"] # 0x2646 + - "♇": [t: "pluto"] # 0x2647 + - "♈": [t: "aries"] # 0x2648 + - "♉": [t: "taurus"] # 0x2649 + - "♩": [t: "quarter note"] # 0x2669 + - "♭": [t: "flat"] # 0x266d + - "♮": [t: "natural"] # 0x266e + - "♯": [t: "sharp"] # 0x266f + - "♠": [t: "黑心"] # 0x2660 (en: 'black spade suit', google translation) + - "♡": [t: "紅心"] # 0x2661 (en: 'white heart suit', google translation) + - "♢": [t: "方鑽"] # 0x2662 (en: 'white diamond suit', google translation) + - "♣": [t: "黑梅花"] # 0x2663 (en: 'black club suit', google translation) + - "♤": [t: "黑心"] # 0x2664 (en: 'white spade suit', google translation) + - "♥": [t: "黑紅心"] # 0x2665 (en: 'black heart suit', google translation) + - "♦": [t: "黑方鑽"] # 0x2666 (en: 'black diamond suit', google translation) + - "♧": [t: "梅花"] # 0x2667 (en: 'white club suit', google translation) + - "⚀": [t: "die face 1"] # 0x2680 + - "⚁": [t: "die face 2"] # 0x2681 + - "⚂": [t: "die face 3"] # 0x2682 + - "⚃": [t: "die face 4"] # 0x2683 + - "⚄": [t: "die face 5"] # 0x2684 + - "⚅": [t: "die face 6"] # 0x2685 + - "⚆": [t: "white circle with dot right"] # 0x2686 + - "⚇": [t: "white circle wiht two dots"] # 0x2687 + - "⚈": [t: "black circle with dot right"] # 0x2688 + - "⚉": [t: "black circle wiht two dots"] # 0x2689 + - "⚪": [t: "medium white circle"] # 0x26aa + - "⚫": [t: "medium black circle"] # 0x26ab + - "⚬": [t: "medium small white circle"] # 0x26ac + - "⚲": [t: "neuter"] # 0x26b2 + - "✓": [t: "check mark"] # 0x2713 + - "✠": [t: "maltese cross"] # 0x2720 + - "✪": [t: "circled white star"] # 0x272a + - "✶": [t: "six pionted black star"] # 0x2736 + - "❨": [t: "中左括號"] # 0x2768 (en: 'medium left parentheses ornament', google translation) + - "❩": [t: "中右括號"] # 0x2769 (en: 'medium right parentheses ornament', google translation) + - "❪": [t: "中扁平左括"] # 0x276a (en: 'medium flattened left parentheses ornament', google translation) + - "❫": [t: "中扁平右括"] # 0x276b (en: 'medium flattened right parentheses ornament', google translation) + - "❬": [t: "中左角括"] # 0x276c (en: 'medium left-pointing angle bracket ornament', google translation) + - "❭": [t: "中右角括"] # 0x276d (en: 'medium right-pointing angle bracket ornament', google translation) + - "❮": [t: "重左角括"] # 0x276e (en: 'heavy left-pointing angle quotation mark ornament', google translation) + - "❯": [t: "重右角括"] # 0x276f (en: 'heavy right-pointing angle quotation mark ornament', google translation) + - "❰": [t: "粗左角括"] # 0x2770 (en: 'heavy left-pointing angle bracket ornament', google translation) + - "❱": [t: "粗右角括"] # 0x2771 (en: 'heavy right-pointing angle bracket ornament', google translation) + - "❲": [t: "輕左龜殼"] # 0x2772 (en: 'light left tortoise shell bracket ornament', google translation) + - "❳": [t: "輕右龜殼"] # 0x2773 (en: 'light right tortoise shell bracket ornament', google translation) + - "❴": [t: "中左大括"] # 0x2774 (en: 'medium left brace ornament', google translation) + - "❵": [t: "中右大括"] # 0x2775 (en: 'medium right brace ornament', google translation) + - "❶": [T: "黑圈圈1"] # 0x2776 (en: 'black circled one', google translation) + - "❷": [T: "黑圈圈2"] # 0x2777 (en: 'black circled two', google translation) + - "❸": [T: "黑圈圈3"] # 0x2778 (en: 'black circled three', google translation) + - "❹": [T: "黑圈圈4"] # 0x2779 (en: 'black circled four', google translation) + - "❺": [T: "黑圈圈5"] # 0x277a (en: 'black circled five', google translation) + - "❻": [T: "黑圈圈6"] # 0x277b (en: 'black circled six', google translation) + - "❼": [T: "黑圈圈7"] # 0x277c (en: 'black circled seven', google translation) + - "❽": [T: "黑圈圈8"] # 0x277d (en: 'black circled eight', google translation) + - "❾": [T: "黑圈圈9"] # 0x277e (en: 'black circled nine', google translation) + - "❿": [T: "黑圈圈10"] # 0x277f (en: 'black circled ten', google translation) + - "➀": [T: "圈圈1"] # 0x2780 (en: 'circled sans serif one', google translation) + - "➁": [T: "圈圈2"] # 0x2781 (en: 'circled sans serif two', google translation) + - "➂": [T: "圈圈3"] # 0x2782 (en: 'circled sans serif three', google translation) + - "➃": [T: "圈圈4"] # 0x2783 (en: 'circled sans serif four', google translation) + - "➄": [T: "圈圈5"] # 0x2784 (en: 'circled sans serif five', google translation) + - "➅": [T: "圈圈6"] # 0x2785 (en: 'circled sans serif six', google translation) + - "➆": [T: "圈圈7"] # 0x2786 (en: 'circled sans serif seven', google translation) + - "➇": [T: "圈圈8"] # 0x2787 (en: 'circled sans serif eight', google translation) + - "➈": [T: "圈圈9"] # 0x2788 (en: 'circled sans serif nine', google translation) + - "➉": [T: "圈圈10"] # 0x2789 (en: 'circled sans serif ten', google translation) + - "➊": [T: "黑圈圈1"] # 0x278a (en: 'black circled sans serif one', google translation) + - "➋": [T: "黑圈圈2"] # 0x278b (en: 'black circled sans serif two', google translation) + - "➌": [T: "黑圈圈3"] # 0x278c (en: 'black circled sans serif three', google translation) + - "➍": [T: "黑圈圈4"] # 0x278d (en: 'black circled sans serif four', google translation) + - "➎": [T: "黑圈圈5"] # 0x278e (en: 'black circled sans serif five', google translation) + - "➏": [T: "黑圈圈6"] # 0x278f (en: 'black circled sans serif six', google translation) + - "➐": [T: "黑圈圈7"] # 0x2790 (en: 'black circled sans serif seven', google translation) + - "➑": [T: "黑圈圈8"] # 0x2791 (en: 'black circled sans serif eight', google translation) + - "➒": [T: "黑圈圈9"] # 0x2792 (en: 'black circled sans serif nine', google translation) + - "➓": [T: "黑圈圈10"] # 0x2793 (en: 'black circled sans serif ten', google translation) + - "➔": [t: "厚重向右箭頭"] # 0x2794 (en: 'heavy wide-headed rightwards arrow', google translation) + - "➕": [t: "重加標誌"] # 0x2795 (en: 'heavy plus sign', google translation) + - "➖": [t: "重減標誌"] # 0x2796 (en: 'heavy minus sign', google translation) + - "➗": [t: "重分區標誌"] # 0x2797 (en: 'heavy division sign', google translation) + - "➘": [t: "重右下箭頭"] # 0x2798 (en: 'heavy south east arrow', google translation) + - "➙": [t: "重右箭頭"] # 0x2799 (en: 'heavy rightwards arrow', google translation) + - "➚": [t: "重右上箭頭"] # 0x279a (en: 'heavy north east arrow', google translation) + - "➛": [t: "簡略右箭頭"] # 0x279b (en: 'drafting point rightwards arrow', google translation) + - "➜": [t: "重圓右箭頭"] # 0x279c (en: 'heavy round-tipped rightwards arrow', google translation) + - "➝": [t: "三角形右箭頭"] # 0x279d (en: 'triangle-headed rightwards arrow', google translation) + - "➞": [t: "重三角形右箭頭"] # 0x279e (en: 'heavy triangle-headed rightwards arrow', google translation) + - "➟": [t: "虛線三角形右箭頭"] # 0x279f (en: 'dashed triangle-headed rightwards arrow', google translation) + - "➠": [t: "重虛線三角形右箭頭"] # 0x27a0 (en: 'heavy dashed triangle-headed rightwards arrow', google translation) + - "➡": [t: "黑右箭頭"] # 0x27a1 (en: 'black rightwards arrow', google translation) + - "➢": [t: "立體頂部白向右箭頭"] # 0x27a2 (en: 'three d top lighted rightwards arrow', google translation) + - "➣": [t: "立體底部白向右箭頭"] # 0x27a3 (en: 'three d bottom lighted rightwards arrow', google translation) + - "➤": [t: "立體向右箭頭"] # 0x27a4 (en: 'black rightwards arrowhead', google translation) + - "➥": [t: "重黑色向下向右彎曲箭頭"] # 0x27a5 (en: 'heavy black curved downwards and rightwards arrow', google translation) + - "➦": [t: "重黑色向上向右彎曲箭頭"] # 0x27a6 (en: 'heavy black curved upwards and rightwards arrow', google translation) + - "➧": [t: "短向右箭頭"] # 0x27a7 (en: 'squat black rightwards arrow', google translation) + - "➨": [t: "重黑色向右凹箭頭"] # 0x27a8 (en: 'heavy concave-pointed black rightwards arrow', google translation) + - "➩": [t: "右側陰影白右箭頭"] # 0x27a9 (en: 'right-shaded white rightwards arrow', google translation) + - "➪": [t: "左側陰影白右箭頭"] # 0x27aa (en: 'left-shaded white rightwards arrow', google translation) + - "➫": [t: "下側陰影白右箭頭"] # 0x27ab (en: 'back-tilted shadowed white rightwards arrow', google translation) + - "➬": [t: "上側陰影白右箭頭"] # 0x27ac (en: 'front-tilted shadowed white rightwards arrow', google translation) + - "➭": [t: "重右下陰影右箭頭"] # 0x27ad (en: 'heavy lower right-shadowed white rightwards arrow', google translation) + - "➮": [t: "重右上陰影右箭頭"] # 0x27ae (en: 'heavy upper right-shadowed white rightwards arrow', google translation) + - "➯": [t: "右下陰影右箭頭"] # 0x27af (en: 'notched lower right-shadowed white rightwards arrow', google translation) + - "➱": [t: "左上陰影右箭頭"] # 0x27b1 (en: 'notched upper right-shadowed white rightwards arrow', google translation) + - "➲": [t: "重白色向右箭頭"] # 0x27b2 (en: 'circled heavy white rightwards arrow', google translation) + - "➳": [t: "白羽毛向右箭頭"] # 0x27b3 (en: 'white-feathered rightwards arrow', google translation) + - "➴": [t: "黑羽毛右下箭頭"] # 0x27b4 (en: 'black-feathered south east arrow', google translation) + - "➵": [t: "黑羽毛右箭頭"] # 0x27b5 (en: 'black-feathered rightwards arrow', google translation) + - "➶": [t: "黑羽毛右上箭頭"] # 0x27b6 (en: 'black-feathered north east arrow', google translation) + - "➷": [t: "重黑羽有下箭頭"] # 0x27b7 (en: 'heavy black-feathered south east arrow', google translation) + - "➸": [t: "重黑羽右箭頭"] # 0x27b8 (en: 'heavy black-feathered rightwards arrow', google translation) + - "➹": [t: "重黑羽右上箭頭"] # 0x27b9 (en: 'heavy black-feathered north east arrow', google translation) + - "➺": [t: "teradrop寬邊向右箭頭"] # 0x27ba (en: 'teradrop-barbed rightwards arrow', google translation) + - "➻": [t: "重淚珠向右箭頭"] # 0x27bb (en: 'heavy teardrop-shanked rightwards arrow', google translation) + - "➼": [t: "楔形尾向右箭頭"] # 0x27bc (en: 'wedge-tailed rightwards arrow', google translation) + - "➽": [t: "重楔形尾右箭頭"] # 0x27bd (en: 'heavy wedge-tailed rightwards arrow', google translation) + - "➾": [t: "向右開箭頭"] # 0x27be (en: 'open-outlined rightwards arrow', google translation) + - "⟀": [t: "三維角"] # 0x27c0 (en: 'three dimensional angle', google translation) + - "⟁": [t: "三角形內小三角形"] # 0x27c1 (en: 'white triangle containing small white triangle', google translation) + - "⟂": # 0x27c2 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "垂直於" # (en: 'perpendicular to', google translation) + - "⟃": # 0x27c3 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "一個開子集" # (en: 'an open subset of', google translation) + - "⟄": # 0x27c4 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "一個開的超集" # (en: 'an open superset of', google translation) + - "⟅": [t: "左s形袋子分界符"] # 0x27c5 (en: 'left s-shaped bag delimiter', google translation) + - "⟆": [t: "右s形袋子分界符"] # 0x27c6 (en: 'right s-shaped bag delimiter', google translation) + - "⟇": [T: "或裡面圓點"] # 0x27c7 (en: 'or with dot inside', google translation) + - "⟈": [t: "reverse solidus preceding subset"] # 0x27c8 (en: 'reverse solidus preceding subset', google translation) + - "⟉": [t: "superset preceding solidus"] # 0x27c9 (en: 'superset preceding solidus', google translation) + - "⟊": [t: "豎線有水平劃記"] # 0x27ca (en: 'vertical bar with horizontal stroke', google translation) + - "⟋": [t: "數學上升對角線"] # 0x27cb (en: 'mathematical rising diagonal', google translation) + - "⟌": [T: "長除法"] # 0x27cc (en: 'long division', google translation) + - "⟍": [t: "數學下降對角線"] # 0x27cd (en: 'mathematical falling diagonal', google translation) + - "⟎": [T: "方塊邏輯和"] # 0x27ce (en: 'squared logical and', google translation) + - "⟏": [T: "方塊邏輯或"] # 0x27cf (en: 'squared logical or', google translation) + - "⟐": [t: "鑽內圓點"] # 0x27d0 (en: 'white diamond with centered dot', google translation) + - "⟑": [t: "且裡面點"] # 0x27d1 (en: 'and with dot', google translation) + - "⟒": [t: "向上開放的元素"] # 0x27d2 (en: 'element of opening upwards', google translation) + - "⟓": [t: "右下角帶有點"] # 0x27d3 (en: 'lower right corner with dot', google translation) + - "⟔": [t: "左上角帶有點"] # 0x27d4 (en: 'upper left corner with dot', google translation) + - "⟕": [t: "左外連接"] # 0x27d5 (en: 'left outer join', google translation) + - "⟖": [t: "右外連接"] # 0x27d6 (en: 'right outer join', google translation) + - "⟗": [t: "完整的外部連接"] # 0x27d7 (en: 'full outer join', google translation) + - "⟘": [t: "大型大頭釘"] # 0x27d8 (en: 'large up tack', google translation) + - "⟙": [t: "大型向下大頭釘"] # 0x27d9 (en: 'large down tack', google translation) + - "⟚": [t: "左右雙旋轉門"] # 0x27da (en: 'left and right double turnstile', google translation) + - "⟛": [t: "左右兩頭"] # 0x27db (en: 'left and right tack', google translation) + - "⟜": [t: "左圖"] # 0x27dc (en: 'left multimap', google translation) + - "⟝": [t: "長右釘"] # 0x27dd (en: 'long right tack', google translation) + - "⟞": [t: "長左釘"] # 0x27de (en: 'long left tack', google translation) + - "⟟": [t: "圓在釘上"] # 0x27df (en: 'up tack with circle above', google translation) + - "⟠": [t: "lozenge被水平線隔開"] # 0x27e0 (en: 'lozenge divided by horizontal rule', google translation) + - "⟡": [t: "凹面鑽石"] # 0x27e1 (en: 'white concave sided diamond', google translation) + - "⟢": [t: "凹面鑽石左滴答"] # 0x27e2 (en: 'white concave sided diamond with leftwards tick', google translation) + - "⟣": [t: "凹面鑽石右滴答"] # 0x27e3 (en: 'white concave sided diamond with rightwards tick', google translation) + - "⟤": [t: "正方形左有記號"] # 0x27e4 (en: 'white square with leftwards tick', google translation) + - "⟥": [t: "正方形右有記號"] # 0x27e5 (en: 'white square with rightwards tick', google translation) + - "⟦": [t: "左白中括"] # 0x27e6 (en: 'left white square bracket', google translation) + - "⟧": [t: "右白中括"] # 0x27e7 (en: 'right white square bracket', google translation) + - "⟨": [t: "左角括"] # 0x27e8 (en: 'left angle bracket', google translation) + - "⟩": [t: "右角括"] # 0x27e9 (en: 'right angle bracket', google translation) + - "⟪": [t: "左雙角括"] # 0x27ea (en: 'left double angle bracket', google translation) + - "⟫": [t: "右雙角括"] # 0x27eb (en: 'right double angle bracket', google translation) + - "⟬": [t: "左白龜殼"] # 0x27ec (en: 'left white tortoise shell bracket', google translation) + - "⟭": [t: "右白龜殼"] # 0x27ed (en: 'right white tortoise shell bracket', google translation) + - "⟮": [t: "左扁括號"] # 0x27ee (en: 'left flattened parenthesis', google translation) + - "⟯": [t: "右扁括號"] # 0x27ef (en: 'right flattened parenthesis', google translation) + - "⟰": [t: "向上四箭頭"] # 0x27f0 (en: 'upwards quadruple arrow', google translation) + - "⟱": [t: "向下四箭頭"] # 0x27f1 (en: 'downwards quadruple arrow', google translation) + - "⟲": [t: "逆時針方向的箭頭"] # 0x27f2 (en: 'anticlockwise gapped circle arrow', google translation) + - "⟳": [t: "順時針方向的箭頭"] # 0x27f3 (en: 'clockwise gapped circle arrow', google translation) + - "⟴": [t: "右箭頭帶有圓圈"] # 0x27f4 (en: 'right arrow with circled plus', google translation) + - "⟵": [t: "長左箭頭"] # 0x27f5 (en: 'long leftwards arrow', google translation) + - "⟶": [t: "長右箭頭"] # 0x27f6 (en: 'long rightwards arrow', google translation) + - "⟷": [t: "左右箭頭"] # 0x27f7 (en: 'long left right arrow', google translation) + - "⟸": [t: "長粗左箭頭"] # 0x27f8 (en: 'long leftwards double arrow') + - "⟹": [t: "長粗右箭頭"] # 0x27f9 (en: 'long rightwards double arrow') + - "⟺": [t: "左右粗箭頭"] # 0x27fa (en: 'long left right double arrow') + - "⟻": [t: "從吧台上遠的箭頭"] # 0x27fb (en: 'long leftwards arrow from bar', google translation) + - "⟼": [t: "起自豎線長右箭頭"] # 0x27fc (en: 'long rightwards arrow from bar', google translation) + - "⟽": [t: "起自豎線長粗左箭頭"] # 0x27fd (en: 'long leftwards double arrow from bar', google translation) + - "⟾": [t: "起自豎線長粗右箭頭"] # 0x27fe (en: 'long rightwards double arrow from bar', google translation) + - "⟿": [t: "長向右花箭頭"] # 0x27ff (en: 'long rightwards squiggle arrow', google translation) + - "⤀": [t: "向右帶有豎線的雙箭頭"] # 0x2900 (en: 'rightwards two headed arrow with vertical stroke', google translation) + - "⤁": [t: "向右帶有雙豎線的雙箭頭"] # 0x2901 (en: 'rightwards two headed arrow with double vertical stroke', google translation) + - "⤂": [t: "向左帶有豎線的粗箭頭"] # 0x2902 (en: 'leftwards double arrow with vertical stroke', google translation) + - "⤃": [t: "向右帶有豎線的粗箭頭"] # 0x2903 (en: 'rightwards double arrow with vertical stroke', google translation) + - "⤄": [t: "左右帶有豎線的粗箭頭"] # 0x2904 (en: 'left right double arrow with vertical stroke', google translation) + - "⤅": [t: "起自豎線向右雙箭頭"] # 0x2905 (en: 'rightwards two headed arrow from bar', google translation) + - "⤆": [t: "起自豎線向左粗箭頭"] # 0x2906 (en: 'leftwards double arrow from bar', google translation) + - "⤇": [t: "起自豎線向右粗箭頭"] # 0x2907 (en: 'rightwards double arrow from bar', google translation) + - "⤈": [t: "向下帶有橫線的箭頭"] # 0x2908 (en: 'downwards arrow with horizontal stroke', google translation) + - "⤉": [t: "向上帶有橫線的箭頭"] # 0x2909 (en: 'upwards arrow with horizontal stroke', google translation) + - "⤊": [t: "向上三重箭頭"] # 0x290a (en: 'upwards triple arrow', google translation) + - "⤋": [t: "向下三重箭頭"] # 0x290b (en: 'downwards triple arrow', google translation) + - "⤌": [t: "左向兩節虛線箭頭"] # 0x290c (en: 'leftwards double dash arrow', google translation) + - "⤍": [t: "右向兩節線箭頭"] # 0x290d (en: 'rightwards double dash arrow', google translation) + - "⤎": [t: "左向三節虛線箭頭"] # 0x290e (en: 'leftwards triple dash arrow', google translation) + - "⤏": [t: "左向兩節虛線箭頭"] # 0x290f (en: 'rightwards triple dash arrow', google translation) + - "⤐": [t: "右向兩節虛線雙頭箭頭"] # 0x2910 (en: 'rightwards two headed triple dash arrow', google translation) + - "⤑": [t: "向右虛線箭頭"] # 0x2911 (en: 'rightwards arrow with dotted stem', google translation) + - "⤒": [t: "向上箭頭到橫線"] # 0x2912 (en: 'upwards arrow to bar', google translation) + - "⤓": [t: "向下箭頭到橫線"] # 0x2913 (en: 'downwards arrow to bar', google translation) + - "⤔": [t: "向右箭頭,帶有尾部和豎線"] # 0x2914 (en: 'rightwards arrow with tail and vertical stroke', google translation) + - "⤕": [t: "向右箭頭,帶有尾巴和雙豎線"] # 0x2915 (en: 'rightwards arrow with tail and double vertical stroke', google translation) + - "⤖": [t: "向右帶尾巴的雙頭箭頭"] # 0x2916 (en: 'rightwards two headed arrow with tail', google translation) + - "⤗": [t: "向右有尾帶有豎線的雙頭箭頭"] # 0x2917 (en: 'rightwards two headed arrow with tail with vertical stroke', google translation) + - "⤘": [t: "向右有尾帶有雙豎線的雙頭箭頭"] # 0x2918 (en: 'rightwards two headed arrow with tail with double vertical stroke', google translation) + - "⤙": [t: "左箭頭尾巴"] # 0x2919 (en: 'leftwards arrow tail', google translation) + - "⤚": [t: "向右箭頭尾巴"] # 0x291a (en: 'rightwards arrow tail', google translation) + - "⤛": [t: "左箭頭尾巴"] # 0x291b (en: 'leftwards double arrow tail', google translation) + - "⤜": [t: "右雙箭頭尾巴"] # 0x291c (en: 'rightwards double arrow tail', google translation) + - "⤝": [t: "向左箭頭填充鑽石"] # 0x291d (en: 'leftwards arrow to filled diamond', google translation) + - "⤞": [t: "向右箭頭填充鑽石"] # 0x291e (en: 'rightwards arrow to filled diamond', google translation) + - "⤟": [t: "從酒吧到裝滿鑽石的左箭頭"] # 0x291f (en: 'leftwards arrow from bar to filled diamond', google translation) + - "⤠": [t: "從酒吧到裝滿的鑽石的向右箭頭"] # 0x2920 (en: 'rightwards arrow from bar to filled diamond', google translation) + - "⤡": [t: "西北和東南箭頭"] # 0x2921 (en: 'north west and south east arrow', google translation) + - "⤢": [t: "東北和西南箭頭"] # 0x2922 (en: 'north east and south west arrow', google translation) + - "⤣": [t: "西北箭頭與鉤子"] # 0x2923 (en: 'north west arrow with hook', google translation) + - "⤤": [t: "東北箭頭與鉤子"] # 0x2924 (en: 'north east arrow with hook', google translation) + - "⤥": [t: "東南箭頭與鉤子"] # 0x2925 (en: 'south east arrow with hook', google translation) + - "⤦": [t: "西南箭頭與鉤子"] # 0x2926 (en: 'south west arrow with hook', google translation) + - "⤧": [t: "西北箭頭和東北箭頭"] # 0x2927 (en: 'north west arrow and north east arrow', google translation) + - "⤨": [t: "東北箭頭和東南箭頭"] # 0x2928 (en: 'north east arrow and south east arrow', google translation) + - "⤩": [t: "東南箭頭和西南箭頭"] # 0x2929 (en: 'south east arrow and south west arrow', google translation) + - "⤪": [t: "西南箭頭和西北箭頭"] # 0x292a (en: 'south west arrow and north west arrow', google translation) + - "⤫": [t: "對角線越過對角線的上升"] # 0x292b (en: 'rising diagonal crossing falling diagonal', google translation) + - "⤬": [t: "對角線降落的對角線上升"] # 0x292c (en: 'falling diagonal crossing rising diagonal', google translation) + - "⤭": [t: "東南箭頭越過東北箭頭"] # 0x292d (en: 'south east arrow crossing north east arrow', google translation) + - "⤮": [t: "東北箭頭穿過東南箭頭"] # 0x292e (en: 'north east arrow crossing south east arrow', google translation) + - "⤯": [t: "落下對角線穿過東北箭頭"] # 0x292f (en: 'falling diagonal crossing north east arrow', google translation) + - "⤰": [t: "上升的對角線穿越東南箭頭"] # 0x2930 (en: 'rising diagonal crossing south east arrow', google translation) + - "⤱": [t: "東北箭頭越過西北箭頭"] # 0x2931 (en: 'north east arrow crossing north west arrow', google translation) + - "⤲": [t: "西北箭頭穿過東北箭頭"] # 0x2932 (en: 'north west arrow crossing north east arrow', google translation) + - "⤳": [t: "箭頭向右指向箭頭"] # 0x2933 (en: 'wave arrow pointing directly right', google translation) + - "⤴": [t: "箭頭向右指向,然後向上彎曲"] # 0x2934 (en: 'arrow pointing rightwards then curving upwards', google translation) + - "⤵": [t: "箭頭向右指向,然後向下彎曲"] # 0x2935 (en: 'arrow pointing rightwards then curving downwards', google translation) + - "⤶": [t: "箭頭向下指向,然後向左彎曲"] # 0x2936 (en: 'arrow pointing downwards then curving leftwards', google translation) + - "⤷": [t: "箭頭向下指向,然後向右彎曲"] # 0x2937 (en: 'arrow pointing downwards then curving rightwards', google translation) + - "⤸": [t: "右側弧順時針箭頭"] # 0x2938 (en: 'right side arc clockwise arrow', google translation) + - "⤹": [t: "左側弧逆時針箭頭"] # 0x2939 (en: 'left side arc anticlockwise arrow', google translation) + - "⤺": [t: "頂弧逆時針箭頭"] # 0x293a (en: 'top arc anticlockwise arrow', google translation) + - "⤻": [t: "底部弧逆時針箭頭"] # 0x293b (en: 'bottom arc anticlockwise arrow', google translation) + - "⤼": [t: "帶有減去的頂弧順時針箭頭"] # 0x293c (en: 'top arc clockwise arrow with minus', google translation) + - "⤽": [t: "帶有加號的頂弧逆時針箭頭"] # 0x293d (en: 'top arc anticlockwise arrow with plus', google translation) + - "⤾": [t: "右下半圓形順時針箭頭"] # 0x293e (en: 'lower right semicircular clockwise arrow', google translation) + - "⤿": [t: "左下半圓形逆時針箭頭"] # 0x293f (en: 'lower left semicircular anticlockwise arrow', google translation) + - "⥀": [t: "逆時針封閉圓箭頭"] # 0x2940 (en: 'anticlockwise closed circle arrow', google translation) + - "⥁": [t: "順時針關閉圓圈箭頭"] # 0x2941 (en: 'clockwise closed circle arrow', google translation) + - "⥂": [t: "向右箭頭向左箭頭上方"] # 0x2942 (en: 'rightwards arrow above short leftwards arrow', google translation) + - "⥃": [t: "向左箭頭向右箭頭上方"] # 0x2943 (en: 'leftwards arrow above short rightwards arrow', google translation) + - "⥄": [t: "向左箭頭上方的短箭頭箭頭"] # 0x2944 (en: 'short rightwards arrow above leftwards arrow', google translation) + - "⥅": [t: "向右箭頭,加上下方"] # 0x2945 (en: 'rightwards arrow with plus below', google translation) + - "⥆": [t: "左下方的左箭頭"] # 0x2946 (en: 'leftwards arrow with plus below', google translation) + - "⥇": [t: "向右箭頭通過x"] # 0x2947 (en: 'rightwards arrow through x', google translation) + - "⥈": [t: "左右箭頭穿過圓圈"] # 0x2948 (en: 'left right arrow through circle', google translation) + - "⥉": [t: "從圓圈上向上兩個頭箭頭"] # 0x2949 (en: 'upwards two headed arrow from circle', google translation) + - "⥊": [t: "留下倒鉤向右倒鉤,倒在魚叉下"] # 0x294a (en: 'left barb up right barb down harpoon', google translation) + - "⥋": [t: "留下倒鉤向右倒鉤在魚叉上"] # 0x294b (en: 'left barb down right barb up harpoon', google translation) + - "⥌": [t: "倒在倒鉤的倒鉤左難題"] # 0x294c (en: 'up barb right down barb left harpoon', google translation) + - "⥍": [t: "向上倒鉤向下倒鉤右魚叉"] # 0x294d (en: 'up barb left down barb right harpoon', google translation) + - "⥎": [t: "留下倒鉤向右倒鉤在魚叉上"] # 0x294e (en: 'left barb up right barb up harpoon', google translation) + - "⥏": [t: "倒在倒鉤的倒鉤右魚叉"] # 0x294f (en: 'up barb right down barb right harpoon', google translation) + - "⥐": [t: "將倒鉤向右倒鉤倒在魚叉下"] # 0x2950 (en: 'left barb down right barb down harpoon', google translation) + - "⥑": [t: "倒在倒鉤下倒鉤左魚叉"] # 0x2951 (en: 'up barb left down barb left harpoon', google translation) + - "⥒": [t: "左腳魚叉,倒鉤到酒吧"] # 0x2952 (en: 'leftwards harpoon with barb up to bar', google translation) + - "⥓": [t: "右邊的魚叉,倒鉤到酒吧"] # 0x2953 (en: 'rightwards harpoon with barb up to bar', google translation) + - "⥔": [t: "用倒鉤向上的魚叉"] # 0x2954 (en: 'upwards harpoon with barb right to bar', google translation) + - "⥕": [t: "用倒鉤向下的魚叉,右bar"] # 0x2955 (en: 'downwards harpoon with barb right to bar', google translation) + - "⥖": [t: "剩下的魚叉,倒鉤到酒吧"] # 0x2956 (en: 'leftwards harpoon with barb down to bar', google translation) + - "⥗": [t: "右邊的魚叉,倒鉤到酒吧"] # 0x2957 (en: 'rightwards harpoon with barb down to bar', google translation) + - "⥘": [t: "向上帶倒鉤到酒吧的魚叉"] # 0x2958 (en: 'upwards harpoon with barb left to bar', google translation) + - "⥙": [t: "向下的魚叉,用倒鉤左至酒吧"] # 0x2959 (en: 'downwards harpoon with barb left to bar', google translation) + - "⥚": [t: "左邊的魚叉,從酒吧上倒鉤"] # 0x295a (en: 'leftwards harpoon with barb up from bar', google translation) + - "⥛": [t: "右邊的魚叉,從酒吧里倒鉤"] # 0x295b (en: 'rightwards harpoon with barb up from bar', google translation) + - "⥜": [t: "從酒吧到倒鉤向上帶倒鉤"] # 0x295c (en: 'upwards harpoon with barb right from bar', google translation) + - "⥝": [t: "從酒吧向下帶倒鉤的魚叉"] # 0x295d (en: 'downwards harpoon with barb right from bar', google translation) + - "⥞": [t: "左下角是小酒吧的倒鉤"] # 0x295e (en: 'leftwards harpoon with barb down from bar', google translation) + - "⥟": [t: "右邊的魚叉從酒吧倒下"] # 0x295f (en: 'rightwards harpoon with barb down from bar', google translation) + - "⥠": [t: "向上倒在魚下,從酒吧剩下"] # 0x2960 (en: 'upwards harpoon with barb left from bar', google translation) + - "⥡": [t: "向下的魚叉,倒在酒吧里"] # 0x2961 (en: 'downwards harpoon with barb left from bar', google translation) + - "⥢": [t: "左上的魚叉,倒在左上的魚叉上方,倒鉤倒下"] # 0x2962 (en: 'leftwards harpoon with barb up above leftwards harpoon with barb down', google translation) + - "⥣": [t: "向上倒著倒鉤的魚叉,右邊的魚叉右向上"] # 0x2963 (en: 'upwards harpoon with barb left beside upwards harpoon with barb right', google translation) + - "⥤": [t: "右邊的魚叉,在倒在倒鉤的情況下,倒鉤倒下"] # 0x2964 (en: 'rightwards harpoon with barb up above rightwards harpoon with barb down', google translation) + - "⥥": [t: "向下的魚叉,倒鉤旁邊留在倒鉤右下角"] # 0x2965 (en: 'downwards harpoon with barb left beside downwards harpoon with barb right', google translation) + - "⥦": [t: "左邊的魚叉,倒在右上方的魚叉上,倒鉤"] # 0x2966 (en: 'leftwards harpoon with barb up above rightwards harpoon with barb up', google translation) + - "⥧": [t: "左上角的魚叉,在右上方的魚叉下方,倒鉤倒下"] # 0x2967 (en: 'leftwards harpoon with barb down above rightwards harpoon with barb down', google translation) + - "⥨": [t: "向右的魚叉,倒在左上的魚叉上方,倒鉤"] # 0x2968 (en: 'rightwards harpoon with barb up above leftwards harpoon with barb up', google translation) + - "⥩": [t: "右邊的魚叉,倒在左上的魚叉上方,倒鉤倒下"] # 0x2969 (en: 'rightwards harpoon with barb down above leftwards harpoon with barb down', google translation) + - "⥪": [t: "左上角的魚叉上方長長的破折號"] # 0x296a (en: 'leftwards harpoon with barb up above long dash', google translation) + - "⥫": [t: "左腳魚叉下方的小折磨到長star"] # 0x296b (en: 'leftwards harpoon with barb down below long dash', google translation) + - "⥬": [t: "右邊的魚叉,倒在長stash上方"] # 0x296c (en: 'rightwards harpoon with barb up above long dash', google translation) + - "⥭": [t: "右翼魚叉,倒鉤在長儀表板下方"] # 0x296d (en: 'rightwards harpoon with barb down below long dash', google translation) + - "⥮": [t: "向上倒著倒鉤的魚叉,旁邊的魚叉向下倒鉤"] # 0x296e (en: 'upwards harpoon with barb left beside downwards harpoon with barb right', google translation) + - "⥯": [t: "向下的魚叉,倒鉤旁邊是倒鉤右向上的魚叉"] # 0x296f (en: 'downwards harpoon with barb left beside upwards harpoon with barb right', google translation) + - "⥰": [t: "右雙箭頭,頭有圓頭"] # 0x2970 (en: 'right double arrow with rounded head', google translation) + - "⥱": [t: "等於向右箭頭"] # 0x2971 (en: 'equals above rightwards arrow', google translation) + - "⥲": [t: "右上方箭頭上方的tilde操作員"] # 0x2972 (en: 'tilde operator above rightwards arrow', google translation) + - "⥳": [t: "tilde操作員上方的左箭頭"] # 0x2973 (en: 'leftwards arrow above tilde operator', google translation) + - "⥴": [t: "tilde操作員上方的右箭頭"] # 0x2974 (en: 'rightwards arrow above tilde operator', google translation) + - "⥵": [t: "向右箭頭幾乎等於"] # 0x2975 (en: 'rightwards arrow above almost equal to', google translation) + - "⥶": [t: "小於左上方箭頭"] # 0x2976 (en: 'less than above leftwards arrow', google translation) + - "⥷": [t: "左箭頭不到"] # 0x2977 (en: 'leftwards arrow through less than', google translation) + - "⥸": [t: "大於向右箭頭上方"] # 0x2978 (en: 'greater than above rightwards arrow', google translation) + - "⥹": [t: "向右箭頭上方的子集"] # 0x2979 (en: 'subset above rightwards arrow', google translation) + - "⥺": [t: "向左箭頭穿過子集"] # 0x297a (en: 'leftwards arrow through subset', google translation) + - "⥻": [t: "在左上方箭頭上方超集"] # 0x297b (en: 'superset above leftwards arrow', google translation) + - "⥼": [t: "左魚尾巴"] # 0x297c (en: 'left fish tail', google translation) + - "⥽": [t: "右魚尾"] # 0x297d (en: 'right fish tail', google translation) + - "⥾": [t: "向上魚尾"] # 0x297e (en: 'up fish tail', google translation) + - "⥿": [t: "下來的魚尾"] # 0x297f (en: 'down fish tail', google translation) + - "⦀": [t: "三重垂直桿定界符"] # 0x2980 (en: 'triple vertical bar delimiter', google translation) + - "⦁": [t: "z符號點"] # 0x2981 (en: 'z notation spot', google translation) + - "⦂": [t: "z符號類型結腸"] # 0x2982 (en: 'z notation type colon', google translation) + - "⦃": [t: "留下白色支撐"] # 0x2983 (en: 'left white brace', google translation) + - "⦄": [t: "正確的白色支撐"] # 0x2984 (en: 'right white brace', google translation) + - "⦅": [t: "左白括號"] # 0x2985 (en: 'left white parenthesis', google translation) + - "⦆": [t: "右白色括號"] # 0x2986 (en: 'right white parenthesis', google translation) + - "⦇": [t: "z符號左圖像括號"] # 0x2987 (en: 'z notation left image bracket', google translation) + - "⦈": [t: "z符號正確的圖像支架"] # 0x2988 (en: 'z notation right image bracket', google translation) + - "⦉": [t: "z符號左裝括號"] # 0x2989 (en: 'z notation left binding bracket', google translation) + - "⦊": [t: "z符號正確的綁定括號"] # 0x298a (en: 'z notation right binding bracket', google translation) + - "⦋": [t: "左方方括號帶有下桿"] # 0x298b (en: 'left square bracket with underbar', google translation) + - "⦌": [t: "右方式托架帶有underbar"] # 0x298c (en: 'right square bracket with underbar', google translation) + - "⦍": [t: "左側方括號在頂角"] # 0x298d (en: 'left square bracket with tick in top corner', google translation) + - "⦎": [t: "右平方支架,底角有滴答"] # 0x298e (en: 'right square bracket with tick in bottom corner', google translation) + - "⦏": [t: "左方方括號在底角"] # 0x298f (en: 'left square bracket with tick in bottom corner', google translation) + - "⦐": [t: "右方方括號在頂角"] # 0x2990 (en: 'right square bracket with tick in top corner', google translation) + - "⦑": [t: "左角支架帶有點"] # 0x2991 (en: 'left angle bracket with dot', google translation) + - "⦒": [t: "與點的直角支架"] # 0x2992 (en: 'right angle bracket with dot', google translation) + - "⦓": [t: "左弧少於支架"] # 0x2993 (en: 'left arc less than bracket', google translation) + - "⦔": [t: "右弧大於支架"] # 0x2994 (en: 'right arc greater than bracket', google translation) + - "⦕": [t: "雙左弧大於支架"] # 0x2995 (en: 'double left arc greater than bracket', google translation) + - "⦖": [t: "雙右弧線小於支架"] # 0x2996 (en: 'double right arc less than bracket', google translation) + - "⦗": [t: "剩下的黑色烏龜殼支架"] # 0x2997 (en: 'left black tortoise shell bracket', google translation) + - "⦘": [t: "右黑烏龜殼支架"] # 0x2998 (en: 'right black tortoise shell bracket', google translation) + - "⦙": [t: "虛線圍欄"] # 0x2999 (en: 'dotted fence', google translation) + - "⦚": [t: "垂直曲折線"] # 0x299a (en: 'vertical zigzag line', google translation) + - "⦛": [t: "測得的角度左開口"] # 0x299b (en: 'measured angle opening left', google translation) + - "⦜": [t: "正方形的直角變體"] # 0x299c (en: 'right angle variant with square', google translation) + - "⦝": [t: "用dot測量直角"] # 0x299d (en: 'measured right angle with dot', google translation) + - "⦞": [t: "內部的角度"] # 0x299e (en: 'angle with s inside', google translation) + - "⦟": [t: "銳角"] # 0x299f (en: 'acute angle', google translation) + - "⦠": [t: "球形角度左開"] # 0x29a0 (en: 'spherical angle opening left', google translation) + - "⦡": [t: "球形角度開放"] # 0x29a1 (en: 'spherical angle opening up', google translation) + - "⦢": [t: "轉角"] # 0x29a2 (en: 'turned angle', google translation) + - "⦣": [t: "反向角度"] # 0x29a3 (en: 'reversed angle', google translation) + - "⦤": [t: "與underbar的角度"] # 0x29a4 (en: 'angle with underbar', google translation) + - "⦥": [t: "用underbar逆轉角度"] # 0x29a5 (en: 'reversed angle with underbar', google translation) + - "⦦": [t: "傾斜角度開頭"] # 0x29a6 (en: 'oblique angle opening up', google translation) + - "⦧": [t: "傾斜角度向下開放"] # 0x29a7 (en: 'oblique angle opening down', google translation) + - "⦨": [t: "測量的角度以敞開的臂結尾,指向右側並向右指向"] # 0x29a8 (en: 'measured angle with open arm ending in arrow pointing up and to the right', google translation) + - "⦩": [t: "用敞開的臂末端測量角度,指向箭頭,向左指向"] # 0x29a9 (en: 'measured angle with open arm ending in arrow pointing up and to the left', google translation) + - "⦪": [t: "測量的角度在箭頭向下和向右指向箭頭的距離末端"] # 0x29aa (en: 'measured angle with open arm ending in arrow pointing down and to the right', google translation) + - "⦫": [t: "測量的角度在箭頭向下和向左的箭頭以開放臂結尾"] # 0x29ab (en: 'measured angle with open arm ending in arrow pointing down and to the left', google translation) + - "⦬": [t: "測量的角度以右臂向右指向的箭頭以開放臂結尾"] # 0x29ac (en: 'measured angle with open arm ending in arrow pointing right and up', google translation) + - "⦭": [t: "測量的角度以敞開的臂結尾,左右指向箭頭"] # 0x29ad (en: 'measured angle with open arm ending in arrow pointing left and up', google translation) + - "⦮": [t: "右臂以右側和向下的箭頭結尾,測得的角度"] # 0x29ae (en: 'measured angle with open arm ending in arrow pointing right and down', google translation) + - "⦯": [t: "測量的角度以敞開的臂結尾,左右指向箭頭"] # 0x29af (en: 'measured angle with open arm ending in arrow pointing left and down', google translation) + - "⦰": [t: "反向空集"] # 0x29b0 (en: 'reversed empty set', google translation) + - "⦱": [t: "用鋼製空心設置"] # 0x29b1 (en: 'empty set with overbar', google translation) + - "⦲": [t: "空設置,上面有小圓圈"] # 0x29b2 (en: 'empty set with small circle above', google translation) + - "⦳": [t: "在上方帶有右箭頭的空設置"] # 0x29b3 (en: 'empty set with right arrow above', google translation) + - "⦴": [t: "在上方帶有左箭頭的空設置"] # 0x29b4 (en: 'empty set with left arrow above', google translation) + - "⦵": [t: "用水平桿圓圈"] # 0x29b5 (en: 'circle with horizontal bar', google translation) + - "⦶": [t: "盤旋垂直條"] # 0x29b6 (en: 'circled vertical bar', google translation) + - "⦷": [t: "平行"] # 0x29b7 (en: 'circled parallel', google translation) + - "⦸": [t: "圓圈反向固體"] # 0x29b8 (en: 'circled reverse solidus', google translation) + - "⦹": [t: "圓圈垂直"] # 0x29b9 (en: 'circled perpendicular', google translation) + - "⦺": [t: "圓圈除以水平桿,上半部除以垂直條"] # 0x29ba (en: 'circled divided by horizontal bar and top half divided by vertical bar', google translation) + - "⦻": [t: "用疊加x圓圈"] # 0x29bb (en: 'circle with superimposed x', google translation) + - "⦼": [t: "盤旋逆時針旋轉的劃分符號"] # 0x29bc (en: 'circled anticlockwise rotated division sign', google translation) + - "⦽": [t: "向上箭頭"] # 0x29bd (en: 'up arrow through circle', google translation) + - "⦾": [t: "盤旋白色子彈"] # 0x29be (en: 'circled white bullet', google translation) + - "⦿": [t: "盤旋子彈"] # 0x29bf (en: 'circled bullet', google translation) + - "⧀": [t: "盤旋少於"] # 0x29c0 (en: 'circled less than', google translation) + - "⧁": [t: "盤旋大於"] # 0x29c1 (en: 'circled greater than', google translation) + - "⧂": [t: "右圓圈向右圓圈"] # 0x29c2 (en: 'circle with small circle to the right', google translation) + - "⧃": [t: "右側用兩個水平筆觸圈出"] # 0x29c3 (en: 'circle with two horizontal strokes to the right', google translation) + - "⧄": [t: "平方上升的對角線斜線"] # 0x29c4 (en: 'squared rising diagonal slash', google translation) + - "⧅": [t: "平方落下的對角線斜線"] # 0x29c5 (en: 'squared falling diagonal slash', google translation) + - "⧆": [t: "平方星號"] # 0x29c6 (en: 'squared asterisk', google translation) + - "⧇": [t: "平方小圓圈"] # 0x29c7 (en: 'squared small circle', google translation) + - "⧈": [t: "平方廣場"] # 0x29c8 (en: 'squared square', google translation) + - "⧉": [t: "兩個正方形"] # 0x29c9 (en: 'two joined squares', google translation) + - "⧊": [t: "三角形,點上方"] # 0x29ca (en: 'triangle with dot above', google translation) + - "⧋": [t: "三角形與underbar"] # 0x29cb (en: 'triangle with underbar', google translation) + - "⧌": [t: "s在三角形中"] # 0x29cc (en: 's in triangle', google translation) + - "⧍": [t: "三角形,底部有襯線"] # 0x29cd (en: 'triangle with serifs at bottom', google translation) + - "⧎": [t: "左三角上方的右三角形"] # 0x29ce (en: 'right triangle above left triangle', google translation) + - "⧏": [t: "在垂直條旁邊的左三角"] # 0x29cf (en: 'left triangle beside vertical bar', google translation) + - "⧐": [t: "右三角形旁邊的垂直條"] # 0x29d0 (en: 'vertical bar beside right triangle', google translation) + - "⧑": [t: "bowtie左半黑"] # 0x29d1 (en: 'bowtie with left half black', google translation) + - "⧒": [t: "bowtie與右半黑色"] # 0x29d2 (en: 'bowtie with right half black', google translation) + - "⧓": [t: "黑色領結"] # 0x29d3 (en: 'black bowtie', google translation) + - "⧔": [t: "剩下的半黑色"] # 0x29d4 (en: 'times with left half black', google translation) + - "⧕": [t: "右半黑"] # 0x29d5 (en: 'times with right half black', google translation) + - "⧖": [T: "沙漏"] # 0x29d6 (en: 'white hourglass', google translation) + - "⧗": [T: "黑色沙漏"] # 0x29d7 (en: 'black hourglass', google translation) + - "⧘": [t: "左wiggly籬笆"] # 0x29d8 (en: 'left wiggly fence', google translation) + - "⧙": [t: "右wiggly柵欄"] # 0x29d9 (en: 'right wiggly fence', google translation) + - "⧚": [t: "左雙搖擺籬笆"] # 0x29da (en: 'left double wiggly fence', google translation) + - "⧛": [t: "右雙搖擺柵欄"] # 0x29db (en: 'right double wiggly fence', google translation) + - "⧜": [t: "無窮大"] # 0x29dc (en: 'incomplete infinity', google translation) + - "⧝": [t: "綁在無窮大"] # 0x29dd (en: 'tie over infinity', google translation) + - "⧞": [t: "無窮大,垂直桿否定"] # 0x29de (en: 'infinity negated with vertical bar', google translation) + - "⧟": [t: "雙端的多套件"] # 0x29df (en: 'double-ended multimap', google translation) + - "⧠": [t: "與輪廓輪廓的正方形"] # 0x29e0 (en: 'square with contoured outline', google translation) + - "⧡": [t: "增加為"] # 0x29e1 (en: 'increases as', google translation) + - "⧢": [t: "洗牌產品"] # 0x29e2 (en: 'shuffle product', google translation) + - "⧣": [t: "等於符號和平行的傾斜"] # 0x29e3 (en: 'equals sign and slanted parallel', google translation) + - "⧤": [t: "等於符號和傾斜的傾斜與上方的tilde"] # 0x29e4 (en: 'equals sign and slanted parallel with tilde above', google translation) + - "⧥": [t: "與平行和傾斜相同"] # 0x29e5 (en: 'identical to and slanted parallel', google translation) + - "⧦": [t: "格利希·史塔克(gleich stark)"] # 0x29e6 (en: 'gleich stark', google translation) + - "⧧": [t: "熱力學"] # 0x29e7 (en: 'thermodynamic', google translation) + - "⧨": [t: "向下指向三角形,左半黑"] # 0x29e8 (en: 'down pointing triangle with left half black', google translation) + - "⧩": [t: "向下指向三角形,右半黑"] # 0x29e9 (en: 'down pointing triangle with right half black', google translation) + - "⧪": [t: "黑色鑽石和下箭"] # 0x29ea (en: 'black diamond with down arrow', google translation) + - "⧫": [t: "黑菱形"] # 0x29eb (en: 'black lozenge', google translation) + - "⧬": [t: "圓圈和向下箭頭"] # 0x29ec (en: 'white circle with down arrow', google translation) + - "⧭": [t: "黑色圓圈和向下箭頭"] # 0x29ed (en: 'black circle with down arrow', google translation) + - "⧮": [t: "錯誤的白色廣場"] # 0x29ee (en: 'error-barred white square', google translation) + - "⧯": [t: "錯誤的黑色廣場"] # 0x29ef (en: 'error-barred black square', google translation) + - "⧰": [t: "錯誤的白色鑽石"] # 0x29f0 (en: 'error-barred white diamond', google translation) + - "⧱": [t: "錯誤的黑色鑽石"] # 0x29f1 (en: 'error-barred black diamond', google translation) + - "⧲": [t: "錯誤的白色圓圈"] # 0x29f2 (en: 'error-barred white circle', google translation) + - "⧳": [t: "錯誤的黑色圓圈"] # 0x29f3 (en: 'error-barred black circle', google translation) + - "⧴": [t: "規則延遲"] # 0x29f4 (en: 'rule-delayed', google translation) + - "⧵": [T: "差集"] # 0x29f5 (en: 'reverse solidus operator') + - "⧶": [t: "固體帶有槓鈴"] # 0x29f6 (en: 'solidus with overbar', google translation) + - "⧷": [t: "與水平衝程的反向固相"] # 0x29f7 (en: 'reverse solidus with horizontal stroke', google translation) + - "⧸": [t: "big solidus"] # 0x29f8 (google translation) + - "⧹": [t: "大反向實體"] # 0x29f9 (en: 'big reverse solidus', google translation) + - "⧺": [t: "雙加"] # 0x29fa (en: 'double plus', google translation) + - "⧻": [t: "三重加"] # 0x29fb (en: 'triple plus', google translation) + - "⧼": [t: "左向彎曲角括號"] # 0x29fc (en: 'left pointing curved angle bracket', google translation) + - "⧽": [t: "右指向彎曲角括號"] # 0x29fd (en: 'right pointing curved angle bracket', google translation) + - "⧾": [t: "微小的"] # 0x29fe (en: 'tiny', google translation) + - "⧿": [t: "微小"] # 0x29ff (en: 'miny', google translation) + - "⨀": [t: "圓圈操作員"] # 0x2a00 (en: 'circled dot operator', google translation) + - "⨁": [t: "圓圈加操作員"] # 0x2a01 (en: 'circled plus operator', google translation) + - "⨂": [t: "圓圈操作員"] # 0x2a02 (en: 'circled times operator', google translation) + - "⨃": [t: "dot的工會運營商"] # 0x2a03 (en: 'union operator with dot', google translation) + - "⨄": [t: "加上工會運營商"] # 0x2a04 (en: 'union operator with plus', google translation) + - "⨅": [t: "方形交叉操作員"] # 0x2a05 (en: 'square intersection operator', google translation) + - "⨆": [t: "平方聯盟操作員"] # 0x2a06 (en: 'square union operator', google translation) + - "⨇": [t: "兩個邏輯和操作員"] # 0x2a07 (en: 'two logical and operator', google translation) + - "⨈": [t: "兩個邏輯或操作員"] # 0x2a08 (en: 'two logical or operator', google translation) + - "⨉": [t: "時代操作員"] # 0x2a09 (en: 'times operator', google translation) + - "⨊": [t: "modulo兩個總和"] # 0x2a0a (en: 'modulo two sum', google translation) + - "⨋": [t: "總結不可或缺"] # 0x2a0b (en: 'summation with integral', google translation) + - "⨌": [T: "四重積分"] # 0x2a0c (en: 'quadruple integral operator', google translation) + - "⨍": [t: "有限零件積分"] # 0x2a0d (en: 'finite part integral', google translation) + - "⨎": [t: "具有雙沖程的積分"] # 0x2a0e (en: 'integral with double stroke', google translation) + - "⨏": [t: "斜線的整體平均值"] # 0x2a0f (en: 'integral average with slash', google translation) + - "⨐": [t: "循環功能"] # 0x2a10 (en: 'circulation function', google translation) + - "⨑": [t: "逆時針整合"] # 0x2a11 (en: 'anticlockwise integration', google translation) + - "⨒": [t: "線在極周圍的矩形路徑積分"] # 0x2a12 (en: 'line integration with rectangular path around pole', google translation) + - "⨓": [t: "線在極周圍的半圓路徑的線積分"] # 0x2a13 (en: 'line integration with semicircular path around pole', google translation) + - "⨔": [t: "線集成不包括桿"] # 0x2a14 (en: 'line integration not including the pole', google translation) + - "⨕": [t: "圍繞點運算符的積分"] # 0x2a15 (en: 'integral around a point operator', google translation) + - "⨖": [t: "四元組整體操作員"] # 0x2a16 (en: 'quaternion integral operator', google translation) + - "⨗": [t: "與左箭頭的積分與鉤子"] # 0x2a17 (en: 'integral with leftwards arrow with hook', google translation) + - "⨘": [t: "與時代符號的積分"] # 0x2a18 (en: 'integral with times sign', google translation) + - "⨙": [t: "與交集的積分"] # 0x2a19 (en: 'integral with intersection', google translation) + - "⨚": [t: "與聯合的整體"] # 0x2a1a (en: 'integral with union', google translation) + - "⨛": [t: "與overbar的積分"] # 0x2a1b (en: 'integral with overbar', google translation) + - "⨜": [t: "與underbar的積分"] # 0x2a1c (en: 'integral with underbar', google translation) + - "⨝": [t: "加入"] # 0x2a1d (en: 'join', google translation) + - "⨞": [t: "大左三角操作員"] # 0x2a1e (en: 'large left triangle operator', google translation) + - "⨟": [t: "z符號模式組成"] # 0x2a1f (en: 'z notation schema composition', google translation) + - "⨠": [t: "z符號架構管道"] # 0x2a20 (en: 'z notation schema piping', google translation) + - "⨡": [t: "z符號模式投影"] # 0x2a21 (en: 'z notation schema projection', google translation) + - "⨢": [t: "加上上方的圓形簽名"] # 0x2a22 (en: 'plus sign with circle above', google translation) + - "⨣": [t: "加上上面帶有繞行口音的符號"] # 0x2a23 (en: 'plus sign with circumflex accent above', google translation) + - "⨤": [t: "加上上面帶有tilde的簽名"] # 0x2a24 (en: 'plus sign with tilde above', google translation) + - "⨥": [t: "加上dot的簽名"] # 0x2a25 (en: 'plus sign with dot below', google translation) + - "⨦": [t: "加上tilde的簽名"] # 0x2a26 (en: 'plus sign with tilde below', google translation) + - "⨧": [t: "加上標記兩個"] # 0x2a27 (en: 'plus sign with subscript two', google translation) + - "⨨": [t: "加上黑色三角形的簽名"] # 0x2a28 (en: 'plus sign with black triangle', google translation) + - "⨩": [t: "上面的逗號減去標誌"] # 0x2a29 (en: 'minus sign with comma above', google translation) + - "⨪": [t: "在下面的點減去符號"] # 0x2a2a (en: 'minus sign with dot below', google translation) + - "⨫": [t: "減去點落點"] # 0x2a2b (en: 'minus sign with falling dots', google translation) + - "⨬": [t: "減去點升高的點數"] # 0x2a2c (en: 'minus sign with rising dots', google translation) + - "⨭": [t: "加上左半圓圈"] # 0x2a2d (en: 'plus sign in left half circle', google translation) + - "⨮": [t: "加上右半圓圈"] # 0x2a2e (en: 'plus sign in right half circle', google translation) + - "⨯": # 0x2a2f + - test: + if: "$Verbosity='Terse'" + then: [t: "cross"] + else: [t: "cross product"] + - "⨰": [t: "上面有點的乘法標誌"] # 0x2a30 (en: 'multiplication sign with dot above', google translation) + - "⨱": [t: "帶有underbar的乘法標誌"] # 0x2a31 (en: 'multiplication sign with underbar', google translation) + - "⨲": [t: "底部關閉的半程產品"] # 0x2a32 (en: 'semidirect product with bottom closed', google translation) + - "⨳": [t: "粉碎產品"] # 0x2a33 (en: 'smash product', google translation) + - "⨴": [t: "左半圓圈中的乘法標誌"] # 0x2a34 (en: 'multiplication sign in left half circle', google translation) + - "⨵": [t: "右半圓中的乘法標誌"] # 0x2a35 (en: 'multiplication sign in right half circle', google translation) + - "⨶": [t: "帶有環繞式口音的圓圈乘法標誌"] # 0x2a36 (en: 'circled multiplication sign with circumflex accent', google translation) + - "⨷": [t: "雙圓圈中的乘法標誌"] # 0x2a37 (en: 'multiplication sign in double circle', google translation) + - "⨸": [t: "圓形的劃分標誌"] # 0x2a38 (en: 'circled division sign', google translation) + - "⨹": [t: "加上三角形的簽名"] # 0x2a39 (en: 'plus sign in triangle', google translation) + - "⨺": [t: "減去三角形"] # 0x2a3a (en: 'minus sign in triangle', google translation) + - "⨻": [t: "三角形中的乘法標誌"] # 0x2a3b (en: 'multiplication sign in triangle', google translation) + - "⨼": [t: "內部乘積"] # 0x2a3c (en: 'interior product', google translation) + - "⨽": [t: "右內部乘積"] # 0x2a3d (en: 'righthand interior product', google translation) + - "⨾": [t: "z notation relational composition"] # 0x2a3e + - "⨿": [t: "合併或合併"] # 0x2a3f (en: 'amalgamation or coproduct', google translation) + - "⩀": [t: "與點的交點"] # 0x2a40 (en: 'intersection with dot', google translation) + - "⩁": [t: "與減號的結合"] # 0x2a41 (en: 'union with minus sign', google translation) + - "⩂": [t: "與overbar結合"] # 0x2a42 (en: 'union with overbar', google translation) + - "⩃": [t: "與overbar的交點"] # 0x2a43 (en: 'intersection with overbar', google translation) + - "⩄": [t: "與邏輯和交集"] # 0x2a44 (en: 'intersection with logical and', google translation) + - "⩅": [t: "與邏輯或"] # 0x2a45 (en: 'union with logical or', google translation) + - "⩆": [t: "交叉點上方的聯合"] # 0x2a46 (en: 'union above intersection', google translation) + - "⩇": [t: "超過聯合的交叉點"] # 0x2a47 (en: 'intersection above union', google translation) + - "⩈": [t: "交叉點上方的欄上方的聯合"] # 0x2a48 (en: 'union above bar above intersection', google translation) + - "⩉": [t: "在聯盟上方的欄上方的交叉路口"] # 0x2a49 (en: 'intersection above bar above union', google translation) + - "⩊": [t: "聯盟旁邊並與聯盟一起"] # 0x2a4a (en: 'union beside and joined with union', google translation) + - "⩋": [t: "在旁邊並與交點相交"] # 0x2a4b (en: 'intersection beside and joined with intersection', google translation) + - "⩌": [t: "與襯線關閉聯盟"] # 0x2a4c (en: 'closed union with serifs', google translation) + - "⩍": [t: "與襯線的封閉交叉點"] # 0x2a4d (en: 'closed intersection with serifs', google translation) + - "⩎": [t: "雙方交叉點"] # 0x2a4e (en: 'double square intersection', google translation) + - "⩏": [t: "雙方平等聯盟"] # 0x2a4f (en: 'double square union', google translation) + - "⩐": [t: "與襯線和粉碎產品關閉聯盟"] # 0x2a50 (en: 'closed union with serifs and smash product', google translation) + - "⩑": [t: "邏輯和上面的點"] # 0x2a51 (en: 'logical and with dot above', google translation) + - "⩒": [t: "邏輯或上面的點"] # 0x2a52 (en: 'logical or with dot above', google translation) + - "⩓": [t: "雙重邏輯和"] # 0x2a53 (en: 'double logical and', google translation) + - "⩔": [t: "雙邏輯或"] # 0x2a54 (en: 'double logical or', google translation) + - "⩕": [t: "兩個相交的邏輯和"] # 0x2a55 (en: 'two intersecting logical and', google translation) + - "⩖": [t: "兩個相交的邏輯或"] # 0x2a56 (en: 'two intersecting logical or', google translation) + - "⩗": [t: "傾斜大或"] # 0x2a57 (en: 'sloping large or', google translation) + - "⩘": [t: "傾斜大"] # 0x2a58 (en: 'sloping large and', google translation) + - "⩙": [t: "邏輯或重疊的邏輯和重疊"] # 0x2a59 (en: 'logical or overlapping logical and', google translation) + - "⩚": [t: "邏輯和中間莖"] # 0x2a5a (en: 'logical and with middle stem', google translation) + - "⩛": [t: "邏輯或中間莖"] # 0x2a5b (en: 'logical or with middle stem', google translation) + - "⩜": [t: "邏輯和水平破折號"] # 0x2a5c (en: 'logical and with horizontal dash', google translation) + - "⩝": [t: "邏輯或水平破折號"] # 0x2a5d (en: 'logical or with horizontal dash', google translation) + - "⩞": [t: "邏輯和雙重鍵"] # 0x2a5e (en: 'logical and with double overbar', google translation) + - "⩟": [t: "邏輯且具有underbar"] # 0x2a5f (en: 'logical and with underbar', google translation) + - "⩠": [t: "邏輯且具有雙underbar"] # 0x2a60 (en: 'logical and with double underbar', google translation) + - "⩡": [t: "帶有內褲的小vee"] # 0x2a61 (en: 'small vee with underbar', google translation) + - "⩢": [t: "邏輯或雙重鍵"] # 0x2a62 (en: 'logical or with double overbar', google translation) + - "⩣": [t: "邏輯或雙子鍵"] # 0x2a63 (en: 'logical or with double underbar', google translation) + - "⩤": [t: "z符號域抗脅迫"] # 0x2a64 (en: 'z notation domain antirestriction', google translation) + - "⩥": [t: "z符號範圍抗激氣"] # 0x2a65 (en: 'z notation range antirestriction', google translation) + - "⩦": [t: "等於下面的點"] # 0x2a66 (en: 'equals sign with dot below', google translation) + - "⩧": [t: "與上面的點相同"] # 0x2a67 (en: 'identical with dot above', google translation) + - "⩨": [t: "三重水平條帶有雙垂直衝程"] # 0x2a68 (en: 'triple horizontal bar with double vertical stroke', google translation) + - "⩩": [t: "三重水平條,帶有三重垂直衝程"] # 0x2a69 (en: 'triple horizontal bar with triple vertical stroke', google translation) + - "⩪": [t: "蒂爾德操作員上面有點"] # 0x2a6a (en: 'tilde operator with dot above', google translation) + - "⩫": [t: "tilde操作員帶有上升的點"] # 0x2a6b (en: 'tilde operator with rising dots', google translation) + - "⩬": [t: "類似的負相似"] # 0x2a6c (en: 'similar minus similar', google translation) + - "⩭": [t: "與上面的點一致"] # 0x2a6d (en: 'congruent with dot above', google translation) + - "⩮": [t: "等於星號"] # 0x2a6e (en: 'equals with asterisk', google translation) + - "⩯": [t: "幾乎等於帶繞的口音"] # 0x2a6f (en: 'almost equal to with circumflex accent', google translation) + - "⩰": [t: "大約等於或等於"] # 0x2a70 (en: 'approximately equal to or equal to', google translation) + - "⩱": [t: "等於符號上方加上符號"] # 0x2a71 (en: 'equals sign above plus sign', google translation) + - "⩲": [t: "加上符號等於標誌"] # 0x2a72 (en: 'plus sign above equals sign', google translation) + - "⩳": [t: "等於tilde操作員上方的標誌"] # 0x2a73 (en: 'equals sign above tilde operator', google translation) + - "⩴": [t: "雙結腸相等"] # 0x2a74 (en: 'double colon equal', google translation) + - "⩵": [t: "兩個連續的等於符號"] # 0x2a75 (en: 'two consecutive equals signs', google translation) + - "⩶": [t: "連續三個等於標誌"] # 0x2a76 (en: 'three consecutive equals signs', google translation) + - "⩷": [t: "等於符號上方有兩個點和下面的兩個點"] # 0x2a77 (en: 'equals sign with two dots above and two dots below', google translation) + - "⩸": [t: "等效,上面有四個點"] # 0x2a78 (en: 'equivalent with four dots above', google translation) + - "⩹": [t: "比里面的圓少"] # 0x2a79 (en: 'less than with circle inside', google translation) + - "⩺": [t: "比里面的圓大"] # 0x2a7a (en: 'greater than with circle inside', google translation) + - "⩻": [t: "少於上面的問號"] # 0x2a7b (en: 'less than with question mark above', google translation) + - "⩼": [t: "比上面的問號要大"] # 0x2a7c (en: 'greater than with question mark above', google translation) + - "⩽": [t: "小於或傾斜等於"] # 0x2a7d (en: 'less than or slanted equal to', google translation) + - "⩾": [t: "大於或傾斜等於"] # 0x2a7e (en: 'greater than or slanted equal to', google translation) + - "⩿": [t: "小於或傾斜與內部的點相等"] # 0x2a7f (en: 'less than or slanted equal to with dot inside', google translation) + - "⪀": [t: "大於或傾斜與內部的點相等"] # 0x2a80 (en: 'greater than or slanted equal to with dot inside', google translation) + - "⪁": [t: "小於或傾斜與上方的點相等"] # 0x2a81 (en: 'less than or slanted equal to with dot above', google translation) + - "⪂": [t: "大於或傾斜與上方的點相等"] # 0x2a82 (en: 'greater than or slanted equal to with dot above', google translation) + - "⪃": [t: "小於或傾斜等於右上方的點"] # 0x2a83 (en: 'less than or slanted equal to with dot above right', google translation) + - "⪄": [t: "大於左上方的點大於或傾斜"] # 0x2a84 (en: 'greater than or slanted equal to with dot above left', google translation) + - "⪅": [t: "小於或近似"] # 0x2a85 (en: 'less than or approximate', google translation) + - "⪆": [t: "大於或近似"] # 0x2a86 (en: 'greater than or approximate', google translation) + - "⪇": [t: "小於和單線不等於"] # 0x2a87 (en: 'less than and single line not equal to', google translation) + - "⪈": [t: "大於不等於的單線"] # 0x2a88 (en: 'greater than and single line not equal to', google translation) + - "⪉": [t: "少於近似"] # 0x2a89 (en: 'less than and not approximate', google translation) + - "⪊": [t: "大於近似"] # 0x2a8a (en: 'greater than and not approximate', google translation) + - "⪋": [t: "小於高於雙線的高於大於大於大於的雙線"] # 0x2a8b (en: 'less than above double line equal above greater than', google translation) + - "⪌": [t: "大於雙線高於小於小於小於小於的雙線"] # 0x2a8c (en: 'greater than above double line equal above less than', google translation) + - "⪍": [t: "小於相似或相等"] # 0x2a8d (en: 'less than above similar or equal', google translation) + - "⪎": [t: "大於相似或相等"] # 0x2a8e (en: 'greater than above similar or equal', google translation) + - "⪏": [t: "小於高於大於大於的高於相似之處"] # 0x2a8f (en: 'less than above similar above greater than', google translation) + - "⪐": [t: "大於相似的高於小於小於相似之處"] # 0x2a90 (en: 'greater than above similar above less than', google translation) + - "⪑": [t: "小於高於雙線的高於大於雙線"] # 0x2a91 (en: 'less than above greater than above double line equal', google translation) + - "⪒": [t: "大於小於雙線相等的高於小於少於雙線"] # 0x2a92 (en: 'greater than above less than above double line equal', google translation) + - "⪓": [t: "小於上方等於大於傾斜相等的傾斜等相等"] # 0x2a93 (en: 'less than above slanted equal above greater than above slanted equal', google translation) + - "⪔": [t: "大於上面的傾斜高於小於傾斜相等的等於"] # 0x2a94 (en: 'greater than above slanted equal above less than above slanted equal', google translation) + - "⪕": [t: "傾斜等於或小於或小"] # 0x2a95 (en: 'slanted equal to or less than', google translation) + - "⪖": [t: "傾斜等於或大於或大於"] # 0x2a96 (en: 'slanted equal to or greater than', google translation) + - "⪗": [t: "傾斜等於或小於內部的點"] # 0x2a97 (en: 'slanted equal to or less than with dot inside', google translation) + - "⪘": [t: "傾斜等於或大於內部點"] # 0x2a98 (en: 'slanted equal to or greater than with dot inside', google translation) + - "⪙": [t: "雙線等於或小於或小"] # 0x2a99 (en: 'double line equal to or less than', google translation) + - "⪚": [t: "雙線等於或大於或大於"] # 0x2a9a (en: 'double line equal to or greater than', google translation) + - "⪛": [t: "雙線傾斜等於或小於或小"] # 0x2a9b (en: 'double line slanted equal to or less than', google translation) + - "⪜": [t: "雙線傾斜等於或大於或大於"] # 0x2a9c (en: 'double line slanted equal to or greater than', google translation) + - "⪝": [t: "相似或少於"] # 0x2a9d (en: 'similar or less than', google translation) + - "⪞": [t: "相似或大於"] # 0x2a9e (en: 'similar or greater than', google translation) + - "⪟": [t: "在少於以上的高於符號的符號"] # 0x2a9f (en: 'similar above less than above equals sign', google translation) + - "⪠": [t: "在上面大於上方的上方等於符號"] # 0x2aa0 (en: 'similar above greater than above equals sign', google translation) + - "⪡": [t: "雙嵌套小於"] # 0x2aa1 (en: 'double nested less than', google translation) + - "⪢": [t: "雙嵌套大於"] # 0x2aa2 (en: 'double nested greater than', google translation) + - "⪣": [t: "雙嵌套比underbar少"] # 0x2aa3 (en: 'double nested less than with underbar', google translation) + - "⪤": [t: "大於重疊小於小於重疊"] # 0x2aa4 (en: 'greater than overlapping less than', google translation) + - "⪥": [t: "比旁邊大"] # 0x2aa5 (en: 'greater than beside less than', google translation) + - "⪦": [t: "小於曲線閉合"] # 0x2aa6 (en: 'less than closed by curve', google translation) + - "⪧": [t: "大於曲線封閉"] # 0x2aa7 (en: 'greater than closed by curve', google translation) + - "⪨": [t: "小於傾斜上方相等的曲線閉合"] # 0x2aa8 (en: 'less than closed by curve above slanted equal', google translation) + - "⪩": [t: "大於傾斜上方相等的曲線閉合"] # 0x2aa9 (en: 'greater than closed by curve above slanted equal', google translation) + - "⪪": [t: "小於"] # 0x2aaa (en: 'smaller than', google translation) + - "⪫": [t: "比大"] # 0x2aab (en: 'larger than', google translation) + - "⪬": [t: "小於或等於"] # 0x2aac (en: 'smaller than or equal to', google translation) + - "⪭": [t: "大於或等於"] # 0x2aad (en: 'larger than or equal to', google translation) + - "⪮": [t: "等於標誌,上面有顛簸"] # 0x2aae (en: 'equals sign with bumpy above', google translation) + - "⪯": [t: "在單線上方等於符號之前"] # 0x2aaf (en: 'precedes above single line equals sign', google translation) + - "⪰": [t: "在單線上的成功等於符號"] # 0x2ab0 (en: 'succeeds above single line equals sign', google translation) + - "⪱": [t: "在不等於的單線上方"] # 0x2ab1 (en: 'precedes above single line not equal to', google translation) + - "⪲": [t: "超過單線不等於"] # 0x2ab2 (en: 'succeeds above single line not equal to', google translation) + - "⪳": [t: "在上方等於符號"] # 0x2ab3 (en: 'precedes above equals sign', google translation) + - "⪴": [t: "超過超過符號"] # 0x2ab4 (en: 'succeeds above equals sign', google translation) + - "⪵": [t: "先於不等於"] # 0x2ab5 (en: 'precedes above not equal to', google translation) + - "⪶": [t: "成功超過不等於"] # 0x2ab6 (en: 'succeeds above not equal to', google translation) + - "⪷": [t: "在幾乎等於"] # 0x2ab7 (en: 'precedes above almost equal to', google translation) + - "⪸": [t: "成功幾乎等於"] # 0x2ab8 (en: 'succeeds above almost equal to', google translation) + - "⪹": [t: "先前幾乎不等於"] # 0x2ab9 (en: 'precedes above not almost equal to', google translation) + - "⪺": [t: "成功超過幾乎不等於"] # 0x2aba (en: 'succeeds above not almost equal to', google translation) + - "⪻": [t: "雙重之前"] # 0x2abb (en: 'double precedes', google translation) + - "⪼": [t: "雙重成功"] # 0x2abc (en: 'double succeeds', google translation) + - "⪽": [t: "用點子集"] # 0x2abd (en: 'subset with dot', google translation) + - "⪾": [t: "帶有點的超集"] # 0x2abe (en: 'superset with dot', google translation) + - "⪿": [t: "在下面帶有加號的子集"] # 0x2abf (en: 'subset with plus sign below', google translation) + - "⫀": [t: "帶有加上符號的超集"] # 0x2ac0 (en: 'superset with plus sign below', google translation) + - "⫁": [t: "在下面帶有乘法標誌的子集"] # 0x2ac1 (en: 'subset with multiplication sign below', google translation) + - "⫂": [t: "在下面帶有乘法標誌的超集"] # 0x2ac2 (en: 'superset with multiplication sign below', google translation) + - "⫃": [t: "子集的子集或與上方的點相等"] # 0x2ac3 (en: 'subset of or equal to with dot above', google translation) + - "⫄": [t: "上面的點或與點相等"] # 0x2ac4 (en: 'superset of or equal to with dot above', google translation) + - "⫅": [t: "上述子集等於符號"] # 0x2ac5 (en: 'subset of above equals sign', google translation) + - "⫆": [t: "上述超集等於符號"] # 0x2ac6 (en: 'superset of above equals sign', google translation) + - "⫇": [t: "上述tilde操作員的子集"] # 0x2ac7 (en: 'subset of above tilde operator', google translation) + - "⫈": [t: "上面的tilde操作員的超集"] # 0x2ac8 (en: 'superset of above tilde operator', google translation) + - "⫉": [t: "以上的子集幾乎等於"] # 0x2ac9 (en: 'subset of above almost equal to', google translation) + - "⫊": [t: "超過幾乎等於"] # 0x2aca (en: 'superset of above almost equal to', google translation) + - "⫋": [t: "真包含於"] # 0x2acb (en: 'subset above not equal to') + - "⫌": [t: "真包含"] # 0x2acc (en: 'superset of above not equal to') + - "⫍": [t: "square左開盒操作員"] # 0x2acd (en: 'square left open box operator', google translation) + - "⫎": [t: "正方形右開箱操作員"] # 0x2ace (en: 'square right open box operator', google translation) + - "⫏": [t: "封閉子集"] # 0x2acf (en: 'closed subset', google translation) + - "⫐": [t: "封閉的超集"] # 0x2ad0 (en: 'closed superset', google translation) + - "⫑": [t: "閉合子集或等於"] # 0x2ad1 (en: 'closed subset or equal to', google translation) + - "⫒": [t: "封閉的超集或等於"] # 0x2ad2 (en: 'closed superset or equal to', google translation) + - "⫓": [t: "子集上方的子集"] # 0x2ad3 (en: 'subset above superset', google translation) + - "⫔": [t: "在子集上方的超集"] # 0x2ad4 (en: 'superset above subset', google translation) + - "⫕": [t: "子集上方子集"] # 0x2ad5 (en: 'subset above subset', google translation) + - "⫖": [t: "超集在超集上方"] # 0x2ad6 (en: 'superset above superset', google translation) + - "⫗": [t: "子集旁邊的超級集"] # 0x2ad7 (en: 'superset beside subset', google translation) + - "⫘": [t: "在旁邊的超級集,並與dash一起與子集一起加入"] # 0x2ad8 (en: 'superset beside and joined by dash with subset', google translation) + - "⫙": [t: "向下開放的要素"] # 0x2ad9 (en: 'element of opening downwards', google translation) + - "⫚": [t: "帶有t卹頂的干草叉"] # 0x2ada (en: 'pitchfork with tee top', google translation) + - "⫛": [t: "橫向交集"] # 0x2adb (en: 'transversal intersection', google translation) + - "⫝̸": [t: "分叉"] # 0x2adc (en: 'forking', google translation) + - "⫝": [t: "非fork"] # 0x2add (en: 'nonforking', google translation) + - "⫞": [t: "左釘"] # 0x2ade (en: 'short left tack', google translation) + - "⫟": [t: "短釘"] # 0x2adf (en: 'short down tack', google translation) + - "⫠": [t: "短釘"] # 0x2ae0 (en: 'short up tack', google translation) + - "⫡": [t: "垂直於s"] # 0x2ae1 (en: 'perpendicular with s', google translation) + - "⫢": [t: "垂直桿右旋轉門"] # 0x2ae2 (en: 'vertical bar triple right turnstile', google translation) + - "⫣": [t: "雙垂直桿左旋轉門"] # 0x2ae3 (en: 'double vertical bar left turnstile', google translation) + - "⫤": [t: "垂直桿左旋轉門"] # 0x2ae4 (en: 'vertical bar double left turnstile', google translation) + - "⫥": [t: "雙垂直桿左旋轉門"] # 0x2ae5 (en: 'double vertical bar double left turnstile', google translation) + - "⫦": [t: "雙垂直左右成員的長儀表"] # 0x2ae6 (en: 'long dash from left member of double vertical', google translation) + - "⫧": [t: "用overbar短路"] # 0x2ae7 (en: 'short down tack with overbar', google translation) + - "⫨": [t: "與underbar短釘"] # 0x2ae8 (en: 'short up tack with underbar', google translation) + - "⫩": [t: "短釘在短釘上"] # 0x2ae9 (en: 'short up tack above short down tack', google translation) + - "⫪": [t: "雙重釘"] # 0x2aea (en: 'double down tack', google translation) + - "⫫": [t: "加倍大頭釘"] # 0x2aeb (en: 'double up tack', google translation) + - "⫬": [t: "雙沖程沒有簽名"] # 0x2aec (en: 'double stroke not sign', google translation) + - "⫭": [t: "逆轉雙沖程沒有簽名"] # 0x2aed (en: 'reversed double stroke not sign', google translation) + - "⫮": [t: "不與反向的否定斜線分開"] # 0x2aee (en: 'does not divide with reversed negation slash', google translation) + - "⫯": [t: "豎線,上面有圓"] # 0x2aef (en: 'vertical line with circle above', google translation) + - "⫰": [t: "豎線,下面有圓"] # 0x2af0 (en: 'vertical line with circle below', google translation) + - "⫱": [t: "下面的圓形下方"] # 0x2af1 (en: 'down tack with circle below', google translation) + - "⫲": [t: "與水平衝程平行"] # 0x2af2 (en: 'parallel with horizontal stroke', google translation) + - "⫳": [t: "與tilde操作員平行"] # 0x2af3 (en: 'parallel with tilde operator', google translation) + - "⫴": [t: "三重垂直桿二進制關係"] # 0x2af4 (en: 'triple vertical bar binary relation', google translation) + - "⫵": [t: "三重垂直條帶水平衝程"] # 0x2af5 (en: 'triple vertical bar with horizontal stroke', google translation) + - "⫶": [t: "三重結腸操作員"] # 0x2af6 (en: 'triple colon operator', google translation) + - "⫷": [t: "三重嵌套比"] # 0x2af7 (en: 'triple nested less than', google translation) + - "⫸": [t: "三重築巢大於"] # 0x2af8 (en: 'triple nested greater than', google translation) + - "⫹": [t: "雙線傾斜小於或等於"] # 0x2af9 (en: 'double line slanted less than or equal to', google translation) + - "⫺": [t: "雙線傾斜大於或等於"] # 0x2afa (en: 'double line slanted greater than or equal to', google translation) + - "⫻": [t: "三斜線二元關係"] # 0x2afb (en: 'triple solidus binary relation', google translation) + - "⫼": [t: "大三重垂直桿運算子"] # 0x2afc (en: 'large triple vertical bar operator', google translation) + - "⫽": [t: "雙斜線運算子"] # 0x2afd (en: 'double solidus operator', google translation) + - "⫾": [t: "垂直條"] # 0x2afe (en: 'white vertical bar', google translation) + - "⫿": [t: "垂直條"] # 0x2aff (en: 'white vertical bar', google translation) + - "⬀": [t: "東北白色箭頭"] # 0x2b00 (en: 'north east white arrow', google translation) + - "⬁": [t: "西北白色箭頭"] # 0x2b01 (en: 'north west white arrow', google translation) + - "⬂": [t: "東南白色箭頭"] # 0x2b02 (en: 'south east white arrow', google translation) + - "⬃": [t: "西南白色箭頭"] # 0x2b03 (en: 'south west white arrow', google translation) + - "⬄": [t: "左右白色箭頭"] # 0x2b04 (en: 'left right white arrow', google translation) + - "⬅": [t: "左黑箭頭"] # 0x2b05 (en: 'leftwards black arrow', google translation) + - "⬆": [t: "向上黑色箭頭"] # 0x2b06 (en: 'upwards black arrow', google translation) + - "⬇": [t: "向下黑色箭頭"] # 0x2b07 (en: 'downwards black arrow', google translation) + - "⬈": [t: "東北黑色箭頭"] # 0x2b08 (en: 'north east black arrow', google translation) + - "⬉": [t: "西北黑色箭頭"] # 0x2b09 (en: 'north west black arrow', google translation) + - "⬊": [t: "東南黑色箭頭"] # 0x2b0a (en: 'south east black arrow', google translation) + - "⬋": [t: "西南黑色箭頭"] # 0x2b0b (en: 'south west black arrow', google translation) + - "⬌": [t: "左右黑色箭頭"] # 0x2b0c (en: 'left right black arrow', google translation) + - "⬍": [t: "向上沿黑色箭頭"] # 0x2b0d (en: 'up down black arrow', google translation) + - "⬎": [t: "向右的箭頭向下向下"] # 0x2b0e (en: 'rightwards arrow with tip downwards', google translation) + - "⬏": [t: "向右的箭頭向上"] # 0x2b0f (en: 'rightwards arrow with tip upwards', google translation) + - "⬐": [t: "左箭頭,尖端向下"] # 0x2b10 (en: 'leftwards arrow with tip downwards', google translation) + - "⬑": [t: "左箭頭上向上"] # 0x2b11 (en: 'leftwards arrow with tip upwards', google translation) + - "⬒": [t: "正方形與上半黑色"] # 0x2b12 (en: 'square with top half black', google translation) + - "⬓": [t: "正方形與下半部分"] # 0x2b13 (en: 'square with bottom half black', google translation) + - "⬔": [t: "與右上角半黑色的正方形"] # 0x2b14 (en: 'square with upper right diagonal half black', google translation) + - "⬕": [t: "正方形與左下對角線半黑色"] # 0x2b15 (en: 'square with lower left diagonal half black', google translation) + - "⬖": [t: "鑽石左半黑"] # 0x2b16 (en: 'diamond with left half black', google translation) + - "⬗": [t: "鑽石與右半黑色"] # 0x2b17 (en: 'diamond with right half black', google translation) + - "⬘": [t: "鑽石上半黑色"] # 0x2b18 (en: 'diamond with top half black', google translation) + - "⬙": [t: "鑽石與下半部分"] # 0x2b19 (en: 'diamond with bottom half black', google translation) + - "⬚": [t: "盒子"] # 0x2b1a (en: 'box', google translation) + - "⬛": [t: "黑大正方形"] # 0x2b1b (en: 'black large square', google translation) + - "⬜": [t: "白大正方形"] # 0x2b1c (en: 'white large square', google translation) + - "⬝": [t: "黑極小正方形"] # 0x2b1d (en: 'black very small square', google translation) + - "⬞": [t: "極小正方形"] # 0x2b1e (en: 'white very small square', google translation) + - "⬟": [t: "黑五角形"] # 0x2b1f (en: 'black pentagon', google translation) + - "⬠": [t: "五角形"] # 0x2b20 (en: 'white pentagon', google translation) + - "⬡": [t: "六角形"] # 0x2b21 (en: 'white hexagon', google translation) + - "⬢": [t: "黑六角形"] # 0x2b22 (en: 'black hexagon', google translation) + - "⬣": [t: "水平黑六角形"] # 0x2b23 (en: 'horizontal black hexagon', google translation) + - "⬤": [t: "黑色大圓圈"] # 0x2b24 (en: 'black large circle', google translation) + - "⬥": [t: "黑中鑽"] # 0x2b25 (en: 'black medium diamond', google translation) + - "⬦": [t: "中鑽"] # 0x2b26 (en: 'white medium diamond', google translation) + - "⬧": [t: "黑中菱形"] # 0x2b27 (en: 'black medium lozenge', google translation) + - "⬨": [t: "中菱形"] # 0x2b28 (en: 'white medium lozenge', google translation) + - "⬩": [t: "黑小鑽"] # 0x2b29 (en: 'black small diamond', google translation) + - "⬪": [t: "黑小菱形"] # 0x2b2a (en: 'black small lozenge', google translation) + - "⬫": [t: "小菱形"] # 0x2b2b (en: 'white small lozenge', google translation) + - "⬬": [t: "黑橫擺橢圓"] # 0x2b2c (en: 'black horizontal ellipse', google translation) + - "⬭": [t: "橫擺橢圓"] # 0x2b2d (en: 'white horizontal ellipse', google translation) + - "⬮": [t: "黑豎擺橢圓"] # 0x2b2e (en: 'black vertical ellipse', google translation) + - "⬯": [t: "豎擺橢圓"] # 0x2b2f (en: 'white vertical ellipse', google translation) + - "⬰": [t: "左箭頭有小圓圈"] # 0x2b30 (en: 'left arrow with small circle', google translation) + - "⬱": [t: "三重箭頭"] # 0x2b31 (en: 'three leftwards arrows', google translation) + - "⬲": [t: "左箭頭有圓圈加號"] # 0x2b32 (en: 'left arrow with circled plus', google translation) + - "⬳": [t: "長左波浪箭頭"] # 0x2b33 (en: 'long leftwards squiggle arrow', google translation) + - "⬴": [t: "左雙箭頭帶有豎線"] # 0x2b34 (en: 'leftwards two headed arrow with vertical stroke', google translation) + - "⬵": [t: "左雙箭頭雙豎線"] # 0x2b35 (en: 'leftwards two headed arrow with double vertical stroke', google translation) + - "⬶": [t: "從豎線出發往左雙箭頭"] # 0x2b36 (en: 'leftwards two headed arrow from bar', google translation) + - "⬷": [t: "左雙箭頭虛線有箭尾"] # 0x2b37 (en: 'leftwards two headed triple dash arrow', google translation) + - "⬸": [t: "左箭頭帶有虛線箭身"] # 0x2b38 (en: 'leftwards arrow with dotted stem', google translation) + - "⬹": [t: "左箭頭帶有豎線箭尾"] # 0x2b39 (en: 'leftwards arrow with tail with vertical stroke', google translation) + - "⬺": [t: "左箭頭雙豎線箭尾"] # 0x2b3a (en: 'leftwards arrow with tail with double vertical stroke', google translation) + - "⬻": [t: "左雙箭頭帶有箭尾"] # 0x2b3b (en: 'leftwards two headed arrow with tail', google translation) + - "⬼": [t: "向左雙箭頭帶有豎線箭尾"] # 0x2b3c (en: 'leftwards two headed arrow with tail with vertical stroke', google translation) + - "⬽": [t: "向左雙箭頭雙豎線箭尾"] # 0x2b3d (en: 'leftwards two headed arrow with tail with double vertical stroke', google translation) + - "⬾": [t: "向左箭頭穿過x"] # 0x2b3e (en: 'leftwards arrow through x', google translation) + - "⬿": [t: "箭頭直接向左指向"] # 0x2b3f (en: 'wave arrow pointing directly left', google translation) + - "⭀": [t: "向左箭頭上方有等號"] # 0x2b40 (en: 'equals sign above leftwards arrow', google translation) + - "⭁": [t: "向左箭頭上方有tilde"] # 0x2b41 (en: 'reverse tilde operator above leftwards arrow', google translation) + - "⭂": [t: "左箭頭下方有逆向幾乎等於"] # 0x2b42 (en: 'leftwards arrow above reverse almost equal to', google translation) + - "⭃": [t: "向右箭頭貫穿大於大於"] # 0x2b43 (en: 'rightwards arrow through greater than', google translation) + - "⭄": [t: "向右箭頭穿過超集"] # 0x2b44 (en: 'rightwards arrow through superset', google translation) + - "⭅": [t: "向左四重箭頭"] # 0x2b45 (en: 'leftwards quadruple arrow', google translation) + - "⭆": [t: "向右四倍箭頭"] # 0x2b46 (en: 'rightwards quadruple arrow', google translation) + - "⭇": [t: "向右箭頭上方有tilde"] # 0x2b47 (en: 'reverse tilde operator above rightwards arrow', google translation) + - "⭈": [t: "右箭頭下方有幾乎等於"] # 0x2b48 (en: 'rightwards arrow above reverse almost equal to', google translation) + - "⭉": [t: "左箭頭上方有tilde"] # 0x2b49 (en: 'tilde operator above leftwards arrow', google translation) + - "⭊": [t: "左箭頭下方有幾乎等於"] # 0x2b4a (en: 'leftwards arrow above almost equal to', google translation) + - "⭋": [t: "左箭頭下方有tilde"] # 0x2b4b (en: 'leftwards arrow above reverse tilde operator', google translation) + - "⭌": [t: "右箭頭下方有tilde"] # 0x2b4c (en: 'rightwards arrow above reverse tilde operator', google translation) + - "⭐": [t: "白中星星"] # 0x2b50 (en: 'white medium star', google translation) + - "⭑": [t: "黑小星星"] # 0x2b51 (en: 'black small star', google translation) + - "⭒": [t: "小星星"] # 0x2b52 (en: 'white small star', google translation) + - "⭓": [t: "黑向右五角形"] # 0x2b53 (en: 'black right pointing pentagon', google translation) + - "⭔": [t: "向右五角形"] # 0x2b54 (en: 'white right pointing pentagon', google translation) + - "⭕": [t: "粗大圓"] # 0x2b55 (en: 'heavy large circle', google translation) + - "⭖": [t: "雙重橢圓形"] # 0x2b56 (en: 'heavy oval with oval inside', google translation) + - "⭗": [t: "雙重圓"] # 0x2b57 (en: 'heavy circle with circle inside', google translation) + - "⭘": [t: "粗圓"] # 0x2b58 (en: 'heavy circle', google translation) + - "⭙": [t: "粗十字圓"] # 0x2b59 (en: 'heavy circled saltire', google translation) + - "⸀": [t: "直角替代標記"] # 0x2e00 (en: 'right angle substitution marker', google translation) + - "⸁": [t: "直角虛線替代標記"] # 0x2e01 (en: 'right angle dotted substitution marker', google translation) + - "⸂": [t: "左替代括號"] # 0x2e02 (en: 'left substitution bracket', google translation) + - "⸃": [t: "右替代括號"] # 0x2e03 (en: 'right substitution bracket', google translation) + - "⸄": [t: "左虛線替代括號"] # 0x2e04 (en: 'left dotted substitution bracket', google translation) + - "⸅": [t: "右虛線替代括號"] # 0x2e05 (en: 'right dotted substitution bracket', google translation) + - "⸆": [t: "提出的插值標記"] # 0x2e06 (en: 'raised interpolation marker', google translation) + - "⸇": [t: "凸起的虛線插值標記"] # 0x2e07 (en: 'raised dotted interpolation marker', google translation) + - "⸈": [t: "虛線換位標記標記"] # 0x2e08 (en: 'dotted transposition marker marker', google translation) + - "⸉": [t: "左置式支架"] # 0x2e09 (en: 'left transposition bracket', google translation) + - "⸊": [t: "右轉位支架"] # 0x2e0a (en: 'right transposition bracket', google translation) + - "⸋": [t: "高架廣場"] # 0x2e0b (en: 'raised square', google translation) + - "⸌": [t: "左提出的遺漏支架"] # 0x2e0c (en: 'left raised omission bracket', google translation) + - "⸍": [t: "右凸起的遺漏支架"] # 0x2e0d (en: 'right raised omission bracket', google translation) + - "⸎": [t: "社論coronis"] # 0x2e0e (en: 'editorial coronis', google translation) + - "⸏": [t: "段落"] # 0x2e0f (en: 'paragraphos', google translation) + - "⸐": [t: "分叉的段落"] # 0x2e10 (en: 'forked paragraphos', google translation) + - "⸑": [t: "反向叉式段落"] # 0x2e11 (en: 'reversed forked paragraphos', google translation) + - "⸒": [t: "低消血管"] # 0x2e12 (en: 'hypodiastole', google translation) + - "⸓": [t: "虛線的obelos"] # 0x2e13 (en: 'dotted obelos', google translation) + - "⸔": [t: "向下ancora"] # 0x2e14 (en: 'downwards ancora', google translation) + - "⸕": [t: "向上ancora"] # 0x2e15 (en: 'upwards ancora', google translation) + - "⸖": [t: "點綴的右指向角"] # 0x2e16 (en: 'dotted right pointing angle', google translation) + - "⸗": [t: "雙傾斜連字符"] # 0x2e17 (en: 'double oblique hyphen', google translation) + - "⸘": [t: "倒立的跨凸"] # 0x2e18 (en: 'inverted interrobang', google translation) + - "⸙": [t: "棕櫚分支"] # 0x2e19 (en: 'palm branch', google translation) + - "⸚": [t: "連字符,透視"] # 0x2e1a (en: 'hyphen with diaeresis', google translation) + - "⸛": [t: "帶有環上的tilde"] # 0x2e1b (en: 'tilde with ring above', google translation) + - "⸜": [t: "左低術語括號"] # 0x2e1c (en: 'left low paraphrase bracket', google translation) + - "⸝": [t: "右低釋義括號"] # 0x2e1d (en: 'right low paraphrase bracket', google translation) + - "⸞": [t: "上面有點"] # 0x2e1e (en: 'tilde with dot above', google translation) + - "⸟": [t: "tilde在下面的點"] # 0x2e1f (en: 'tilde with dot below', google translation) + - "⸠": [t: "左垂直條帶鵝毛筆"] # 0x2e20 (en: 'left vertical bar with quill', google translation) + - "⸡": [t: "右垂直條帶鵝毛筆"] # 0x2e21 (en: 'right vertical bar with quill', google translation) + - "⸢": [t: "左上半支架"] # 0x2e22 (en: 'top left half bracket', google translation) + - "⸣": [t: "右上半支架"] # 0x2e23 (en: 'top right half bracket', google translation) + - "⸤": [t: "左下半支架"] # 0x2e24 (en: 'bottom left half bracket', google translation) + - "⸥": [t: "右下半支架"] # 0x2e25 (en: 'bottom right half bracket', google translation) + - "⸦": [t: "左側身你支架"] # 0x2e26 (en: 'left sideways u bracket', google translation) + - "⸧": [t: "右側u括號"] # 0x2e27 (en: 'right sideways u bracket', google translation) + - "⸨": [t: "左雙括號"] # 0x2e28 (en: 'left double parentheses', google translation) + - "⸩": [t: "右雙括號"] # 0x2e29 (en: 'right double parentheses', google translation) + - "⸪": [t: "一個點標點符號上有兩個點"] # 0x2e2a (en: 'two dots over one dot punctuation', google translation) + - "⸫": [t: "一個點在兩個點標點符號上"] # 0x2e2b (en: 'one dot over two dots punctuation', google translation) + - "⸬": [t: "平方四個點標點符號"] # 0x2e2c (en: 'squared four dot punctuation', google translation) + - "⸭": [t: "五個點標記"] # 0x2e2d (en: 'five dot mark', google translation) + - "⸮": [t: "反向問號"] # 0x2e2e (en: 'reversed question mark', google translation) + - "ⸯ": [t: "垂直tilde"] # 0x2e2f (en: 'vertical tilde', google translation) + - "⸰": [t: "環點"] # 0x2e30 (en: 'ring point', google translation) + - "⸱": [t: "單詞分離器中間點"] # 0x2e31 (en: 'word separator middle dot', google translation) + - "⸲": [t: "轉了逗號"] # 0x2e32 (en: 'turned comma', google translation) + - "⸳": [t: "凸起的點"] # 0x2e33 (en: 'raised dot', google translation) + - "⸴": [t: "提高逗號"] # 0x2e34 (en: 'raised comma', google translation) + - "⸵": [t: "變成了半隆"] # 0x2e35 (en: 'turned semicolon', google translation) + - "⸶": [t: "匕首與左後衛"] # 0x2e36 (en: 'dagger with left guard', google translation) + - "⸷": [t: "匕首與右後衛"] # 0x2e37 (en: 'dagger with right guard', google translation) + - "⸸": [t: "變成匕首"] # 0x2e38 (en: 'turned dagger', google translation) + - "⸹": [t: "上半場符號"] # 0x2e39 (en: 'top half section sign', google translation) + - "⸺": [t: "兩個em破折號"] # 0x2e3a (en: 'two em dash', google translation) + - "⸻": [t: "三個em破折號"] # 0x2e3b (en: 'three em dash', google translation) + - "〃": [t: "同上馬克"] # 0x3003 (en: 'ditto mark', google translation) + - "〈": [t: "左角支架"] # 0x3008 (en: 'left angle bracket', google translation) + - "〉": [t: "直角支架"] # 0x3009 (en: 'right angle bracket', google translation) + - "《": [t: "左雙角支架"] # 0x300a (en: 'left double angle bracket', google translation) + - "》": [t: "右雙角括號"] # 0x300b (en: 'right double angle bracket', google translation) + - "「": [t: "左角支架"] # 0x300c (en: 'left corner bracket', google translation) + - "」": [t: "右角支架"] # 0x300d (en: 'right corner bracket', google translation) + - "『": [t: "左白角支架"] # 0x300e (en: 'left white corner bracket', google translation) + - "』": [t: "右白角支架"] # 0x300f (en: 'right white corner bracket', google translation) + - "【": [t: "左黑色寬角支架"] # 0x3010 (en: 'left black lenticular bracket', google translation) + - "】": [t: "右黑色寬角支架"] # 0x3011 (en: 'right black lenticular bracket', google translation) + - "〔": [t: "左烏龜殼支架"] # 0x3014 (en: 'left tortoise shell bracket', google translation) + - "〕": [t: "右龜甲支架"] # 0x3015 (en: 'right tortoise shell bracket', google translation) + - "〖": [t: "左白色凸括號"] # 0x3016 (en: 'left white lenticular bracket', google translation) + - "〗": [t: "右白色凸括號"] # 0x3017 (en: 'right white lenticular bracket', google translation) + - "〘": [t: "剩下的白色烏龜殼支架"] # 0x3018 (en: 'left white tortoise shell bracket', google translation) + - "〙": [t: "右白色烏龜殼支架"] # 0x3019 (en: 'right white tortoise shell bracket', google translation) + - "〚": [t: "剩下的白色正方形支架"] # 0x301a (en: 'left white square bracket', google translation) + - "〛": [t: "右白色正方形支架"] # 0x301b (en: 'right white square bracket', google translation) + - "〜": [t: "波浪破折號"] # 0x301c (en: 'wave dash', google translation) + - "〰": [t: "波浪st"] # 0x3030 (en: 'wavy dash', google translation) + - "㉈": [t: "在黑色廣場上盤旋十字"] # 0x3248 (en: 'circled number ten on black square', google translation) + - "㉉": [t: "在黑色廣場上盤旋二十個"] # 0x3249 (en: 'circled number twenty on black square', google translation) + - "㉊": [t: "黑色廣場上的三十個圓數"] # 0x324a (en: 'circled number thirty on black square', google translation) + - "㉋": [t: "在黑色廣場上盤旋40個"] # 0x324b (en: 'circled number forty on blacks square', google translation) + - "㉌": [t: "黑色廣場上的五十個圓圈"] # 0x324c (en: 'circled number fifty on black square', google translation) + - "㉍": [t: "在黑色廣場上盤旋六十"] # 0x324d (en: 'circled number sixty on black square', google translation) + - "㉎": [t: "在黑色廣場上盤旋七十"] # 0x324e (en: 'circled number seventy on black square', google translation) + - "㉏": [t: "在黑色廣場上盤旋八十"] # 0x324f (en: 'circled number eighty on black square', google translation) + - "㉑": [T: "圈圈21"] # 0x3251 (en: 'circled number twenty one', google translation) + - "㉒": [T: "圈圈22"] # 0x3252 (en: 'circled number twenty two', google translation) + - "㉓": [T: "圈圈23"] # 0x3253 (en: 'circled number twenty three', google translation) + - "㉔": [T: "圈圈24"] # 0x3254 (en: 'circled number twenty four', google translation) + - "㉕": [T: "圈圈25"] # 0x3255 (en: 'circled number twenty five', google translation) + - "㉖": [T: "圈圈26"] # 0x3256 (en: 'circled number twenty six', google translation) + - "㉗": [T: "圈圈27"] # 0x3257 (en: 'circled number twenty seven', google translation) + - "㉘": [T: "圈圈28"] # 0x3258 (en: 'circled number twenty eight', google translation) + - "㉙": [T: "圈圈29"] # 0x3259 (en: 'circled number twenty nine', google translation) + - "㉚": [T: "圈圈30"] # 0x325a (en: 'circled number thirty', google translation) + - "㉛": [T: "圈圈31"] # 0x325b (en: 'circled number thirty one', google translation) + - "㉜": [T: "圈圈32"] # 0x325c (en: 'circled number thirty two', google translation) + - "㉝": [T: "圈圈33"] # 0x325d (en: 'circled number thirty three', google translation) + - "㉞": [T: "圈圈34"] # 0x325e (en: 'circled number thirty four', google translation) + - "㉟": [T: "圈圈35"] # 0x325f (en: 'circled number thirty five', google translation) + - "㊱": [T: "圈圈36"] # 0x32b1 (en: 'circled number thirty six', google translation) + - "㊲": [T: "圈圈37"] # 0x32b2 (en: 'circled number thirty seven', GPT-5.4 translation) + - "㊳": [T: "圈圈38"] # 0x32b3 (en: 'circled number thirty eight', GPT-5.4 translation) + - "㊴": [T: "圈圈39"] # 0x32b4 (en: 'circled number thirty nine', GPT-5.4 translation) + - "㊵": [T: "圈圈40"] # 0x32b5 (en: 'circled number forty', GPT-5.4 translation) + - "㊶": [T: "圈圈41"] # 0x32b6 (en: 'circled number forty one', GPT-5.4 translation) + - "㊷": [T: "圈圈42"] # 0x32b7 (en: 'circled number forty two', GPT-5.4 translation) + - "㊸": [T: "圈圈43"] # 0x32b8 (en: 'circled number forty three', GPT-5.4 translation) + - "㊹": [T: "圈圈44"] # 0x32b9 (en: 'circled number forty four', GPT-5.4 translation) + - "㊺": [T: "圈圈45"] # 0x32ba (en: 'circled number forty five', GPT-5.4 translation) + - "㊻": [T: "圈圈46"] # 0x32bb (en: 'circled number forty six', GPT-5.4 translation) + - "㊼": [T: "圈圈47"] # 0x32bc (en: 'circled number forty seven', GPT-5.4 translation) + - "㊽": [T: "圈圈48"] # 0x32bd (en: 'circled number forty eight', GPT-5.4 translation) + - "㊾": [T: "圈圈49"] # 0x32be (en: 'circled number forty nine', GPT-5.4 translation) + - "㊿": [T: "圈圈50"] # 0x32bf (en: 'circled number fifty', GPT-5.4 translation) + - "㋌": [T: "汞柱"] # 0x32cc (en: 'mercury', google translation) + - "㋍": [T: "耳格"] # 0x32cd (google translation) + - "㋎": [T: "電子伏特"] # 0x32ce (en: 'electron volts', google translation) + - "㋏": [T: "有限責任標誌"] # 0x32cf (en: 'limited liability sign', google translation) + - "㍱": [T: "百帕"] # 0x3371 (en: 'hectopascals', google translation) + - "㍲": [T: "道爾頓"] # 0x3372 (en: 'daltons', google translation) + - "㍳": [T: "天文單位"] # 0x3373 (en: 'astronomical units', google translation) + - "㍴": [T: "巴"] # 0x3374 (en: 'bars', google translation) + - "㍵": [t: "o v"] # 0x3375 (google translation) + - "㍶": [T: "秒差距"] # 0x3376 (google translation) + - "㍷": [T: "分米"] # 0x3377 (en: 'decimeters', google translation) + - "㍸": [T: "平方分米"] # 0x3378 (en: 'decimeters squared', google translation) + - "㍹": [T: "立方分米"] # 0x3379 (en: 'decimeters cubed', google translation) + - "㍺": [t: "樂器單元"] # 0x337a (en: 'instrumental units', google translation) + - "㎀": [T: "皮安培"] # 0x3380 (google translation) + - "㎁": [T: "奈安培"] # 0x3381 (en: 'nanoamps', google translation) + - "㎂": [T: "微安培"] # 0x3382 (en: 'microamps', google translation) + - "㎃": [T: "毫安培"] # 0x3383 (en: 'milliamps', google translation) + - "㎄": [T: "千安培"] # 0x3384 (en: 'kiloamps', google translation) + - "㎅": [T: "KB"] # 0x3385 (en: 'kilobytes', google translation) + - "㎆": [T: "MB"] # 0x3386 (en: 'megabytes', google translation) + - "㎇": [T: "GB"] # 0x3387 (en: 'gigabytes', google translation) + - "㎈": [T: "卡"] # 0x3388 (en: 'calories', google translation) + - "㎉": [T: "大卡"] # 0x3389 (en: 'kilocalories', google translation) + - "㎊": [T: "皮法拉"] # 0x338a (google translation) + - "㎋": [T: "奈法拉"] # 0x338b (en: 'nanofarads', google translation) + - "㎌": [T: "微法拉"] # 0x338c (en: 'microfarads', google translation) + - "㎍": [T: "微克"] # 0x338d (en: 'micrograms', google translation) + - "㎎": [T: "毫克"] # 0x338e (en: 'milligrams', google translation) + - "㎏": [T: "公斤"] # 0x338f (en: 'kilograms', google translation) + - "㎐": [T: "赫茲"] # 0x3390 (en: 'hertz', google translation) + - "㎑": [T: "千赫"] # 0x3391 (en: 'kilohertz', google translation) + - "㎒": [T: "百萬赫"] # 0x3392 (en: 'megahertz', google translation) + - "㎓": [T: "吉赫"] # 0x3393 (en: 'gigahertz', google translation) + - "㎔": [T: "兆赫"] # 0x3394 (google translation) + - "㎕": [T: "微升"] # 0x3395 (en: 'microliters', google translation) + - "㎖": [T: "毫升"] # 0x3396 (en: 'milliliters', google translation) + - "㎗": [T: "分升"] # 0x3397 (en: 'deciliters', google translation) + - "㎘": [T: "公秉"] # 0x3398 (en: 'kiloliters', google translation) + - "㎙": [T: "飛米"] # 0x3399 (google translation) + - "㎚": [T: "奈米"] # 0x339a (en: 'nanometers', google translation) + - "㎛": [T: "微米"] # 0x339b (en: 'micrometers', google translation) + - "㎜": [T: "毫米"] # 0x339c (en: 'millimeters', google translation) + - "㎝": [T: "公分"] # 0x339d (en: 'centimeters', google translation) + - "㎞": [T: "公里"] # 0x339e (en: 'kilometers', google translation) + - "㎟": [T: "平方毫米"] # 0x339f (en: 'millimeters squared', google translation) + - "㎠": [T: "平方公分"] # 0x33a0 (en: 'centimeters squared', google translation) + - "㎡": [T: "平方公尺"] # 0x33a1 (en: 'meters squared', google translation) + - "㎢": [T: "平方公里"] # 0x33a2 (en: 'kilometers squared', google translation) + - "㎣": [T: "立方毫米"] # 0x33a3 (en: 'millimeters cubed', google translation) + - "㎤": [T: "立方公分"] # 0x33a4 (en: 'centimeters cubed', google translation) + - "㎥": [T: "立方公尺"] # 0x33a5 (en: 'meters cubed', google translation) + - "㎦": [T: "立方公里"] # 0x33a6 (en: 'kilometers cubed', google translation) + - "㎧": [T: "公尺/秒"] # 0x33a7 (en: 'meters per second', google translation) + - "㎨": [T: "公尺/平方秒"] # 0x33a8 (en: 'meters per second squared', google translation) + - "㎩": [T: "帕"] # 0x33a9 (en: 'pascals', google translation) + - "㎪": [T: "千帕"] # 0x33aa (google translation) + - "㎫": [T: "百萬帕"] # 0x33ab (en: 'megapascals', google translation) + - "㎬": [T: "吉帕"] # 0x33ac (google translation) + - "㎭": [T: "弳"] # 0x33ad (en: 'rads', google translation) + - "㎮": [T: "弳/秒"] # 0x33ae (en: 'rads per second', google translation) + - "㎯": [T: "弳/平方秒"] # 0x33af (en: 'rads per second squared', google translation) + - "㎰": [T: "皮秒"] # 0x33b0 (en: 'picoseconds', google translation) + - "㎱": [T: "奈秒"] # 0x33b1 (en: 'nanoseconds', google translation) + - "㎲": [T: "微秒"] # 0x33b2 (en: 'microseconds', google translation) + - "㎳": [T: "毫秒"] # 0x33b3 (en: 'milliseconds', google translation) + - "㎴": [T: "皮伏特"] # 0x33b4 (google translation) + - "㎵": [T: "奈伏特"] # 0x33b5 (en: 'nanovolts', google translation) + - "㎶": [T: "微伏特"] # 0x33b6 (en: 'microvolts', google translation) + - "㎷": [T: "毫伏特"] # 0x33b7 (en: 'millivolts', google translation) + - "㎸": [T: "千伏特"] # 0x33b8 (en: 'kilovolts', google translation) + - "㎹": [T: "百萬伏特"] # 0x33b9 (google translation) + - "㎺": [T: "皮瓦"] # 0x33ba (google translation) + - "㎻": [T: "奈瓦"] # 0x33bb (en: 'nanowatts', google translation) + - "㎼": [T: "微瓦"] # 0x33bc (google translation) + - "㎽": [T: "毫瓦"] # 0x33bd (en: 'milliwatts', google translation) + - "㎾": [T: "千瓦"] # 0x33be (en: 'kilowatts', google translation) + - "㎿": [T: "百萬瓦"] # 0x33bf (en: 'megawatts', google translation) + - "㏀": [T: "千歐姆"] # 0x33c0 (en: 'kilo-ohms', google translation) + - "㏁": [T: "百萬歐姆"] # 0x33c1 (google translation) + - "㏂": [t: "attometers"] # 0x33c2 (google translation) + - "㏃": [T: "貝克"] # 0x33c3 (en: 'becquerels', google translation) + - "㏄": [T: "cc"] # 0x33c4 (en: 'cubic centimeters', google translation) + - "㏅": [T: "燭光"] # 0x33c5 (en: 'candelas', google translation) + - "㏆": [T: "庫侖/公斤"] # 0x33c6 (en: 'coulombs per kilogram', google translation) + - "㏇": [t: "cardiac output"] # 0x33c7 (en: 'cardiac output', google translation) + - "㏈": [T: "分貝"] # 0x33c8 (en: 'decibels', google translation) + - "㏉": [T: "戈雷"] # 0x33c9 (en: 'grays', google translation) + - "㏊": [T: "公頃"] # 0x33ca (en: 'hectares', google translation) + - "㏋": [T: "馬力"] # 0x33cb (en: 'horsepower', google translation) + - "㏌": [T: "英寸"] # 0x33cc (en: 'inches', google translation) + - "㏍": [t: "kilokelvins"] # 0x33cd (google translation) + - "㏎": [T: "公里"] # 0x33ce (en: 'kilometers', google translation) + - "㏏": [T: "節"] # 0x33cf (en: 'knots', google translation) + - "㏐": [T: "流明"] # 0x33d0 (en: 'lumens', google translation) + - "㏑": [T: "自然對數"] # 0x33d1 (en: 'natural log', google translation) + - "㏒": [T: "對數"] # 0x33d2 (en: 'logarithm', google translation) + - "㏓": [T: "勒克斯"] # 0x33d3 (en: 'lux', google translation) + - "㏔": [T: "毫邦"] # 0x33d4 (google translation) + - "㏕": [T: "密耳"] # 0x33d5 (en: 'mills', google translation) + - "㏖": [T: "莫耳"] # 0x33d6 (en: 'moles', google translation) + - "㏗": [T: "pH"] # 0x33d7 (google translation) + - "㏘": [t: "picometers"] # 0x33d8 (en: 'picometers', google translation) + - "㏙": [T: "PPM"] # 0x33d9 (en: 'parts per million', google translation) + - "㏚": [T: "拍侖琴"] # 0x33da (google translation) + - "㏛": [T: "立弳"] # 0x33db (en: 'steradians', google translation) + - "㏜": [T: "西弗"] # 0x33dc (google translation) + - "㏝": [T: "韋伯"] # 0x33dd (en: 'webers', google translation) + - "㏞": [T: "伏特/公尺"] # 0x33de (en: 'volts per meter', google translation) + - "㏟": [T: "安培/公尺"] # 0x33df (en: 'amps per meter', google translation) + - "㏿": [T: "加侖"] # 0x33ff (en: 'gallons', google translation) + - "": [t: "等於下面的帽子"] # 0xe900 (en: 'equals with hat below', google translation) + - "": [t: "等於上面"] # 0xe901 (en: 'equals with plus above', google translation) + - "": [t: "等於下方"] # 0xe902 (en: 'equals with plus below', google translation) + - "": [t: "帶有上面的蒂爾德"] # 0xe903 (en: 'tilde with plus above', google translation) + - "": [t: "蒂爾德(tilde),加上下方"] # 0xe904 (en: 'tilde with plus below', google translation) + - "": [t: "相等的雙倍超過大於"] # 0xe908 (en: 'equal double over greater than', google translation) + - "": [t: "相等的雙倍超過少於"] # 0xe909 (en: 'equal double over less than', google translation) + - "": [t: "包含或等於"] # 0xe90a (en: 'contains or equal to', google translation) + - "": [t: "超級或等於"] # 0xe90b (en: 'superset of or equal to', google translation) + - "": [t: "子集或等於"] # 0xe90c (en: 'subset of or equal to', google translation) + - "": [t: "等於少於"] # 0xe90d (en: 'equal over less than', google translation) + - "": [t: "元素或等於"] # 0xe912 (en: 'element of or equal to', google translation) + - "": [t: "等於或大於或大於"] # 0xe913 (en: 'equal to or greater than', google translation) + - "": [t: "大約超集"] # 0xe914 (en: 'approximate superset of', google translation) + - "": [t: "大約子集"] # 0xe915 (en: 'approximate subset of', google translation) + - "": [t: "與dot的超集包含子關係"] # 0xe916 (en: 'superset of with dot includes as sub relation', google translation) + - "": [t: "as子關係中包含with dot的子集"] # 0xe917 (en: 'subset of with dot is included in as sub relation', google translation) + - "": [t: "與以下點相等"] # 0xe918 (en: 'equal with dot below', google translation) + - "": [t: "在右點上左點左點"] # 0xe919 (en: 'left dot over minus over right dot', google translation) + - "": [t: "右點在左點上負"] # 0xe91a (en: 'right dot over minus over left dot', google translation) + - "": [t: "幾乎等於負"] # 0xe91f (en: 'almost equal to minus', google translation) + - "": [t: "雙方杯"] # 0xe920 (en: 'double square cup', google translation) + - "": [t: "雙方大寫"] # 0xe921 (en: 'double square cap', google translation) + - "": [t: "小於或大於或大於"] # 0xe922 (en: 'less than equal to or greater than', google translation) + - "": [t: "蒂爾德與點"] # 0xe924 (en: 'tilde with dot', google translation) + - "": [t: "帶有兩個點"] # 0xe925 (en: 'tilde with two dots', google translation) + - "": [t: "小於大於或等於"] # 0xe926 (en: 'less than greater than or equal to', google translation) + - "": [t: "大於或等於或等於"] # 0xe927 (en: 'greater than less than or equal to', google translation) + - "": [t: "等效於或小於或小"] # 0xe928 (en: 'equivalent to or less than', google translation) + - "": [t: "等效於或大於或大"] # 0xe929 (en: 'equivalent to or greater than', google translation) + - "": [t: "左打開盒操作員"] # 0xe92a (en: 'left open box operator', google translation) + - "": [t: "右打開框操作員"] # 0xe92b (en: 'right open box operator', google translation) + - "": [t: "與點相同"] # 0xe92c (en: 'identical to with dot', google translation) + - "": [t: "大於或等於或小於或小"] # 0xe92d (en: 'greater than equal to or less than', google translation) + - "": [t: "酒吧操作員"] # 0xe92e (en: 'bar operator', google translation) + - "": [t: "雙桿操作員"] # 0xe92f (en: 'double bar operator', google translation) + - "": [t: "三桿操作員"] # 0xe930 (en: 'triple bar operator', google translation) + - "": [t: "小於或大約等於"] # 0xe932 (en: 'less than or approximately equal to', google translation) + - "": [t: "大於或大約等於"] # 0xe933 (en: 'greater than or approximately equal to', google translation) + - "": [t: "嵌套比"] # 0xe936 (en: 'nested less than', google translation) + - "": [t: "嵌套大於"] # 0xe937 (en: 'nested greater than', google translation) + - "": [t: "前面或等效"] # 0xe93a (en: 'precedes or equivalent to', google translation) + - "": [t: "成功或等同於"] # 0xe93b (en: 'succeeds or equivalent to', google translation) + - "": [t: "在相等的之前"] # 0xe940 (en: 'precedes over equal', google translation) + - "": [t: "超越平等"] # 0xe941 (en: 'succeeds over equal', google translation) + - "": [t: "降低的傾斜度較小"] # 0xe942 (en: 'less equal slanted greater', google translation) + - "": [t: "更大的相等傾斜較少"] # 0xe943 (en: 'greater equal slanted less', google translation) + - "": [t: "滿足"] # 0xe948 (en: 'satisfied by', google translation) + - "": [t: "懶惰"] # 0xe949 (en: 'lazy s', google translation) + - "": [t: "不斷言"] # 0xe94a (en: 'not assertion', google translation) + - "": [t: "雙等相等"] # 0xe94b (en: 'double equal', google translation) + - "": [t: "三重相等"] # 0xe94c (en: 'triple equal', google translation) + - "": [t: "規則延遲"] # 0xe94d (en: 'rule delayed', google translation) + - "": [t: "別名定界符"] # 0xe94e (en: 'alias delimiter', google translation) + - "": [t: "與條的正常亞組"] # 0xe950 (en: 'normal subgroup of with bar', google translation) + - "": [t: "包含與bar一樣正常的亞組"] # 0xe951 (en: 'contains as normal subgroup with bar', google translation) + - "": [t: "圓形暗示"] # 0xe954 (en: 'round implies', google translation) + - "": [t: "在酒吧下微笑"] # 0xe955 (en: 'smile under bar', google translation) + - "": [t: "皺著眉頭"] # 0xe956 (en: 'frown over bar', google translation) + - "": [t: "超級或幾乎等於"] # 0xe957 (en: 'superset of or almost equal to', google translation) + - "": [t: "子集的子集或幾乎等於"] # 0xe958 (en: 'subset of or almost equal to', google translation) + - "": [t: "大於幾乎等於或小於或小"] # 0xe959 (en: 'greater than almost equal to or less than', google translation) + - "": [t: "小於幾乎等於或大於"] # 0xe95a (en: 'less than almost equal or greater than', google translation) + - "": [t: "雙邏輯或"] # 0xe95c (en: 'double logical or', google translation) + - "": [t: "雙重邏輯和"] # 0xe95d (en: 'double logical and', google translation) + - "": [t: "邏輯或雙欄以下"] # 0xe95e (en: 'logical or with double bar below', google translation) + - "": [t: "邏輯或在下面的欄"] # 0xe95f (en: 'logical or with bar below', google translation) + - "": [t: "幾乎相等"] # 0xe962 (en: 'almost equal over equal', google translation) + - "": [t: "左指向三角形,並帶有一分為二的條"] # 0xe964 (en: 'left pointing triangle with bisecting bar', google translation) + - "": [t: "正確指向三角形與二等欄"] # 0xe965 (en: 'right pointing triangle with bisecting bar', google translation) + - "": [t: "等於虛線頂線"] # 0xe966 (en: 'equals with dotted top line', google translation) + - "": [t: "在結腸之前"] # 0xe967 (en: 'precedes with colon', google translation) + - "": [t: "與結腸成功"] # 0xe968 (en: 'succeeds with colon', google translation) + - "": [t: "小於或相等的傾斜"] # 0xe969 (en: 'smaller than or equal slanted', google translation) + - "": [t: "大於或相等的傾斜"] # 0xe96a (en: 'larger than or equal slanted', google translation) + - "": [t: "嵌套得遠小得多"] # 0xe96b (en: 'nested very much less than', google translation) + - "": [t: "嵌套比大得多"] # 0xe96c (en: 'nested very much greater than', google translation) + - "": [t: "變體之間的差異"] # 0xe96d (en: 'difference between variant', google translation) + - "": [t: "小於覆蓋層"] # 0xe96e (en: 'less than greater than overlay', google translation) + - "": [t: "邏輯或邏輯和覆蓋"] # 0xe96f (en: 'logical or logical and overlay', google translation) + - "": [t: "超級超集"] # 0xe970 (en: 'superset over superset', google translation) + - "": [t: "子集對子集"] # 0xe971 (en: 'subset over subset', google translation) + - "": [t: "超級子集"] # 0xe972 (en: 'superset over subset', google translation) + - "": [t: "子集超級集"] # 0xe973 (en: 'subset over superset', google translation) + - "": [t: "三重垂直條"] # 0xe979 (en: 'triple vertical bar', google translation) + - "": [t: "配對的四倍垂直點"] # 0xe97a (en: 'paired quadruple vertical dots', google translation) + - "": [t: "垂直於欄"] # 0xe97b (en: 'perpendicular over bar', google translation) + - "": [t: "左旋轉門雙垂直條"] # 0xe97c (en: 'left turnstile double vertical bar', google translation) + - "": [t: "雙左旋轉門雙垂直條"] # 0xe97d (en: 'double left turnstile double vertical bar', google translation) + - "": [t: "垂直於垂直的垂直"] # 0xe97e (en: 'perpendicular over inverted perpendicular', google translation) + - "": [t: "雙左旋轉門垂直條"] # 0xe97f (en: 'double left turnstile vertical bar', google translation) + - "": [t: "球形角度開放"] # 0xe980 (en: 'spherical angle opening up', google translation) + - "": [t: "雙斜線"] # 0xe981 (en: 'double slash', google translation) + - "": [t: "與角落直角"] # 0xe982 (en: 'right angle with corner', google translation) + - "": [t: "盤旋垂直條"] # 0xe984 (en: 'circled vertical bar', google translation) + - "": [t: "圓形的劃分標誌"] # 0xe985 (en: 'circled division sign', google translation) + - "": [t: "虛線"] # 0xe986 (en: 'dashed solidus', google translation) + - "": [t: "虛線後斜線"] # 0xe987 (en: 'dashed backslash', google translation) + - "": [t: "虛線中線"] # 0xe988 (en: 'dashed mid line', google translation) + - "": [t: "虛擬的垂直條"] # 0xe989 (en: 'dashed vertical bar', google translation) + - "": [t: "垂直於s"] # 0xe98a (en: 'perpendicular with s', google translation) + - "": [t: "與s的角度"] # 0xe98b (en: 'angle with s', google translation) + - "": [t: "球形角度左開"] # 0xe98c (en: 'spherical angle opening left', google translation) + - "": [t: "左角開口"] # 0xe98d (en: 'angle opening left', google translation) + - "": [t: "帶雙鉤的垂直條"] # 0xe98e (en: 'vertical bar with double hook', google translation) + - "": [t: "中點操作員自由基"] # 0xe98f (en: 'medium dot operator free radical', google translation) + - "": [t: "白色指向三角形上方"] # 0xe990 (en: 'white up pointing triangle above bar', google translation) + - "": [t: "相同且平行"] # 0xe991 (en: 'identical and parallel to', google translation) + - "": [t: "粉碎產品"] # 0xe992 (en: 'smash product', google translation) + - "": [t: "帶有水平條的三重桿操作員"] # 0xe993 (en: 'triple bar operator with horizontal bar', google translation) + - "": [t: "與雙斜線相同"] # 0xe994 (en: 'identical to with double slash', google translation) + - "": [t: "三重越過條"] # 0xe995 (en: 'triple crossed bars', google translation) + - "": [t: "圓形的垂直條"] # 0xe996 (en: 'vertical bar over circle', google translation) + - "": [t: "垂直成正比"] # 0xe997 (en: 'vertical proportional to', google translation) + - "": [t: "黑色最後一季度月亮"] # 0xe998 (en: 'black last quarter moon', google translation) + - "": [t: "黑色第一季度月亮"] # 0xe999 (en: 'black first quarter moon', google translation) + - "": [t: "負正弦波"] # 0xe9a0 (en: 'negative sine wave', google translation) + - "": [t: "括號插曲的點"] # 0xe9a1 (en: 'parenthesized dot', google translation) + - "": [t: "括號"] # 0xe9a2 (en: 'parens', google translation) + - "": [t: "白色的微笑"] # 0xe9a3 (en: 'white smile', google translation) + - "": [t: "白色皺眉"] # 0xe9a4 (en: 'white frown', google translation) + - "": [t: "六邊形"] # 0xe9a5 (en: 'hexagon', google translation) + - "": [t: "等效於超級"] # 0xe9a6 (en: 'equivalent to over plus', google translation) + - "": [t: "加上相當於"] # 0xe9a7 (en: 'plus over equivalent to', google translation) + - "": [t: "交點襯線"] # 0xe9b0 (en: 'intersection serifs', google translation) + - "": [t: "聯盟襯線"] # 0xe9b1 (en: 'union serifs', google translation) + - "": [t: "方形交叉襯線"] # 0xe9b2 (en: 'square intersection serifs', google translation) + - "": [t: "平方聯盟襯線"] # 0xe9b3 (en: 'square union serifs', google translation) + - "": [t: "先於等同於或成功"] # 0xe9e0 (en: 'precedes equivalent to or succeeds', google translation) + - "": [t: "成功等同於或先前"] # 0xe9e1 (en: 'succeeds equivalent to or precedes', google translation) + - "": [t: "在幾乎等於或成功之前"] # 0xe9e2 (en: 'precedes almost equal to or succeeds', google translation) + - "": [t: "成功幾乎等於或先前"] # 0xe9e3 (en: 'succeeds almost equal to or precedes', google translation) + - "": [t: "小於或大於或大於"] # 0xe9f0 (en: 'less than equivalent to or greater than', google translation) + - "": [t: "大於或等同於或小於或小"] # 0xe9f1 (en: 'greater than equivalent to or less than', google translation) + - "": [t: "不遠遠遠不止於此"] # 0xea00 (en: 'not vert much less than', google translation) + - "": [t: "不超過比這大得多"] # 0xea01 (en: 'not vert much greater than', google translation) + - "": [t: "不少於變體"] # 0xea02 (en: 'not much less than variant', google translation) + - "": [t: "不比變體大得多"] # 0xea03 (en: 'not much greater than variant', google translation) + - "": [t: "較少的vert不相等"] # 0xea04 (en: 'less vert not double equals', google translation) + - "": [t: "gt vert不相等"] # 0xea05 (en: 'gt vert not double equals', google translation) + - "": [t: "不小於或等於"] # 0xea06 (en: 'not less than or equal to', google translation) + - "": [t: "不大於或等於"] # 0xea07 (en: 'not greater than or equal to', google translation) + - "": [t: "既不等於也不等於"] # 0xea09 (en: 'neither equal to nor less than', google translation) + - "": [t: "不包含或等於"] # 0xea0a (en: 'does not contain or equal to', google translation) + - "": [t: "既不等於也不等於"] # 0xea0b (en: 'neither superset of nor equal to', google translation) + - "": [t: "既不等於也不等於"] # 0xea0c (en: 'neither subset of nor equal to', google translation) + - "": [t: "反向固體子集"] # 0xea0d (en: 'reverse solidus subset', google translation) + - "": [t: "既不等於也不大"] # 0xea0e (en: 'neither equal to nor greater than', google translation) + - "": [t: "不是減去tilde操作員"] # 0xea0f (en: 'not minus tilde operator', google translation) + - "": [t: "既不等於也不等於"] # 0xea10 (en: 'neither equal to nor less than', google translation) + - "": [t: "不是tilde操作員"] # 0xea11 (en: 'not tilde operator', google translation) + - "": [t: "不是或等於元素"] # 0xea12 (en: 'not element of or equal to', google translation) + - "": [t: "既不等於也不大"] # 0xea13 (en: 'neither equal to nor greater than', google translation) + - "": [t: "幾乎不相等"] # 0xea14 (en: 'not almost equal', google translation) + - "": [t: "成功不一樣"] # 0xea15 (en: 'not succeeds similar', google translation) + - "": [t: "小於或傾斜等於斜線"] # 0xea16 (en: 'less than or slanted equal to with slash', google translation) + - "": [t: "大於或傾斜等於斜線"] # 0xea17 (en: 'greater than or slanted equal to with slash', google translation) + - "": [t: "superset solidus"] # 0xea1a (google translation) + - "": [t: "不含"] # 0xea1b (en: 'does not contain', google translation) + - "": [t: "不小於或等於"] # 0xea1d (en: 'not less than or equal to', google translation) + - "": [t: "不大於或等於"] # 0xea1e (en: 'not greater than or equal to', google translation) + - "": [t: "幾乎不等於負"] # 0xea1f (en: 'not almost equal to minus', google translation) + - "": [t: "上面否定的會員點"] # 0xea22 (en: 'negated set membership dot above', google translation) + - "": [t: "不是垂直角度"] # 0xea2c (en: 'not vert angle', google translation) + - "": [t: "不平行"] # 0xea2d (en: 'not parallel slanted', google translation) + - "": [t: "不是吧台操作員"] # 0xea2e (en: 'not bar operator', google translation) + - "": [t: "不是雙欄操作員"] # 0xea2f (en: 'not double bar operator', google translation) + - "": [t: "不是三重欄操作員"] # 0xea30 (en: 'not triple bar operator', google translation) + - "": [t: "小於但不等於"] # 0xea32 (en: 'less than but not approximately equal to', google translation) + - "": [t: "大於但不等於"] # 0xea33 (en: 'greater than but not approximately equal to', google translation) + - "": [t: "小於或不等於"] # 0xea34 (en: 'less than or not equal to', google translation) + - "": [t: "大於或不等於"] # 0xea35 (en: 'greater than or not equal to', google translation) + - "": [t: "不嵌套比"] # 0xea36 (en: 'not nested less than', google translation) + - "": [t: "嵌套不大"] # 0xea37 (en: 'not nested greater than', google translation) + - "": [t: "遠不止"] # 0xea38 (en: 'not much less than', google translation) + - "": [t: "不超過大量"] # 0xea39 (en: 'not much greater than', google translation) + - "": [t: "前面但不等同"] # 0xea3a (en: 'precedes but not equivalent to', google translation) + - "": [t: "成功但不等同"] # 0xea3b (en: 'succeeds but not equivalent to', google translation) + - "": [t: "前面但不等於"] # 0xea3c (en: 'precedes but not equal to', google translation) + - "": [t: "成功但不等於"] # 0xea3d (en: 'succeeds but not equal to', google translation) + - "": [t: "不等於或之前"] # 0xea3e (en: 'does not equal or precede', google translation) + - "": [t: "不等或成功"] # 0xea3f (en: 'does not equal or succeed', google translation) + - "": [t: "前面但不等於"] # 0xea40 (en: 'precedes but not equal to', google translation) + - "": [t: "成功但不等於"] # 0xea41 (en: 'succeeds but not equal to', google translation) + - "": [t: "不等於"] # 0xea42 (en: 'not subset of nor equal to', google translation) + - "": [t: "不等於或不等於"] # 0xea43 (en: 'not superset of nor equal to', google translation) + - "": [t: "子集或不等於"] # 0xea44 (en: 'subset of or not equal to', google translation) + - "": [t: "超級或不等於"] # 0xea45 (en: 'superset of or not equal to', google translation) + - "": [t: "不等於"] # 0xea46 (en: 'not subset of nor equal to', google translation) + - "": [t: "不等於或不等於"] # 0xea47 (en: 'not superset of nor equal to', google translation) + - "": [t: "不小於三倍"] # 0xea48 (en: 'not triple less than', google translation) + - "": [t: "不大於三倍"] # 0xea49 (en: 'not triple greater than', google translation) + - "": [t: "不在之前"] # 0xea4c (en: 'not precedes equals', google translation) + - "": [t: "不成功"] # 0xea4d (en: 'not succeeds equals', google translation) + - "": [t: "不是bar的正常亞組"] # 0xea50 (en: 'not normal subgroup of with bar', google translation) + - "": [t: "不包含帶有bar的正常亞組"] # 0xea51 (en: 'does not contain as normal subgroup with bar', google translation) + - "": [t: "之間沒有區別"] # 0xea52 (en: 'not difference between', google translation) + - "": [t: "在幾何上等同於"] # 0xea53 (en: 'not geometrically equivalent to', google translation) + - "": [t: "不類似"] # 0xea54 (en: 'not vert similar', google translation) + - "": [t: "不相等或相似"] # 0xea55 (en: 'not equal or similar', google translation) + - "": [t: "不是近似值"] # 0xea56 (en: 'not vert approximate', google translation) + - "": [t: "與大致相同"] # 0xea57 (en: 'not approximately identical to', google translation) + - "": [t: "不等於顛簸"] # 0xea58 (en: 'not bumpy equals', google translation) + - "": [t: "不顛簸的單相等"] # 0xea59 (en: 'not bumpy single equals', google translation) + - "": [t: "不相等的點"] # 0xea5a (en: 'not equal dot', google translation) + - "": [t: "反向不等效"] # 0xea5b (en: 'reverse not equivalent', google translation) + - "": [t: "不是正方形子集"] # 0xea60 (en: 'not square subset', google translation) + - "": [t: "不是方形超集"] # 0xea61 (en: 'not square superset', google translation) + - "": [t: "幾乎不等於相等"] # 0xea62 (en: 'not almost equal over equal', google translation) + - "": [t: "並非嚴格等同"] # 0xea63 (en: 'not strictly equivalent to', google translation) + - "": [t: "不是一致的點"] # 0xea64 (en: 'not congruent dot', google translation) + - "": [t: "反向不相等"] # 0xea65 (en: 'reverse not equal', google translation) + - "": [t: "不是左三角形等於"] # 0xea70 (en: 'not vert left triangle equals', google translation) + - "": [t: "不是右三角形等於"] # 0xea71 (en: 'not vert right triangle equals', google translation) + - "": [t: "不是部分"] # 0xea80 (en: 'not partial', google translation) + - "": [t: "箭頭裝飾擴展器"] # 0xeb00 (en: 'arrow embellishment extender', google translation) + - "": [t: "箭頭向右箭頭"] # 0xeb01 (en: 'arrow rightwards over arrow leftwards', google translation) + - "": [t: "箭頭向右箭頭"] # 0xeb02 (en: 'arrow rightwards over arrow leftwards', google translation) + - "": [t: "魚叉向左走"] # 0xeb03 (en: 'harpoon right over harpoon left', google translation) + - "": [t: "魚叉向左走"] # 0xeb04 (en: 'harpoon right over harpoon left', google translation) + - "": [t: "東北東北"] # 0xeb05 (en: 'double arrow northeast southwest', google translation) + - "": [t: "東南部雙箭頭"] # 0xeb06 (en: 'double arrow northwest southeast', google translation) + - "": [t: "水平魚叉擴展器"] # 0xeb07 (en: 'horizontal harpoon extender', google translation) + - "": [t: "逆時針弧向左箭頭"] # 0xeb08 (en: 'anticlockwise arc leftwards arrow', google translation) + - "": [t: "逆時針弧向右箭頭"] # 0xeb09 (en: 'anticlockwise arc rightwards arrow', google translation) + - "": [t: "大右箭頭重音"] # 0xeb0b (en: 'large rightwards arrow accent', google translation) + - "": [t: "大的左箭頭重音"] # 0xeb0c (en: 'large leftwards arrow accent', google translation) + - "": [t: "左箭頭"] # 0xeb0d (en: 'leftwards arrowhead', google translation) + - "": [t: "向右箭頭"] # 0xeb0e (en: 'rightwards arrowhead', google translation) + - "": [t: "大左右箭頭帶中風"] # 0xeb0f (en: 'large left right arrow with stroke', google translation) + - "": [t: "水平雙箭頭擴展器"] # 0xeb10 (en: 'horizontal double arrow extender', google translation) + - "": [t: "大左右雙箭頭帶中風"] # 0xeb11 (en: 'large left right double arrow with stroke', google translation) + - "": [t: "向下向下箭頭箭頭"] # 0xeb12 (en: 'downwards arrow leftwards of upwards arrow', google translation) + - "": [t: "向左箭頭向下拐角"] # 0xeb13 (en: 'leftwards arrow with corner downwards', google translation) + - "": [t: "向右的箭頭向上"] # 0xeb14 (en: 'rightwards arrow with corner upwards', google translation) + - "": [t: "向左箭頭向上"] # 0xeb15 (en: 'leftwards arrow with corner upwards', google translation) + - "": [t: "逆時針方向的頂部半圓箭"] # 0xeb16 (en: 'anticlockwise top semicircle arrow with plus', google translation) + - "": [t: "順時針頂部半圓形箭頭,帶負箭頭"] # 0xeb17 (en: 'clockwise top semicircle arrow with minus', google translation) + - "": [t: "向右箭頭帶有尾部"] # 0xeb18 (en: 'rightwards arrow with tail with stroke', google translation) + - "": [t: "右魚叉下來"] # 0xeb19 (en: 'right harpoon down', google translation) + - "": [t: "將魚叉放下"] # 0xeb1a (en: 'left harpoon down', google translation) + - "": [t: "左右魚叉下來"] # 0xeb1b (en: 'left right harpoon down', google translation) + - "": [t: "左右魚叉向上"] # 0xeb1c (en: 'left right harpoon up', google translation) + - "": [t: "在魚叉向下走"] # 0xeb1d (en: 'up down harpoon left', google translation) + - "": [t: "向下沿魚叉向右"] # 0xeb1e (en: 'up down harpoon right', google translation) + - "": [t: "向上向下向下箭頭的箭頭"] # 0xeb1f (en: 'upwards arrow to the right of downwards arrow', google translation) + - "": [t: "左難以倒在倒鉤的情況下"] # 0xeb20 (en: 'leftwards harpoon to bar with barb upwards', google translation) + - "": [t: "向右的魚叉,用倒鉤向上bar"] # 0xeb21 (en: 'rightwards harpoon to bar with barb upwards', google translation) + - "": [t: "左腳魚叉向下bar"] # 0xeb22 (en: 'leftwards harpoon to bar with barb downwards', google translation) + - "": [t: "向右的魚叉,用倒鉤向下bar"] # 0xeb23 (en: 'rightwards harpoon to bar with barb downwards', google translation) + - "": [t: "從酒吧向左倒鉤的魚叉,倒鉤向上"] # 0xeb24 (en: 'leftwards harpoon from bar with barb upwards', google translation) + - "": [t: "從酒吧到倒鉤的右warding魚"] # 0xeb25 (en: 'rightwards harpoon from bar with barb upwards', google translation) + - "": [t: "從酒吧向左倒鉤的魚叉,倒鉤向下"] # 0xeb26 (en: 'leftwards harpoon from bar with barb downwards', google translation) + - "": [t: "右邊的魚叉,倒鉤向下"] # 0xeb27 (en: 'rightwards harpoon from bar with barb downwards', google translation) + - "": [t: "向上倒鉤,將魚叉向左向左"] # 0xeb28 (en: 'upwards harpoon to bar with barb leftwards', google translation) + - "": [t: "向下向下倒鉤的魚叉"] # 0xeb29 (en: 'downwards harpoon to bar with barb leftwards', google translation) + - "": [t: "向上向上用倒鉤的魚叉"] # 0xeb2a (en: 'upwards harpoon to bar with barb rightwards', google translation) + - "": [t: "向下向右倒鉤的魚叉"] # 0xeb2b (en: 'downwards harpoon to bar with barb rightwards', google translation) + - "": [t: "從酒吧向上倒鉤,向上倒鉤"] # 0xeb2c (en: 'upwards harpoon from bar with barb leftwards', google translation) + - "": [t: "從酒吧向下倒鉤,向下倒鉤"] # 0xeb2d (en: 'downwards harpoon from bar with barb leftwards', google translation) + - "": [t: "向右倒鉤,向上倒鉤"] # 0xeb2e (en: 'upwards harpoon from bar with barb rightwards', google translation) + - "": [t: "向右倒鉤,向右倒鉤"] # 0xeb2f (en: 'downwards harpoon from bar with barb rightwards', google translation) + - "": [t: "向上箭頭到酒吧"] # 0xeb30 (en: 'upwards arrow to bar', google translation) + - "": [t: "向下箭頭到酒吧"] # 0xeb31 (en: 'downwards arrow to bar', google translation) + - "": [t: "向上向下的魚叉向下的魚叉"] # 0xeb32 (en: 'upwards harpoon to the left of downwards harpoon', google translation) + - "": [t: "向上向下的魚叉向下的魚叉"] # 0xeb33 (en: 'upwards harpoon to the right of downwards harpoon', google translation) + - "": [t: "向上箭頭"] # 0xeb34 (en: 'upwards arrowhead', google translation) + - "": [t: "向下箭頭"] # 0xeb35 (en: 'downwards arrowhead', google translation) + - "": [t: "雙子魚叉,左倒鉤向右倒鉤"] # 0xeb36 (en: 'double harpoon with leftwards barb down rightwards barb up', google translation) + - "": [t: "雙打魚叉,向左倒鉤向右倒鉤"] # 0xeb37 (en: 'double harpoon with leftwards barb up rightwards barb down', google translation) + - "": [t: "向左箭頭上"] # 0xeb38 (en: 'leftwards arrow over bar', google translation) + - "": [t: "向右箭頭上"] # 0xeb39 (en: 'rightwards arrow over bar', google translation) + - "": [t: "左箭頭下的箭頭"] # 0xeb3a (en: 'leftwards arrow under bar', google translation) + - "": [t: "右下方的箭頭"] # 0xeb3b (en: 'rightwards arrow under bar', google translation) + - "": [t: "左右三重箭頭"] # 0xeb3c (en: 'left right triple arrow', google translation) + - "": [t: "東南部雙箭頭"] # 0xeb3f (en: 'double arrow northeast southeast', google translation) + - "": [t: "逆時針方向的左半圓箭頭"] # 0xeb40 (en: 'anticlockwise left semicircle arrow', google translation) + - "": [t: "順時針左半圓箭頭"] # 0xeb41 (en: 'clockwise left semicircle arrow', google translation) + - "": [t: "左開圓左右箭頭"] # 0xeb42 (en: 'left open circle left right arrow', google translation) + - "": [t: "向右箭頭上的箭頭"] # 0xeb44 (en: 'rightwards arrow over tilde', google translation) + - "": [t: "向左箭頭上的箭頭"] # 0xeb45 (en: 'leftwards arrow over tilde', google translation) + - "": [t: "左邊的魚叉在酒吧上"] # 0xeb48 (en: 'leftwards harpoon over bar', google translation) + - "": [t: "右邊的魚叉在酒吧上"] # 0xeb49 (en: 'rightwards harpoon over bar', google translation) + - "": [t: "酒吧下方的魚叉"] # 0xeb4a (en: 'leftwards harpoon under bar', google translation) + - "": [t: "在酒吧下方的魚叉"] # 0xeb4b (en: 'rightwards harpoon under bar', google translation) + - "": [t: "蹲下黑左箭頭"] # 0xeb4c (en: 'squat black leftwards arrow', google translation) + - "": [t: "順時針右半圓箭頭"] # 0xeb50 (en: 'clockwise right semicircle arrow', google translation) + - "": [t: "逆時針右半圓箭頭"] # 0xeb51 (en: 'anticlockwise right semicircle arrow', google translation) + - "": [t: "左開環左右魚叉"] # 0xeb52 (en: 'left open circle left right harpoon', google translation) + - "": [t: "垂直桿向左向上箭頭"] # 0xeb58 (en: 'upwards arrow leftwards of vertical bar', google translation) + - "": [t: "向下向下垂直條的箭頭"] # 0xeb59 (en: 'downwards arrow leftwards of vertical bar', google translation) + - "": [t: "向上垂直條的箭頭"] # 0xeb5a (en: 'upwards arrow rightwards of vertical bar', google translation) + - "": [t: "垂直條的向下向下箭頭"] # 0xeb5b (en: 'downwards arrow rightwards of vertical bar', google translation) + - "": [t: "向右箭頭向下向下掛鉤"] # 0xeb5c (en: 'rightwards arrow with extended downwards hook', google translation) + - "": [t: "左箭頭帶有擴展鉤"] # 0xeb5d (en: 'leftwards arrow with extended hook', google translation) + - "": [t: "向左向下向下掛鉤的左箭頭"] # 0xeb5e (en: 'leftwards arrow with extended downwards hook', google translation) + - "": [t: "向右箭頭帶有擴展鉤"] # 0xeb5f (en: 'rightwards arrow with extended hook', google translation) + - "": [t: "不正確的箭頭波浪"] # 0xeb60 (en: 'not right arrow wavy', google translation) + - "": [t: "不正確的箭頭彎曲"] # 0xeb61 (en: 'not right arrow curved', google translation) + - "": [t: "向上向左垂直條形桿"] # 0xeb68 (en: 'upwards harpoon leftwards of vertical bar', google translation) + - "": [t: "向下垂直條的魚叉向左"] # 0xeb69 (en: 'downwards harpoon leftwards of vertical bar', google translation) + - "": [t: "向上垂直條的魚叉"] # 0xeb6a (en: 'upwards harpoon rightwards of vertical bar', google translation) + - "": [t: "向下垂直條的魚叉"] # 0xeb6b (en: 'downwards harpoon rightwards of vertical bar', google translation) + - "": [t: "垂直雙箭頭擴展器"] # 0xeb6c (en: 'vertical double arrow extender', google translation) + - "": [t: "垂直魚叉,帶有倒鉤左擴展器"] # 0xeb6d (en: 'vertical harpoon with barb left extender', google translation) + - "": [t: "垂直魚叉,帶倒鉤右擴展器"] # 0xeb6e (en: 'vertical harpoon with barb right extender', google translation) + - "": [t: "右左難題的右右魚叉"] # 0xeb6f (en: 'right harpoon over left harpoon right', google translation) + - "": [t: "右邊的魚叉左上是左邊的魚叉"] # 0xeb70 (en: 'right harpoon over left harpoon left', google translation) + - "": [t: "右邊的魚叉左右右"] # 0xeb71 (en: 'left harpoon over right harpoon right', google translation) + - "": [t: "左右魚叉向左左邊的魚叉"] # 0xeb72 (en: 'left harpoon over right harpoon left', google translation) + - "": [t: "從箭頭箭頭左箭頭"] # 0xeb73 (en: 'leftwards arrow from bar arrowhead', google translation) + - "": [t: "左右箭頭向右箭頭"] # 0xeb74 (en: 'leftwards rightwards arrow from bar extender', google translation) + - "": [t: "從條形尾部向左箭頭"] # 0xeb75 (en: 'leftwards arrow from bar tail', google translation) + - "": [t: "從條形尾部向右箭頭"] # 0xeb76 (en: 'rightwards arrow from bar tail', google translation) + - "": [t: "從箭頭箭頭向右箭頭"] # 0xeb77 (en: 'rightwards arrow from bar arrowhead', google translation) + - "": [t: "從酒吧向上帶倒鉤左箭頭的魚叉"] # 0xeb78 (en: 'upwards harpoon from bar with barb leftwards arrowhead', google translation) + - "": [t: "向左箭頭向右箭頭向右"] # 0xeb79 (en: 'rightwards arrow over leftwards arrow right', google translation) + - "": [t: "向左箭頭向左箭頭"] # 0xeb7a (en: 'rightwards arrow over leftwards arrow left', google translation) + - "": [t: "向右箭頭向右箭頭向右"] # 0xeb7b (en: 'leftwards arrow over rightwards arrow right', google translation) + - "": [t: "向左向右箭頭箭頭向左"] # 0xeb7c (en: 'leftwards arrow over rightwards arrow left', google translation) + - "": [t: "從箭頭箭頭向上箭頭"] # 0xeb7d (en: 'upwards arrow from bar arrowhead', google translation) + - "": [t: "從鋼筋尾部向上箭頭"] # 0xeb7e (en: 'upwards arrow from bar tail', google translation) + - "": [t: "從條形尾部向下箭頭"] # 0xeb7f (en: 'downwards arrow from bar tail', google translation) + - "": [t: "從箭頭箭頭向下箭頭"] # 0xeb80 (en: 'downwards arrow from bar arrowhead', google translation) + - "": [t: "從酒吧向下向下帶有倒鉤的箭頭箭頭"] # 0xeb81 (en: 'downwards harpoon from bar with barb rightwards arrowhead', google translation) + - "": [t: "向下向下的魚叉向下的魚叉底部"] # 0xeb82 (en: 'upwards harpoon to the left of downwards harpoon bottom', google translation) + - "": [t: "向上向下的魚叉向下向下的魚叉延伸器"] # 0xeb83 (en: 'upwards harpoon to the left of downwards harpoon extender', google translation) + - "": [t: "向上向上的魚叉向上的魚叉頂"] # 0xeb84 (en: 'downwards harpoon to the left of upwards harpoon top', google translation) + - "": [t: "向上向下的魚叉向下的魚叉頂"] # 0xeb85 (en: 'upwards harpoon to the left of downwards harpoon top', google translation) + - "": [t: "向上向上的魚叉向上的魚叉延伸器"] # 0xeb86 (en: 'downwards harpoon to the left of the upwards harpoon extender', google translation) + - "": [t: "向上向上的魚叉向上的魚叉底部"] # 0xeb87 (en: 'downwards harpoon to the left of the upwards harpoon bottom', google translation) + - "": [t: "向下向下向下的箭頭箭頭底部"] # 0xeb88 (en: 'upwards arrow leftwards of downwards arrow bottom', google translation) + - "": [t: "向下向下箭頭的箭頭"] # 0xeb89 (en: 'downwards arrow leftwards of upwards arrow top', google translation) + - "": [t: "向下向下箭頭箭頭頂"] # 0xeb8a (en: 'upwards arrow leftwards of downwards arrow top', google translation) + - "": [t: "向下向下的箭頭向左箭頭底部"] # 0xeb8b (en: 'downwards arrow leftwards of upwards arrow bottom', google translation) + - "": [t: "向右向右箭頭擴展器"] # 0xeb8c (en: 'leftwards rightwards arrows extender', google translation) + - "": [t: "東北箭頭擴展器"] # 0xeb8d (en: 'north east arrow extender', google translation) + - "": [t: "西北箭頭擴展器"] # 0xeb8e (en: 'north west arrow extender', google translation) + - "": [t: "向下指向支架"] # 0xec00 (en: 'down pointing brace left', google translation) + - "": [t: "向下指向括號中間"] # 0xec01 (en: 'down pointing brace mid', google translation) + - "": [t: "向下指向支架"] # 0xec02 (en: 'down pointing brace right', google translation) + - "": [t: "水平支撐擴展器"] # 0xec03 (en: 'horizontal brace extender', google translation) + - "": [t: "向左指向支架"] # 0xec04 (en: 'up pointing brace left', google translation) + - "": [t: "向上指向括號中間"] # 0xec05 (en: 'up pointing brace mid', google translation) + - "": [t: "向上支架正確"] # 0xec06 (en: 'up-pointing brace right', google translation) + - "": [t: "左垂直條"] # 0xec07 (en: 'left vertical bar', google translation) + - "": [t: "右垂直條"] # 0xec08 (en: 'right vertical bar', google translation) + - "": [t: "左雙垂直條"] # 0xec09 (en: 'left double vertical bar', google translation) + - "": [t: "右雙垂直條"] # 0xec0a (en: 'right double vertical bar', google translation) + - "": [t: "水平支架擴展器"] # 0xec0b (en: 'horizontal bracket extender', google translation) + - "": [t: "在方括號下"] # 0xec0c (en: 'under square bracket', google translation) + - "⎵": [t: "在方括號下"] # 0x23b5 (en: 'under square bracket', google translation) + - "": [t: "在方括號上"] # 0xec0d (en: 'over square bracket', google translation) + - "⎴": [t: "在方括號上"] # 0x23b4 (en: 'over square bracket', google translation) + - "": [t: "左下方"] # 0xec0e (en: 'under bracket left', google translation) + - "": [t: "在托架下"] # 0xec0f (en: 'under bracket right', google translation) + - "": [t: "左上"] # 0xec10 (en: 'over bracket left', google translation) + - "": [t: "右上方"] # 0xec11 (en: 'over bracket right', google translation) + - "": [t: "左括號1"] # 0xec12 (en: 'left parens 1', google translation) + - "": [t: "左括號2"] # 0xec13 (en: 'left parens 2', google translation) + - "": [t: "左括號3"] # 0xec14 (en: 'left parens 3', google translation) + - "": [t: "左括號4"] # 0xec15 (en: 'left parens 4', google translation) + - "": [t: "右括號1"] # 0xec16 (en: 'right parens 1', google translation) + - "": [t: "右括號2"] # 0xec17 (en: 'right parens 2', google translation) + - "": [t: "右括號3"] # 0xec18 (en: 'right parens 3', google translation) + - "": [t: "右括號4"] # 0xec19 (en: 'right parens 4', google translation) + - "": [t: "激進1"] # 0xec1a (en: 'radical 1', google translation) + - "": [t: "激進2"] # 0xec1b (en: 'radical 2', google translation) + - "": [t: "激進3"] # 0xec1c (en: 'radical 3', google translation) + - "": [t: "激進4"] # 0xec1d (en: 'radical 4', google translation) + - "": [t: "激進5"] # 0xec1e (en: 'radical 5', google translation) + - "": [t: "根本底部"] # 0xec1f (en: 'radical bottom', google translation) + - "": [t: "根本的垂直擴展器"] # 0xec20 (en: 'radical vertical extender', google translation) + - "": [t: "根部"] # 0xec21 (en: 'radical top', google translation) + - "": [t: "左白色支架頂部"] # 0xec22 (en: 'left white bracket top', google translation) + - "": [t: "左白支架擴展器"] # 0xec23 (en: 'left white bracket extender', google translation) + - "": [t: "左白支架底部"] # 0xec24 (en: 'left white bracket bottom', google translation) + - "": [t: "右白色支架上衣"] # 0xec25 (en: 'right white bracket top', google translation) + - "": [t: "右白色支架擴展器"] # 0xec26 (en: 'right white bracket extender', google translation) + - "": [t: "右白色支架底部"] # 0xec27 (en: 'right white bracket bottom', google translation) + - "": [t: "左白色捲髮支架"] # 0xec30 (en: 'left white curly bracket', google translation) + - "": [t: "右白色捲曲支架"] # 0xec31 (en: 'right white curly bracket', google translation) + - "": [t: "長師標誌"] # 0xec32 (en: 'long division sign', google translation) + - "": [t: "長度符號擴展器"] # 0xec33 (en: 'long division sign extender', google translation) + - "": [t: "短師"] # 0xec34 (en: 'short division', google translation) + - "": [t: "向西南到東北em債券的雙重"] # 0xec40 (en: 'double southwest to northeast em bond', google translation) + - "": [t: "西北至東南em債券"] # 0xec41 (en: 'double northwest to southeast em bond', google translation) + - "": [t: "單個水平em鍵"] # 0xec42 (en: 'single horizontal em bond', google translation) + - "": [t: "雙層em鍵"] # 0xec43 (en: 'double horizontal em bond', google translation) + - "": [t: "三重水平em鍵"] # 0xec44 (en: 'triple horizontal em bond', google translation) + - "": [t: "單垂直em鍵"] # 0xec45 (en: 'single vertical em bond', google translation) + - "": [t: "雙垂直em鍵"] # 0xec46 (en: 'double vertical em bond', google translation) + - "": [t: "三重垂直em鍵"] # 0xec47 (en: 'triple vertical em bond', google translation) + - "": [t: "小於em鍵"] # 0xec48 (en: 'less than em bond', google translation) + - "": [t: "大於em鍵"] # 0xec49 (en: 'greater than em bond', google translation) + - "": [t: "單個水平en鍵"] # 0xec4a (en: 'single horizontal en bond', google translation) + - "": [t: "雙水平en鍵"] # 0xec4b (en: 'double horizontal en bond', google translation) + - "": [t: "三重水平en鍵"] # 0xec4c (en: 'triple horizontal en bond', google translation) + - "": [t: "左上矩形"] # 0xec80 (en: 'top left rectangle', google translation) + - "": [t: "左下方矩形"] # 0xec81 (en: 'bottom left rectangle', google translation) + - "": [t: "右上方的矩形"] # 0xec90 (en: 'top right rectangle', google translation) + - "": [t: "右下方矩形"] # 0xec91 (en: 'bottom right rectangle', google translation) + - "": [t: "合成劃分角"] # 0xec92 (en: 'synthetic division corner', google translation) + - "": [t: "合成劃分水平擴展器"] # 0xec93 (en: 'synthetic division horizontal extender', google translation) + - "": [t: "合成劃分垂直擴展器"] # 0xec94 (en: 'synthetic division vertical extender', google translation) + - "": [t: "左天花板地板擴展器"] # 0xec95 (en: 'left ceiling floor extender', google translation) + - "": [t: "右天花板地板擴展器"] # 0xec96 (en: 'right ceiling floor extender', google translation) + - "": [t: "超過支架擴展器"] # 0xec97 (en: 'over bracket extender', google translation) + - "": [t: "垂直桿擴展器"] # 0xec98 (en: 'vertical bar extender', google translation) + - "": [t: "左雙垂直桿擴展器"] # 0xec99 (en: 'left double vertical bar extender', google translation) + - "": [t: "水平棒擴展器"] # 0xec9a (en: 'horizontal bar extender', google translation) + - "": [t: "在支架擴展器下"] # 0xec9c (en: 'under bracket extender', google translation) + - "": [t: "向下指向括號正確"] # 0xec9d (en: 'down pointing paren right', google translation) + - "": [t: "向下指向括號擴展器"] # 0xec9e (en: 'down pointing paren extender', google translation) + - "": [t: "向下指向括號"] # 0xec9f (en: 'down pointing paren left', google translation) + - "": [t: "向上指向布雷斯擴展器"] # 0xeca0 (en: 'up pointing brace extender', google translation) + - "": [t: "向上指向括號"] # 0xeca1 (en: 'up pointing paren left', google translation) + - "": [t: "向上指向括號擴展器"] # 0xeca2 (en: 'up pointing paren extender', google translation) + - "": [t: "向上指向括號正確"] # 0xeca3 (en: 'up pointing paren right', google translation) + - "": [t: "向下指向支架擴展器"] # 0xeca4 (en: 'down pointing brace extender', google translation) + - "": [t: "普朗克在兩個pi欄上常數"] # 0xed00 (en: 'planck constant over two pi bar', google translation) + - "": [t: "鏡子g"] # 0xed01 (en: 'mirror g', google translation) + - "": [t: "無點j"] # 0xed02 (en: 'dotless j', google translation) + - "": [t: "digamma"] # 0xed03 (google translation) + - "ϝ": [t: "Diggmma"] # 0x3dd (en: 'digamma') + - "": [T: "d"] # 0xed10 (en: 'd', google translation) + - "ⅆ": [T: "d"] # 0x2146 (en: 'd', google translation) + - "": [T: "e"] # 0xed11 (en: 'e', google translation) + - "ⅇ": [T: "e"] # 0x2147 (en: 'e', google translation) + - "": [T: "i"] # 0xed12 (en: 'i', google translation) + - "ⅈ": [T: "i"] # 0x2148 (en: 'i', google translation) + - "": [T: "j"] # 0xed13 (en: 'j', google translation) + - "ⅅ": + - SPELL: "translate('.', 'ⅅ', 'DD')" # 0xed16, 0x2145 + +# The private use chars are from MathType + - "": [t: "逆時針輪廓整體環"] # 0xee00 (en: 'anticlockwise contour integral loop', google translation) + - "": [t: "順時針輪廓積分循環"] # 0xee01 (en: 'clockwise contour integral loop', google translation) + - "": [t: ""] # 0xee04 + - "": [t: ""] # 0xee05 + - "": [t: ""] # 0xee06 + - "": [t: ""] # 0xee07 + - "": [t: ""] # 0xee08 + - "": [t: ""] # 0xee09 + - "": [t: ""] # 0xee0a + - "": [t: ""] # 0xee0b + - "": [t: ""] # 0xee0c + - "": [t: "聯合身份點綴"] # 0xee0d (en: 'joint status embellishment', google translation) + - "": [t: "聯合身份點綴"] # 0xee0e (en: 'joint status embellishment left', google translation) + - "": [t: "聯合身份修飾權"] # 0xee0f (en: 'joint status embellishment right', google translation) + - "": [t: "聯合身份點綴擴展器"] # 0xee10 (en: 'joint status embellishment extender', google translation) + - "": [t: "積分循環"] # 0xee11 (en: 'integral loop', google translation) + - "": [t: "積分循環雙重"] # 0xee12 (en: 'integral loop double', google translation) + - "": [t: "積分循環三重"] # 0xee13 (en: 'integral loop triple', google translation) + - "": [t: "擴展積分循環雙重"] # 0xee15 (en: 'expanding integral loop double', google translation) + - "": [t: "擴展積分循環三倍"] # 0xee16 (en: 'expanding integral loop triple', google translation) + - "": [t: "漸近等於重音"] # 0xee17 (en: 'asymptotically equal to accent', google translation) + - "": [t: "同等標誌口音"] # 0xee18 (en: 'equal sign accent', google translation) + - "": [t: "四元素"] # 0xee19 (en: 'quadruple prime', google translation) + - "": [t: "左圓的吧台口音"] # 0xee1a (en: 'bar accent with open circle left', google translation) + - "": [t: "桿重音,左圓"] # 0xee1b (en: 'bar accent with closed circle left', google translation) + - "": [t: "帶有開放圓的吧台口音"] # 0xee1c (en: 'bar accent with open circle right', google translation) + - "": [t: "帶有多點的吧台口音"] # 0xee1d (en: 'bar accent with over dot', google translation) + - "": [t: "帶下點的條重音"] # 0xee1e (en: 'bar accent with under dot', google translation) + - "": [t: "帶雙點的吧台口音"] # 0xee1f (en: 'bar accent with double over dot', google translation) + - "": [t: "桿重音,double dot"] # 0xee20 (en: 'bar accent with double under dot', google translation) + - "": [t: "酒吧口音"] # 0xee21 (en: 'bar accent with caret', google translation) + - "": [t: "濃密的條件"] # 0xee22 (en: 'thick under bar accent', google translation) + - "": [t: "帶閉合右圓的條重音"] # 0xee23 (en: 'bar accent with closed circle right', google translation) + - "": [t: "上面的大點"] # 0xee24 (en: 'large dot above', google translation) + - "": [t: "對準標記"] # 0xef00 (en: 'alignment mark', google translation) + - "": [t: ""] # 0xef01 + - "​": [t: ""] # 0x200b + - "": [t: ""] # 0xef02 + - " ": [t: ""] # 0x2009 + - "": [t: ""] # 0xef03 + - " ": [t: ""] # 0x205f + - "": [t: ""] # 0xef04 + - "": [t: ""] # 0xef05 + - " ": [t: ""] # 0x2003 + - "": [t: ""] # 0xef06 + - "": [t: ""] # 0xef07 + - "": [t: ""] # 0xef08 + - "": [t: ""] # 0xef09 + - "": [t: ""] # 0xef0a + - " ": [t: ""] # 0x200a + - "": [t: ""] # 0xef22 + - "": [t: ""] # 0xef23 + - "": [t: ""] # 0xef24 + - "": [t: ""] # 0xef29 + - "": [t: "缺少期限"] # 0xef41 (en: 'missing term', google translation) + - "": [t: "左側的順時針輪廓積分箭頭"] # 0xef80 (en: 'clockwise contour integral arrow on left', google translation) + - "": [t: "與正方形的積分"] # 0xef81 (en: 'integral with square', google translation) + - "": [t: "與斜線的積分"] # 0xef82 (en: 'integral with slash', google translation) + - "": [t: "反向積分"] # 0xef83 (en: 'reversed integral', google translation) + - "": [t: "雙零以上零零"] # 0xef90 (en: 'double zero over double zero', google translation) + - "": [t: "用斜線為零"] # 0xef91 (en: 'zero with slash', google translation) + + # fraktur chars in math alphabetic block and also MathType private use area + # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display + - "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved) + - T: "fraktur" # (google translation) + - SPELL: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" + + - "-": # 0xf000 - 0xf018 + - T: "fraktur" # (google translation) + - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXY')" + + - "𝔞-𝔷": # 0x1d51e - 0x1d537 + - T: "fraktur" # (google translation) + - SPELL: "translate('.', '𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf01a - 0xf033 + - T: "fraktur" # (google translation) + - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝕬-𝖅": # 0x1D56C - 0x1D585 + - t: "fraktur" + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf040 - 0xf059 + - t: "fraktur" + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝖆-𝖟": # 0x1d586 - 0x1d59f + - t: "fraktur" + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf05a - 0xf073 + - t: "fraktur" + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + # double struck (blackboard bold) chars in math alphabetic block and also MathType private use area + # Some of these are reserved because they were used in Plane 0 -- that shouldn't be an issue other than causing the other chars to not display + - "𝔸-𝕐": # 0x1d504 - 0x1d51d ('z' version is reserved) + - t: "雙線" + - spell: "translate('.', '𝔸𝔹𝔺𝔻𝔼𝔽𝔾𝔿𝕀𝕁𝕂𝕃𝕄𝕅𝕆𝕇𝕈𝕉𝕊𝕋𝕌𝕍𝕎𝕏𝕐', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf080 - 0xf098 + - t: "雙線" + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝕒-𝕫": # 0x1d552 - 0x1d56b + - t: "雙線" + - spell: "translate('.', '𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf09a - 0xf0b3 + - t: "雙線" + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + - "𝟘-𝟡": # 0x1d7d8 - 0x1d7e1 + - t: "雙線" + - spell: "translate('.', '𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡', '0123456789')" + - "-": # 0xf0c0 - 0xf0c9 + - t: "雙線" + - spell: "translate('.', '', '0123456789')" + + - "": [T: "雙線nabla"] # 0xf0ca (en: 'double struck nabla', google translation) + - "": [T: "雙線歐拉常數"] # 0xf0cb (en: 'double struck euler constant', google translation) + + # script chars in math alphabetic block and also MathType private use area + - "𝒜-𝒵": # 0x1d49c - 0x1d4b5 + - T: "草體" # (en: 'script', google translation) + - SPELL: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf100 - 0xf119 + - T: "草體" # (en: 'script', google translation) + - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf + - T: "草體" # (en: 'script', google translation) + - SPELL: "translate('.', '𝒶𝒷𝒸𝒹𝒺𝒻𝒼𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓄𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf11a - 0xf133 + - T: "草體" # (en: 'script', google translation) + - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + # bold script chars in math alphabetic block and also MathType private use area + - "𝓐-𝓩": # 0x1d4d0 - 0x1d4e9 + - test: + if: "not($IgnoreBold)" + then: [T: "粗草體"] + else: [T: "草體"] + - SPELL: "translate('.', '𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf140 - 0xf159 + - test: + if: "not($IgnoreBold)" + then: [T: "粗草體"] + else: [T: "草體"] + - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝓪-𝔃": # 0x1d4ea - 0x1d503 + - test: + if: "not($IgnoreBold)" + then: [T: "粗草體"] + else: [T: "草體"] + - SPELL: "translate('.', '𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃', 'abcdefghijklmnopqrstuvwxyz')" + - "-": # 0xf15a - 0xf173 + - test: + if: "not($IgnoreBold)" + then: [T: "粗草體"] + else: [T: "草體"] + - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf180 - 0xf199 + - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "": # 0xf19a + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "大寫"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [T: "結紮ae"] # (en: 'ligature ae', google translation) + - "": # 0xf19b + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "大寫"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [t: "sharp s"] # (en: 'sharp s', google translation) + - "": # 0xf19c + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "大寫"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: [t: "o with stroke"] # (en: 'o with stroke', google translation) + + # MathType only has a few of the cap Greek letters in PUA + - "": # 0xf201 - 0xf209 + - t: "雙線" + - spell: "translate('.', '', 'ΔΨΛΠΣΘΓΩΥ')" + + - "-": # 0xf220 - 0xf236 + - t: "雙線" + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "": [T: "雙線final sigma"] # 0xf237 (en: 'double struck final sigma', google translation) + - "": [T: "雙線rho"] # 0xf250 (en: 'double struck rho', google translation) + - "": [T: "雙線phi"] # 0xf251 (en: 'double struck phi', google translation) + - "𝐀-𝐙": # 0x1d400 - 0x1d419 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf260 - 0xf279 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝐚-𝐳": # 0x1d41a - 0x1d433 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf27a - 0xf293 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝐴-𝑍": # 0x1d434 - 0x1d44d + - SPELL: "translate('.', '𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf294 - 0xf2ad + - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝑎-𝑧": # 0x1d44e - 0x1d467 + - SPELL: "translate('.', '𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑕𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf2ae - 0xf2c7 + - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝑨-𝒁": # 0x1d468 - 0x1d481 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf2c8 - 0xf2e1 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝒂-𝒛": # 0x1d482 - 0x1d49b + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf2e2 - 0xf2fb + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝖠-𝖹": # 0x1d5a0 - 0x1d5b9 + - SPELL: "translate('.', '𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf300 - 0xf319 + - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝖺-𝗓": # 0x1d5ba - 0x1d5d3 + - SPELL: "translate('.', '𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf31a - 0xf333 + - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝗔-𝗭": # 0x1d5d4 - 0x1d5ed + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf334 - 0xf34d + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝗮-𝘇": # 0x1d5ee - 0x1d607 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf34e - 0xf367 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + - "𝘈-𝘡": # 0x1d608 - 0x1d621 + # - t: "斜體" + - SPELL: "translate('.', '𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + - "-": # 0xf368 - 0xf381 + # - t: "斜體" + - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝘢-𝘻": # 0x1d622 - 0x1d63b + # - t: "斜體" + - SPELL: "translate('.', '𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf382 - 0xf39b + # - t: "斜體" + - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝘼-𝙕": # 0x1d63c - 0x1d655 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf39c - 0xf3b5 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝙖-𝙯": # 0x1d656 - 0x1d66f + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf3b6 - 0xf3cf + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "𝙰-𝚉": # 0x1d670 - 0x1d689 + - SPELL: "translate('.', '𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "-": # 0xf3d0 - 0xf3e9 + - SPELL: "translate('.', '', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" + + - "𝚊-𝚣": # 0x1d68a - 0x1d6a3 + - SPELL: "translate('.', '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣', 'abcdefghijklmnopqrstuvwxyz')" + + - "-": # 0xf3ea - 0xf403 + - SPELL: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" + + - "": [T: "無點i"] # 0xf404 (en: 'dotless i', google translation) + - "𝚤": [T: "無點i"] # 0x1d6a4 (en: 'dotless i', google translation) + - "𝚥": [T: "無點j"] # 0x1d6a5 (en: 'dotless j', google translation) + + - "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹𝚺𝚻𝚼𝚽𝚾𝚿𝛀', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf408 - 0xf420 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝛂-𝛚": # 0x1d6c2 - 0x1d6da + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf422 - 0xf43a + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "": [T: "粗體nabla"] # 0xf421 (en: 'bold nabla', google translation) + - "𝛁": [T: "粗體nabla"] # 0x1d6c1 (en: 'bold nabla', google translation) + + - "𝛛𝛜𝛝𝛞𝛟𝛠𝛡": # 0x1D6DB - 0x1D6E1 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝛛𝛜𝛝𝛞𝛟𝛠𝛡', '∂εθκφρπ')" + + - "": # 0xF43C - 0xF441 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', '∂εθκφρπ')" + + - "𝛢-𝛺": # 0x1d6e2 - 0x1d6fa + # - t: "斜體" + - SPELL: "translate('.', '𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹𝛺', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf442 - 0xf45a + # - t: "斜體" + - SPELL: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝛼-𝜔": # 0x1d6fc - 0x1d714 + # - t: "斜體" + - SPELL: "translate('.', '𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf45c - 0xf474 + # - t: "斜體" + - SPELL: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "": [T: "斜體nabla"] # 0xf45b (en: 'italic nabla', google translation) + - "𝛻": [T: "斜體nabla"] # 0x1d6fb (en: 'italic nabla', google translation) + + - "𝜕𝜖𝜗𝜘𝜙𝜚𝜛": # 0x1d715 - 0x1d71b + # - t: "斜體" + - SPELL: "translate('.', '𝜕𝜖𝜗𝜘𝜙𝜚𝜛', '∂εθκφρπ')" + + - "": # 0xf475 - 0xf47b + # - t: "斜體" + - SPELL: "translate('.', '', '∂εθκφρπ')" + + - "𝜜-𝜴": # 0x1d71c - 0x1d734 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf47c - 0xf494 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝜶-𝝎": # 0x1d736 - 0x1d74e + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '𝜶𝜷𝜸𝜹𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf496 - 0xf4ae + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝝏𝝐𝝑𝝒𝝓𝝔𝝕": # 0x1d74f - 0x1d755 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '𝝏𝝐𝝑𝝒𝝓𝝔𝝕', '∂εθκφρπ')" + + - "": # 0xf422 - 0xf43a + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '', '∂εθκφρπ')" + + - "𝜵": [T: "粗斜體nabla"] # 0x1d735 (en: 'bold italic nabla', google translation) + - "": [T: "粗斜體nabla"] # 0xf495 (en: 'bold italic nabla', google translation) + + - "𝝖-𝝮": # 0x1d756 - 0x1d76e + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + - "-": # 0xf4b6 - 0xf4ce + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝝰-𝞈": # 0x1d770 - 0x1d788 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf4d0 - 0xf4e8 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝞉𝞊𝞋𝞌𝞍𝞎𝞏": # 0x1d789 - 0x1d78f + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝞉𝞊𝞋𝞌𝞍𝞎𝞏', '∂εθκφρπ')" + + - "": # 0xf4e9 - 0xf4ef + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', '∂εθκφρπ')" + + - "": [T: "粗體nabla"] # 0xf4cf (en: 'bold nabla', google translation) + - "𝝯": [T: "粗體nabla"] # 0x1d76f (en: 'bold nabla', google translation) + + - "𝞐-𝞨": # 0x1d790 - 0x1d7a8 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "-": # 0xf4f0 - 0xf508 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ')" + + - "𝞪-𝟂": # 0x1d7aa - 0x1d7c2 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "-": # 0xf50a - 0xf522 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '', 'αβγδεζηθικλμνξοπρςστυφχψω')" + + - "𝟃𝟄𝟅𝟆𝟇𝟈𝟉": # 0x1d7c3 - 0x1d7c9 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '𝟃𝟄𝟅𝟆𝟇𝟈𝟉', '∂εθκφρπ')" + + - "": # 0xf523 - 0xf529 + # - t: "bold italic" + - test: + if: "not($IgnoreBold)" + then: [t: "粗斜體"] + - spell: "translate('.', '', '∂εθκφρπ')" + + - "": [T: "粗體nabla"] # 0xf509 (en: 'bold nabla', google translation) + - "𝞩": [T: "粗體nabla"] # 0x1d7a9 (en: 'bold nabla', google translation) + + - "-": # 0xf52e - 0xf537 (old MathType) + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', '0123456789')" + + - "𝟎-𝟗": # 0x1d7ce - 0x1d7d7 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗', '0123456789')" + + - "-": # 0xf52e - 0xf537 (old MathType) + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '', '0123456789')" + + - "𝟬-𝟵": # 0x1D7EC - 0x1D7F5 + - test: + if: "not($IgnoreBold)" + then: [t: "粗體"] + - spell: "translate('.', '𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵', '0123456789')" + + - "-": # 0xf556 - 0xf55f (old MathType) + - spell: "translate('.', '', '0123456789')" + + - "𝟢-𝟫": # 0x1d7e2 - 0x1d7eb + - spell: "translate('.', '𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫', '0123456789')" + + + - "𝟶-𝟿": # 0x1d7f6 - 0x1d7ff + - spell: "translate('.', '𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿', '0123456789')" + + - "": [T: "未知字元"] # 0xf700 (en: 'unknown character', google translation) + - "": [t: "右下三角形"] # 0xf726 (en: 'lower right and lower left triangles', google translation) + - "": [t: "水平省略於擴展器"] # 0xf72d (en: 'horizontal ellipsis extender', google translation) + - "": [t: "中線水平橢圓擴展器"] # 0xf72e (en: 'midline horizontal ellipsis extender', google translation) + - "": [t: "激進的擴展器"] # 0xf8e5 (en: 'radical extender', google translation) + - "": [t: "垂直箭頭擴展器"] # 0xf8e6 (en: 'vertical arrow extender', google translation) + - "": [t: "水平箭頭擴展器"] # 0xf8e7 (en: 'horizontal arrow extender', google translation) + - "": [t: "註冊標誌sans serif"] # 0xf8e8 (en: 'registered sign sans serif', google translation) + - "": [t: "版權標誌無襯線"] # 0xf8e9 (en: 'copyright sign sans serif', google translation) + - "": [t: "商標標誌sans serif"] # 0xf8ea (en: 'trade mark sign sans serif', google translation) + - "": [t: "左括號頂部"] # 0xf8eb (en: 'left paren top', google translation) + - "": [t: "左括號擴展器"] # 0xf8ec (en: 'left paren extender', google translation) + - "": [t: "左括號底部"] # 0xf8ed (en: 'left paren bottom', google translation) + - "": [t: "左支架頂部"] # 0xf8ee (en: 'left bracket top', google translation) + - "": [t: "左支架擴展器"] # 0xf8ef (en: 'left bracket extender', google translation) + - "": [t: "左支架底部"] # 0xf8f0 (en: 'left bracket bottom', google translation) + - "": [t: "左支架上衣"] # 0xf8f1 (en: 'left brace top', google translation) + - "": [t: "左支架中間"] # 0xf8f2 (en: 'left brace mid', google translation) + - "": [t: "左支撐底部"] # 0xf8f3 (en: 'left brace bottom', google translation) + - "": [t: "支撐擴展器"] # 0xf8f4 (en: 'brace extender', google translation) + - "": [t: "積分擴展器"] # 0xf8f5 (en: 'integral extender', google translation) + - "": [t: "右括號頂部"] # 0xf8f6 (en: 'right paren top', google translation) + - "": [t: "右括號擴展器"] # 0xf8f7 (en: 'right paren extender', google translation) + - "": [t: "右括號底部"] # 0xf8f8 (en: 'right paren bottom', google translation) + - "": [t: "右支架上衣"] # 0xf8f9 (en: 'right bracket top', google translation) + - "": [t: "右支架擴展器"] # 0xf8fa (en: 'right bracket extender', google translation) + - "": [t: "右支架底部"] # 0xf8fb (en: 'right bracket bottom', google translation) + - "": [t: "右支撐頂"] # 0xf8fc (en: 'right brace top', google translation) + - "": [t: "右支撐中間"] # 0xf8fd (en: 'right brace mid', google translation) + - "": [t: "右支撐底部"] # 0xf8fe (en: 'right brace bottom', google translation) + - "": [t: "蘋果徽標"] # 0xf8ff (en: 'apple logo', google translation) + - "ff": [T: "ff"] # 0xfb00 (google translation) + - "fi": [T: "fi"] # 0xfb01 (google translation) + - "fl": [T: "fl"] # 0xfb02 (en: 'fl', google translation) + - "ffi": [T: "ffi"] # 0xfb03 (google translation) + - "ffl": [T: "ffl"] # 0xfb04 (google translation) + - "ſt": [T: "英尺"] # 0xfb05 (en: 'ft', google translation) + - "st": [t: "st"] # 0xfb06 (en: 'st', google translation) + - "﬩": [t: "hebrew letter alternative plus"] # 0xfb29 + - "︠": [t: "結紮剩下半點"] # 0xfe20 (en: 'ligature left half embellishment', google translation) + - "︡": [t: "綁紮右半點綴"] # 0xfe21 (en: 'ligature right half embellishment', google translation) + - "︢": [t: "雙tilde留下一半點綴"] # 0xfe22 (en: 'double tilde left half embellishment', google translation) + - "︣": [t: "雙tilde右半點綴"] # 0xfe23 (en: 'double tilde right half embellishment', google translation) + - "︤": [t: "馬克龍離開了半點"] # 0xfe24 (en: 'macron left half embellishment', google translation) + - "︥": [t: "馬克龍右半點綴"] # 0xfe25 (en: 'macron right half embellishment', google translation) + - "︦": [t: "連接馬克龍點綴"] # 0xfe26 (en: 'conjoining macron embellishment', google translation) + - "︵": [T: "上括號"] # 0xfe35 (en: 'over paren', google translation) + - "︶": [T: "下括號"] # 0xfe36 (en: 'under paren', google translation) + - "︷": [T: "上大括"] # 0xfe37 (en: 'over brace', google translation) + - "︸": [T: "下大括"] # 0xfe38 (en: 'under brace', google translation) + - "︿": [T: "上角括"] # 0xfe3f (en: 'over angle bracket', google translation) + - "﹀": [T: "下角括"] # 0xfe40 (en: 'under angle bracket', google translation) + - "﹡": [t: "small asterisk"] # 0xfe61 + - "﹢": [t: "small plus"] # 0xfe62 + - "﹣": [t: "small minus"] # 0xfe63 + - "﹤": [t: "small less than"] # 0xfe64 + - "﹥": [t: "small greater than"] # 0xfe65 + - "﹦": [t: "small equals"] # 0xfe66 + - "+": [t: "fullwidth plus sign"] # 0xff0b + - "<": [t: "less than"] # 0xff1c + - "=": [t: "equals"] # 0xff1d + - ">": [t: "greater than"] # 0xff1e + - "\": [t: "backslash"] # 0xff3c + - "^": [t: "hat"] # 0xff3e + - "|": # 0xff5c + # note: for ClearSpeak and SimpleSpeak, "|" inside of sets is handled at the mrow level, same for 'sets' + - with: + variables: [DefaultToGiven: "count(preceding-sibling::*)=1 and count(following-sibling::*)=1 and ../../../*[1][.='P']"] # P(A|B) + replace: + - test: + - if: "$SpeechStyle != 'ClearSpeak'" + then_test: + if: "$DefaultToGiven" + then: [T: "給定"] + else: [T: "豎線"] + - else_if: "not(preceding-sibling::*) or not(following-sibling::*)" + then: [T: "豎線"] + - else_if: "$ClearSpeak_VerticalLine = 'SuchThat'" + then: [T: "滿足"] + - else_if: "$ClearSpeak_VerticalLine = 'Given' or $DefaultToGiven" + then: [T: "給定"] + - else: [T: "整除"] + - "~": [t: "tilde"] # 0xff5e + - "¬": [t: "not"] # 0xffe2 + - "←": [t: "left arrow"] # 0xffe9 + - "↑": [t: "up arrow"] # 0xffea + - "→": [t: "right arrow"] # 0xffeb + - "↓": [t: "down arrow"] # 0xffec + - "": [T: "未知或缺失物件"] # 0xfffc (en: 'unknown or missing object', google translation) + - "�": [T: "未知或缺失字元"] # 0xfffd (en: 'unknown or missing character', google translation) + - "🣑": [t: "is in equilibrium with"] # 0x1F8D1 + - "🣒": [t: "is in equilibrium biased to the right with"] # 0x1F8D2 + - "🣓": [t: "is in equilibrium biased to the left with"] # 0x1F8D3 + +# MathJax v4 has adopted these PUA values for some partial chem bonds that aren't in Unicode + - "\uE410": [t: "partial bond "] # 0xe410 + - "\uE411": [t: "double partial bond "] # 0xe411 + - "\uE412": [t: "triple partial bond "] # 0xe412 + +# MathJax v4 also adopted these PUA values for some arrows thar are in Unicode +# Hopefully these will be exported properly in future versions of MathJax + - "\uE428": [spell: "'⟵'"] # 0xe428 defer to def of arrow + - "\uE429": [spell: "'⟶'"] # 0xe429 defer to def of arrow + - "\uE42A": [spell: "'⟷'"] # 0xe42a defer to def of arrow + - "\uE408": [spell: "'🣑'"] # 0xe408 defer to def of arrow + - "\uE409": [spell: "'🣒'"] # 0xe409 defer to def of arrow + - "\uE40A": [spell: "'🣓'"] # 0xe40a defer to def of arrow + - "\uE42B": [spell: "'⇄'"] # 0xe42b defer to def of arrow + - "\uE42C": [spell: "'←'"] # 0xe42c defer to def of arrow + - "\uE42D": [spell: "'→'"] # 0xe42d defer to def of arrow + - "\uE42E": [spell: "'⇄'"] # 0xe42e defer to def of arrow + - "﹨": [T: "整數除以"] # 0xfe68 (en: 'integer divide', google translation) diff --git a/Rules/Languages/zh/tw/unicode.yaml b/Rules/Languages/zh/tw/unicode.yaml index c0af44e88..6d7741920 100644 --- a/Rules/Languages/zh/tw/unicode.yaml +++ b/Rules/Languages/zh/tw/unicode.yaml @@ -1,485 +1,576 @@ ---- - # Note to translators: - # most languages don't have two ways to pronounce 'a' -- if not need, remove the rules and change "B-Z" to "A-Z" - # some languages say the word for "uppercase" after the letter. Make sure to change that where appropriate by moving some code around - - "a": - - test: - if: "$TTS='none'" - then: [T: "a"] # long "a" sound in all speech engines I tested (espeak, MS SAPI, eloquence, (en: 'eigh', google translation) - else: [SPELL: "'a'"] # AWS Polly, ReadSpeaker, NaturalReader, google cloud, nuance, ibm watson) - - "b-z": - - test: - if: "$TTS='none'" - then: [T: "."] # (en: '.', google translation) - else: [SPELL: "'.'"] - - # Capital letters are a little tricky: users can pick their favorite word (something that was requested) and - # screen readers have options to use pitch changes or beeps instead of or in addition to say "cap" - # Also, if a user can see the screen, they probably don't need to hear "cap", but if they specified an override, they must want to hear the override. - - - "A": - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "大寫"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: - - test: - if: "$TTS='none'" - then: [T: "a"] # (en: 'eigh', google translation) - else: [SPELL: "'a'"] - - - "B-Z": - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "大寫"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - # note: processing of ranges converts '.' into the character, so it needs to be in quotes below - replace: [SPELL: "translate('.', 'BCDEFGHIJKLMNOPQRSTUVWXYZ', 'bcdefghijklmnopqrstuvwxyz')"] - - - "0-9": [T: "."] # (en: '.', google translation) - - - "!": # 0x21 - - test: - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" - then_test: - if: "$Verbosity = 'Terse'" - then: [T: "階乘"] # 0x21 (en: 'bang', google translation) - else: [T: "階乘"] # 0x21 (en: 'exclamation point') - else: [T: "階乘"] # 0x21 (en: 'factorial') - - - "\"": [T: "引號"] # 0x22 (en: 'quotation mark', google translation) - - "#": [T: "數字"] # 0x23 (en: 'number', google translation) - - "$": [T: "美元"] # 0x24 (en: 'dollars', google translation) - - "%": [T: "百分"] # 0x25 (en: 'percent', google translation) - - "&": [T: "ampersand"] # 0x26 (en: 'ampersand', google translation) - - "'": [T: "單引號"] # 0x27 (en: 'apostrophe') - - "(": # 0x28 - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then_test: - if: "$Verbosity='Terse'" - then: [T: "左小括"] # 0x28 (en: 'open', google translation) - else: [T: "左小括"] # 0x28 (en: 'open paren') - else: [T: "左小括"] # 0x28 (en: 'left paren') - - ")": # 0x29 - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then_test: - if: "$Verbosity='Terse'" - then: [T: "右小括"] # 0x29 (en: 'close', google translation) - else: [T: "右小括"] # 0x29 (en: 'close paren') - else: [T: "右小括"] # 0x29 (en: 'right paren') - - - "*": # 0x2a - test: - if: "parent::*[name(.)='msup' or name(.)='msubsup' or name(.)='skip-super']" - then: [T: "星號"] # 0x2a (en: 'star', google translation) - else: [T: "乘"] # 0x2a (en: 'times') - - "+": [T: "加"] # 0x2b (en: 'plus') - - ",": # 0x2c - # the following deals with the interaction of "," with "…" which sometimes wants the ',' to be silent - # that this test is here and not with "…" is not ideal, but seems simplest - test: - if: - - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or " - # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn' - # speak "comma" when not adjacent to '…' - - "( following-sibling::*[1][text()!= '…'] and preceding-sibling::*[1][text()!='…'] ) or " - # except if expression starts with '…' - - "../*[1][.='…'] " - then: [T: "逗號"] # (en: 'comma', google translation) - # else silent - - - "-": [T: "減"] # 0x2d (en: 'minus') - - ".": # 0x2e - - test: - if: "parent::*[1][self::m:mn]" - then: [T: "點"] # (en: 'point', google translation) - else: [T: "點"] # (en: 'dot', google translation) - - "/": [T: "除以"] # 0x2f (en: 'divided by') - - ":": [T: "冒號"] # 0x3a (en: 'colon') - - ";": [T: "分號"] # 0x3b (en: 'semicolon', google translation) - - "<": # 0x3c - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "小於" # (en: 'less than') - - "=": # 0x3d - - test: - if: "$Verbosity!='Terse'" - then: [T: "等於"] # (en: 'is equal to', google translation) - else: [T: "等於"] # (en: 'equals') - - - ">": # 0x3e - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "大於" # (en: 'greater than') - - "?": [T: "問號"] # 0x3f (en: 'question mark', google translation) - - "@": [T: "在標誌"] # 0x40 (en: 'at sign', google translation) - - "[": # 0x5b - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then: [T: "左中括"] # (en: 'open bracket', google translation) - else: [T: "左中括"] # (en: 'left bracket') - - "\\": [T: "反斜線"] # 0x5c (en: 'back slash') - - "]": # 0x5d - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then: [T: "右中括"] # (en: 'close bracket', google translation) - else: [T: "右中括"] # (en: 'right bracket') - - "^": [T: "hat"] # 0x5e (en: 'hat', google translation) - - "_": [T: "under bar"] # 0x5f (en: 'under bar', google translation) - - "`": [T: "grave"] # 0x60 (en: 'grave', google translation) - - "{": # 0x7b - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then: [T: "左大括"] # (en: 'open brace', google translation) - else: [T: "左大括"] # (en: 'left brace') - - "|": # 0x7c - # note: for ClearSpeak and SimpleSpeak, "|" inside of sets is handled at the mrow level, same for 'sets' - - with: - variables: [DefaultToGiven: "count(preceding-sibling::*)=1 and count(following-sibling::*)=1 and ../../../*[1][.='P']"] # P(A|B) - replace: - - test: - - if: "$SpeechStyle != 'ClearSpeak'" - then_test: - - if: "$DefaultToGiven" - then: [T: "給定"] # (en: 'given', google translation) - - else_if: "preceding-sibling::*[1][self::m:mn and not(contains(., $DecimalSeparators))] and - following-sibling::*[1][self::m:mn and not(contains(., $DecimalSeparators))]" - then: [T: "整除"] # (en: 'divides') - else: [T: "垂線"] # (en: 'vertical line', google translation) - - else_if: "not(preceding-sibling::*) or not(following-sibling::*)" - then: [T: "垂線"] # (en: 'vertical line', google translation - - else_if: "$ClearSpeak_VerticalLine = 'SuchThat'" - then: [T: "滿足"] # (en: 'such that', google translation) - - else_if: "$ClearSpeak_VerticalLine = 'Given' or $DefaultToGiven" - then: [T: "給定"] # (en: 'given', google translation) - - else: [T: "整除"] # (en: 'divides') - - - "}": # 0x7d - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then: [T: "右大括"] # (en: 'close brace', google translation) - else: [T: "右大括"] # (en: 'right brace') - - - "~": [T: "tilde"] # 0x7e (en: 'tilde', google translation) - - " ": # 0xa0 - - test: - if: "@data-empty-in-2D and ../../../../*[name(.)!='equations']" - then: [T: "無"] # want to say something for fraction (etc) with empty child (en: 'empty', google translation) - else: [T: ""] - - - "¬": [T: "非"] # 0xac (en: 'not', google translation) - - "°": [T: "度"] # 0xb0 (en: 'degrees', google translation) - - "±": [T: "加減"] # 0xb1 (en: 'plus or minus') - - "´": [T: "acute"] # 0xb4 (en: 'acute', google translation) - - "·": # 0xB7 - - test: - if: "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_MultSymbolDot = 'Auto'" - then: [T: "乘"] # (en: 'times', google translation) - else: [T: "dot"] # (en: 'dot') - - "×": # 0xd7 - - test: - if: "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_MultSymbolX = 'Auto'" - then: [T: "乘"] # (en: 'times', google translation) - else_test: - if: $ClearSpeak_MultSymbolX = 'By' - then: [T: "乘"] # (en: 'by', google translation) - else: [T: "乘"] # (en: 'cross') - - "÷": [T: "除以"] # 0xf7 (en: 'divided by') - - "̀": [t: "grave accent embellishment"] # 0x300 (en: 'grave accent embellishment', google translation) - - "́": [t: "acute accent embellishment"] # 0x301 (en: 'acute accent embellishment', google translation) - - "̂": [t: "circumflex accent embellishment"] # 0x302 (en: 'circumflex accent embellishment', google translation) - - "̃": [t: "tilde embellishment"] # 0x303 (en: 'tilde embellishment', google translation) - - "̄": [t: "macron embellishment"] # 0x304 (en: 'macron embellishment', google translation) - - "̅": [t: "overbar embellishment"] # 0x305 (en: 'overbar embellishment', google translation) - - "̆": [T: "breve"] # 0x306 (en: 'breve', google translation) - - "̇": [t: "dot above embellishment"] # 0x307 (en: 'dot above embellishment', google translation) - - # Note: ClearSpeak has pref TriangleSymbol for "Δ", but that is wrong - - "Α-Ω": - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "大寫"] # (en: 'cap', google translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - # note: processing of ranges converts '.' into the character, so it needs to be in quotes below - replace: [SPELL: "translate('.', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ', 'αβγδεζηθικλμνξοπρςστυφχψω')"] - - - "α": [T: "alpha"] # 0x3b1 (en: 'alpha') - - "β": [T: "beta"] # 0x3b2 (en: 'beta') - - "γ": [T: "gamma"] # 0x3b3 (en: 'gamma') - - "δ": [T: "delta"] # 0x3b4 (en: 'delta') - - "ε": [T: "epsilon"] # 0x3b5 (en: 'epsilon') - - "ζ": [T: "zeta"] # 0x3b6 (en: 'zeta') - - "η": [T: "eta"] # 0x3b7 (en: 'eta') - - "θ": [T: "theta"] # 0x3b8 (en: 'theta') - - "ι": [T: "iota"] # 0x3b9 (en: 'iota') - - "κ": [T: "kappa"] # 0x3ba (en: 'kappa') - - "λ": [T: "lambda"] # 0x3bb (en: 'lambda') - - "μ": [T: "mu"] # 0x3bc (en: 'mu') - - "ν": [T: "nu"] # 0x3bd (en: 'nu') - - "ξ": [T: "xi"] # 0x3be (en: 'zai') - - "ο": [T: "omicron"] # 0x3bf (en: 'omicron') - - "π": [T: "pi"] # 0x3c0 (en: 'pi') - - "ρ": [T: "rho"] # 0x3c1 (en: 'rho') - - "ς": [T: "final sigma"] # 0x3c2 (en: 'final sigma') - - "σ": [T: "sigma"] # 0x3c3 (en: 'sigma') - - "τ": [T: "tau"] # 0x3c4 (en: 'tau') - - "υ": [T: "upsilon"] # 0x3c5 (en: 'upsilon') - - "φ": [T: "phi"] # 0x3c6 (en: 'phi') - - "χ": [T: "chi"] # 0x3c7 (en: 'chi') - - "ψ": [T: "psi"] # 0x3c8 (en: 'psi') - - "ω": [T: "omega"] # 0x3c9 (en: 'omega') - - "ϕ": [T: "phi"] # 0x3d5 (en: 'phi') - - "ϖ": [T: "pi"] # 0x3d6 (en: 'pi') - - "ϵ": [T: "epsilon"] # 0x3f5 (en: 'epsilon') - - "϶": [T: "reversed epsilon"] # 0x3f6 (en: 'reversed epsilon') - - - "⁡": [T: ""] # (en: 'of', google translation) - - "⁢": [t: ""] # 0x2062 - - "⁣": [t: ""] # 0x2063 - - "⁤": [T: "又"] # 0x2064 (en: 'and', google translation)(3 又 1/2) - - "ℂℕℚℝℤ": # here we rely on this running through the table again to speak "cap xxx" - - T: "空心" # (en: 'double-struck') - - SPELL: "translate('.', 'ℂℕℚℝℤ', 'CNQRZ')" - - - "℃": [T: "攝氏度"] # 0x2103 (en: 'degrees celsius', google translation) - - "ℋℛℓ": # 0x210b - - T: "草體" # (en: 'script', google translation) - - SPELL: "translate('.', 'ℋℛℓ', 'HRl')" - - "ℜ": # 0x211c - - T: "fraktur" # (google translation) - - SPELL: "'R'" - - - "ⅆⅇⅈⅉ": # 0x2146-9 - - T: "空心斜體" # (en: 'double-struck italic', google translation) - - SPELL: "translate('.', 'ⅆⅇⅈⅉ', 'deij')" - - - "∥": # 0x2225 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "平行" # (en: 'parallel to') - - "∦": # 0x2226 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不平行" # (en: 'not parallel to') - - "≤": # 0x2264 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "小於或等於" - - "≥": # 0x2265 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "大於或等於" # (en: 'greater than or equal to') - - # --- restored complex short definitions (prefer over unicode-full) --- - - "…": # 0x2026 - test: - if: - - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or" - # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn' - # speak '…' as 'and so on...' unless expr starts with '…' - - "../*[1][.='…']" - then: [T: "點點點"] # (en: 'dot dot dot', google translation) - else_test: # must have $ClearSpeak_Ellipses = 'AndSoOn' - if: "count(following-sibling::*) = 0" - then: [T: "等等"] # (en: 'and so on', google translation) - else: [T: "等等"] # (en: 'and so on up to', google translation) - - "→": # 0x2192 - - test: - if: "ancestor::*[2][self::m:limit]" - then: [T: "趨近"] # (en: 'approaches', google translation) - else: [T: "右箭頭"] # (en: 'right arrow') - - "∂": # 0x2202 - - test: - if: "$Verbosity='Terse'" - then: [T: "偏微分"] # (en: 'partial', google translation) - else: [T: "偏微分"] # (en: 'partial derivative') - - "∆": # 0x2206 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'the', google translation) - - T: "變化量" # (en: 'laplacian of') - - "∈": # 0x2208 - - test: - if: "$SpeechStyle != 'ClearSpeak'" - then: [T: "屬於"] # (en: 'an element of', google translation) - # 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 - then_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "在"] # (en: 'in', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "成員"] # (en: 'member of', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "元素"] # (en: 'element of', google translation) - - else: [T: "屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to') - else_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "是"] # (en: 'is a member of', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "是一個元素"] # (en: 'is an element of', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "在"] # (en: 'is in', google translation) - - else: [T: "屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to') - - "∉": # 0x2209 - # rule is identical to 0x2208 - - test: - if: "$SpeechStyle != 'ClearSpeak'" - then: [t: "不屬於"] # (en: 'is not an element of', google translation) - # 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 - then_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "不在"] # (en: 'not in', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "不是成員"] # (en: 'not member of', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "不是"] # (en: 'not element of', google translation) - - else: [T: "不屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'not belonging to') - else_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "不是成員"] # (en: 'is not a member of', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "不是一個元素"] # (en: 'is not an element of', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "不在"] # (en: 'is not in', google translation) - - else: [T: "不屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'does not belong to') - - "∊": # 0x220a - - test: - if: "$SpeechStyle != 'ClearSpeak'" - then: [T: "屬於"] # (en: 'is an element of', google translation) - # 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 - then_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "在"] # (en: 'in', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "成員"] # (en: 'member of', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "元素"] # (en: 'element of', google translation) - - else: [T: "屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to') - else_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "是"] # (en: 'is a member of', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "是一個元素"] # (en: 'is an element of', google translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "在"] # (en: 'is in', google translation) - - else: [T: "屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to') - - "√": # 0x221a - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'the', google translation) - - T: "根號" # (en: 'square root of') - - "∝": # 0x221d - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "正比於" # (en: 'proportional to') - - "∶": # 0x2236 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "比" # (en: 'to') - - "∾": # 0x223e - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "正無限大" # (en: 'most positive') - - "≠": # 0x2260 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不等於" # (en: 'not equal to') - - "≡": # 0x2261 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "全等於" # (en: 'identical to') - - "⊂": # 0x2282 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is a', google translation) - - T: "包含於" # (en: 'subset of') - - "⊃": # 0x2283 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is a', google translation) - - T: "包含" # (en: 'superset of') - - "⊄": # 0x2284 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不包含於" # (en: 'not a subset of') - - "⊅": # 0x2285 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', google translation) - - T: "不包含" # (en: 'not a superset of') - - "⊆": # 0x2286 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is a', google translation) - - T: "包含於或等於" # (en: 'subset of or equal to') - - "⊇": # 0x2287 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is a', google translation) - - T: "包含或等於" # (en: 'superset of or equal to') - - # --- restored short definitions that differ from unicode-full --- - - "–": [T: "en dash"] # 0x2013 (google translation) - - "—": [T: "em dash"] # 0x2014 (google translation) - - "―": [T: "單槓"] # 0x2015 (en: 'horizontal bar', google translation) - - "⇒": [T: "向右雙箭頭"] # 0x21d2 (en: 'rightwards double arrow', google translation) - - "∀": [T: "對所有"] # 0x2200 (en: 'for all') - - "∧": [T: "且"] # 0x2227 (en: 'and') - - "∨": [T: "或"] # 0x2228 (en: 'or') - - "≦": [T: "小於或等於"] # 0x2266 (en: 'less than over equal to') - - "≧": [T: "大於或等於"] # 0x2267 (en: 'greater than over equal to') +--- + # Note to translators: + # most languages don't have two ways to pronounce 'a' -- if not need, remove the rules and change "B-Z" to "A-Z" + # some languages say the word for "uppercase" after the letter. Make sure to change that where appropriate by moving some code around + - "a": + - test: + if: "$TTS='none'" + then: [T: "a"] # long "a" sound in all speech engines I tested (espeak, MS SAPI, eloquence, (en: 'eigh', google translation) + else: [SPELL: "'a'"] # AWS Polly, ReadSpeaker, NaturalReader, google cloud, nuance, ibm watson) + - "b-z": + - test: + if: "$TTS='none'" + then: [T: "."] # (en: '.', google translation) + else: [SPELL: "'.'"] + + # Capital letters are a little tricky: users can pick their favorite word (something that was requested) and + # screen readers have options to use pitch changes or beeps instead of or in addition to say "cap" + # Also, if a user can see the screen, they probably don't need to hear "cap", but if they specified an override, they must want to hear the override. + + - "A": + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "大寫"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + replace: + - test: + if: "$TTS='none'" + then: [T: "a"] # (en: 'eigh', google translation) + else: [SPELL: "'a'"] + + - "B-Z": + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "大寫"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + # note: processing of ranges converts '.' into the character, so it needs to be in quotes below + replace: [SPELL: "translate('.', 'BCDEFGHIJKLMNOPQRSTUVWXYZ', 'bcdefghijklmnopqrstuvwxyz')"] + + - "0-9": [T: "."] # (en: '.', google translation) + + - " ": [t: " "] # 0x20 + + - "!": # 0x21 + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then_test: + if: "$Verbosity = 'Terse'" + then: [T: "階乘"] # 0x21 (en: 'bang', google translation) + else: [T: "階乘"] # 0x21 (en: 'exclamation point') + else: [T: "階乘"] # 0x21 (en: 'factorial') + + - "\"": [T: "引號"] # 0x22 (en: 'quotation mark', google translation) + - "#": [T: "數字"] # 0x23 (en: 'number', google translation) + - "$": [T: "美元"] # 0x24 (en: 'dollars', google translation) + - "%": [T: "百分比"] # 0x25 (en: 'percent', google translation) + - "&": [T: "ampersand"] # 0x26 (en: 'ampersand', google translation) + - "'": [T: "單引號"] # 0x27 (en: 'apostrophe') + - "(": # 0x28 + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then_test: + if: "$Verbosity='Terse'" + then: [T: "左小括"] # 0x28 (en: 'open', google translation) + else: [T: "左小括"] # 0x28 (en: 'open paren') + else: [T: "左小括"] # 0x28 (en: 'left paren') + - ")": # 0x29 + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then_test: + if: "$Verbosity='Terse'" + then: [T: "右小括"] # 0x29 (en: 'close', google translation) + else: [T: "右小括"] # 0x29 (en: 'close paren') + else: [T: "右小括"] # 0x29 (en: 'right paren') + + - "*": # 0x2a + test: + if: "parent::*[name(.)='msup' or name(.)='msubsup' or name(.)='skip-super']" + then: [T: "星號"] # 0x2a (en: 'star', google translation) + else: [T: "乘"] # 0x2a (en: 'times') + - "+": [T: "加"] # 0x2b (en: 'plus') + - ",": # 0x2c + # the following deals with the interaction of "," with "…" which sometimes wants the ',' to be silent + # that this test is here and not with "…" is not ideal, but seems simplest + test: + if: + - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or " + # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn' + # speak "comma" when not adjacent to '…' + - "( following-sibling::*[1][text()!= '…'] and preceding-sibling::*[1][text()!='…'] ) or " + # except if expression starts with '…' + - "../*[1][.='…'] " + then: + - T: "逗號" # (en: 'comma', google translation) + - test: + if: "$Verbosity != Terse" + then: [] # pause: short + # else silent + + - "-": [T: "減"] # 0x2d (en: 'minus') + - ".": # 0x2e + - test: + if: "parent::*[1][self::m:mn]" + then: [T: "點"] # (en: 'point', google translation) + else: [T: "點"] # (en: 'dot', google translation) + - "/": + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [t: "slash"] # 0x2f + else: [T: "除以"] # 0x2f + + - ":": [T: "冒號"] # 0x3a (en: 'colon') + - ";": [T: "分號"] # 0x3b (en: 'semicolon', google translation) + - "<": # 0x3c + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "小於" # (en: 'less than') + - "=": # 0x3d + - test: + if: "$Verbosity!='Terse'" + then: [T: "等於"] # (en: 'is equal to', google translation) + else: [T: "等於"] # (en: 'equals') + + - ">": # 0x3e + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "大於" # (en: 'greater than') + - "?": [T: "問號"] # 0x3f (en: 'question mark', google translation) + - "@": [T: "小老鼠"] # 0x40 (en: 'at sign', google translation) + - "[": # 0x5b + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then: [T: "左中括"] # (en: 'open bracket', google translation) + else: [T: "左中括"] # (en: 'left bracket') + - "\\": [T: "反斜線"] # 0x5c (en: 'back slash') + - "]": # 0x5d + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then: [T: "右中括"] # (en: 'close bracket', google translation) + else: [T: "右中括"] # (en: 'right bracket') + - "^": + - test: + if: "parent::m:modified-variable or parent::m:mover" + then: [t: "hat"] + else: [t: "caret"] + - "_": [T: "under bar"] # 0x5f (en: 'under bar', google translation) + - "`": [T: "grave"] # 0x60 (en: 'grave', google translation) + - "{": # 0x7b + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then: [T: "左大括"] # (en: 'open brace', google translation) + else: [T: "左大括"] # (en: 'left brace') + - "|": # 0x7c + # note: for ClearSpeak and SimpleSpeak, "|" inside of sets is handled at the mrow level, same for 'sets' + - with: + variables: [DefaultToGiven: "count(preceding-sibling::*)=1 and count(following-sibling::*)=1 and ../../../*[1][.='P']"] # P(A|B) + replace: + - test: + - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [T: "豎線"] + - else_if: "$SpeechStyle != 'ClearSpeak'" + then_test: + - if: "$DefaultToGiven" + then: [T: "給定"] # (en: 'given', google translation) + - else_if: "preceding-sibling::*[1][self::m:mn and not(contains(., $DecimalSeparators))] and + following-sibling::*[1][self::m:mn and not(contains(., $DecimalSeparators))]" + then: [T: "整除"] # (en: 'divides') + else: [T: "豎線"] # (en: 'vertical line', google translation) + - else_if: "not(preceding-sibling::*) or not(following-sibling::*)" + then: [T: "豎線"] # (en: 'vertical line', google translation + - else_if: "$ClearSpeak_VerticalLine = 'SuchThat'" + then: [T: "滿足"] # (en: 'such that', google translation) + - else_if: "$ClearSpeak_VerticalLine = 'Given' or $DefaultToGiven" + then: [T: "給定"] # (en: 'given', google translation) + - else: [T: "整除"] # (en: 'divides') + + - "}": # 0x7d + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then: [T: "右大括"] # (en: 'close brace', google translation) + else: [T: "右大括"] # (en: 'right brace') + + - "~": [T: "tilde"] # 0x7e (en: 'tilde', google translation) + - " ": # 0xa0 + - test: + # could be mtext in mtd or mtext in an mrow that is a concatenation of mtd's. Is there a better solution? + if: "@data-empty-in-2D and not(ancestor::*[self::m:piecewise or self::m:system-of-equations or self::m:lines])" + then: [T: "無"] # want to say something for fraction (etc) with empty child (en: 'empty', google translation) + else: [T: ""] + + - "¬": [T: "非"] # 0xac (en: 'not', google translation) + - "°": [T: "度"] # 0xb0 (en: 'degrees', google translation) + - "±": [T: "加減"] # 0xb1 (en: 'plus or minus') + - "´": [T: "acute"] # 0xb4 (en: 'acute', google translation) + - "·": # 0xB7 + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')] or not($SpeechStyle = 'ClearSpeak' and $ClearSpeak_MultSymbolDot = 'Auto')" + then: [T: "乘"] # (en: 'times', google translation) + else: [T: "dot"] # (en: 'dot') + - "×": # 0xd7 + - test: + if: "$SpeechStyle = 'ClearSpeak'" + then_test: + - if: "$ClearSpeak_MultSymbolX = 'Auto'" + then: [T: "乘"] + - else_if: "$ClearSpeak_MultSymbolX = 'By'" + then: [T: "乘"] + else: [t: "cross"] + else_test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [t: "cross"] + else: [T: "乘"] + + - "÷": [T: "除以"] # 0xf7 (en: 'divided by') + - "̀": [t: "grave accent embellishment"] # 0x300 (en: 'grave accent embellishment', google translation) + - "́": [t: "acute accent embellishment"] # 0x301 (en: 'acute accent embellishment', google translation) + - "̂": [t: "circumflex accent embellishment"] # 0x302 (en: 'circumflex accent embellishment', google translation) + - "̃": [t: "tilde embellishment"] # 0x303 (en: 'tilde embellishment', google translation) + - "̄": [t: "macron embellishment"] # 0x304 (en: 'macron embellishment', google translation) + - "̅": [t: "overbar embellishment"] # 0x305 (en: 'overbar embellishment', google translation) + - "̆": [T: "breve"] # 0x306 (en: 'breve', google translation) + - "̇": [t: "dot above embellishment"] # 0x307 (en: 'dot above embellishment', google translation) + + # Note: ClearSpeak has pref TriangleSymbol for "Δ", but that is wrong + - "Α-Ω": + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "大寫"] # (en: 'cap', google translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + # note: processing of ranges converts '.' into the character, so it needs to be in quotes below + replace: [SPELL: "translate('.', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ', 'αβγδεζηθικλμνξοπρςστυφχψω')"] + + - "α": [T: "alpha"] # 0x3b1 (en: 'alpha') + - "β": [T: "beta"] # 0x3b2 (en: 'beta') + - "γ": [T: "gamma"] # 0x3b3 (en: 'gamma') + - "δ": [T: "delta"] # 0x3b4 (en: 'delta') + - "ε": [T: "epsilon"] # 0x3b5 (en: 'epsilon') + - "ζ": [T: "zeta"] # 0x3b6 (en: 'zeta') + - "η": [T: "eta"] # 0x3b7 (en: 'eta') + - "θ": [T: "theta"] # 0x3b8 (en: 'theta') + - "ι": [T: "iota"] # 0x3b9 (en: 'iota') + - "κ": [T: "kappa"] # 0x3ba (en: 'kappa') + - "λ": [T: "lambda"] # 0x3bb (en: 'lambda') + - "μ": [T: "mu"] # 0x3bc (en: 'mu') + - "ν": [T: "nu"] # 0x3bd (en: 'nu') + - "ξ": [T: "xi"] # 0x3be (en: 'zai') + - "ο": [T: "omicron"] # 0x3bf (en: 'omicron') + - "π": [T: "pi"] # 0x3c0 (en: 'pi') + - "ρ": [T: "rho"] # 0x3c1 (en: 'rho') + - "ς": [T: "final sigma"] # 0x3c2 (en: 'final sigma') + - "σ": [T: "sigma"] # 0x3c3 (en: 'sigma') + - "τ": [T: "tau"] # 0x3c4 (en: 'tau') + - "υ": [T: "upsilon"] # 0x3c5 (en: 'upsilon') + - "φ": [T: "phi"] # 0x3c6 (en: 'phi') + - "χ": [T: "chi"] # 0x3c7 (en: 'chi') + - "ψ": [T: "psi"] # 0x3c8 (en: 'psi') + - "ω": [T: "omega"] # 0x3c9 (en: 'omega') + - "ϕ": [T: "phi"] # 0x3d5 (en: 'phi') + - "ϖ": [T: "pi"] # 0x3d6 (en: 'pi') + - "ϵ": [T: "epsilon"] # 0x3f5 (en: 'epsilon') + - "϶": [T: "reversed epsilon"] # 0x3f6 (en: 'reversed epsilon') + + - "–": [T: "en dash"] # 0x2013 (google translation) + - "—": [T: "em dash"] # 0x2014 (google translation) + - "―": [T: "單槓"] # 0x2015 (en: 'horizontal bar', google translation) + - "‖": [T: "雙豎線"] # 0x2016 (en: 'double vertical line', google translation) + - "…": # 0x2026 + test: + if: + - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or" + # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn' + # speak '…' as 'and so on...' unless expr starts with '…' + - "../*[1][.='…']" + then: [T: "點點點"] # (en: 'dot dot dot', google translation) + else_test: # must have $ClearSpeak_Ellipses = 'AndSoOn' + if: "count(following-sibling::*) = 0" + then: [T: "等等"] # (en: 'and so on', google translation) + else: [T: "等等"] # (en: 'and so on up to', google translation) + + - "⁡": # 0x2061 + - test: + # skip saying "of" when Terse and a trig function, when it is a shape (does this happen?), or we are in :literal mode + if: "not( + ( $Verbosity='Terse' or ($SpeechStyle = 'ClearSpeak' and IsNode(following-sibling::*[1],'simple')) and + preceding-sibling::*[1][IfThenElse($SpeechStyle='ClearSpeak', + IsInDefinition(., 'ClearSpeakTrigFunctionNames'), + IsInDefinition(., 'TrigFunctionNames') )] + ) or + preceding-sibling::*[1][IsInDefinition(., 'GeometryShapes')] or + (@data-changed='added' and ancestor-or-self::*[contains(@data-intent-property, ':literal:')]) + )" + then: [t: ""] + - "⁢": [t: ""] # 0x2062 + - "⁣": [t: ""] # 0x2063 + - "⁤": [T: "又"] # 0x2064 (en: 'and', google translation)(3 又 1/2) + - "′": [T: "prime"] # 0x2032 + - "″": [T: "double prime"] # 0x2033 + - "‴": [T: "triple prime"] # 0x2034 + + - "ℂℕℚℝℤ": # here we rely on this running through the table again to speak "cap xxx" + - T: "空心" # (en: 'double-struck') + - SPELL: "translate('.', 'ℂℕℚℝℤ', 'CNQRZ')" + + - "℃": [T: "攝氏度"] # 0x2103 (en: 'degrees celsius', google translation) + - "℉": [T: "華氏度"] # 0x2109 (en: 'degrees fahrenheit', google translation) + - "ℋℛℓ": # 0x210b + - T: "草體" # (en: 'script', google translation) + - SPELL: "translate('.', 'ℋℛℓ', 'HRl')" + - "ℎ": [T: "普朗克常數"] # 0x210e (en: 'planck constant', google translation) + - "ℜ": # 0x211c + - T: "fraktur" # (google translation) + - SPELL: "'R'" + + - "Ω": [T: "歐姆"] # 0x2126 (en: 'ohms', google translation) + - "K": [T: "kelvin"] # 0x212a (en: 'kelvin', google translation) + - "Å": [T: "angstroms"] # 0x212b (en: 'angstroms', google translation) + - "ⅆⅇⅈⅉ": # 0x2146-9 + - T: "空心斜體" # (en: 'double-struck italic', google translation) + - SPELL: "translate('.', 'ⅆⅇⅈⅉ', 'deij')" + + - "←": [T: "左箭頭"] # 0x2190 (en: 'leftwards arrow', google translation) + - "↑": [T: "向上箭頭"] # 0x2191 (en: 'upwards arrow', google translation) + - "→": # 0x2192 + - test: + if: "ancestor::*[2][self::m:limit]" + then: [T: "趨近"] # (en: 'approaches', google translation) + else: [T: "右箭頭"] # (en: 'right arrow') + + - "↓": [T: "向下箭頭"] # 0x2193 (en: 'downwards arrow', google translation) + - "⇒": [T: "向右雙箭頭"] # 0x21d2 (en: 'rightwards double arrow', google translation) + - "∀": [T: "對所有"] # 0x2200 (en: 'for all') + - "∂": # 0x2202 + - test: + if: "$Verbosity='Terse'" + then: [T: "偏微分"] # (en: 'partial', google translation) + else: [T: "偏微分"] # (en: 'partial derivative') + - "∃": [T: "存在"] # 0x2203 (en: 'there exists') + - "∄": [T: "不存在"] # 0x2204 (en: 'there does not exist') + - "∅": [T: "空集合"] # 0x2205 (en: 'empty set') + - "∆": # 0x2206 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'the', google translation) + - T: "變化量" # (en: 'laplacian of') + - "∈": # 0x2208 + - test: + if: "$SpeechStyle != 'ClearSpeak'" + then: + - test: + if: "$Verbosity!='Terse' and not(ancestor::*[self::m:set])" # "the set x is an element of ..." sounds bad" + then: [t: ""] + - T: "屬於" # (en: 'an element of', google translation) + # 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 + then_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "在"] # (en: 'in', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "成員"] # (en: 'member of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "元素"] # (en: 'element of', google translation) + - else: [T: "屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to') + else_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "是"] # (en: 'is a member of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "是一個元素"] # (en: 'is an element of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "在"] # (en: 'is in', google translation) + - else: [T: "屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to') + - "∉": # 0x2209 + # rule is identical to 0x2208 + - test: + if: "$SpeechStyle != 'ClearSpeak'" + then: + - test: + if: "$Verbosity!='Terse'" + then: [t: ""] + - T: "不屬於" # (en: 'is not an element of', google translation) + # 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 + then_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "不在"] # (en: 'not in', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "不是成員"] # (en: 'not member of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "不是"] # (en: 'not element of', google translation) + - else: [T: "不屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'not belonging to') + else_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "不是成員"] # (en: 'is not a member of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "不是一個元素"] # (en: 'is not an element of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "不在"] # (en: 'is not in', google translation) + - else: [T: "不屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'does not belong to') + - "∊": # 0x220a + - test: + if: "$SpeechStyle != 'ClearSpeak'" + then: + - test: + if: "$Verbosity!='Terse' and not(ancestor::*[self::m:set])" # "the set x is an element of ..." sounds bad" + then: [t: ""] + - T: "屬於" # (en: 'is an element of', google translation) + # 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 + then_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "在"] # (en: 'in', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "成員"] # (en: 'member of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "元素"] # (en: 'element of', google translation) + - else: [T: "屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to') + else_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "是"] # (en: 'is a member of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "是一個元素"] # (en: 'is an element of', google translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "在"] # (en: 'is in', google translation) + - else: [T: "屬於"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to') + - "∏": [T: "積"] # 0x220f (en: 'product') + - "∐": [T: "餘積"] # 0x2210 (en: 'co-product') + - "∑": [T: "和"] # 0x2211 (en: 'sum') + - "−": [T: "減"] # 0x2212 (en: 'minus') + - "∓": [T: "減加號"] # 0x2213 (en: 'minus or plus') + - "∗": [T: "乘"] # 0x2217 (en: 'times', google translation) + - "∘": [T: "合成"] # 0x2218 (en: 'composed with') + - "√": # 0x221a + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'the', google translation) + - T: "根號" # (en: 'square root of') + - "∝": # 0x221d + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "正比於" # (en: 'proportional to') + - "∞": [T: "無限大"] # 0x221e (en: 'infinity') + - "∟": [T: "直角"] # 0x221f (en: 'right angle') + - "∠": [T: "角"] # 0x2220 (en: 'angle') + - "∡": [T: "測量角"] # 0x2221 (en: 'measured angle') + - "∣": [T: "整除"] # 0x2223 (en: 'divides') + - "∤": [T: "不整除"] # 0x2224 (en: 'does not divide') + - "∥": # 0x2225 + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [T: "雙豎線"] + else: + - test: + if: "$Verbosity!='Terse'" + then: [t: ""] + - T: "平行" + - "∦": # 0x2226 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不平行" # (en: 'not parallel to') + - "∧": [T: "且"] # 0x2227 (en: 'and') + - "∨": [T: "或"] # 0x2228 (en: 'or') + - "∩": [T: "交集"] # 0x2229 (en: 'intersection') + - "∪": [T: "聯集"] # 0x222a (en: 'union') + - "∫": [T: "積分"] # 0x222b (en: 'integral') + - "∬": [T: "二重積分"] # 0x222c (en: 'double integral') + - "∭": [T: "三重積分"] # 0x222d (en: 'triple integral') + - "∮": [T: "輪廓積分"] # 0x222e (en: 'contour integral') + - "∶": # 0x2236 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "比" # (en: 'to') + - "∷": [T: "如同"] # 0x2237 (en: 'as') + - "∼": [T: "相似"] # 0x223c (en: 'varies with') + - "∽": [T: "反波浪符"] # 0x223d (en: 'reversed tilde') + - "∾": # 0x223e + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "正無限大" # (en: 'most positive') + - "∿": [T: "正弦波型"] # 0x223f (en: 'sine wave') + - "≠": # 0x2260 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不等於" # (en: 'not equal to') + - "≡": # 0x2261 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "全等於" # (en: 'identical to') + - "≤": # 0x2264 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "小於或等於" + - "≥": # 0x2265 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "大於或等於" # (en: 'greater than or equal to') + - "≦": [T: "小於或等於"] # 0x2266 (en: 'less than over equal to') + - "≧": [T: "大於或等於"] # 0x2267 (en: 'greater than over equal to') + - "≺": [T: "先於"] # 0x227a (en: 'precedes') + - "≻": [T: "後於"] # 0x227b (en: 'succeeds') + - "⊂": # 0x2282 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is a', google translation) + - T: "包含於" # (en: 'subset of') + - "⊃": # 0x2283 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is a', google translation) + - T: "包含" # (en: 'superset of') + - "⊄": # 0x2284 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不包含於" # (en: 'not a subset of') + - "⊅": # 0x2285 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', google translation) + - T: "不包含" # (en: 'not a superset of') + - "⊆": # 0x2286 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is a', google translation) + - T: "包含於或等於" # (en: 'subset of or equal to') + - "⊇": # 0x2287 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is a', google translation) + - T: "包含或等於" # (en: 'superset of or equal to') diff --git a/Rules/definitions.yaml b/Rules/definitions.yaml index 6e164d71f..07681390c 100644 --- a/Rules/definitions.yaml +++ b/Rules/definitions.yaml @@ -38,8 +38,8 @@ "arctan", "arctang", "arctanh", "exp", "Exp", "expt", "arg", "im", "Im", "ℑ", re", "Re", "ℜ", "Pr", "cis", "gcd", "lcm", - "min", "max", "deg", "det", - "dim", "hom", "ker", "tr", + "min", "max", "deg", "det", "rank", "rg", "sgn", + "dim", "hom", "ker", "tr", "rot", "div", "Dim", "Hom", "Ker", "Tr", "inf", "lim", "liminf", "limsup", "sup", "injlim", "projlim", "inj lim", "proj lim", diff --git a/build.rs b/build.rs index b2b359d2b..b8be2e9a9 100644 --- a/build.rs +++ b/build.rs @@ -199,5 +199,9 @@ fn main() { panic!("Error in zip.finish(): {}", e); } println!("cargo::rerun-if-changed=Rules"); + } else { + // Without include-zip, Rules are loaded at runtime from disk and must not + // re-run this script (or slow the build) on every yaml edit. + println!("cargo::rerun-if-changed=build.rs"); } -} \ No newline at end of file +} diff --git a/docs/User_guide_for_MathCAT_en.md b/docs/User_guide_for_MathCAT_en.md index c63431a81..80e19314d 100644 --- a/docs/User_guide_for_MathCAT_en.md +++ b/docs/User_guide_for_MathCAT_en.md @@ -39,6 +39,7 @@ You can choose between the following settings for speech. Below each setting you - \[English (en)\] - Spanish (es) - Indonesian (id) + - Russian (ru) - Swedish (sv) - Vietnamese (vi) - Chinese, traditional (zh-tw) diff --git a/docs/index.md b/docs/index.md index c4c713172..f0e944723 100644 --- a/docs/index.md +++ b/docs/index.md @@ -33,7 +33,7 @@ MathCAT uses a number of heuristics that try to repair poor MathML and put it in MathCAT is under active development. DAISY is actively participating in the development effort, and contributions are welcome. MathCAT is open source, and the [GitHub repository is available here](https://github.com/daisy/MathCAT). [NVDA-specific problems with the MathCAT add-on can be reported here](https://github.com/daisy/MathCATForPython/issues). * MathCAT currently supports speech and navigation for -English, German, Spanish, Finnish, Indonesian, Norwegian, Swedish, Vietnamese, and Chinese (Traditional). +English, German, Spanish, Finnish, Indonesian, Norwegian, Russian, Swedish, Vietnamese, and Chinese (Traditional). * MathCAT's braille support includes Nemeth, UEB, CMU, Vietnamese, German/Austrian LaTeX and ASCIIMath. * An [NVDA add-on](https://addons.nvda-project.org/addons/MathCAT.en.html) exists. It should be usable as a MathPlayer replacement for those using the English version or one of the supported translations. As of NVDA 2026.1, MathCAT is built into NVDA and no download is needed. @@ -175,7 +175,7 @@ Translators: * German -- Nazli Andjic, Robert Graf and Paul Libbrecht (IU International University of Applied Sciences) * Indonesian -- Dr. Pinta Deniyanti Sampoerno, M.Si; Dr. Meiliasari, S.Pd., M.Sc; and Ari Hendarno, S.Pd., M.Kom. * Norwegian -- Marthe Gjelstad, National Library of Norway, Kvile -* Russian -- Danil Kostenkov +* Russian (both speech and braille) -- Danil Kostenkov * Spanish -- Noelia Ruiz Martínez (also helped with NVDA add-on development) and María Allo Roldán * Swedish -- Tim Arborealis Lötberg, Swedish Agency for Accessible Media (MTM) and Anders Eklund, SPSM * Vietnamese -- Dang Hoai Phúc and Trang Pham diff --git a/docs/ru/User_guide_for_MathCAT_ru.md b/docs/ru/User_guide_for_MathCAT_ru.md index 43e230816..3214c89ac 100644 --- a/docs/ru/User_guide_for_MathCAT_ru.md +++ b/docs/ru/User_guide_for_MathCAT_ru.md @@ -40,14 +40,15 @@ MathCAT можно настроить в соответствии с вашим - Особые потребности: - \[Незрячие.\] Однозначное озвучивание. - Слабовидящие. Более краткое озвучивание. - - Трудности в обучении. Более краткое озвучивание. + - Когнитивные нарушения. Более краткое озвучивание. - Язык: (по умолчанию используется язык программы экранного доступа) - \[Английский (en)\] - - Испанский (es) - - Индонезийский (id) - - Шведский (sv) - Вьетнамский (vi) + - Индонезийский (id) + - Испанский (es) - Китайский, традиционное письмо (zh-tw) + - Русский (ru) + - Шведский (sv) - Стиль речи: - \[ClearSpeak.\] Выражения озвучиваются примерно так, как их произнёс бы учитель на уроке. - SimpleSpeak. Выражения озвучиваются более кратко. Иногда такое чтение может быть неоднозначным. diff --git a/docs/ru/helpers.md b/docs/ru/helpers.md index bd63b7c4e..be36a6116 100644 --- a/docs/ru/helpers.md +++ b/docs/ru/helpers.md @@ -20,19 +20,19 @@ title: Руководство переводчика и разработчика ## Переводчикам на другие языки Если вы хотите перевести MathCAT, свяжитесь с @NSoiffer. Он подготовит начальный вариант перевода, который может значительно сэкономить время. В результате будут созданы файлы в каталоге `Rules/Languages/xx`, где `xx` — код языка, например `fr`, `de` или `el`. Перевод выполняется в этом каталоге. Необходимо отредактировать четыре категории файлов: -1. `definitions.yaml`: содержит переводы числительных, в том числе количественных и порядковых. Проверьте начальный перевод и внесите необходимые исправления. Эти числительные используются, например, при озвучивании фразы «три пятых». На некотором этапе образование числительных в языках становится регулярным, поэтому некоторые списки в файле можно сократить, а некоторые следует дополнить. Подробнее см. английские комментарии в файле. +1. `definitions.yaml`: содержит переводы числительных, в том числе количественных и порядковых. Проверьте начальный перевод и внесите необходимые исправления. Эти числительные используются, например, при озвучивании фразы «три пятых». На некотором этапе образование числительных в языках становится регулярным, поэтому некоторые списки в файле можно сократить, а некоторые следует дополнить. Подробнее об этом можно узнать из английских комментариев в файле. 2. Файлы `xxx_Rules.yaml`, сейчас это `ClearSpeak_Rules.yaml` и `SimpleSpeak_Rules.yaml`. Они соответствуют разным стилям речи. Настоятельно рекомендуется сначала выбрать только один стиль. Эти файлы обычно содержат слова, описывающие структуру выражения, например «дробь» и «степень», а также связующие слова. Поскольку стили речи во многом похожи, существует также каталог `SharedRules` с общими файлами правил. Они подключаются в `ClearSpeak_Rules.yaml` и `SimpleSpeak_Rules.yaml` с помощью правил `- include: file_name`. Их тоже необходимо перевести.

-Примечание: диалог настроек MathCAT ищет файлы с именами вида `XXX_Rules.yaml` и добавляет их в раскрывающийся список для языка. Использовать имена SimpleSpeak и ClearSpeak необязательно. Если вы хотите перевести только один стиль, например SimpleSpeak, но не хотите удалять `ClearSpeak_Rules.yaml`, переименуйте его, например, в `ClearSpeak_Rules.yaml.untranslated`. +Примечание: диалог настроек MathCAT ищет файлы с именами вида `XXX_Rules.yaml` и добавляет их в комбинированный список для языка. Использовать имена SimpleSpeak и ClearSpeak необязательно. Если вы хотите перевести только один стиль, например SimpleSpeak, но не хотите удалять `ClearSpeak_Rules.yaml`, переименуйте его, например, в `ClearSpeak_Rules.yaml.untranslated`.

Эти файлы содержат автоматически созданные начальные переводы. Хотя текст уже переведён, используется ключ `t:`, а не `T:` с прописной буквы. Каждый перевод необходимо проверить и только после этого изменить ключ на вариант с прописной буквы. Подробнее об автоматическом переводе см. ниже. * В некоторых языках нет смысла произносить эквиваленты слов «the» и, возможно, «of» во фразе «the square root of x». В таком случае замените их пустыми строками. - * В некоторых языках меняется порядок слов. Переставляйте слова свободно, но внимательно следите за отступами: в YAML они значимы. + * В некоторых языках меняется порядок слов. Переставляйте слова свободно, но внимательно следите за отступами: в YAML они имеют значение. * В некоторых языках могут потребоваться слова, отсутствующие в английской версии, до или после существующих фраз. Добавляйте их при необходимости. Условное добавление выполняется с помощью `test`. Если нужна помощь, свяжитесь с @NSoiffer. - * Паузы между словами и фразами могут значительно улучшить понятность речи. Исходные паузы выбраны для английского языка. Настройте их в соответствии со звучанием синтезаторов вашего языка. Паузы легко добавлять, удалять и изменять. Их длительность масштабируется в соответствии с текущей скоростью речи. + * Паузы между словами и фразами могут значительно улучшить понятность речи. Исходные паузы выбраны для английского языка. Настройте их в соответствии со звучанием синтезаторов речи вашего языка. Паузы легко добавлять, удалять и изменять. Их длительность масштабируется в соответствии с текущей скоростью речи. 3. Файлы Unicode: `unicode.yaml` и `unicode-full.yaml`. Они содержат такие символы, как `<` и `∫`. * Начните с перевода `unicode.yaml`. В нём находится подавляющее большинство используемых математических символов. Сейчас список основан на практическом опыте, но в дальнейшем планируется уточнить его по статистике из реальных книг. В `unicode.yaml` около 270 символов, примерно 50 из которых — греческие буквы. Как и в файлах правил речи, здесь есть автоматически созданные начальные переводы. Проверьте их и измените `t:` на `T:`. Подробнее об автоматическом переводе см. ниже. * В `unicode-full.yaml` тысячи строк. Вернитесь к нему после завершения остальных переводов и работайте столько, сколько сможете: большинство этих символов встречаются только в сложной математике и даже там используются редко. Наиболее важны: @@ -57,15 +57,15 @@ __ПРИМЕЧАНИЕ__: Сейчас почти завершён перехо then: [t: "is"] - t: "greater than" ``` -При переводе на французский язык слова после `t:` заменяются примерно так: +При переводе на русский язык слова после `t:` заменяются примерно так: ``` - - "=": [T: "égale"] # 0x3d + - "=": [T: "равно"] # 0x3d - ">": # 0x3e - test: if: "$Verbosity!='Terse'" - then: [T: "est"] - - T: "supérieur à" + then: [T: ""] + - T: "больше" ``` Примечание: иногда значение `IfThenElse` не требует перевода, но ключ всё равно следует изменить, чтобы было видно, что строка проверена. В следующем примере перевод не нужен, поскольку части `then` и `else`, соответственно `count(*/*[1])` и `$LineCountTry`, не являются словами: @@ -84,15 +84,15 @@ __ПРИМЕЧАНИЕ__: Сейчас почти завершён перехо Если переводы MathPlayer и SRE различаются, выбирается вариант, совпадающий с Google Translate, а другой вариант включается в комментарий. Например: ``` - else: [t: "parenthèse gauche"] # (en: 'left paren', MathPlayer: 'parenthèse ouvrante') + else: [t: "левая круглая скобка"] # (en: 'left paren', MathPlayer: 'открывающая круглая скобка') ``` Если не совпадает ни один перевод, выбирается один из вариантов, а остальные приводятся в комментарии. Например: ``` - else: [t: "parenthèse gauche"] # (en: 'open paren', MathPlayer: 'parenthèse ouvrante', google: 'parenthèse ouverte') + else: [t: "левая круглая скобка"] # (en: 'open paren', MathPlayer: 'открывающая круглая скобка', google: 'открытая скобка') ``` Наконец, если перевод отсутствует, используется Google Translate и добавляется комментарий `google translation`. Вероятность неудачного перевода в таком случае заметно выше, поэтому внимательно проверяйте эти строки. Пример, где доступен только Google Translate: ``` - then: [t: "ligne verticale"] # (en: 'vertical line', google translation) + then: [t: "вертикальная линия"] # (en: 'vertical line', google translation) ``` @@ -100,7 +100,7 @@ __ПРИМЕЧАНИЕ__: Сейчас почти завершён перехо Если вы используете NVDA, начатый перевод можно сразу проверить. Предполагается, что дополнение MathCAT уже установлено: 1. Скопируйте новый каталог перевода в `%AppData%\nvda\addons\MathCAT\globalPlugins\MathCAT\Rules\Languages`. 2. Запустите NVDA и откройте меню настроек MathCAT: параметры NVDA, затем «Настройки MathCAT...». -3. Выберите новый язык в раскрывающемся списке `Languages`. +3. Выберите новый язык в комбинированном списке `Languages`. 4. Проверьте озвучивание. Хорошим источником примеров служат страницы Википедии. 5. Если произошла ошибка, часто выражающаяся в отсутствии речи, откройте журнал NVDA из подменю «Сервис». Ошибка должна быть указана там. Объяснение сообщений об ошибках приведено ниже. 6. MathCAT должен заметить изменение файла и перезагрузить его. Сейчас это не работает для файлов, подключённых с помощью `include`, например для файлов каталога `Shared`. После изменения такого файла перезагрузите MathCAT через «Сервис: Перезагрузить плагины» в NVDA или перезапустите NVDA. @@ -110,16 +110,16 @@ __ПРИМЕЧАНИЕ__: Сейчас почти завершён перехо ### Автоматические тесты перевода Тестирование очень важно. MathCAT написан на Rust и содержит множество автоматических тестов, использующих встроенную систему тестирования Rust. Чтобы писать и проверять собственные тесты, [скачайте и установите Rust](https://www.rust-lang.org/tools/install). Знать Rust необязательно: достаточно заменить некоторые английские строки ожидаемыми строками на вашем языке. -Предположим, что вы переводите на французский язык с кодом `fr`. +Предположим, что вы переводите на русский язык с кодом `ru`. -Сначала откройте файл `languages.rs` в каталоге тестов и добавьте строку `mod fr;` после `mod en;` или аналогичной строки другого языка. +Сначала откройте файл `languages.rs` в каталоге тестов и добавьте строку `mod ru;` после `mod en;` или аналогичной строки другого языка. В каталоге `tests\Languages` находятся файл `en.rs` и каталог `en`. -1. Скопируйте `en.rs` в `fr.rs`. -2. Скопируйте каталог `en` в `fr`. -3. Если вы выбрали только один стиль речи, например SimpleSpeak, отредактируйте `fr.rs`: удалите строки, начиная с `mod ClearSpeak {` и заканчивая соответствующей строкой `}`. Удалите подкаталог `ClearSpeak` из каталога `fr`. -4. Желательно перевести все файлы, но на начальном этапе можно ограничиться несколькими. В `fr.rs` закомментируйте каждый непереведённый файл, добавив `//` в начало строки. Например, если вы не перевели файл SimpleSpeak `geometry.yaml`, строка должна выглядеть так: `// mod geometry;`. -5. Начните редактировать файлы: сначала глобально замените `"en"` на `"fr"`, а затем замените английские строки подходящими французскими или другими строками. +1. Скопируйте `en.rs` в `ru.rs`. +2. Скопируйте каталог `en` в `ru`. +3. Если вы выбрали только один стиль речи, например SimpleSpeak, отредактируйте `ru.rs`: удалите строки, начиная с `mod ClearSpeak {` и заканчивая соответствующей строкой `}`. Удалите подкаталог `ClearSpeak` из каталога `ru`. +4. Желательно перевести все файлы, но на начальном этапе можно ограничиться несколькими. В `ru.rs` закомментируйте каждый непереведённый файл, добавив `//` в начало строки. Например, если вы не перевели файл SimpleSpeak `geometry.yaml`, строка должна выглядеть так: `// mod geometry;`. +5. Начните редактировать файлы: сначала глобально замените `"en"` на `"ru"`, а затем замените английские строки подходящими русскими или другими строками. Пример теста: ``` @@ -131,9 +131,9 @@ fn common_fraction_half() { test("en", "SimpleSpeak", expr, "1 half"); } ``` -Для французского языка строка `test` будет выглядеть так: +Для русского языка строка `test` будет выглядеть так: ``` - test("fr", "SimpleSpeak", expr, "un demi"); + test("fr", "SimpleSpeak", expr, "одна вторая"); ``` После перевода нескольких тестов запустите автоматическую проверку. @@ -143,9 +143,9 @@ cargo test Languages::en ``` Затем запустите свои тесты. В нашем примере: ``` -cargo test Languages::fr +cargo test Languages::ru ``` -MathCAT добавляет паузы. В ожидаемых строках тестов они записываются символами `,` и `;`. При необходимости добавьте или удалите эти символы в ожидаемом результате. Если паузы звучат неуместно, добавьте или удалите `pause: xxx` в соответствующем месте одного из файлов `Rules\fr`. +MathCAT добавляет паузы. В ожидаемых строках тестов они записываются символами `,` и `;`. При необходимости добавьте или удалите эти символы в ожидаемом результате. Если паузы звучат неуместно, добавьте или удалите `pause: xxx` в соответствующем месте одного из файлов `Rules\ru`. __Совет__: возможно, быстрее всего сначала запустить тесты на своём языке, не меняя ожидаемые результаты. Все тесты завершатся с ошибкой, но в сообщениях будет показана речь, созданная MathCAT на вашем языке. _Если она верна_, просто замените ей английский текст. После обработки всех ошибок снова запустите тесты. В идеальном случае ошибок больше не будет. diff --git a/docs/ru/index.md b/docs/ru/index.md index 8d06d475f..25c7d1b5a 100644 --- a/docs/ru/index.md +++ b/docs/ru/index.md @@ -8,7 +8,7 @@ title: MathCAT — библиотека, которая преобразует MathML в: -* текст для озвучивания со встроенными командами речевого синтезатора; +* текст для озвучивания со встроенными командами синтезатора речи; * Брайль (код Немета, технический вариант UEB, а в дальнейшем и другие математические системы записи Брайля); * представление для навигации по математическим выражениям, в том числе с возможностью обзора. @@ -38,7 +38,7 @@ MathCAT применяет несколько эвристик, чтобы ис MathCAT активно развивается. DAISY принимает деятельное участие в разработке, и вклад новых участников приветствуется. MathCAT распространяется с открытым исходным кодом. [Репозиторий проекта доступен на GitHub](https://github.com/daisy/MathCAT). [О проблемах дополнения MathCAT, относящихся к NVDA, можно сообщить здесь](https://github.com/daisy/MathCATForPython/issues). -* MathCAT поддерживает озвучивание и навигацию для английского, немецкого, испанского, финского, индонезийского, норвежского, шведского, вьетнамского и китайского языков (традиционное письмо). +* MathCAT поддерживает озвучивание и навигацию для английского, вьетнамского, индонезийского, испанского, китайского (традиционное письмо), немецкого, норвежского, русского, финского и шведского языков. * MathCAT поддерживает код Немета, UEB, CMU, вьетнамскую систему записи Брайля, а также немецкую и австрийскую системы записи LaTeX и ASCIIMath. * Существует [дополнение NVDA](https://addons.nvda-project.org/addons/MathCAT.en.html). Оно может заменить MathPlayer для пользователей английского языка и поддерживаемых переводов. Начиная с NVDA 2026.1 MathCAT встроен в NVDA, поэтому скачивать дополнение не нужно. diff --git a/docs/ru/new_translators_guide_MathCAT_revised.md b/docs/ru/new_translators_guide_MathCAT_revised.md index a44bb6408..966cea36f 100644 --- a/docs/ru/new_translators_guide_MathCAT_revised.md +++ b/docs/ru/new_translators_guide_MathCAT_revised.md @@ -220,7 +220,7 @@ fn common_fraction_tenths() -> Result<()> { Есть два основных режима речи: ClearSpeak и SimpleSpeak. В статье Нила [A Comparison of Different Styles of Speech for Mathematics](https://scholarworks.calstate.edu/downloads/5t34sv64c) хорошо объясняется различие между ними. Кратко: * ClearSpeak должен быть похож на то, как учитель произносит математическое выражение на уроке. -* SimpleSpeak компактно озвучивает простые выражения. Например, $\frac{x}{y} + 1$ читается как «x over y plus one». Слова, обозначающие начало и конец дроби, не используются, потому что числитель и знаменатель просты. Выражение $\frac{x}{y+1}$ читается как «fraction, x over y plus one, end fraction». Здесь такие слова используются, поскольку знаменатель не является простым. +* SimpleSpeak компактно озвучивает простые выражения. Например, $\frac{x}{y} + 1$ на русском языке читается как «икс разделить на игрек плюс один». Слова, обозначающие начало и конец дроби, не используются, потому что числитель и знаменатель просты. Выражение $\frac{x}{y+1}$ на русском языке читается как «дробь, икс разделить на игрек плюс один, конец дроби». Здесь такие слова используются, поскольку знаменатель не является простым. Вы можете перевести оба стиля речи или сосредоточиться на одном. В зависимости от принятого способа произнесения математических выражений в целевом языке переведённые стили могут различаться сильнее или слабее английских. @@ -264,7 +264,7 @@ MathCAT также поддерживает уровни подробности ### Адаптация и создание собственных правил -Тесты покрывают большинство правил. Однако в португальском или другом языке могут существовать грамматические особенности, которых нет в английском и которые не охвачены тестами. Поэтому полезно просмотреть все правила и убедиться в их корректности. +Тесты покрывают большинство правил. Однако в португальском или другом языке могут существовать грамматические особенности, которых нет в английском языке и которые не охвачены тестами. Поэтому полезно просмотреть все правила и убедиться в их корректности. При грамматических различиях простой замены текстовых строк недостаточно. Необходимо изменить правила или добавить новые. Для совершенно новых правил полезно написать тесты, подтверждающие правильность результата. Не бойтесь пробовать разные варианты. @@ -297,7 +297,7 @@ MathCAT также поддерживает уровни подробности - t: "squared" # phrase(7 'squared' equals 49) ``` -Это правило означает: если степень имеет показатель 2 и настройка `ClearSpeak_Exponents` равна `Auto`, следует вывести «основание в квадрате». Например, $x^2$ озвучивается как «x squared». +Это правило означает: если степень имеет показатель 2 и настройка `ClearSpeak_Exponents` равна `Auto`, следует вывести «в квадрате». Например, $x^2$ на русском языке озвучивается как «икс в квадрате». Обратите внимание: @@ -344,9 +344,9 @@ MathCAT также поддерживает уровни подробности * числитель должен быть текстовой строкой длиной более одного символа или числом, неявно умноженным на такую строку, **и** * знаменатель должен удовлетворять тем же условиям, что и числитель. -Если все условия выполнены, дробь озвучивается как «числитель над знаменателем». Если `ClearSpeak_Fractions` имеет значение `EndFrac` или `OverEndFrac`, также добавляется короткая пауза перед фразой «конец дроби». +Если все условия выполнены, дробь озвучивается как «числитель разделить на знаменатель». Если `ClearSpeak_Fractions` имеет значение `EndFrac` или `OverEndFrac`, также добавляется короткая пауза перед фразой «конец дроби». -Например, выражение $\frac{\text{meter}}{\text{second}}$ озвучивается как «meter over second». +Например, выражение $\frac{\text{meter}}{\text{second}}$ озвучивается как «метр за секунду». --- @@ -506,7 +506,7 @@ MathCAT также поддерживает уровни подробности Пользовательское тестирование Брайля так же важно, как тестирование речи. -При работе над шведским переводом тестировщики использовали NVDA вместе со средством просмотра Брайля, чтобы контролировать результат во время удалённых сеансов. Это позволяло наблюдать вывод, даже если сами рецензенты читали его на физическом дисплее Брайля. +При работе над шведским переводом тестировщики использовали NVDA вместе с просмотрщиком Брайля, чтобы контролировать результат во время удалённых сеансов. Это позволяло наблюдать вывод, даже если сами рецензенты читали его на дисплее Брайля. Как и для речи, важна не только техническая правильность. Результат должен быть читаемым, согласованным и полезным в реальной работе. diff --git a/src/braille.rs b/src/braille.rs index 66f579a73..1ced5bc8b 100644 --- a/src/braille.rs +++ b/src/braille.rs @@ -1,5 +1,5 @@ #![allow(clippy::needless_return)] -use strum_macros::Display; +use strum::Display; use sxd_document_no_unsafe::dom::{Element, ChildOfElement}; use sxd_document_no_unsafe::Package; use sxd_document_no_unsafe::as_str; @@ -59,7 +59,7 @@ pub fn braille_mathml(mathml: Element, nav_node_id: &str) -> Result<(String, usi } ); }); - + /// highlight with dots 7 & 8 based on the highlight style /// both the start and stop points will be extended to deal with indicators such as capitalization /// if 'fill_range' is true, the interior will be highlighted @@ -264,6 +264,7 @@ fn get_braille_code(code: &str) -> Option<&'static dyn BrailleCode> { "Vietnam" => &Vietnam, "CMU" => &Cmu, "Finnish" => &Finnish, + "Russian" => &Russian, "Swedish" => &Swedish, "LaTeX" => &LaTeX, "ASCIIMath" => &AsciiMath, @@ -276,6 +277,7 @@ struct Ueb; struct Vietnam; struct Cmu; struct Finnish; +struct Russian; struct Swedish; #[allow(non_camel_case_types)] struct LaTeX; @@ -343,6 +345,12 @@ impl BrailleCode for Finnish { fn needs_grouping(&self, mathml: Element, is_base: bool) -> StdResult { Ok(NeedsToBeGrouped::needs_grouping_for_finnish(mathml, is_base)) } } +impl BrailleCode for Russian { + fn name(&self) -> &'static str { "Russian" } + fn cleanup(&self, pref_manager: Ref, raw_braille: String) -> String { russian_cleanup(pref_manager, raw_braille) } + fn get_braille_chars(&self, node: Element, text_range: Option>) -> Result { BrailleChars::get_braille_russian_chars(node, text_range) } // FIX: need to figure out what to implement +} + impl BrailleCode for Swedish { fn name(&self) -> &'static str { "Swedish" } fn cleanup(&self, pref_manager: Ref, raw_braille: String) -> String { swedish_cleanup(pref_manager, raw_braille) } @@ -887,6 +895,7 @@ static UEB_INDICATOR_REPLACEMENTS: phf::Map<&str, &str> = phf_map! { "1" => "⠰", // Grade 1 symbol "𝟙" => "⠰⠰", // Grade 1 word "L" => "", // Letter left in to assist in locating letters + "A" => "", // Letter accent indicator -- should be followed by accent cells and then "L" for char "D" => "XXX", // German (Deutsche) -- from prefs "G" => "⠨", // Greek "V" => "⠨⠈", // Greek Variants @@ -925,6 +934,24 @@ fn is_letter_number(ch: char) -> bool { matches!(ch, '⠁' | '⠃' | '⠉' | '⠙' | '⠑' | '⠋' | '⠛' | '⠓' | '⠊' | '⠚') } +fn is_braille_char(ch: char) -> bool { + ('\u{2800}'..='\u{28ff}').contains(&ch) +} + +/// After an 'A' accent indicator, skip accent braille cells and return the index of the following 'L'. +/// Returns None if the accented-letter pattern is malformed. +fn index_after_accent_to_l(chars: &[char], after_a: usize) -> Option { + let mut j = after_a; + while j < chars.len() && is_braille_char(chars[j]) { + j += 1; + } + if j < chars.len() && chars[j] == 'L' { + Some(j) + } else { + None + } +} + static SHORT_FORMS: phf::Set<&str> = phf_set! { "L⠁L⠃", "L⠁L⠃L⠧", "L⠁L⠉", "L⠁L⠉L⠗", "L⠁L⠋", "L⠁L⠋L⠝", "L⠁L⠋L⠺", "L⠁L⠛", "L⠁L⠛L⠌", "L⠁L⠇", @@ -942,7 +969,7 @@ static SHORT_FORMS: phf::Set<&str> = phf_set! { }; fn is_letter_prefix(ch: char) -> bool { - matches!(ch, 'B' | 'I' | '𝔹' | 'S' | 'T' | 'D' | 'C' | '𝐶' | '𝑐') + matches!(ch, 'B' | 'I' | '𝔹' | 'S' | 'T' | 'D' | 'C' | '𝐶' | '𝑐' | 'A') } // Trim braille spaces before and after braille indicators @@ -950,7 +977,7 @@ fn is_letter_prefix(ch: char) -> bool { // Note: fraction over is not listed due to example 42(4) which shows a space before the "/" // static ref REMOVE_SPACE_BEFORE_BRAILLE_INDICATORS: Regex = // Regex::new(r"(⠄⠄⠄|⠤⠤⠤)W+([⠼⠸⠪])").unwrap(); -static REPLACE_INDICATORS: LazyLock = LazyLock::new(|| Regex::new(r"([1𝟙SB𝔹TIREDGVHP𝐶𝑐CLMNW𝐖swe,.-—―#ocb])").unwrap()); +static REPLACE_INDICATORS: LazyLock = LazyLock::new(|| Regex::new(r"([1𝟙SB𝔹TIREDGVHP𝐶𝑐CLAMNW𝐖swe,.-—―#ocb])").unwrap()); static COLLAPSE_SPACES: LazyLock = LazyLock::new(|| Regex::new(r"⠀⠀+").unwrap()); /// Transcriber-defined typeforms pulled from prefs (their braille is configurable), used by the @@ -1332,6 +1359,16 @@ fn capitals_to_word_mode(braille: &str) -> String { // Greek letters are a bit exceptional in that the pattern is "CGLx" -- bump 'i' next_non_cap += 1; } + if chars[next_non_cap] == 'A' { + // Accented capital: CA...Lx + match index_after_accent_to_l(&chars, next_non_cap + 1) { + Some(i_l) => next_non_cap = i_l, + None => { + error!("capitals_to_word_mode: internal error: didn't find L after CA in '{}'.", + chars[i..].iter().take(8).collect::()); + } + } + } if chars[next_non_cap] != 'L' { error!("capitals_to_word_mode: internal error: didn't find L after C in '{}'.", chars[i..next_non_cap+2].iter().collect::().as_str()); @@ -1339,6 +1376,25 @@ fn capitals_to_word_mode(braille: &str) -> String { let i_braille_char = next_non_cap + 2; result.push_str(String::from_iter(&chars[i..i_braille_char]).as_str()); i = i_braille_char; + } else if ch == 'A' { + // Lowercase accented letter: A...Lx + if is_word_mode { + result.push('e'); + is_word_mode = false; + } + match index_after_accent_to_l(&chars, i + 1) { + Some(i_l) => { + let i_braille_char = i_l + 2; + result.push_str(String::from_iter(&chars[i..i_braille_char]).as_str()); + i = i_braille_char; + } + None => { + error!("capitals_to_word_mode: internal error: didn't find L after A in '{}'.", + chars[i..].iter().take(8).collect::()); + result.push(ch); + i += 1; + } + } } else if ch == 'L' { // must be lowercase -- uppercase consumed above // assert!(LETTERS.contains(&unhighlight(chars[i+1]))); not true for other alphabets if is_word_mode { @@ -1553,15 +1609,23 @@ fn remove_unneeded_mode_changes(raw_braille: &str, start_mode: UEB_Mode, start_d match ch { 'L' => { // note: be aware of '#' case for Numeric because '1' might already be generated - // let prev_ch = if i > 1 {chars[i-1]} else {'1'}; // '1' -- anything beside ',' or '.' - // if duration == UEB_Duration::Symbol || - // ( ",. ".contains(prev_ch) && LETTER_NUMBERS.contains(&unhighlight(chars[i+1])) ) { - // result.push('1'); // need to retain grade 1 indicator (RUEB 6.5.2) - // } // let the default case handle pushing on the chars for the letter result.push(ch); i += 1; }, + 'A' => { + // Accented letter: keep A...Lx together so accent cells don't end G1 symbol mode + match index_after_accent_to_l(&chars, i + 1) { + Some(i_l) => { + result.extend(chars[i..i_l + 2].iter().copied()); // A + accents + L + letter + i = i_l + 2; + } + None => { + result.push(ch); + i += 1; + } + } + }, '1' | '𝟙' => { assert!(ch == '1' || duration != UEB_Duration::Symbol); // if '𝟙', should be Word or Passage duration // nothing to do -- let the default case handle the following chars @@ -1620,14 +1684,29 @@ fn remove_unneeded_mode_changes(raw_braille: &str, start_mode: UEB_Mode, start_d i += right_matched_chars.len(); }, 'C' => { - // Want 'C' before 'L'; Could be CC for word cap -- if so, eat it and move on + // Want 'C' before 'L' (or 'CA...L' / 'CGL'). Could be CC for word cap -- if so, eat it and move on // Note: guaranteed that there is a char after the 'C', so chars[i+1] is safe if chars[i+1] == 'C' { cap_word_mode = true; i += 1; } else { - let is_greek = chars[i+1] == 'G'; - let (is_alone, right_matched_chars, n_letters) = stands_alone(&chars, if is_greek {i+2} else {i+1}); + let mut letter_idx = i + 1; + let is_greek = chars[letter_idx] == 'G'; + if is_greek { + letter_idx += 1; + } + if letter_idx < chars.len() && chars[letter_idx] == 'A' { + match index_after_accent_to_l(&chars, letter_idx + 1) { + Some(i_l) => letter_idx = i_l, + None => { + error!("Internal error: 'CA' without L at index={i} in '{raw_braille}'"); + result.push('C'); + i += 1; + continue; + } + } + } + let (is_alone, right_matched_chars, n_letters) = stands_alone(&chars, letter_idx); // GTM 1.2.1 says we only need to use G1 for single letters or sequences that are a shortform (e.g, "ab") if is_alone && (n_letters == 1 || is_short_form(&right_matched_chars[..2*n_letters])) { // debug!(" is_alone -- pushing '1'"); @@ -1640,12 +1719,33 @@ fn remove_unneeded_mode_changes(raw_braille: &str, start_mode: UEB_Mode, start_d result.push('C'); if is_greek { result.push('G'); - i += 1; } start_g2_letter = Some(i); - // debug!(" pushing 'C' + {:?}", right_matched_chars); + // right_matched starts at A or L (not including C/G) right_matched_chars.iter().for_each(|&ch| result.push(ch)); - i += 1 + right_matched_chars.len(); + i += 1 + if is_greek {1} else {0} + right_matched_chars.len(); + } + }, + 'A' => { + // Accented lowercase letter: A...Lx + match index_after_accent_to_l(&chars, i + 1) { + Some(i_l) => { + if start_g2_letter.is_none() { + start_g2_letter = Some(i); + } + let (is_alone, right_matched_chars, n_letters) = stands_alone(&chars, i_l); + if is_alone && (n_letters == 1 || is_short_form(&right_matched_chars[..2*n_letters])) { + result.push('1'); + mode = UEB_Mode::Grade1; + } + right_matched_chars.iter().for_each(|&ch| result.push(ch)); + i += right_matched_chars.len(); + } + None => { + error!("Internal error: 'A' without L at index={i} in '{raw_braille}'"); + result.push(ch); + i += 1; + } } }, '1' => { @@ -1738,8 +1838,21 @@ fn stands_alone(chars: &[char], i: usize) -> (bool, &[char], usize) { // we scan forward and check the conditions for "standing-alone" assert_eq!(chars[i], 'L', "'stands_alone' starts with non 'L'"); // debug!("stands_alone: i={}, chars: {:?}", i, chars); - if !left_side_stands_alone(&chars[0..i]) { - return (false, &chars[i..i+2], 0); + // Exclude accent prefix A... immediately before this L (part of the same letter) + let mut letter_start = i; + let mut left_end = i; + if left_end > 0 { + let mut j = left_end; + while j > 0 && is_braille_char(chars[j - 1]) { + j -= 1; + } + if j > 0 && chars[j - 1] == 'A' { + letter_start = j - 1; + left_end = j - 1; + } + } + if !left_side_stands_alone(&chars[0..left_end]) { + return (false, &chars[letter_start..i+2], 0); } let (mut is_alone, n_letters, n_right_matched) = right_side_stands_alone(&chars[i+2..]); @@ -1751,7 +1864,8 @@ fn stands_alone(chars: &[char], i: usize) -> (bool, &[char], usize) { is_alone = false; } } - return (is_alone, &chars[i..i+2+n_right_matched], n_letters); + // Include any A... prefix so callers emit the full accented letter + return (is_alone, &chars[letter_start..i+2+n_right_matched], n_letters); /// chars before 'L' fn left_side_stands_alone(chars: &[char]) -> bool { @@ -1795,6 +1909,17 @@ fn stands_alone(chars: &[char], i: usize) -> (bool, &[char], usize) { if !intervening_chars_mode && ch == 'L' { n_letters += 1; i += 1; // ignore 'Lx' and also ignore 'ox' + } else if !intervening_chars_mode && ch == 'A' { + // Accented letter A...Lx counts as one letter + match index_after_accent_to_l(chars, i + 1) { + Some(i_l) => { + n_letters += 1; + i = i_l + 1; // now at letter braille; loop end advances past it + } + None => { + return (false, n_letters, i); + } + } } else if ch == 'c' || ch == 'b' { i += 1; // ignore 'Lx' and also ignore 'ox' } else if is_right_intervening_char(ch) { @@ -2260,6 +2385,174 @@ fn swedish_cleanup(pref_manager: Ref, raw_braille: String) -> return result.to_string(); } +fn russian_cleanup(_pref_manager: Ref, raw_braille: String) -> String { + static REPLACE_INDICATORS: LazyLock = LazyLock::new(|| Regex::new(r"([LNW#])").unwrap()); + static COLLAPSE_SPACES: LazyLock = LazyLock::new(|| Regex::new(r"⠀+").unwrap()); + static PERIODIC_DECIMAL_NUM_INDICATOR: LazyLock = LazyLock::new(|| { + Regex::new(r"(N[⠚⠁⠃⠉⠙⠑⠋⠛⠓⠊]+⠂[⠚⠁⠃⠉⠙⠑⠋⠛⠓⠊]*⠣)N([⠚⠁⠃⠉⠙⠑⠋⠛⠓⠊]+⠜)").unwrap() + }); + + let mut raw_braille_without_repeated_number_indicators = String::with_capacity(raw_braille.len()); + let mut previous_char_was_digit = false; + for ch in raw_braille.chars() { + if ch == 'N' && previous_char_was_digit { + previous_char_was_digit = false; + continue; + } + raw_braille_without_repeated_number_indicators.push(ch); + previous_char_was_digit = matches!(ch, '⠚' | '⠁' | '⠃' | '⠉' | '⠙' | '⠑' | '⠋' | '⠛' | '⠓' | '⠊'); + } + + let raw_braille_without_periodic_number_indicator = PERIODIC_DECIMAL_NUM_INDICATOR + .replace_all(&raw_braille_without_repeated_number_indicators, "$1$2"); + let result = add_russian_typeform_indicators(&raw_braille_without_periodic_number_indicator); + let result = add_russian_alphabet_indicators(&result); + let result = REPLACE_INDICATORS.replace_all(&result, |cap: &Captures| { + match &cap[0] { + "C" => "⠨", + "L" => "", + "N" => "⠼", + "W" => "⠀", + "#" => "", + _ => "", + } + }); + let result = result.replace("⠠⠙⠊⠧", "⠫⠙⠊⠧"); + return COLLAPSE_SPACES.replace_all(&result, "⠀") + .trim_matches('⠀') + .to_string(); + + fn add_russian_typeform_indicators(raw_braille: &str) -> String { + let mut result = String::with_capacity(raw_braille.len()); + let mut active_typeforms: Vec = Vec::with_capacity(2); + let mut pending_typeforms: Vec = Vec::with_capacity(2); + let mut previous_was_capital_marker = false; + + for ch in raw_braille.chars() { + if is_russian_typeform_marker(ch) { + if !pending_typeforms.contains(&ch) { + pending_typeforms.push(ch); + } + previous_was_capital_marker = false; + continue; + } + if matches!(ch, 's' | 'w' | 'e') && (!pending_typeforms.is_empty() || !active_typeforms.is_empty()) { + continue; + } + + if is_russian_token_start(ch) { + if !previous_was_capital_marker { + close_inactive_typeforms(&mut result, &mut active_typeforms, &pending_typeforms); + } + for &typeform in &pending_typeforms { + if !active_typeforms.contains(&typeform) { + result.push_str(russian_typeform_indicator(typeform)); + active_typeforms.push(typeform); + } + } + pending_typeforms.clear(); + } else if !pending_typeforms.is_empty() { + close_inactive_typeforms(&mut result, &mut active_typeforms, &pending_typeforms); + for &typeform in &pending_typeforms { + if !active_typeforms.contains(&typeform) { + result.push_str(russian_typeform_indicator(typeform)); + result.push_str(russian_typeform_indicator(typeform)); + } + } + pending_typeforms.clear(); + } else if !active_typeforms.is_empty() && !is_russian_token_body(ch) { + close_all_typeforms(&mut result, &mut active_typeforms); + } + + result.push(ch); + previous_was_capital_marker = ch == 'C'; + } + + close_all_typeforms(&mut result, &mut active_typeforms); + return result; + } + + fn is_russian_typeform_marker(ch: char) -> bool { + matches!(ch, 'B' | 'I' | 'T' | 'D' | 'S' | '𝔹') + } + + fn is_russian_token_start(ch: char) -> bool { + matches!(ch, 'l' | 'u' | 'g' | 'v' | 'L' | 'N' | 'C') + } + + fn is_russian_token_body(ch: char) -> bool { + ('\u{2801}'..='\u{28ff}').contains(&ch) + } + + fn close_inactive_typeforms(result: &mut String, active_typeforms: &mut Vec, pending_typeforms: &[char]) { + let mut i = active_typeforms.len(); + while i > 0 { + i -= 1; + if !pending_typeforms.contains(&active_typeforms[i]) { + let typeform = active_typeforms.remove(i); + result.push_str(russian_typeform_indicator(typeform)); + } + } + } + + fn close_all_typeforms(result: &mut String, active_typeforms: &mut Vec) { + while let Some(typeform) = active_typeforms.pop() { + result.push_str(russian_typeform_indicator(typeform)); + } + } + + fn russian_typeform_indicator(typeform: char) -> &'static str { + match typeform { + 'B' => "⠻", // ГОСТ Р 58511: жирный шрифт, точки 12456. + 'I' | 'T' | 'D' | 'S' | '𝔹' => "⠸", // ГОСТ Р 58511: курсив/шрифтовое выделение, точки 456. + _ => "", + } + } + + fn add_russian_alphabet_indicators(raw_braille: &str) -> String { + let mut result = String::with_capacity(raw_braille.len()); + let mut alphabet_mode = None; + let mut capital_marker_pending = false; + for ch in raw_braille.chars() { + match ch { + 'C' => { + if alphabet_mode != Some('u') { + result.push('⠨'); + alphabet_mode = Some('u'); + } + capital_marker_pending = true; + }, + 'l' if capital_marker_pending => { + capital_marker_pending = false; + }, + 'l' | 'u' | 'g' | 'v' => { + capital_marker_pending = false; + if alphabet_mode != Some(ch) { + result.push_str(match ch { + 'l' => "⠠", // Latin lowercase: dots 6 + 'u' => "⠨", // Latin uppercase: dots 4-6 + 'g' => "⠰", // Greek lowercase: dots 5-6 + 'v' => "⠸", // Greek uppercase: dots 4-5-6 + _ => unreachable!(), + }); + alphabet_mode = Some(ch); + } + }, + 'N' | '#' => { + capital_marker_pending = false; + alphabet_mode = None; + result.push(ch); + }, + _ => { + capital_marker_pending = false; + result.push(ch); + }, + } + } + return result; + } +} + #[allow(non_snake_case)] fn LaTeX_cleanup(_pref_manager: Ref, raw_braille: String) -> String { static REMOVE_SPACE: LazyLock = LazyLock::new(|| Regex::new(r" ([\^_,;)\]}])").unwrap()); // '^', '_', ',', ';', ')', ']', '}' @@ -2555,6 +2848,42 @@ impl BrailleChars { return Ok(result.to_string()) } + fn get_braille_russian_chars(node: Element, text_range: Option>) -> Result { + let text = BrailleChars::substring(as_str!(as_text(node)), &text_range); + let braille_chars = braille_replace_chars(&text, node)?; + let Some(raw_math_variant) = node.attribute_value("mathvariant") else { + return Ok(braille_chars); + }; + let math_variant = as_str!(raw_math_variant); + + let mut prefix = String::new(); + let mut suffix = String::new(); + if math_variant.contains("bold") && !braille_chars.contains('B') { + prefix.push('⠻'); + suffix.insert(0, '⠻'); + } + if math_variant.contains("italic") && !braille_chars.contains('I') { + prefix.push('⠸'); + suffix.insert(0, '⠸'); + } + let has_typeface_marker = braille_chars.contains('T') + || braille_chars.contains('D') + || braille_chars.contains('S') + || braille_chars.contains('𝔹'); + if !has_typeface_marker { + let typeface = match math_variant { + "double-struck" | "script" | "fraktur" | "sans-serif" => Some("⠸"), + _ => None, + }; + if let Some(indicator) = typeface { + prefix.push_str(indicator); + suffix.insert_str(0, indicator); + } + } + + return Ok(prefix + &braille_chars + &suffix); + } + fn get_braille_cmu_chars(node: Element, text_range: Option>) -> Result { // In CMU, we need to replace spaces used for number blocks with "." // For other numbers, we need to add "." to create digit blocks diff --git a/src/canonicalize.rs b/src/canonicalize.rs index eaf8f1fa9..380c4de0c 100644 --- a/src/canonicalize.rs +++ b/src/canonicalize.rs @@ -5538,7 +5538,7 @@ mod canonicalize_tests { #[ignore] // need to figure out a test for this ("|" should have a precedence around ":" since that is an alternative notation for "such that", but "∣" is higher precedence) fn vertical_bar_divides() -> Result<()> { let test_str = " - x+y |12 + x+y |12 "; let target_str = " @@ -5547,7 +5547,7 @@ mod canonicalize_tests { + y - + 12
"; @@ -6896,7 +6896,6 @@ mod canonicalize_tests { #[test] - #[ignore] // this fails -- need to figure out grabbing base from previous or next child fn tensor() -> Result<()> { let test_str = " Ri diff --git a/src/chemistry.rs b/src/chemistry.rs index b8a6ca4fc..1266b4087 100644 --- a/src/chemistry.rs +++ b/src/chemistry.rs @@ -278,6 +278,8 @@ fn clean_mrow_children_mark_pass(children: &[Element]) { child.remove_attribute(CHEM_FORMULA_OPERATOR); child.remove_attribute(CHEM_EQUATION_OPERATOR); child.remove_attribute(CHEMICAL_BOND); + child.remove_attribute(CHEM_STATE); + } else { start = Some(i); } @@ -557,6 +559,7 @@ fn is_changed_after_unmarking_chemistry(mathml: Element) -> bool { mathml.remove_attribute(CHEM_FORMULA_OPERATOR); mathml.remove_attribute(CHEM_EQUATION_OPERATOR); mathml.remove_attribute(CHEMICAL_BOND); + mathml.remove_attribute(CHEM_STATE); if mathml.attribute(MERGED_TOKEN).is_some() { unmerge_element(mathml); return true; // need to re-parse @@ -1279,7 +1282,7 @@ fn has_c_h_o(elements: &[NameStr<'_>]) -> bool { fn is_structural(elements: &[NameStr<'_>]) -> bool { - assert!(!elements.len() > 1); // already handled + assert!(elements.len() > 1); // already handled // debug!("is_structural: {:?}", elements); let mut element_set = HashSet::with_capacity(elements.len()); @@ -1315,7 +1318,7 @@ fn collect_elements(mrow: Element<'_>) -> Option>> { #[allow(clippy::op_ref)] #[allow(clippy::manual_contains)] fn is_alphabetical(elements: &[NameStr<'_>]) -> bool { - assert!(!elements.len() > 1); // already handled + assert!(elements.len() > 1); // already handled // debug!("is_alphabetical: {:?}", elements); let mut elements = elements; if elements[1..].iter().any(|e| *e == "C") { // "C" must be first if present @@ -1330,7 +1333,7 @@ fn is_alphabetical(elements: &[NameStr<'_>]) -> bool { fn is_ordered_by_electronegativity(elements: &[NameStr<'_>]) -> bool { // HPO_4^2 (Mono-hydrogen phosphate) doesn't fit this pattern, nor does HCO_3^- (Hydrogen carbonate) and some others // FIX: drop "H" from the ordering?? - assert!(!elements.len() > 1); // already handled + assert!(elements.len() > 1); // already handled return elements.windows(2).all(|pair| CHEMICAL_ELEMENT_ELECTRONEGATIVITY.get(as_str!(pair[0])).unwrap() < CHEMICAL_ELEMENT_ELECTRONEGATIVITY.get(as_str!(pair[1])).unwrap()); } diff --git a/src/interface.rs b/src/interface.rs index 93a84c389..6486aa762 100644 --- a/src/interface.rs +++ b/src/interface.rs @@ -56,47 +56,68 @@ thread_local! { } /// Initialize the panic handler to catch panics and store the message, file, and line number in `PANIC_INFO`. +/// +/// Installed once. Under `#[cfg(test)]` the previous hook (cargo's) is chained so assert failures +/// still print normally; production stays silent and relies on [`report_any_panic`]. pub fn init_panic_handler() { use std::panic; + use std::sync::Once; + + static INSTALL: Once = Once::new(); + INSTALL.call_once(|| { + let previous = panic::take_hook(); + panic::set_hook(Box::new(move |info| { + let location = info.location() + .map(|l| format!("{}:{}", l.file(), l.line())) + .unwrap_or_else(|| "unknown".to_string()); + + let payload = info.payload(); + let msg = if let Some(s) = payload.downcast_ref::<&'static str>() { + s.to_string() + } else if let Some(s) = payload.downcast_ref::() { + s.clone() + } else { + "Unknown panic payload".to_string() + }; - panic::set_hook(Box::new(|info| { - let location = info.location() - .map(|l| format!("{}:{}", l.file(), l.line())) - .unwrap_or_else(|| "unknown".to_string()); - - let payload = info.payload(); - let msg = if let Some(s) = payload.downcast_ref::<&'static str>() { - s.to_string() - } else if let Some(s) = payload.downcast_ref::() { - s.clone() - } else { - "Unknown panic payload".to_string() - }; + // Use try_with/try_borrow_mut to ensure the hook never panics itself + let _ = PANIC_INFO.try_with(|cell| { + if let Ok(mut slot) = cell.try_borrow_mut() { + *slot = Some((msg, location, 0)); + } + }); - // Use try_with/try_borrow_mut to ensure the hook never panics itself - let _ = PANIC_INFO.try_with(|cell| { - if let Ok(mut slot) = cell.try_borrow_mut() { - *slot = Some((msg, location, 0)); + // cargo test (and other previous hooks) still print; production ATs do not want that spam. + if cfg!(test) { + previous(info); } - }); - })); + })); + }); } pub fn report_any_panic(result: Result, Box>) -> Result { match result { Ok(val) => val, - Err(_) => { - // Retrieve the smuggled info - let details = PANIC_INFO.with(|cell| cell.borrow_mut().take()); - - if let Some((msg, file, line)) = details { - Err(anyhow::anyhow!( + Err(payload) => { + // Prefer details captured by the hook (includes file:line). + if let Some((msg, file, line)) = PANIC_INFO.with(|cell| cell.borrow_mut().take()) { + return Err(anyhow::anyhow!( "MathCAT crash! Please report the following information: '{}' at {}:{}", msg, file, line - )) - } else { - Err(anyhow::anyhow!("MathCAT crash! -- please report")) + )); } + // Fallback: catch_unwind always provides the payload even if the hook did not run. + let msg = if let Some(s) = payload.downcast_ref::<&'static str>() { + (*s).to_string() + } else if let Some(s) = payload.downcast_ref::() { + s.clone() + } else { + return Err(anyhow::anyhow!("MathCAT crash! -- please report")); + }; + Err(anyhow::anyhow!( + "MathCAT crash! Please report the following information: '{}'", + msg + )) } } } @@ -155,10 +176,6 @@ pub fn set_mathml(mathml_str: impl AsRef) -> Result { static MATHJAX_V2: LazyLock = LazyLock::new(|| Regex::new(r#"class *= *['"]MJX-.*?['"]"#).unwrap()); static MATHJAX_V3: LazyLock = LazyLock::new(|| Regex::new(r#"class *= *['"]data-mjx-.*?['"]"#).unwrap()); - // Strip out processing instructions and comments -- these are not MathML and can cause DOS problems in the parser - static PROCESSING_INSTRUCTION: LazyLock = LazyLock::new(|| Regex::new(r#"<\?[\s\S]{1,2048}\?>"#).unwrap()); - static XML_COMMENT: LazyLock = LazyLock::new(|| Regex::new(r#"(?s)"#).unwrap()); - // These have some length limits to avoid DOS attacks via long strings static NAMESPACE_DECL: LazyLock = LazyLock::new(|| Regex::new(r#"xmlns:[[:alpha:]]{1,32}"#).unwrap()); static PREFIX: LazyLock = LazyLock::new(|| Regex::new(r#"() -> Result { let mut error_message = "".to_string(); // can't return a result inside the replace_all, so we do this hack of setting the message and then returning the error - let mathml_str = XML_COMMENT.replace_all(mathml_str, ""); - let mathml_str = PROCESSING_INSTRUCTION.replace_all(&mathml_str, ""); // FIX: need to deal with character data and convert to something the parser knows - let mathml_str = HTML_ENTITIES.replace_all(&mathml_str, |cap: &Captures| match HTML_ENTITIES_MAPPING.get(&cap[1]) { + let mathml_str = HTML_ENTITIES.replace_all(mathml_str, |cap: &Captures| match HTML_ENTITIES_MAPPING.get(&cap[1]) { None => { error_message = format!("No entity named '{}'", &cap[0]); cap[0].to_string() @@ -343,13 +358,6 @@ fn set_preference_impl(name: &str, value: &str) -> Result<()> { } } - crate::speech::SPEECH_RULES.with(|rules| -> Result<()> { - if let Some(error_string) = rules.borrow().get_error() { - bail!("{}", error_string); - } - Ok(()) - })?; - // Do not hold a SpeechRules borrow while updating preferences: invalidation clears rule caches. let pref_manager = crate::prefs::PreferenceManager::get(); let mut pref_manager = pref_manager.borrow_mut(); diff --git a/src/navigate.rs b/src/navigate.rs index 6fb170d52..28356cde4 100644 --- a/src/navigate.rs +++ b/src/navigate.rs @@ -13,6 +13,7 @@ use crate::pretty_print::mml_to_string; use crate::speech::{NAVIGATION_RULES, CONCAT_INDICATOR, CONCAT_STRING, SpeechRules, SpeechRulesWithContext}; use crate::infer_intent::add_fixity_children; use crate::interface::copy_mathml; +use crate::tts::TTS; #[cfg(not(target_family = "wasm"))] use std::time::Instant; use crate::errors::*; @@ -227,12 +228,6 @@ impl NavigationState { context.set_variable("Move2D", "" ); context.set_variable("SpeakExpression", true ); // default is to speak the expr after navigation return; - - fn convert_last_char_to_number(str: &str) -> usize { - let last_char = str.as_bytes()[str.len()-1]; - assert!( last_char.is_ascii_digit() ); - return (last_char - b'0') as usize; - } } } @@ -411,15 +406,15 @@ pub fn do_navigate_command_string(mathml: Element, nav_command: &'static str) -> if done { let (tts, rate) = { let prefs = rules.pref_manager.borrow(); - (prefs.pref_to_string("TTS"), prefs.pref_to_string("MathRate")) + (prefs.get_tts(), prefs.pref_to_string("MathRate")) }; if rate != "100" { - match tts.as_str() { - "SSML" + match tts { + TTS::SSML if !cumulative_speech.starts_with(" { cumulative_speech = format!("{}", rate, cumulative_speech); } - "SAPI5" + TTS::SAPI5 if !cumulative_speech.starts_with(" { cumulative_speech = format!( "{}", diff --git a/src/prefs.rs b/src/prefs.rs index 25f68c1b0..cad23ba6d 100644 --- a/src/prefs.rs +++ b/src/prefs.rs @@ -216,7 +216,6 @@ thread_local!{ #[derive(Debug, Default)] pub struct PreferenceManager { rules_dir: PathBuf, // full path to rules dir - error: String, // empty/default string if fields are set, otherwise error message user_prefs: Preferences, // prefs that come from reading prefs.yaml (system and user locations) api_prefs: Preferences, // prefs set by API calls (along with some defaults not in the user settings such as "pitch") sys_prefs_file: Option, // the system prefs.yaml file @@ -238,17 +237,13 @@ pub struct PreferenceManager { impl fmt::Display for PreferenceManager { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { writeln!(f, "PreferenceManager:")?; - if self.error.is_empty() { - writeln!(f, " not initialized!!! Error is {}", self.error)?; - } else { - writeln!(f, " user prefs:\n{}", self.user_prefs)?; - writeln!(f, " api prefs:\n{}", self.api_prefs)?; - writeln!(f, " style files: {:?}", self.speech.as_path())?; - writeln!(f, " unicode files: {:?}", self.speech_unicode.as_path())?; - writeln!(f, " intent files: {:?}", self.intent.as_path())?; - writeln!(f, " speech definition files: {:?}", self.speech_defs)?; - writeln!(f, " braille definition files: {:?}", self.braille_defs)?; - } + writeln!(f, " user prefs:\n{}", self.user_prefs)?; + writeln!(f, " api prefs:\n{}", self.api_prefs)?; + writeln!(f, " style files: {:?}", self.speech.as_path())?; + writeln!(f, " unicode files: {:?}", self.speech_unicode.as_path())?; + writeln!(f, " intent files: {:?}", self.intent.as_path())?; + writeln!(f, " speech definition files: {:?}", self.speech_defs)?; + writeln!(f, " braille definition files: {:?}", self.braille_defs)?; return Ok(()); } } @@ -290,10 +285,6 @@ impl PreferenceManager { return PREF_MANAGER.with( |pm| pm.clone() ); } - pub fn get_error(&self) -> &str { - return &self.error; - } - /// Return a `PreferenceHashMap` that is the merger of the api prefs onto the user prefs. pub fn merge_prefs(&self) -> PreferenceHashMap { let mut merged_prefs = self.user_prefs.prefs.clone(); @@ -680,10 +671,6 @@ impl PreferenceManager { /// Return the speech rule style file locations. pub fn get_rule_file(&self, name: &RulesFor) -> &Path { - if !self.error.is_empty() { - panic!("Internal error: get_rule_file called on invalid PreferenceManager -- error message\n{}", self.error); - }; - let files = match name { RulesFor::Intent => &self.intent, RulesFor::Speech => &self.speech, @@ -696,46 +683,27 @@ impl PreferenceManager { /// Return the unicode.yaml file locations. pub fn get_speech_unicode_file(&self) ->(&Path, &Path) { - if !self.error.is_empty() { - panic!("Internal error: get_speech_unicode_file called on invalid PreferenceManager -- error message\n{}", self.error); - }; return (self.speech_unicode.as_path(), self.speech_unicode_full.as_path()); } /// Return the unicode.yaml file locations. pub fn get_braille_unicode_file(&self) -> (&Path, &Path) { - if !self.error.is_empty() { - panic!("Internal error: get_braille_unicode_file called on invalid PreferenceManager -- error message\n{}", self.error); - }; - return (self.braille_unicode.as_path(), self.braille_unicode_full.as_path()); } /// Return the definitions.yaml file locations. pub fn get_definitions_file(&self, use_speech_defs: bool) -> &Path { - if !self.error.is_empty() { - panic!("Internal error: get_definitions_file called on invalid PreferenceManager -- error message\n{}", self.error); - }; - let defs_file = if use_speech_defs {&self.speech_defs} else {&self.braille_defs}; return defs_file; } /// Return the TTS engine currently in use. pub fn get_tts(&self) -> TTS { - if !self.error.is_empty() { - panic!("Internal error: get_tts called on invalid PreferenceManager -- error message\n{}", self.error); - }; - - return match self.pref_to_string("TTS").as_str().to_ascii_lowercase().as_str() { - "none" => TTS::None, - "ssml" => TTS::SSML, - "sapi5" => TTS::SAPI5, - _ => { - warn!("found unknown value for TTS: '{}'", self.pref_to_string("TTS").as_str()); - TTS::None - } - } + let tts: String = self.pref_to_string("TTS"); + return tts.parse().unwrap_or_else(|_| { + warn!("found unknown value for TTS: '{tts}'"); + TTS::None + }) } /// Set the string-valued preference. @@ -744,9 +712,6 @@ impl PreferenceManager { /// If this happens, the preference is not set and an error is returned. /// If "LanguageAuto" is set, we assume "Language" has already be checked to be "Auto" pub fn set_string_pref(&mut self, key: &str, value: &str) -> Result<()> { - if !self.error.is_empty() { - panic!("Internal error: set_string_pref called on invalid PreferenceManager -- error message\n{}", self.error); - }; // verify language, braille, and SpeechStyle because these are used as access into the file system // should be an ascii string with only letters, dashes, and underscores @@ -824,27 +789,15 @@ impl PreferenceManager { /// Set the number-valued preference. /// All number-valued preferences are stored with type `f64`. pub fn set_api_float_pref(&mut self, key: &str, value: f64) { - if !self.error.is_empty() { - panic!("Internal error: set_api_float_pref called on invalid PreferenceManager -- error message\n{}", self.error); - }; - self.api_prefs.prefs.insert(key.to_string(), Yaml::Real(value.to_string())); } pub fn set_api_boolean_pref(&mut self, key: &str, value: bool) { - if !self.error.is_empty() { - panic!("Internal error: set_api_boolean_pref called on invalid PreferenceManager -- error message\n{}", self.error); - }; - self.api_prefs.prefs.insert(key.to_string(), Yaml::Boolean(value)); } /// Return the current speech rate. pub fn get_rate(&self) -> f64 { - if !self.error.is_empty() { - panic!("Internal error: get_rate called on invalid PreferenceManager -- error message\n{}", self.error); - }; - return match &self.pref_to_string("Rate").parse::() { Ok(val) => *val, Err(_) => { @@ -887,10 +840,6 @@ impl PreferenceManager { /// set_preference() is the function that should be called. /// This differs from set_preference in that the user preferences are changed, not the api ones pub fn set_user_prefs(&mut self, key: &str, value: &str) -> Result<()> { - if !self.error.is_empty() { - panic!("Internal error: set_user_prefs called on invalid PreferenceManager -- error message\n{}", self.error); - }; - self.reset_files_from_preference_change(key, value)?; let is_decimal_separators_changed = key == "DecimalSeparator" && self.user_prefs.prefs.get("DecimalSeparator").unwrap().as_str().unwrap() != value; let is_language_changed = key == "Language" && self.user_prefs.prefs.get("Language").unwrap().as_str().unwrap() != value; @@ -1230,40 +1179,124 @@ cfg_if::cfg_if! {if #[cfg(not(feature = "include-zip"))] { }); } + /// #262: MathCAT must notice when a rule file on disk changes and reload it. + /// This copies the rule files it needs (`en`, `zz`, and `Nemeth`) into a uniquely-named + /// temp dir, so the test can freely modify files and run in parallel without touching the + /// real Rules dir or the user's prefs file. All global state is restored on the way out. #[test] - #[ignore] // this is an ugly test for #262 -- it changes the prefs file and so is a bad thing in general fn test_up_to_date() { use std::fs; use std::thread::sleep; use std::time::Duration; use crate::interface; + use tempfile::Builder; + + /// Recursively copy `src` into `dst` (creating `dst`). + fn copy_dir_all(src: &Path, dst: &Path) { + fs::create_dir_all(dst).unwrap(); + for entry in fs::read_dir(src).unwrap() { + let entry = entry.unwrap(); + let from = entry.path(); + let to = dst.join(entry.file_name()); + if from.is_dir() { + copy_dir_all(&from, &to); + } else { + fs::copy(&from, &to).unwrap(); + } + } + } + + // Restore all thread-local global state (rules dir, prefs, caches) when the test exits, + // even on a panic, so other tests sharing this thread are unaffected. + struct RestoreGuard; + impl Drop for RestoreGuard { + fn drop(&mut self) { + let _ = interface::set_preference("CheckRuleFiles", "Prefs"); + PREF_MANAGER.with(|pref_manager| { + let mut pref_manager = pref_manager.borrow_mut(); + // Force a full re-read: the stale temp paths would otherwise fool the up-to-date check. + pref_manager.sys_prefs_file = None; + pref_manager.user_prefs_file = None; + let _ = pref_manager.initialize(abs_rules_dir_path()); + }); + } + } + + let temp_dir = Builder::new() + .prefix("mathcat-up-to-date-") + .tempdir() + .expect("create temp rules dir"); + let temp_rules_dir = temp_dir.path(); + let real_rules_dir = abs_rules_dir_path(); + + // Only the "en" (fallback), "zz" (test language), and "Nemeth" (braille) rules are needed, + // plus the top-level files they include (incl. the full system prefs.yaml — partial YAML + // left keys like DecimalSeparator missing and crashed on CI with no user AppData prefs). + copy_dir_all(&real_rules_dir.join("Languages/en"), &temp_rules_dir.join("Languages/en")); + copy_dir_all(&real_rules_dir.join("Languages/zz"), &temp_rules_dir.join("Languages/zz")); + copy_dir_all(&real_rules_dir.join("Intent"), &temp_rules_dir.join("Intent")); + copy_dir_all(&real_rules_dir.join("Braille/Nemeth"), &temp_rules_dir.join("Braille/Nemeth")); + fs::copy(real_rules_dir.join("definitions.yaml"), temp_rules_dir.join("definitions.yaml")).unwrap(); + fs::copy(real_rules_dir.join("intent.yaml"), temp_rules_dir.join("intent.yaml")).unwrap(); + fs::copy(real_rules_dir.join("Braille/definitions.yaml"), temp_rules_dir.join("Braille/definitions.yaml")).unwrap(); + fs::copy(real_rules_dir.join("prefs.yaml"), temp_rules_dir.join("prefs.yaml")).unwrap(); + // Override only what this test needs (rest of prefs.yaml keeps defaults like DecimalSeparator). + let prefs_path = temp_rules_dir.join("prefs.yaml"); + let prefs_text = fs::read_to_string(&prefs_path).unwrap() + .replace("Language: Auto", "Language: zz"); + assert!(prefs_text.contains("Language: zz"), "failed to set Language: zz in copied prefs.yaml"); + fs::write(&prefs_path, prefs_text).unwrap(); + + interface::set_rules_dir(temp_rules_dir.to_str().unwrap()).unwrap(); + let _restore = RestoreGuard; + + // Pin in memory so a user prefs.yaml in the config dir cannot override Language/SpeechStyle + // (and so SpeechStyle stays ClearSpeak until we change it for the reload check). PREF_MANAGER.with(|pref_manager| { let mut pref_manager = pref_manager.borrow_mut(); - pref_manager.initialize(abs_rules_dir_path()).unwrap(); - assert_eq!(&pref_manager.pref_to_string("SpeechStyle"), "ClearSpeak"); + pref_manager.set_string_pref("Language", "zz").unwrap(); + pref_manager.set_string_pref("SpeechStyle", "ClearSpeak").unwrap(); + pref_manager.set_string_pref("BrailleCode", "Nemeth").unwrap(); assert_eq!(rel_path(&pref_manager.rules_dir, pref_manager.speech.as_path()), PathBuf::from("Languages/zz/ClearSpeak_Rules.yaml")); + assert_ne!(&pref_manager.pref_to_string("DecimalSeparator"), NO_PREFERENCE, + "DecimalSeparator missing — system prefs.yaml incomplete"); }); - interface::set_mathml("+10").unwrap(); + // "All" makes MathCAT check rule-file timestamps (not just prefs), so content edits are noticed. + interface::set_preference("CheckRuleFiles", "All").unwrap(); + + // ---- speech rule file: change its content and confirm the new speech is used ---- + interface::set_mathml("+10").unwrap(); assert_eq!(interface::get_spoken_text().unwrap(), "ClearSpeak positive from zz 10"); - - let mut file_path = PathBuf::default(); - let mut contents = vec![]; + + let speech_rule_file = temp_rules_dir.join("Languages/zz/ClearSpeak_Rules.yaml"); + let speech_contents = fs::read_to_string(&speech_rule_file).unwrap(); + fs::write(&speech_rule_file, speech_contents.replace("ClearSpeak positive from zz", "changed positive from zz")).unwrap(); + sleep(Duration::from_millis(5)); // make sure the modification time changes enough to be recognized + assert_eq!(interface::get_spoken_text().unwrap(), "changed positive from zz 10", + "modified speech rule file was not reloaded"); + + // ---- changing SpeechStyle must not change the language (still "zz") ---- + interface::set_preference("SpeechStyle", "SimpleSpeak").unwrap(); PREF_MANAGER.with(|pref_manager| { let pref_manager = pref_manager.borrow(); - if let Some(file_name) = pref_manager.user_prefs_file.as_ref().unwrap().debug_get_file() { - file_path = PathBuf::from(file_name); - contents = fs::read(&file_path).expect(&format!("Failed to write file {} during test", file_name)); - let changed_contents = String::from_utf8(contents.clone()).unwrap() - .replace("SpeechStyle: ClearSpeak", "SpeechStyle: SimpleSpeak"); - fs::write(&file_path, changed_contents).unwrap(); - sleep(Duration::from_millis(5)); // make sure the time changes enough to be recognized - } + assert_eq!(&pref_manager.pref_to_string("Language"), "zz", "changing SpeechStyle changed the language"); + assert_eq!(rel_path(&pref_manager.rules_dir, pref_manager.speech.as_path()), PathBuf::from("Languages/zz/SimpleSpeak_Rules.yaml")); }); + // the (unmodified) zz SimpleSpeak rules produce their own distinctive text assert_eq!(interface::get_spoken_text().unwrap(), "SimpleSpeak positive from zz 10"); - fs::write(&file_path, contents).unwrap(); - // assert_eq!(&pref_manager.pref_to_string("SpeechStyle"), "SimpleSpeak"); - // assert_eq!(rel_path(&pref_manager.rules_dir, pref_manager.speech.as_path()), PathBuf::from("Languages/zz/SimpleSpeak_Rules.yaml")); + // ---- braille (Nemeth) unicode file: change a char and confirm the new braille is used ---- + let braille_before = interface::get_braille("").unwrap(); + let unicode_file = temp_rules_dir.join("Braille/Nemeth/unicode.yaml"); + let unicode_contents = fs::read_to_string(&unicode_file).unwrap(); + // remap the digit '1' to the (distinctive) full braille cell '⠿' + let changed_unicode = unicode_contents.replace("\"1\": [t: \"N⠂\"]", "\"1\": [t: \"N⠿\"]"); + assert_ne!(changed_unicode, unicode_contents, "expected to find the Nemeth mapping for '1'"); + fs::write(&unicode_file, changed_unicode).unwrap(); + sleep(Duration::from_millis(5)); + let braille_after = interface::get_braille("").unwrap(); + assert_ne!(braille_after, braille_before, "modified Nemeth unicode file was not reloaded"); + assert!(braille_after.contains('⠿'), "new Nemeth mapping for '1' not reflected in braille: {braille_after}"); } }} diff --git a/src/pretty_print.rs b/src/pretty_print.rs index ee0cda6d6..674157949 100644 --- a/src/pretty_print.rs +++ b/src/pretty_print.rs @@ -131,38 +131,23 @@ fn is_scalar(v: &Yaml) -> bool { return !matches!(v, Yaml::Hash(_) | Yaml::Array(_)); } +/// Whether a YAML collection is too complex for compact inline formatting. fn is_complex(v: &Yaml) -> bool { - return match v { - Yaml::Hash(h) => { - return match h.len() { - 0 => false, - 1 => { - let (key,val) = h.iter().next().unwrap(); - return !(is_scalar(key) && is_scalar(val)) - }, - _ => true, - } - }, - Yaml::Array(v) => { - return match v.len() { - 0 => false, - 1 => { - let hash = v[0].as_hash(); - if let Some(hash) = hash { - return match hash.len() { - 0 => false, - 1 => { - let (key, val) = hash.iter().next().unwrap(); - return !(is_scalar(key) && is_scalar(val)); - }, - _ => true, - } - } else { - return !is_scalar(&v[0]); - } - }, - _ => true, - } + /// Whether a hash is empty or contains one scalar key/value pair. + fn is_simple_hash(hash: &Hash) -> bool { + hash.len() <= 1 + && hash + .iter() + .all(|(key, value)| is_scalar(key) && is_scalar(value)) + } + + match v { + Yaml::Hash(hash) => !is_simple_hash(hash), + Yaml::Array(values) => match values.as_slice() { + [] => false, + [Yaml::Hash(hash)] => !is_simple_hash(hash), + [value] => !is_scalar(value), + _ => true, }, _ => false, } @@ -534,6 +519,49 @@ mod tests { panic!("No root element found"); } + #[test] + fn is_complex_classifies_hashes() { + assert!(!is_complex(&Yaml::Hash(Hash::new()))); + + let mut simple_hash = Hash::new(); + simple_hash.insert( + Yaml::String("key".to_string()), + Yaml::String("value".to_string()), + ); + assert!(!is_complex(&Yaml::Hash(simple_hash))); + + let mut nested_hash = Hash::new(); + nested_hash.insert( + Yaml::String("key".to_string()), + Yaml::Array(Vec::new()), + ); + assert!(is_complex(&Yaml::Hash(nested_hash))); + + let mut multi_entry_hash = Hash::new(); + multi_entry_hash.insert(Yaml::String("first".to_string()), Yaml::Integer(1)); + multi_entry_hash.insert(Yaml::String("second".to_string()), Yaml::Integer(2)); + assert!(is_complex(&Yaml::Hash(multi_entry_hash))); + } + + #[test] + fn is_complex_classifies_arrays() { + assert!(!is_complex(&Yaml::Array(Vec::new()))); + assert!(!is_complex(&Yaml::Array(vec![Yaml::Integer(1)]))); + + let mut simple_hash = Hash::new(); + simple_hash.insert( + Yaml::String("key".to_string()), + Yaml::String("value".to_string()), + ); + assert!(!is_complex(&Yaml::Array(vec![Yaml::Hash(simple_hash)]))); + + assert!(is_complex(&Yaml::Array(vec![Yaml::Array(Vec::new())]))); + assert!(is_complex(&Yaml::Array(vec![ + Yaml::Integer(1), + Yaml::Integer(2), + ]))); + } + #[test] /// Escapes XML entities and invisible characters for safe display. /// Tests the method on a few hardcoded characters. diff --git a/src/speech.rs b/src/speech.rs index 8ef2949d7..faf4e69d1 100644 --- a/src/speech.rs +++ b/src/speech.rs @@ -16,6 +16,7 @@ use sxd_xpath_no_unsafe::{Factory, Value, XPath}; use sxd_xpath_no_unsafe::nodeset::Node; use std::fmt; use std::time::SystemTime; +use strum::Display; use crate::definitions::read_definitions_file; use crate::errors::*; use crate::prefs::*; @@ -1976,7 +1977,7 @@ impl UnicodeDef { type UnicodeTable = Rc>>>; type FilesAndTimesShared = Rc>; - #[derive(Debug, Clone, Copy, PartialEq, Eq)] + #[derive(Debug, Clone, Copy, PartialEq, Eq, Display)] pub enum RulesFor { Intent, Speech, @@ -1985,19 +1986,6 @@ impl UnicodeDef { Braille, } - impl fmt::Display for RulesFor { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let name = match self { - RulesFor::Intent => "Intent", - RulesFor::Speech => "Speech", - RulesFor::OverView => "OverView", - RulesFor::Navigation => "Navigation", - RulesFor::Braille => "Braille", - }; - return write!(f, "{name}"); - } - } - #[derive(Debug, Clone)] pub struct FileAndTime { @@ -2113,11 +2101,7 @@ impl FilesAndTimes { /// `SpeechRulesWithContext` encapsulates a named group of speech rules (e.g, "ClearSpeak") /// along with the preferences to be used for speech. -// Note: if we can't read the files, an error message is stored in the structure and needs to be checked. -// I tried using Result, but it was a mess with all the unwrapping. -// Important: the code needs to be careful to check this at the top level calls pub struct SpeechRules { - error: String, name: RulesFor, pub pref_manager: Rc>, rules: RuleTable, // the speech rules used (partitioned into MathML tags in hashmap, then linearly searched) @@ -2279,7 +2263,6 @@ impl SpeechRules { }; return SpeechRules { - error: Default::default(), name, rules: HashMap::with_capacity(if name == RulesFor::Intent || name == RulesFor::Speech {500} else {50}), // lazy load them rule_files: FilesAndTimes::default(), @@ -2293,14 +2276,6 @@ impl SpeechRules { }; } - pub fn get_error(&self) -> Option<&str> { - return if self.error.is_empty() { - None - } else { - Some(&self.error) - } - } - pub fn read_files(&mut self) -> Result<()> { let check_rule_files = self.pref_manager.borrow().pref_to_string("CheckRuleFiles"); if check_rule_files != "None" { // "Prefs" or "All" are other values @@ -3027,7 +3002,7 @@ cfg_if::cfg_if! {if #[cfg(not(feature = "include-zip"))] { let start_main_file = rules.borrow().unicode_short_files.borrow().ft[0].clone(); // open the file, read all the contents, then write them back so the time changes - let contents = std::fs::read(&start_main_file.file).expect(&format!("Failed to read file {} during test", &start_main_file.file.to_string_lossy())); + let contents = std::fs::read(&start_main_file.file).unwrap_or_else(|_| panic!("Failed to read file {} during test", start_main_file.file.to_string_lossy())); std::fs::write(start_main_file.file, contents).unwrap(); std::thread::sleep(Duration::from_millis(5)); // pause a little to make sure the time changes diff --git a/src/tts.rs b/src/tts.rs index 34856813d..91b05c0a8 100644 --- a/src/tts.rs +++ b/src/tts.rs @@ -75,7 +75,7 @@ use std::fmt; use crate::speech::{RulesFor, SpeechRulesWithContext, MyXPath, TreeOrString}; use std::string::ToString; use std::str::FromStr; -use strum_macros::{Display, EnumString}; +use strum::{Display, EnumString}; use regex::Regex; use std::sync::LazyLock; use sxd_xpath_no_unsafe::Value; @@ -257,7 +257,8 @@ impl TTSCommandRule { /// These types should do something for all the TTSCommands #[allow(clippy::upper_case_acronyms)] #[allow(dead_code)] -#[derive(Debug, Clone, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq, Display, EnumString)] +#[strum(ascii_case_insensitive)] pub enum TTS { None, SSML, @@ -767,6 +768,13 @@ mod tests { use super::*; use yaml_rust::YamlLoader; + #[test] + fn tts_display_and_case_insensitive_parse() { + assert_eq!(TTS::SSML.to_string(), "SSML"); + assert_eq!("sapi5".parse::(), Ok(TTS::SAPI5)); + assert_eq!("NoNe".parse::(), Ok(TTS::None)); + } + #[test] /// Verifies pronounce YAML builds and renders all supported fields. fn pronounce_build_and_display() { diff --git a/tests/Languages/de/ClearSpeak/mfrac.rs b/tests/Languages/de/ClearSpeak/mfrac.rs index f5291c9e9..0081e0197 100644 --- a/tests/Languages/de/ClearSpeak/mfrac.rs +++ b/tests/Languages/de/ClearSpeak/mfrac.rs @@ -86,7 +86,7 @@ fn frac_with_units() -> Result<()> { "; - test("de", "ClearSpeak", expr, "62 meiles pro stunde")?; + test("de", "ClearSpeak", expr, "62 meilen pro stunde")?; return Ok(()); } diff --git a/tests/Languages/de/ClearSpeak/sets.rs b/tests/Languages/de/ClearSpeak/sets.rs index 2b7ad5cde..e8911f33f 100644 --- a/tests/Languages/de/ClearSpeak/sets.rs +++ b/tests/Languages/de/ClearSpeak/sets.rs @@ -205,7 +205,7 @@ fn set_with_colon() -> Result<()> { let expr = " { x:x>2 } "; - test("de", "ClearSpeak", expr, "die Menge alle x so dass x ist größer als 2")?; + test("de", "ClearSpeak", expr, "die Menge aller x so dass x ist größer als 2")?; return Ok(()); } @@ -215,7 +215,7 @@ fn set_with_bar() -> Result<()> { let expr = " { x|x>2 } "; - test("de", "ClearSpeak", expr, "die Menge alle x so dass x ist größer als 2")?; + test("de", "ClearSpeak", expr, "die Menge aller x so dass x ist größer als 2")?; return Ok(()); } @@ -263,7 +263,7 @@ fn complicated_set_with_colon() -> Result<()> { 7 } "; - test("de", "ClearSpeak", expr, "die Menge alle x in die ganzen zahlen so dass 2 ist kleiner als x ist kleiner als 7")?; + test("de", "ClearSpeak", expr, "die Menge aller x in den ganzen zahlen so dass 2 ist kleiner als x ist kleiner als 7")?; return Ok(()); } @@ -279,7 +279,7 @@ fn complicated_set_with_mtext() -> Result<()> { } "; test("de", "ClearSpeak", expr, - "die Menge alle x in die natürlichen zahlen so dass x is an even number")?; + "die Menge aller x in den natürlichen zahlen so dass x is an even number")?; return Ok(()); } @@ -299,7 +299,7 @@ fn set_with_bar_member() -> Result<()> { } "; test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "Member", - expr, "die Menge alle x element von die ganzen zahlen so dass x ist größer als 5")?; + expr, "die Menge aller x element von die ganzen zahlen so dass x ist größer als 5")?; return Ok(()); } @@ -348,7 +348,7 @@ fn set_with_bar_element() -> Result<()> { } "; test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "Element", - expr, "die Menge alle x element von die ganzen zahlen so dass x ist größer als 5")?; + expr, "die Menge aller x element von die ganzen zahlen so dass x ist größer als 5")?; return Ok(()); } @@ -396,7 +396,7 @@ fn set_with_bar_in() -> Result<()> { } "; test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "In", - expr, "die Menge alle x in die ganzen zahlen so dass x ist größer als 5")?; + expr, "die Menge aller x in den ganzen zahlen so dass x ist größer als 5")?; return Ok(()); } @@ -407,7 +407,7 @@ fn element_alone_in() -> Result<()> { 3+2i "; test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "In", - expr, "3 plus 2 i, ist nicht in die reellen zahlen")?; + expr, "3 plus 2 i, ist nicht in den reellen zahlen")?; return Ok(()); } @@ -425,7 +425,7 @@ fn element_under_sum_in() -> Result<()> { "; test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "In", - expr, "die summe durch i ist in die ganzen zahlen von; der bruch mit zähler 1; und nenner i quadrat")?; + expr, "die summe durch i ist in den ganzen zahlen von; der bruch mit zähler 1; und nenner i quadrat")?; return Ok(()); } @@ -444,7 +444,7 @@ fn set_with_bar_belongs() -> Result<()> { } "; test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "Belongs", - expr, "die Menge alle x element von die ganzen zahlen so dass x ist größer als 5")?; + expr, "die Menge aller x element von die ganzen zahlen so dass x ist größer als 5")?; return Ok(()); } @@ -524,7 +524,7 @@ fn silent_bracket() -> Result<()> { {x|x>2} "; test_ClearSpeak("de", "ClearSpeak_Sets", "SilentBracket", expr, - "die Menge alle x so dass x ist größer als 2")?; + "die Menge aller x so dass x ist größer als 2")?; return Ok(()); } diff --git a/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs b/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs index b52b0a253..ac1f7c2f3 100644 --- a/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs +++ b/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs @@ -39,6 +39,16 @@ fn quotation_mark() -> Result<()> { Ok(()) } +#[test] +fn absolute_value_end_regression() -> Result<()> { + let expr = "|x+1|"; + test_prefs("de", "ClearSpeak", vec![ + ("Verbosity", "Terse"), + ("ClearSpeak_AbsoluteValue", "AbsEnd"), + ], expr, "Betrag von x plus 1, ende Betrag")?; + Ok(()) +} + #[test] fn ellipses_auto_start() -> Result<()> { let expr = " @@ -227,7 +237,7 @@ fn vertical_line_set() -> Result<()> { } "; test_ClearSpeak("de", "ClearSpeak_VerticalLine", "Auto", expr, - "die Menge alle x so dass x ist größer als 0")?; + "die Menge aller x so dass x ist größer als 0")?; return Ok(()); } @@ -247,7 +257,7 @@ fn vertical_line_set_such_that() -> Result<()> { } "; test_ClearSpeak("de", "ClearSpeak_VerticalLine", "SuchThat", expr, - "die Menge alle x so dass x ist größer als 0")?; + "die Menge aller x so dass x ist größer als 0")?; return Ok(()); } @@ -267,7 +277,7 @@ fn vertical_line_set_given() -> Result<()> { "; // the rules for set will override all the options -- ClearSpeak spec should be clarified test_ClearSpeak("de", "ClearSpeak_VerticalLine", "Given", expr, - "die Menge alle x so dass x ist größer als 0")?; + "die Menge aller x so dass x ist größer als 0")?; return Ok(()); } @@ -290,7 +300,7 @@ fn vertical_line_set_and_abs() -> Result<()> { } "; test_ClearSpeak("de", "ClearSpeak_VerticalLine", "Auto", expr, - "die Menge alle x so dass der Betrag von x; ist größer als 2")?; + "die Menge aller x so dass der Betrag von x; ist größer als 2")?; return Ok(()); } diff --git a/tests/Languages/de/units.rs b/tests/Languages/de/units.rs index 620c33e5b..fffd6ac5a 100644 --- a/tests/Languages/de/units.rs +++ b/tests/Languages/de/units.rs @@ -40,7 +40,7 @@ fn prefix_sweep() -> Result<()> { qg "#; test("de", "SimpleSpeak", expr, - "quetta-gramms, komma ronna-gramms, komma yotta-gramms, komma zetta-gramms, komma exa-gramms, komma peta-gramms, komma tera-gramms, komma giga-gramms, komma mega-gramms, komma kilo-gramms, komma hekto-gramms, komma deka-gramms, komma dezi-gramms, komma zenti-gramms, komma milli-gramms, komma mikro-gramms, komma nano-gramms, komma piko-gramms, komma femto-gramms, komma atto-gramms, komma zepto-gramms, komma yocto-gramms, komma ronto-gramms, komma quecto-gramms")?; + "quetta-gramm, komma ronna-gramm, komma yotta-gramm, komma zetta-gramm, komma exa-gramm, komma peta-gramm, komma tera-gramm, komma giga-gramm, komma mega-gramm, komma kilo-gramm, komma hekto-gramm, komma deka-gramm, komma dezi-gramm, komma zenti-gramm, komma milli-gramm, komma mikro-gramm, komma nano-gramm, komma piko-gramm, komma femto-gramm, komma atto-gramm, komma zepto-gramm, komma yocto-gramm, komma ronto-gramm, komma quecto-gramm")?; return Ok(()); } @@ -61,11 +61,48 @@ fn si_base() -> Result<()> { 1sec,2sec "#; test("de", "SimpleSpeak", expr, - "1 ampere, komma 2 amperes, komma 1 candela, komma 2 candelas, komma 1 kelvin, komma 2 kelvins, komma 1 kelvin, komma 2 kelvins, komma 1 gramm komma 2 gramms, komma 1 meter komma 2 meters, komma 1 mol komma 2 mols, komma 1 sekunde, komma 2 sekundes, komma 1 sekunde, komma 2 sekundes, komma 1 sekunde, komma 2 sekundes, komma 1 sekunde, komma 2 sekundes")?; + "1 ampere, komma 2 ampere, komma 1 candela, komma 2 candela, komma 1 kelvin, komma 2 kelvin, komma 1 kelvin, komma 2 kelvin, komma 1 gramm komma 2 gramm, komma 1 meter komma 2 meter, komma 1 mol komma 2 mol, komma 1 sekunde, komma 2 sekunden, komma 1 sekunde, komma 2 sekunden, komma 1 sekunde, komma 2 sekunden, komma 1 sekunde, komma 2 sekunden")?; return Ok(()); } +#[test] +fn si_unit_plural_regression() -> Result<()> { + let expr = r#" + 2kg, + 2°C, + 2s + "#; + test("de", "ClearSpeak", expr, + "2 kilo-gramm, komma 2 grad celsius, komma 2 sekunden")?; + Ok(()) +} + +#[test] +fn english_rute_plural_regression() -> Result<()> { + let expr = r#" + 1rd, + 2rd + "#; + test("de", "SimpleSpeak", expr, "1 rute komma 2 ruten")?; + Ok(()) +} + +#[test] +fn non_si_unit_plural_regression() -> Result<()> { + let expr = r#" + 1h,2h, + 1d,2d, + 1w,2w, + 1pc,2pc, + 1ha,2ha, + 1Kib,2Kib + "#; + test("de", "SimpleSpeak", expr, + "1 stunde, komma 2 stunden, komma 1 tag komma 2 tage, komma 1 woche komma 2 wochen, komma 1 parsec, komma 2 parsec, komma 1 hektar, komma 2 hektar, komma 1 kibi-bit, komma 2 kibi-bit")?; + Ok(()) +} + /* #[test] fn si_base_with_prefixes() -> Result<()> { @@ -472,4 +509,4 @@ fn test_mtext_inference() -> Result<()> { } - */ \ No newline at end of file + */ diff --git a/tests/Languages/en/alphabets.rs b/tests/Languages/en/alphabets.rs index 23ab7d39a..c2da8c438 100644 --- a/tests/Languages/en/alphabets.rs +++ b/tests/Languages/en/alphabets.rs @@ -391,6 +391,18 @@ fn turned() -> Result<()> { } +#[test] +fn up_tack_330() -> Result<()> { + // perpendicular and up tack look the same. I added a special LiteralSpeak rule for up tack not to say "perpendicular" + let perp = "ab"; // 0x27c2 + test("en", "SimpleSpeak", perp, "eigh is perpendicular to b")?; + test("en", "LiteralSpeak", perp, "eigh is perpendicular to b")?; + let up_tack = "ab"; // 0x22a5 + test("en", "ClearSpeak", up_tack, "eigh is perpendicular to b")?; + test("en", "LiteralSpeak", up_tack, "eigh up tack b")?; + return Ok(()); + } + #[test] fn unicode_typo_regressions() -> Result<()> { test("en", "SimpleSpeak", "", "to the i-th power")?; diff --git a/tests/Languages/en/intent.rs b/tests/Languages/en/intent.rs index 795854781..aa75fbeed 100644 --- a/tests/Languages/en/intent.rs +++ b/tests/Languages/en/intent.rs @@ -133,6 +133,7 @@ fn silent_intent_underscore() -> Result<()> { #[test] fn intent_prob_x() -> Result<()> { + init_logger(); let expr = " x diff --git a/tests/Languages/hu.rs b/tests/Languages/hu.rs index 45bce3f9c..ac24dd22e 100644 --- a/tests/Languages/hu.rs +++ b/tests/Languages/hu.rs @@ -15,9 +15,9 @@ mod ClearSpeak { mod SimpleSpeak { mod functions; mod large_ops; - // mod menclose; + mod menclose; mod mfrac; - // mod mroot; + mod mroot; mod msup; mod sets; mod geometry; @@ -29,6 +29,7 @@ mod shared; mod units; mod chemistry; mod alphabets; +mod definitions; mod intent; mod mtable; diff --git a/tests/Languages/hu/ClearSpeak/functions.rs b/tests/Languages/hu/ClearSpeak/functions.rs index e9449b213..3dd6e94e7 100644 --- a/tests/Languages/hu/ClearSpeak/functions.rs +++ b/tests/Languages/hu/ClearSpeak/functions.rs @@ -516,7 +516,7 @@ fn explicit_times_none_superscript() -> Result<()> { ) "; test_ClearSpeak("hu", "ClearSpeak_Paren", "Interval",expr, - "c től d ig terjedő intervallum, nem tartalmazza a c elemet vagy d elemet")?; + "c től d ig terjedő intervallum, nem tartalmazza a(z) c elemet vagy d elemet")?; return Ok(()); } @@ -530,7 +530,7 @@ fn explicit_times_none_superscript() -> Result<()> { ) "; test_ClearSpeak("hu", "ClearSpeak_Paren", "Interval ",expr, - "c től d ig terjedő intervallum, tartalmazza a c elemet de nem tartalmazza a d elemet")?; + "c től d ig terjedő intervallum, tartalmazza a(z) c elemet de nem tartalmazza a(z) d elemet")?; return Ok(()); } @@ -545,7 +545,7 @@ fn parens_interval_open_closed() -> Result<()> { ] "; test_ClearSpeak("hu", "ClearSpeak_Paren", "Interval ",expr, - "c től d ig terjedő intervallum, nem tartalmazza a c elemet de tartalmazza a d elemet")?; + "c től d ig terjedő intervallum, nem tartalmazza a(z) c elemet de tartalmazza a(z) d elemet")?; return Ok(()); } @@ -560,7 +560,7 @@ fn parens_interval_closed_closed() -> Result<()> { ] "; test_ClearSpeak("hu", "ClearSpeak_Paren", "Interval ",expr, -"c től d ig terjedő intervallum, tartalmazza a c elemet és d elemet")?; +"c től d ig terjedő intervallum, tartalmazza a(z) c elemet és d elemet")?; return Ok(()); } @@ -573,7 +573,7 @@ return Ok(()); ) "; test_ClearSpeak("hu", "ClearSpeak_Paren", "Interval ",expr, - "negatív végtelen től d ig terjedő intervallum, nem tartalmazza a d elemet")?; + "negatív végtelen től d ig terjedő intervallum, nem tartalmazza a(z) d elemet")?; return Ok(()); } @@ -586,7 +586,7 @@ return Ok(()); ] "; test_ClearSpeak("hu", "ClearSpeak_Paren", "Interval ",expr, - "negatív végtelen től d ig terjedő intervallum, tartalmazza a d elemet")?; + "negatív végtelen től d ig terjedő intervallum, tartalmazza a(z) d elemet")?; return Ok(()); } @@ -601,7 +601,7 @@ fn parens_interval_open_open_infinity() -> Result<()> { ) "; test_ClearSpeak("hu", "ClearSpeak_Paren", "Interval ",expr, - "c től végtelen ig terjedő intervallum, nem tartalmazza a c elemet")?; + "c től végtelen ig terjedő intervallum, nem tartalmazza a(z) c elemet")?; return Ok(()); } @@ -616,7 +616,7 @@ fn parens_interval_closed_open_infinity() -> Result<()> { ) "; test_ClearSpeak("hu", "ClearSpeak_Paren", "Interval ",expr, -"c től végtelen ig terjedő intervallum, tartalmazza a c elemet")?; +"c től végtelen ig terjedő intervallum, tartalmazza a(z) c elemet")?; return Ok(()); } diff --git a/tests/Languages/hu/SimpleSpeak/functions.rs b/tests/Languages/hu/SimpleSpeak/functions.rs index aa4c2a43a..8ecf02cb8 100644 --- a/tests/Languages/hu/SimpleSpeak/functions.rs +++ b/tests/Languages/hu/SimpleSpeak/functions.rs @@ -355,7 +355,7 @@ fn no_times_sqrt() -> Result<()> { (c,d) ) "; - test("hu", "SimpleSpeak",expr, "c től d ig terjedő intervallum, nem tartalmazza a c elemet vagy d elemet")?; + test("hu", "SimpleSpeak",expr, "c től d ig terjedő intervallum, nem tartalmazza a(z) c elemet vagy d elemet")?; return Ok(()); } @@ -368,7 +368,7 @@ fn no_times_sqrt() -> Result<()> { [(]c,d) ) "; - test("hu", "SimpleSpeak",expr, "c től d ig terjedő intervallum, tartalmazza a c elemet de nem tartalmazza a d elemet")?; + test("hu", "SimpleSpeak",expr, "c től d ig terjedő intervallum, tartalmazza a(z) c elemet de nem tartalmazza a(z) d elemet")?; return Ok(()); } @@ -382,7 +382,7 @@ fn parens_interval_open_closed() -> Result<()> { (c,d] ] "; - test("hu", "SimpleSpeak",expr,"c től d ig terjedő intervallum, nem tartalmazza a c elemet de tartalmazza a d elemet")?; + test("hu", "SimpleSpeak",expr,"c től d ig terjedő intervallum, nem tartalmazza a(z) c elemet de tartalmazza a(z) d elemet")?; return Ok(()); } @@ -396,7 +396,7 @@ fn parens_interval_closed_closed() -> Result<()> { [(]c,d] ] "; - test("hu", "SimpleSpeak",expr, "c től d ig terjedő intervallum, tartalmazza a c elemet és d elemet")?; + test("hu", "SimpleSpeak",expr, "c től d ig terjedő intervallum, tartalmazza a(z) c elemet és d elemet")?; return Ok(()); } @@ -409,7 +409,7 @@ fn parens_interval_closed_closed() -> Result<()> { ) "; test("hu", "SimpleSpeak",expr, - "negatív végtelen től d ig terjedő intervallum, nem tartalmazza a d elemet")?; + "negatív végtelen től d ig terjedő intervallum, nem tartalmazza a(z) d elemet")?; return Ok(()); } @@ -422,7 +422,7 @@ fn parens_interval_closed_closed() -> Result<()> { ] "; test("hu", "SimpleSpeak",expr, - "negatív végtelen től d ig terjedő intervallum, tartalmazza a d elemet")?; + "negatív végtelen től d ig terjedő intervallum, tartalmazza a(z) d elemet")?; return Ok(()); } diff --git a/tests/Languages/hu/SimpleSpeak/menclose.rs b/tests/Languages/hu/SimpleSpeak/menclose.rs new file mode 100644 index 000000000..33c03f699 --- /dev/null +++ b/tests/Languages/hu/SimpleSpeak/menclose.rs @@ -0,0 +1,266 @@ +use crate::common::*; +use anyhow::Result; + +// AI generated +#[test] +fn menclose_actuarial() -> Result<()> { + let expr = " + 3+2i + "; + test("hu", "ClearSpeak", expr, "aktuárius szimbólum, kezdet: 3 plusz 2 i végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_box() -> Result<()> { + let expr = " + 3+2i + "; + test("hu", "ClearSpeak", expr, "doboz, kör, kezdet: 3 plusz 2 i végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_left() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "vonal balra, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_right() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "vonal jobbra, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_top_bottom() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "vonal felső, alsó, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_updiagonalstrike() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "átlósan felfelé, kihúzva, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_downdiagonalstrike() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "átlósan lefelé, kihúzva, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_cross_out() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "x, kihúzva, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_vertical_horizontal_strike() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "függőleges, vízszintes, kihúzva, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_leftarrow() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "balra nyíl, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_right_up_down_arrow() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "felfelé nyíl, lefelé nyíl, jobbra nyíl, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_northeastarrow() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "északkeleti nyíl, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_other_single_arrows() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "délkeleti nyíl, délnyugati nyíl, északnyugati nyíl, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_northwestsoutheastarrow() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "kétvégű lefelé mutató átlós nyíl, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_other_double_arrows() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "kétvégű függőleges nyíl, kétvégű vízszintes nyíl, dupla végű átlós nyíl, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_madrub() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "arab faktoriális szimbólum, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_phasorangle() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "fázisszög, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_circle_phasorangle() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "kör, fázisszög, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_longdiv() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "hosszú osztásjel, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_longdiv_default() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "hosszú osztásjel, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_longdiv_empty_string() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "hosszú osztásjel, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_longdiv_whitespace_string() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "hosszú osztásjel, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn menclose_radical() -> Result<()> { + let expr = " + 32 + "; + test("hu", "ClearSpeak", expr, "négyzetgyök, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn simple_speak_menclose_top_bottom() -> Result<()> { + let expr = " + 32 + "; + test("hu", "SimpleSpeak", expr, "vonal felső, alsó, kezdet: 3 ketted végpont vége")?; + return Ok(()); + +} diff --git a/tests/Languages/hu/SimpleSpeak/mroot.rs b/tests/Languages/hu/SimpleSpeak/mroot.rs new file mode 100644 index 000000000..225e191c0 --- /dev/null +++ b/tests/Languages/hu/SimpleSpeak/mroot.rs @@ -0,0 +1,178 @@ +use crate::common::*; +use anyhow::Result; + +// AI generated +#[test] +fn msqrt_simple() -> Result<()> { + let expr = " + x + "; + test("hu", "SimpleSpeak", expr, "a négyzetgyöke ennek: x")?; + return Ok(()); + +} + +// AI generated +#[test] +fn msqrt_simple_end_root() -> Result<()> { + let expr = " + x + "; + test_ClearSpeak("hu", "ClearSpeak_Roots", "RootEnd", expr, "négyzetgyök x, gyök vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn msqrt_simple_positive() -> Result<()> { + let expr = " + x + "; + test_ClearSpeak("hu", "ClearSpeak_Roots", "PosNegSqRoot", expr, "pozitív négyzetgyök x")?; + return Ok(()); + +} + +// AI generated +#[test] +fn msqrt_simple_pos_end_root() -> Result<()> { + let expr = " + x + "; + test_ClearSpeak("hu", "ClearSpeak_Roots", "PosNegSqRootEnd", expr, "pozitív négyzetgyök x, gyök vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn msqrt_simple_pos_end_with_neg_root() -> Result<()> { + let expr = " + - x + - x 3 + "; + test_ClearSpeak("hu", "ClearSpeak_Roots", "PosNegSqRootEnd", expr, + "negatív négyzetgyök x, gyök vége; mínusz, a pozitív köbgyök x, gyök vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn mroot_simple_pos_end_with_neg_root() -> Result<()> { + let expr = " + - x 3 + - x + + "; + test_ClearSpeak("hu", "ClearSpeak_Roots", "PosNegSqRoot", expr, + "a negatív köbgyök x; mínusz pozitív négyzetgyök x")?; + return Ok(()); + +} + +// AI generated +#[test] +fn neg_without_root() -> Result<()> { + let expr = " + - x - y + "; + test("hu", "ClearSpeak", expr, "negatív x mínusz y")?; + return Ok(()); + +} + +// AI generated +#[test] +fn msqrt() -> Result<()> { + let expr = " + + x + y + + "; + test("hu", "ClearSpeak", expr, "négyzetgyök x plusz y")?; + return Ok(()); + +} + +// AI generated +#[test] +fn mroot_as_square_root() -> Result<()> { + let expr = " + x 2 + "; + test("hu", "ClearSpeak", expr, "négyzetgyök x")?; + return Ok(()); + +} + +// AI generated +#[test] +fn cube_root() -> Result<()> { + let expr = " + x 3 + "; + test("hu", "ClearSpeak", expr, "a köbgyök x")?; + return Ok(()); + +} + +// AI generated +#[test] +fn ordinal_root() -> Result<()> { + let expr = " + x 9 + "; + test("hu", "ClearSpeak", expr, "a kilencedik gyök x")?; + return Ok(()); + +} + +// AI generated +#[test] +fn simple_mi_root() -> Result<()> { + let expr = " + x n + "; + test("hu", "ClearSpeak", expr, "a n-edik gyök x")?; + return Ok(()); + +} + +// AI generated +#[test] +fn mroot_simple_pos_end_root() -> Result<()> { + let expr = " + x t + "; + test_ClearSpeak("hu", "ClearSpeak_Roots", "PosNegSqRootEnd", expr, "a pozitív t-edik gyök x, gyök vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn mroot_simple_end_root() -> Result<()> { + let expr = " + x + y + 21 + "; + test_ClearSpeak("hu", "ClearSpeak_Roots", "RootEnd", expr, "a huszonegyedik gyök x plusz y, gyök vége")?; + return Ok(()); + +} + +// AI generated +#[test] +fn simple_fraction_power() -> Result<()> { + let expr = " + + x + 13 + + "; + test("hu", "ClearSpeak", expr, "a 1 harmad gyök x")?; + return Ok(()); + +} diff --git a/tests/Languages/hu/definitions.rs b/tests/Languages/hu/definitions.rs new file mode 100644 index 000000000..bd84fb155 --- /dev/null +++ b/tests/Languages/hu/definitions.rs @@ -0,0 +1,1026 @@ +/// Tests for rules in definitions: +/// * modified var +use crate::common::*; +use anyhow::Result; + +#[test] +fn tuple_basic() -> Result<()> { + // function + let expr = r#" + + + x + y + + + "#; + + test("hu", "ClearSpeak", expr, "a tuple x vessző, y")?; + test("hu", "SimpleSpeak", expr, "a tuple x vessző, y")?; + + return Ok(()); +} + +#[test] +fn my_set_basic() -> Result<()> { + let expr = r#" + + + x + y + + + "#; + + test("hu", "ClearSpeak", expr, "az üres halmaz")?; + + Ok(()) +} + +#[test] +fn fixed_test() -> Result<()> { + let expr = r#" + + az összes valós szám halmaza + + + "#; + + test("hu", "ClearSpeak", expr, "az összes valós szám halmaza")?; + Ok(()) +} + +#[test] +fn i_test() -> Result<()> { + let expr = r#" + + képzeletbeli én + + + "#; + + test("hu", "ClearSpeak", expr, "képzeletbeli én")?; + Ok(()) +} + + +#[test] +fn floor_basic() -> Result<()> { + let expr = r#" + + + x + + + "#; + + test("hu", "ClearSpeak", expr, "lépcső x")?; + + Ok(()) +} + +#[test] +fn set_difference_basic() -> Result<()> { + let expr = r#" + + + A + + B + + + "#; + + test( "hu", "ClearSpeak", expr, "különbséghalmaz nagy a vessző, nagy b")?; + + Ok(()) +} + +#[test] +fn postfix_test() -> Result<()> { + let tests = [ + ( + "transpose", + r#" + + x + T + + "#, + "transzponált x", + ), + ( + "highlight", + r#" + + x + + "#, + "x kiemelt", + ), + ]; + + // Loop through all test cases, name _, body, and expected result + for (_, body, expected) in tests { + let expr = format!( + r#" + + {} + + "#, + body + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn prefix_test() -> Result<()> { + // Prefix test limit, unit-vector, line-segment + // Directed-line-segment, line, ray, arc + let tests = [ + ( + "limit", + r#" + + x + + "#, + "határérték x", + ), + ( + "unit-vector", + r#" + + x + ^ + + "#, + "egységvektor x", + ), + ( + "line-segment", + r#" + + x + ¯ + + "#, + "line segment x", + ), + ]; + + for (_, body, expected) in tests { + let expr = format!( + r#" + + {} + + "#, + body + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + + +#[test] +fn functions_and_inverses_tests() -> Result<()> { + let tests = vec![ + ("closed-interval", "x től y ig terjedő intervallum, tartalmazza a(z) x elemet és y elemet"), + ("closed-open-interval", "x től y ig terjedő intervallum, tartalmazza a(z) x elemet de nem tartalmazza a(z) y elemet"), + ("open-closed-interval", "x től y ig terjedő intervallum, nem tartalmazza a(z) x elemet de tartalmazza a(z) y elemet"), + ("open-interval", "x től y ig terjedő intervallum, nem tartalmazza a(z) x elemet vagy y elemet"), + + ("inverse", "inverz x"), + ("domain", "domén x"), + ("codomain", "kodomán x"), + ("image", "kép x"), + + //("fraction", "fraction x over y end fraction"), + ("mixed-fraction", "x és y"), + ("quotient", "egész rész osztva x vessző, y"), + ("evaluated-at", "x értékelve y"), + ("remainder", "a maradék, osztva x vessző, y"), + + ("max", "max x vessző, y vessző, z"), + ("min", "min x vessző, y vessző, z"), + + ("power", "x a(z) y-edik hatványon"), + + //("root", "gyök x"), + + ("greatest-common-divisor", "a legnagyobb közös osztó x vessző, y vessző, z"), + ("least-common-multiple", "a legkisebb közös többszörös x vessző, y vessző, z"), + + ("absolute-value", "x abszolút értéke"), + + ("complex-conjugate", "Komplex konjugált x"), + ("complex-arg", "argumentum x"), + ("real-part", "valós rész"), + ("imaginary-part", "képzetes rész"), + + ("polar-coordinate", "poláris koordináta x vessző, y"), + ("spherical-coordinate", "gömb koordináta x vessző, y vessző, z"), + ("cartesian-coordinate", "derékszögű koordináta x vessző, y vessző, z"), + ("coordinate", "pont, x vessző y vessző z"), + + ("floor", "lépcső x"), + ("ceiling", "mennyezet x"), + ("round", "kerekített érték x"), + ("fractional-part", "tört rész x"), + + + ]; + + for (intent, expected) in tests { + let expr = match intent { + + "max" + | "min" + | "greatest-common-divisor" + | "least-common-multiple" + | "spherical-coordinate" + | "cartesian-coordinate" + | "coordinate" => { + format!( + " + + x + y + z + + ", + intent + ) + } + + "power" + | "mixed-fraction" + | "quotient" + | "evaluated-at" + | "remainder" + | "closed-interval" + | "closed-open-interval" + | "open-closed-interval" + | "open-interval" + | "polar-coordinate" => { + format!( + " + + x + y + + ", + intent + ) + } + + _ => { + format!( + " + + x + + ", + intent + ) + } + }; + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + + +#[test] +fn calculus_tests() -> Result<()> { + let tests = vec![ + //("derivative", "the derivative of x with respect to x"), + //"definite-integral", "integral over x from x to x"), + + // prefix + ("limit", "határérték x"), + + // infix + ("tends-to", "x ehhez tart y"), + ("tends-to-from-above", "x általában alulról indul y"), + ("tends-to-from-below", "x alulról indul y"), + ]; + + for (intent, expected) in tests { + let expr = match intent { + "limit" => { + format!( + " + + x + + ", + intent + ) + } + + _ => { + // infix cases + format!( + " + + x + y + + ", + intent + ) + } + }; + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + + +#[test] +fn set_tests() -> Result<()> { + let tests = vec![ + ("set", "a halmaz x"), + //("set-difference", "x és y halmaz különbsége"), + ("complement", "komplemens x"), + //("empty-set", "üres halmaz"), + ("cardinality", "számosság x"), + ("list", "lista x"), + ("tuple", "a tuple x"), + ]; + + for (intent, expected) in tests { + let expr = format!( + " + + x + + ", + intent + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + + +#[test] +fn sequence_and_series_intents() -> Result<()> { + let tests = [ + ( + "sum-1", + r#" + + + x + + "#, + "összeg x", + ), + ( + "sum-2", + r#" + + + i + x + + "#, + "összeg i vessző, x", + ), + ( + "sum-3", + r#" + + + i + n + x + + "#, + "összeg i vessző, n vessző, x", + ), + ( + "product-1", + r#" + + + x + + "#, + "szorzat x", + ), + ( + "product-2", + r#" + + + i + x + + "#, + "szorzat i vessző, x", + ), + ( + "product-3", + r#" + + + i + n + x + + "#, + "szorzat i vessző, n vessző, x", + ), + ]; + + for (_, body, expected) in tests { + let expr = format!( + r#" + + {} + + "#, + body + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn elementary_classical_tests() -> Result<()> { + let tests = vec![ + // Trig + ("sine", "szinusz x"), + ("cosine", "koszinusz x"), + ("tangent", "tangens x"), + ("secant", "szekáns x"), + ("cosecant", "koszekáns x"), + ("cotangent", "kotangens x"), + + // Inverse trig + ("arcsine", "arkusz szinusz x"), + ("arccosine", "arkusz koszinusz x"), + ("arctangent", "arkusz tangens x"), + ("arcsecant", "arkusz szekáns x"), + ("arccosecant", "arkusz koszekáns x"), + ("arccotangent", "arkusz kotangens x"), + + // Hyperbolic trig + ("hyperbolic-sine", "hiperbolikus szinusz x"), + ("hyperbolic-cosine", "hiperbolikus koszinusz x"), + ("hyperbolic-tangent", "hiperbolikus tangens x"), + ("hyperbolic-secant", "hiperbolikus szekáns x"), + ("hyperbolic-cosecant", "hiperbolikus koszekáns x"), + ("hyperbolic-cotangent", "hiperbolikus kotangens x"), + + // Inverse hyperbolic trig + ("arc-hyperbolic-sine", "arkusz hiperbolikus szinusz x"), + ("arc-hyperbolic-cosine", "arkusz hiperbolikus koszinusz x"), + ("arc-hyperbolic-tangent", "arkusz hiperbolikus tangens x"), + ("arc-hyperbolic-secant", "arkusz hiperbolikus szekáns x"), + ("arc-hyperbolic-cosecant", "arkusz hiperbolikus koszekáns x"), + ("arc-hyperbolic-cotangent", "arkusz hiperbolikus kotangens x"), + ]; + + for (intent, expected) in tests { + let expr = format!( + " + + x + + ", + intent + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn statistics_and_probability_tests() -> Result<()> { + let tests = vec![ + ("mean", "jelentése x"), + ("standard-deviation", "szórás x"), + ("variance", "variencia x"), + ("median", "medián x"), + ("mode", "mód x"), + + // conditional probability typically two arguments + // ("conditional-probability", "probability of x given y"), + ]; + + for (intent, expected) in tests { + let expr = match intent { + "conditional-probability" => format!( + " + + P + ( + + x + | + y + + ) + + ", + intent + ), + _ => format!( + " + + x + + ", + intent + ), + }; + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn linear_algebra_tests() -> Result<()> { + let tests = vec![ + ("vector", "vektor x"), + // ("matrix", "matrix of x"), + ("determinant", "determináns a x"), + ("adjugate", "adjugált x"), + ("magnitude", "nagyságrend x"), + ("norm", "normalizálás x"), + ("span", "fesztávolság x"), + + // transpose supports both postfix and function; we test function explicitly + ("transpose", "transzponált x"), + + // dimensional product is infix + ("dimensional-product", "x a(z) y"), + + // unit-vector is prefix + ("unit-vector", "egységvektor x") + ]; + + for (intent, expected) in tests { + let expr: String = match intent { + "dimensional-product" => { + " + + x + y + + " + .to_string() + } + _ => format!( + " + + x + + " + ), + }; + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn nofix_set_tests() -> Result<()> { + let tests = vec![ + ("set-of-integers", "ℤ", "az összes egész szám halmaza"), + ("set-of-reals", "valós számok halmaza", "az összes valós szám halmaza"), + ("set-of-rationals", "ℚ", "az összes racionális szám halmaza"), + ("set-of-natural-numbers", "ℕ", "az összes természetes szám halmaza"), + ("set-of-complex-numbers", "ℂ", "az összes komplex szám halmaza"), + ("set-of-primes", "ℙ", "az összes prímszám halmaza"), + ]; + + for (intent, symbol, expected) in tests { + let expr = format!( + " + {} + ", + intent, + symbol + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn geometry_prefix_multi_value_tests() -> Result<()> { + let tests = vec![ + ("line-segment", "vonalszakasz x y"), + ("directed-line-segment", "irányított vonalszakasz x y"), + ("line", "vonal x y"), + ("ray", "sugár x y"), + ("arc", "ív x y"), + ("point", "pont x y z"), + ]; + + for (intent, expected) in tests { + let expr = match intent{ + "point" => { + format!( + " + + x + y + z + + " + ) + } + + _ => { + format!( + " + + x + y + + " + ) + } + }; + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn geometry_prefix_tests() -> Result<()> { + let tests = vec![ + ("length", "hossz x"), + ("area", "terület x"), + ("volume", "hangerő x"), + ]; + + for (intent, expected) in tests { + let expr = format!( + " + + x + + " + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn separator_tests() -> Result<()> { + let expr = format!( + " + + x + y + + " + ); + + test("hu", "ClearSpeak", &expr, "x y")?; + Ok(()) +} + +#[test] +fn general_concepts_tests() -> Result<()> { + let tests = vec![ + // Unary structural + ("fenced-group", "bekerített csoport x"), + ("highlight", "x kiemelt"), + ("least-common-denominator", "legkisebb közös nevező x vessző, y vessző, z"), // add x, y , z ... + ("pochhammer", "permutáció x"), + ("permutation-cycle", "permutációs ciklus x"), + + // Binary structural / infix-style + // ("ordered-pair", "the pair of x and y"), + ("rate", "x per y"), + + ("binomial-coefficient", "x választ y"), + ("embellished-name", "x megjegyzéssel y"), + ("indexed-by", "x alsó index y"), + // ("translation", "translation by x comma, y"), // Changes translation to comma + ("constraint", "x feltétellel y"), + ]; + + for (intent, expected) in tests { + let expr = match intent { + "ordered-pair" + | "rate" + | "constraint" + | "binomial-coefficient" + | "embellished-name" + | "translation" + | "indexed-by" => { + format!( + " + + x + y + + ", + intent + ) + } + "least-common-denominator" => { + format!( + " + + x + y + z + + ", + intent + ) + } + + // unary cases + _ => { + format!( + " + + x + + ", + intent + ) + } + }; + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn grouping_tests() -> Result<()> { + let tests = vec![ +("annotation", "x ami y"), + // ("braced-group", "grouped x end-grouped"), + // ("repeating-decimal", "repeating decimal of x"), + ]; + + for (intent, expected) in tests { + let expr = match intent { + "annotation" => { + format!( + " + + x + y + + ", + intent + ) + } + _ => { + format!( + " + + x + + ", + intent + ) + } + }; + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn function_default_fixity_tests() -> Result<()> { + let tests = vec![ + ("curl", "rotáció x"), + ("divergence", "eltérés x"), + ("gradient", "gradiens x"), + ("laplacian", "laplaciánus x"), + ]; + + for (intent, expected) in tests { + let expr = format!( + " + + x + + ", + intent + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn prefix_default_fixity_tests() -> Result<()> { + let tests = vec![ + ("angle", "szög x"), + ("angle-measure", "szögmérés x"), + ("change", "változás x"), + ("for-all", "minden x"), + ("measured-angle", "mért szög x"), + ("not", "nem x"), + ("number-of", "száma x"), + ("partial-derivative", "parciális derivált x"), + ("right-angle", "derékszög x"), + ("square-root-of", "négyzetgyöke x"), + ("there-does-not-exist", "nem létezik x"), + ("there-exists", "létezik x"), + ]; + + for (intent, expected) in tests { + let expr = format!( + " + + x + + ", + intent + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn infix_default_fixity_tests() -> Result<()> { + let tests = vec![ + ("and", "x és y"), + ("applied-to", "x alkalmazva y"), + ("approximately", "x hozzávetőlegesen y"), + ("congruent", "x egybeesik y"), + ("cartesian-product", "x derékszögű szorzat y"), + ("composed-with", "x komponálva y"), + ("cross-product", "x kereszt szorzata y"), + ("defined-as", "x definiálva y"), + ("divided-by", "x osztva y"), + ("divides", "x osztja y"), + ("does-not-belong-to", "x nem tartozik hozzá y"), + ("does-not-divide", "x nem osztja y"), + ("dot-product", "x skaláris szorzat y"), + ("downwards-diagonal-ellipsis", "x lefelé mutató átlós ellipszis y"), + ("direct-product", "x direkt szorzat y"), + ("element-of", "x eleme y"), + ("ellipsis", "x ellipszis y"), + ("equals", "x egyenlő y"), + ("equivalent-to", "x egyenértékű ezzel y"), + ("evaluates-to", "x értéke y"), + ("given", "x adott y"), + ("greater-than", "x nagyobb, mint y"), + ("greater-than-or-equal-to", "x nagyobb vagy egyenlő, mint y"), + ("identically-equals", "x teljesen egyenlő y"), + ("if-and-only-if", "x akkor és csak akkor, ha y"), + ("implies", "x utal y"), + ("inner-product", "x belső szorzat y"), + ("intersection", "x keresztezi y"), + ("less-than", "x kisebb, mint y"), + ("less-than-or-equal-to", "x kisebb vagy egyenlő, mint y"), + ("list-separator", "x vessző y"), + ("maps-to", "x megfelel ennek y"), + ("member-of", "x tagja y"), + ("minus", "x mínusz y"), + ("minus-or-plus", "x mínusz vagy plusz y"), + ("not-subset", "x nem részhalmaza y"), + ("not-superset", "x nem szuperhalmaza y"), + ("not-equal-to", "x nem egyenlő y"), + ("not-member-of", "x nem tagja y"), + ("not-parallel-to", "x nem párhuzamos y"), + ("obtained-from", "x innen származik y"), + ("or", "x vagy y"), + ("outer-product", "x külső szorzata y"), + ("parallel-to", "x párhuzamos y"), + ("perpendicular", "x merőleges y"), + ("plus", "x plusz y"), + ("plus-or-minus", "x plusz vagy mínusz y"), + ("precedes", "x megelőzi y"), + ("proportional", "x arányos y"), + ("range-separator", "x keresztül y"), + ("ratio", "x arány y"), + ("similar", "x hasonló y"), + ("subset", "x részhalmaza y"), + ("subset-or-equal", "x részhalmaza vagy egyenlő y"), + ("succeeds", "x követi y"), + ("such-that", "x úgy, hogy y"), + ("superset", "x szuperhalmaza y"), + ("superset-or-equal", "x szuperhalmaza vagy egyenlő y"), + ("tilde", "x tilde y"), + ("times", "x szorozva y"), + ("union", "x unió y"), + ("upwards-diagonal-ellipsis", "x felfelé átlós ellipszis y"), + ("vertical-ellipsis", "x függőleges ellipszis y"), + ("xor", "x kizárólagos vagy y"), + ]; + + for (intent, expected) in tests { + let expr = format!( + " + + x + y + + ", + intent + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn postfix_default_fixity_tests() -> Result<()> { + let tests = vec![ + ("factorial", "x faktoriális"), + ("percent", "x százalék"), + ]; + + for (intent, expected) in tests { + let expr = format!( + " + + x + + ", + intent + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} + +#[test] +fn nofix_default_fixity_tests() -> Result<()> { + let tests = vec![ + ("diameter", "átmérő", "átmérő"), + ("distance", "távolság", "távolság"), + ("probability", "valószínűség", "valószínűség"), + ("radius", "sugár", "sugár"), + ("volume", "hangerő", "hangerő"), + ("exponential-e", "e", "e"), + ("imaginary-i", "képzeletbeli én", "képzeletbeli én"), + ("differential-d", "d", "d"), + ("golden-ratio", "φ", "aranymetszés"), + ]; + + for (intent, symbol, expected) in tests { + let expr = format!( + " + {} + ", + intent, + symbol + ); + + test("hu", "ClearSpeak", &expr, expected)?; + } + + Ok(()) +} diff --git a/tests/Languages/hu/shared.rs b/tests/Languages/hu/shared.rs index a97805f8a..bd53bb4c3 100644 --- a/tests/Languages/hu/shared.rs +++ b/tests/Languages/hu/shared.rs @@ -381,7 +381,7 @@ fn bug_199_2pi() -> Result<()> { ) "; - test("hu", "SimpleSpeak",expr, "0 től 2 pí ig terjedő intervallum, tartalmazza a 0 elemet de nem tartalmazza a 2 pí elemet")?; + test("hu", "SimpleSpeak",expr, "0 től 2 pí ig terjedő intervallum, tartalmazza a(z) 0 elemet de nem tartalmazza a(z) 2 pí elemet")?; return Ok(()); } diff --git a/tests/Languages/zh/tw.rs b/tests/Languages/zh/tw.rs index 0a8d393ea..f7ce2da19 100644 --- a/tests/Languages/zh/tw.rs +++ b/tests/Languages/zh/tw.rs @@ -23,6 +23,7 @@ mod SimpleSpeak { mod geometry; mod linear_algebra; mod multiline; + mod subscripts; } mod shared; mod chemistry; diff --git a/tests/Languages/zh/tw/SimpleSpeak/functions.rs b/tests/Languages/zh/tw/SimpleSpeak/functions.rs index c90deb6fa..232e0f942 100644 --- a/tests/Languages/zh/tw/SimpleSpeak/functions.rs +++ b/tests/Languages/zh/tw/SimpleSpeak/functions.rs @@ -102,7 +102,7 @@ fn normal_log() -> Result<()> { #[test] fn simple_log_with_base() -> Result<()> { let expr = " logbx "; - test("zh-tw", "SimpleSpeak", expr, "log 底 b, x")?; + test("zh-tw", "SimpleSpeak", expr, "log 底數 b, x")?; return Ok(()); } @@ -110,7 +110,7 @@ fn simple_log_with_base() -> Result<()> { #[test] fn normal_log_with_base() -> Result<()> { let expr = "logb(x+y)"; - test("zh-tw", "SimpleSpeak", expr, "log 底 b; 左小括 x 加 y 右小括")?; + test("zh-tw", "SimpleSpeak", expr, "log 底數 b; 左小括 x 加 y 右小括")?; return Ok(()); } @@ -149,6 +149,22 @@ fn simple_ln_terse() -> Result<()> { } +#[test] +fn other_names() -> Result<()> { + let expr = " Covx "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], + expr, "Cov x")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Medium")], + expr, "covariance x")?; + let expr = " exp(x) "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], + expr, "exp x")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Medium")], + expr, "exponential x")?; + return Ok(()); + +} + #[test] fn explicit_function_call_with_parens() -> Result<()> { let expr = "t(x)"; @@ -225,7 +241,7 @@ fn no_times_sqrt() -> Result<()> { ab "; test("zh-tw", "SimpleSpeak", expr, - "根號 a, 根號 b; 等於, 根號 a b 結束根號")?; + "根號 a, 乘 根號 b; 等於, 根號 a b 結束根號")?; return Ok(()); } @@ -254,7 +270,7 @@ fn no_times_sqrt() -> Result<()> { xy ) "; - test("zh-tw", "SimpleSpeak", expr, "b x y")?; + test("zh-tw", "SimpleSpeak", expr, "b, 左小括 x y 右小括")?; return Ok(()); } diff --git a/tests/Languages/zh/tw/SimpleSpeak/linear_algebra.rs b/tests/Languages/zh/tw/SimpleSpeak/linear_algebra.rs index e71da3571..184febe4c 100644 --- a/tests/Languages/zh/tw/SimpleSpeak/linear_algebra.rs +++ b/tests/Languages/zh/tw/SimpleSpeak/linear_algebra.rs @@ -4,7 +4,7 @@ use anyhow::Result; #[test] fn transpose() -> Result<()> { let expr = " MT "; - test("zh-tw", "SimpleSpeak", expr, "大寫 m 的 轉置")?; + test("zh-tw", "SimpleSpeak", expr, "大寫 m transpose")?; return Ok(()); } @@ -12,7 +12,7 @@ fn transpose() -> Result<()> { #[test] fn trace() -> Result<()> { let expr = " TrM "; - test("zh-tw", "SimpleSpeak", expr, "大寫 m 的 跡")?; + test("zh-tw", "SimpleSpeak", expr, "trace 大寫 m")?; return Ok(()); } @@ -20,7 +20,7 @@ fn trace() -> Result<()> { #[test] fn dimension() -> Result<()> { let expr = " DimM "; - test("zh-tw", "SimpleSpeak", expr, "大寫 m 的 維數")?; + test("zh-tw", "SimpleSpeak", expr, "dimension 大寫 m")?; return Ok(()); } @@ -28,7 +28,7 @@ fn dimension() -> Result<()> { #[test] fn homomorphism() -> Result<()> { let expr = " Hom(M) "; - test("zh-tw", "SimpleSpeak", expr, "大寫 m 的 同態")?; + test("zh-tw", "SimpleSpeak", expr, "homomorphism 大寫 m")?; return Ok(()); } @@ -36,7 +36,7 @@ fn homomorphism() -> Result<()> { #[test] fn kernel() -> Result<()> { let expr = " ker(L) "; - test("zh-tw", "SimpleSpeak", expr, "大寫 l 的 核")?; + test("zh-tw", "SimpleSpeak", expr, "kernel 大寫 l")?; return Ok(()); } @@ -51,7 +51,24 @@ fn norm() -> Result<()> { "; - test("zh-tw", "SimpleSpeak", expr, "f 的 範數")?; + test("zh-tw", "SimpleSpeak", expr, "norm f")?; + return Ok(()); + +} + +#[test] +fn norm_non_simple() -> Result<()> { + let expr = " + + + x + + + y + + + +"; + test("zh-tw", "SimpleSpeak", expr, "norm x 加 y 結束 norm")?; return Ok(()); } @@ -69,7 +86,25 @@ fn norm_subscripted() -> Result<()> { "; - test("zh-tw", "SimpleSpeak", expr, "f 的 p 範數")?; + test("zh-tw", "SimpleSpeak", expr, "p norm f")?; + return Ok(()); + +} +#[test] +fn not_gradient() -> Result<()> { + // the nabla is at the end, so it can't be gradient because it doesn't operate on anything + let expr = r#" + ( + b + + + + + ) + a + +"#; + test("zh-tw", "SimpleSpeak", expr, "左小括 b 乘 nahblah, 右小括; 乘 a")?; return Ok(()); } \ No newline at end of file diff --git a/tests/Languages/zh/tw/SimpleSpeak/mfrac.rs b/tests/Languages/zh/tw/SimpleSpeak/mfrac.rs index d82ce0a13..0c79365d2 100644 --- a/tests/Languages/zh/tw/SimpleSpeak/mfrac.rs +++ b/tests/Languages/zh/tw/SimpleSpeak/mfrac.rs @@ -151,6 +151,71 @@ fn denominator_simple_fraction() -> Result<()> { } +#[test] +fn frac_with_units() -> Result<()> { + let expr = " + + + 62 + + mi + hr + + + "; + test("zh-tw", "SimpleSpeak", expr, "62 英里 每 小時")?; + return Ok(()); + +} + +#[test] +fn singular_frac_with_units() -> Result<()> { + let expr = " + + + 1 + + gal + mi + + + "; + test("zh-tw", "SimpleSpeak", expr, "1 加侖 每 英里")?; + return Ok(()); + +} + +#[test] +fn number_in_numerator_with_units() -> Result<()> { + let expr = " + + + + 3 + gal + + mi + + "; + test("zh-tw", "SimpleSpeak", expr, "3 加侖 每 英里")?; + return Ok(()); + +} + +#[test] +fn units_with_powers() -> Result<()> { + let expr = " + + + 3 m + s2 + + "; + test("zh-tw", "SimpleSpeak", expr, "3 米 每 秒 平方")?; + return Ok(()); + +} + #[test] fn mixed_number() -> Result<()> { @@ -232,7 +297,7 @@ fn nested_simple_fractions() -> Result<()> { "; - test("zh-tw", "SimpleSpeak", expr, "分數 分數 3 分之 2 結束分數; 分之, 分數 2 分之 1 結束分數; 結束分數")?; + test("zh-tw", "SimpleSpeak", expr, "分數 3 分之 2, 分之, 2 分之 1 結束分數")?; return Ok(()); } @@ -249,3 +314,41 @@ fn binomial() -> Result<()> { return Ok(()); } +#[test] +fn binomial_non_simple_top() -> Result<()> { + let expr = " + 2 + ( + n+7 3 + ) + "; + test("zh-tw", "SimpleSpeak", expr, "2 乘 n 加 7 選 3")?; + return Ok(()); + +} + +#[test] +fn binomial_non_simple_bottom() -> Result<()> { + let expr = " + 2 + ( + 7 k+3 + ) + "; + test("zh-tw", "SimpleSpeak", expr, "2 乘 7 選 k 加 3")?; + return Ok(()); + +} + +#[test] +fn binomial_non_simple_top_and_bottom() -> Result<()> { + let expr = " + 2 + ( + n+7 k+3 + ) + "; + test("zh-tw", "SimpleSpeak", expr, "2 乘, n 加 7 選 k 加 3")?; + return Ok(()); + +} diff --git a/tests/Languages/zh/tw/SimpleSpeak/subscripts.rs b/tests/Languages/zh/tw/SimpleSpeak/subscripts.rs new file mode 100644 index 000000000..325542e2d --- /dev/null +++ b/tests/Languages/zh/tw/SimpleSpeak/subscripts.rs @@ -0,0 +1,64 @@ +use crate::common::*; +use anyhow::Result; + +#[test] +fn msub_simple() -> Result<()> { + let expr = " x 1 "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "x 1")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Medium")], expr, "x 下標 1")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "x 下標 1")?; + return Ok(()); + + } + +#[test] +fn msub_not_simple() -> Result<()> { + let expr = " x 1.2 "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "x 下標 1.2")?; + return Ok(()); + + } + +#[test] +fn msubsup_not_simple() -> Result<()> { + let expr = " x 1.2 3 "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "x 下標 1.2, 立方")?; + return Ok(()); + + } + +#[test] +fn msub_simple_mi() -> Result<()> { + let expr = " x i "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "x 下標 i")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "x 下標 i")?; + return Ok(()); + +} + +#[test] +fn msub_simple_number_follows() -> Result<()> { + let expr = " x 1 102 "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "x 1, 10 平方")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "x 下標 1, 10 平方")?; + return Ok(()); + +} + +#[test] +fn msub_simple_non_number_follows() -> Result<()> { + let expr = " x 1 2 "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "x 1, 平方")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "x 下標 1, 平方")?; + return Ok(()); + +} + +#[test] +fn msubsup_simple() -> Result<()> { + let expr = " x 1 x,2 "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "x 1, x 平方")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "x 下標 1, x 平方")?; + return Ok(()); + +} \ No newline at end of file diff --git a/tests/Languages/zh/tw/alphabets.rs b/tests/Languages/zh/tw/alphabets.rs index ee32a8090..b0342cb88 100644 --- a/tests/Languages/zh/tw/alphabets.rs +++ b/tests/Languages/zh/tw/alphabets.rs @@ -9,7 +9,7 @@ fn special_alphabet_chars() -> Result<()> { let expr = " ,"; test("zh-tw", "SimpleSpeak", expr, "fraktur 大寫 h 逗號 fraktur 大寫 c")?; let expr = " ,"; - test("zh-tw", "SimpleSpeak", expr, "空心 大寫 h 逗號 空心 大寫 pi")?; + test("zh-tw", "SimpleSpeak", expr, "雙線 大寫 h 逗號 雙線 大寫 pi")?; let expr = " ,"; test("zh-tw", "SimpleSpeak", expr, "草體 大寫 i 逗號 草體 大寫 m")?; return Ok(()); @@ -24,7 +24,7 @@ fn greek() -> Result<()> { test("zh-tw", "SimpleSpeak", expr, "alpha 逗號 omega")?; // MathType private space versions let expr = " ,"; - test("zh-tw", "SimpleSpeak", expr, "空心 大寫 delta 逗號 空心 大寫 upsilon")?; + test("zh-tw", "SimpleSpeak", expr, "雙線 大寫 delta 逗號 雙線 大寫 upsilon")?; let expr = " α,ω"; test("zh-tw", "SimpleSpeak", expr, "alpha 逗號 omega")?; return Ok(()); @@ -51,6 +51,8 @@ fn parenthesized() -> Result<()> { fn circled() -> Result<()> { let expr = " ,"; test("zh-tw", "SimpleSpeak", expr, "圈圈 大寫 a 逗號 圈圈 大寫 z")?; + let expr = " 🅐,🅩"; + test("zh-tw", "SimpleSpeak", expr, "黑圈圈 大寫 a 逗號 黑圈圈 大寫 z")?; let expr = " ,"; test("zh-tw", "SimpleSpeak", expr, "圈圈 a 逗號 圈圈 z")?; return Ok(()); @@ -90,18 +92,18 @@ fn bold_fraktur() -> Result<()> { #[test] fn double_struck() -> Result<()> { let expr = " 𝔸,𝕐"; - test("zh-tw", "SimpleSpeak", expr, "空心 大寫 a 逗號 空心 大寫 y")?; + test("zh-tw", "SimpleSpeak", expr, "雙線 大寫 a 逗號 雙線 大寫 y")?; let expr = " 𝕒,𝕫"; - test("zh-tw", "SimpleSpeak", expr, "空心 a 逗號 空心 z")?; + test("zh-tw", "SimpleSpeak", expr, "雙線 a 逗號 雙線 z")?; let expr = " 𝟘,𝟡"; - test("zh-tw", "SimpleSpeak", expr, "空心 0 逗號 空心 9")?; + test("zh-tw", "SimpleSpeak", expr, "雙線 0 逗號 雙線 9")?; // MathType private space versions let expr = " ,"; - test("zh-tw", "SimpleSpeak", expr, "空心 大寫 a 逗號 空心 大寫 y")?; + test("zh-tw", "SimpleSpeak", expr, "雙線 大寫 a 逗號 雙線 大寫 y")?; let expr = " ,"; - test("zh-tw", "SimpleSpeak", expr, "空心 a 逗號 空心 z")?; + test("zh-tw", "SimpleSpeak", expr, "雙線 a 逗號 雙線 z")?; let expr = " ,"; - test("zh-tw", "SimpleSpeak", expr, "空心 0 逗號 空心 9")?; + test("zh-tw", "SimpleSpeak", expr, "雙線 0 逗號 雙線 9")?; return Ok(()); } @@ -389,10 +391,19 @@ fn turned() -> Result<()> { } +#[test] +fn unicode_typo_regressions() -> Result<()> { + test("zh-tw", "SimpleSpeak", "", "上標1")?; + test("zh-tw", "SimpleSpeak", "", "conjunction")?; + Ok(()) +} + #[test] fn enclosed_numbers() -> Result<()> { let expr = " ,"; test("zh-tw", "SimpleSpeak", expr, "圈圈 1 逗號 圈圈 9")?; + let expr = " ,"; + test("zh-tw", "SimpleSpeak", expr, "黑圈圈1 逗號 圈圈50")?; let expr = " ,"; test("zh-tw", "SimpleSpeak", expr, "括號圍繞 1 逗號 括號圍繞 9")?; let expr = " ,"; diff --git a/tests/Languages/zh/tw/chemistry.rs b/tests/Languages/zh/tw/chemistry.rs index 2bf301173..adb626a84 100644 --- a/tests/Languages/zh/tw/chemistry.rs +++ b/tests/Languages/zh/tw/chemistry.rs @@ -690,3 +690,80 @@ fn mhchem_roman_in_superscript() -> Result<()> { } +#[test] +fn dropped_msubsup_bug_358() -> Result<()> { + let expr = r#" + + + 2 + + + SO + + 2 + + + + + + + + + O + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + SO + + 3 + + + + + + + + "#; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], + expr, "2, 大寫 s, 大寫 o, 2; 加; 大寫 o, 2 左右平衡 2, 大寫 s, 大寫 o, 3")?; + return Ok(()); + +} + + diff --git a/tests/Languages/zh/tw/intent.rs b/tests/Languages/zh/tw/intent.rs index 6df39ff41..de629338f 100644 --- a/tests/Languages/zh/tw/intent.rs +++ b/tests/Languages/zh/tw/intent.rs @@ -4,6 +4,98 @@ use crate::common::*; use anyhow::Result; +#[test] +fn silent_intent() -> Result<()> { + let expr = " 2 x "; + test("zh-tw", "SimpleSpeak", expr, "2 x")?; + test("zh-tw", "LiteralSpeak", expr, "2 x")?; + return Ok(()); + +} + +#[test] +fn prefix_intent() -> Result<()> { + let expr = r#" x T "#; + test("zh-tw", "SimpleSpeak", expr, "testing x")?; + return Ok(()); + +} + +#[test] +fn postfix_intent() -> Result<()> { + let expr = r#" x T "#; + test("zh-tw", "SimpleSpeak", expr, "x testing")?; + return Ok(()); + +} + +#[test] +fn infix_intent() -> Result<()> { + let expr = r#" + x + y + z + "#; + test("zh-tw", "SimpleSpeak", expr, "x testing y testing z testing 2")?; + return Ok(()); + +} + +#[test] +fn infix_intent_no_args() -> Result<()> { + // this is illegal intent, so it is just an mrow with one child + let expr = r#" + x + "#; + test("zh-tw", "SimpleSpeak", expr, "x")?; + return Ok(()); + +} + +#[test] +fn infix_intent_one_arg() -> Result<()> { + let expr = r#" + x + "#; + // Note: we say the intent name because there are infix plus/minus with a single arg due to continued rows or combined columns + test("zh-tw", "SimpleSpeak", expr, "testing x")?; + return Ok(()); + +} + +#[test] +fn function_intent() -> Result<()> { + let expr = r#" + x + y + z + "#; + test("zh-tw", "SimpleSpeak", expr, "testing x 逗號 y 逗號 z 逗號 2")?; + return Ok(()); + +} + +#[test] +fn function_no_args_intent() -> Result<()> { + // this is illegal intent, so it is just an mrow with one child + let expr = r#" + x + "#; + test("zh-tw", "SimpleSpeak", expr, "x")?; + return Ok(()); + +} + +#[test] +fn function_one_arg_intent() -> Result<()> { + let expr = r#" + x + "#; + test("zh-tw", "SimpleSpeak", expr, "testing x")?; + return Ok(()); + +} + #[test] fn silent_intent_mi() -> Result<()> { let expr = " 2 x"; @@ -38,6 +130,7 @@ fn silent_intent_underscore() -> Result<()> { #[test] fn intent_prob_x() -> Result<()> { + //init_logger(); let expr = " x diff --git a/tests/Languages/zh/tw/mtable.rs b/tests/Languages/zh/tw/mtable.rs index abc649f6f..8145ab101 100644 --- a/tests/Languages/zh/tw/mtable.rs +++ b/tests/Languages/zh/tw/mtable.rs @@ -226,6 +226,43 @@ fn matrix_2x3() -> Result<()> { return Ok(()); } +#[test] +fn augmented_matrix_2x3() -> Result<()> { + let expr = " + + + [ + + + + 3 + + + 1 + + + 4 + + + + + 0 + + + 2 + + + 6 + + + + ] + + "; + test("zh-tw", "SimpleSpeak", expr, "2 乘 3 增廣矩陣; 列 1; 3, 1, 4; 列 2; 0, 2, 6")?; + Ok(()) +} + #[test] fn matrix_2x3_labeled() -> Result<()> { @@ -555,4 +592,154 @@ let expr = " return Ok(()); } + // Test preferences + +#[test] +fn augmented_matrix_3x4_end_matrix() -> Result<()> { +let expr = " + + [ + + + 1 + 2 + -1 + 3 + + + -3 + 3 + -1 + 2 + + + 2 + 3 + 2 + -1 + + + ] + +"; + test("zh-tw", "SimpleSpeak", + expr, "3 乘 4 增廣矩陣; 列 1; 行 1; 1, 行 2; 2, 行 3; 負 1, 行 4; 3; \ + 列 2; 行 1; 負 3, 行 2; 3, 行 3; 負 1, 行 4; 2; \ + 列 3; 行 1; 2, 行 2; 3, 行 3; 2, 行 4; 負 1")?; + Ok(()) + } + + + + + + + + +#[test] +fn matrix_times() -> Result<()> { + let expr = " + 1234 + abcd + "; + test("zh-tw", "SimpleSpeak", expr, + "2 乘 2 矩陣; 列 1; 1, 2; 列 2; 3, 4; 乘, 2 乘 2 矩陣; 列 1; a, b; 列 2; c, d")?; + return Ok(()); + } + + + +#[test] +fn zero_matrix() -> Result<()> { + let expr = " + [ + + 00 + 00 + + ] + "; + test("zh-tw", "SimpleSpeak", expr, + "2 乘 2 零矩陣")?; + return Ok(()); + } + +#[test] +fn identity_matrix() -> Result<()> { + let expr = " + ( + + 100 + 010 + 001 + + ) + "; + test("zh-tw", "SimpleSpeak", expr, + "3 乘 3 單位矩陣")?; + return Ok(()); + } + +#[test] +fn identity_matrix_false_positive_negative_one() -> Result<()> { + let expr = " + [ + + 10 + 0-1 + + ] + "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], + expr, "2 乘 2 對角矩陣; 行 1; 1; 行 2; 負 1")?; + Ok(()) +} + +#[test] +fn identity_matrix_false_positive_zero_diagonal() -> Result<()> { + let expr = " + [ + + 10 + 00 + + ] + "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], + expr, "2 乘 2 對角矩陣; 行 1; 1")?; + Ok(()) +} + +#[test] +fn diagonal_matrix() -> Result<()> { + let expr = " + ( + + 200 + 010 + 00x2 + + ) + "; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], + expr, "3 乘 3 對角矩陣; 行 1; 2; 行 2; 1; 行 3; x 平方")?; + // test_prefs("en", "SimpleSpeak", vec![("Verbosity", "Verbose")], + // expr, "the 3 by 3 diagonal matrix; row 1, column 1, 2; row 2, column 2, 1; row 3, column 3, x squared"); + return Ok(()); + } + +#[test] +fn single_line_with_label() -> Result<()> { + let expr = r#" + + + (2) + 𝑏 = 2 + + + "#; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], + expr, "1 方程, 帶有標籤 2; b 等於 2")?; + return Ok(()); + } diff --git a/tests/Languages/zh/tw/shared.rs b/tests/Languages/zh/tw/shared.rs index 612d30db2..3d9474687 100644 --- a/tests/Languages/zh/tw/shared.rs +++ b/tests/Languages/zh/tw/shared.rs @@ -11,6 +11,7 @@ fn modified_vars() -> Result<()> { c ̆ b ̌ c ` + + r ˇ + x . y ˙ z ¨ @@ -20,7 +21,7 @@ fn modified_vars() -> Result<()> { t "; test("zh-tw", "SimpleSpeak", expr, - "a grave, b tilde, c breve, b check, c grave; 加; \ + "a grave, b tilde, c breve, b check, c grave; 加 r check 加; \ x 點, y dot, z double dot, u triple dot, v quadruple dot; 加 x hat, 加 向量 t")?; return Ok(()); @@ -70,6 +71,22 @@ fn binomial_mmultiscripts() -> Result<()> { } +#[test] +fn binomial_mmultiscripts_other() -> Result<()> { + let expr = "Cmn"; + test("zh-tw", "SimpleSpeak", expr, "n 選 m")?; + return Ok(()); + +} + +#[test] +fn binomial_subscript() -> Result<()> { // C_{n,k} + let expr = "Cn,m"; + test("zh-tw", "SimpleSpeak", expr, "n 選 m")?; + return Ok(()); + +} + #[test] fn permutation_mmultiscripts() -> Result<()> { @@ -151,7 +168,7 @@ fn simple_msubsup() -> Result<()> { "; - test("zh-tw", "SimpleSpeak", expr, "x 下標 k 的 i 次方")?; + test("zh-tw", "SimpleSpeak", expr, "x 下標 k, 的 i 次方")?; return Ok(()); } @@ -182,11 +199,13 @@ fn presentation_mathml_in_semantics() -> Result<()> { "; - test("zh-tw", "SimpleSpeak", expr, "x 下標 k 的 i 次方")?; + test("zh-tw", "SimpleSpeak", expr, "x 下標 k, 的 i 次方")?; return Ok(()); } + + #[test] fn ignore_period() -> Result<()> { // from https://en.wikipedia.org/wiki/Probability @@ -323,6 +342,35 @@ return Ok(()); } +#[test] +fn bug_199_2pi() -> Result<()> { + let expr = " + + [ + + 0 + + , + + 2 + π + + ) + + "; + test("zh-tw", "SimpleSpeak",expr, "閉開區間 0 逗號 2 pi")?; + return Ok(()); + +} + +#[test] +fn caret_and_hat() -> Result<()> { + let expr = "x^2+y^"; + test("zh-tw", "SimpleSpeak",expr, "x caret 2 加 y hat")?; + return Ok(()); + +} + #[test] fn mn_with_space() -> Result<()> { let expr = "1 234 567"; @@ -330,3 +378,185 @@ fn mn_with_space() -> Result<()> { return Ok(()); } + +#[test] +fn ignore_bold() -> Result<()> { + let expr = r#" + x + = + 2 + + 𝒔𝒊𝒏 + + t + + - + 1 + "#; + test_prefs("zh-tw", "SimpleSpeak", vec![("IgnoreBold", "false")], + expr, "粗斜體 x 等於, 2 sine 粗斜體 t, 減 1")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("IgnoreBold", "true")], + expr, "x 等於, 2 sine t, 減 1")?; + return Ok(()); + +} + +#[test] +fn mn_with_block_and_decimal_separators() -> Result<()> { + let expr = "1,234.56"; // may want to change this for another language + test_prefs("zh-tw", "SimpleSpeak", vec![("DecimalSeparators", "."), ("BlockSeparators", " ,")], expr, "1234.56")?; + return Ok(()); + +} + +#[test] +fn divergence() -> Result<()> { + let expr = "·F"; // may want to change this for another language + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "div 大寫 f")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "divergence 大寫 f")?; + return Ok(()); + +} + +#[test] +fn curl() -> Result<()> { + let expr = "×F"; + // may want to change this for another language + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "curl 大寫 f")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "curl 大寫 f")?; + return Ok(()); + +} + +#[test] +fn gradient() -> Result<()> { + let expr = "F"; + // may want to change this for another language + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "del 大寫 f")?; + test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "gradient 大寫 f")?; + return Ok(()); + +} + +//#[test] +//fn literal_speak_perpendicular() -> Result<()> { +// let expr = r#" +// +// +// A +// +// +// +// +// B +// +// +// +// "#; +// test("zh-tw", "LiteralSpeak", expr, "大寫 a 右箭頭, 垂直於, 大寫 b 右箭頭")?; +// return Ok(()); +// +//} + +#[test] +fn literal_speak_chars() -> Result<()> { + let expr = r#" + + + x×y + · + z/2 + + + ab + + + x! + + + "#; + test("zh-tw", "LiteralSpeak", expr, "豎線; x cross, y 乘 z slash 2; 加 a; 雙豎線, b 加 x 階乘; 豎線")?; + return Ok(()); + +} + +#[test] +fn literal_speak_with_name() -> Result<()> { + let expr = r#" + + f + + + ( + + x + ! + + ) + + + "#; + test("zh-tw", "LiteralSpeak", expr, "forced f, 左小括 x 階乘 右小括")?; + return Ok(()); + +} + +#[test] +fn literal_speak_with_property() -> Result<()> { + let expr = r#" + + f + + + ( + + x + ! + + ) + + + "#; + test("zh-tw", "LiteralSpeak", expr, "f, 左小括 x 階乘 右小括")?; + return Ok(()); + +} + +//#[test] +//fn literal_intent_property() -> Result<()> { +// let expr = r#" +// +// +// A +// +// +// +// +// B +// +// +// +// "#; +// test("zh-tw", "SimpleSpeak", expr, "大寫 a 右箭頭, 垂直於, 大寫 b 右箭頭")?; +// return Ok(()); +// +//} + +#[test] +fn literal_intent_property_with_name() -> Result<()> { + let expr = r#" + + f + + + ( + + x + ! + + ) + + + "#; + test("zh-tw", "SimpleSpeak", expr, "forced f, 左小括 x 階乘 右小括")?; + return Ok(()); + +} diff --git a/tests/Languages/zh/tw/units.rs b/tests/Languages/zh/tw/units.rs index 4fb1f1b4d..3f81662c5 100644 --- a/tests/Languages/zh/tw/units.rs +++ b/tests/Languages/zh/tw/units.rs @@ -525,3 +525,17 @@ fn test_mtext_inference() -> Result<()> { return Ok(()); } + #[test] + fn infer_unit() -> Result<()> { + let expr = r#" + 3m, + 1km, + 3m, + 310F, + mmin + "#; + test("zh-tw", "SimpleSpeak", expr, + "3 米 逗號 1 千-米, 逗號 3 米 逗號 10 分之 3 法拉, 逗號, m 下標 min 結束下標")?; + return Ok(()); + + } diff --git a/tests/braille.rs b/tests/braille.rs index 865f159b7..a2aac6c9c 100644 --- a/tests/braille.rs +++ b/tests/braille.rs @@ -1,4 +1,5 @@ #![allow(non_snake_case)] +#![allow(clippy::needless_return)] mod common; @@ -24,6 +25,10 @@ mod braille { mod vi; } + mod Russian { + mod russian; + } + mod Swedish { mod swedish; } diff --git a/tests/braille/ASCIIMath/augenbit.rs b/tests/braille/ASCIIMath/augenbit.rs index 6a0b615ab..45abef76c 100644 --- a/tests/braille/ASCIIMath/augenbit.rs +++ b/tests/braille/ASCIIMath/augenbit.rs @@ -130,6 +130,14 @@ fn augenbit1_7_7 () -> Result<()> { } +#[test] +fn augenbit1_7_8 () -> Result<()> { + let expr = r#"lga"#; + test_braille("ASCIIMath", expr, r"lg a")?; + return Ok(()); + +} + #[test] fn augenbit1_7_10 () -> Result<()> { let expr = r#"cos2β"#; diff --git a/tests/braille/Russian/russian.rs b/tests/braille/Russian/russian.rs new file mode 100644 index 000000000..5138fb374 --- /dev/null +++ b/tests/braille/Russian/russian.rs @@ -0,0 +1,1578 @@ +use crate::common::*; +use anyhow::Result; + +fn test_russian_braille(expr: &str, expected: &str) -> Result<()> { + return test_braille("Russian", expr, expected); +} + +#[test] +fn script_grouping_sup_x() -> Result<()> { + return test_russian_braille(r#"ax"#, "⠠⠁⠌⠭⠱"); +} + +#[test] +fn script_grouping_sup_zero() -> Result<()> { + return test_russian_braille(r#"x0"#, "⠠⠭⠌⠴"); +} + +#[test] +fn script_grouping_sup_ten() -> Result<()> { + return test_russian_braille(r#"x10"#, "⠠⠭⠌⠂⠴"); +} + +#[test] +fn script_grouping_sup_minus_x() -> Result<()> { + return test_russian_braille(r#"a-x"#, "⠠⠁⠌⠀⠤⠭⠱"); +} + +#[test] +fn script_grouping_sup_minus_2() -> Result<()> { + return test_russian_braille(r#"a-2"#, "⠠⠁⠌⠤⠆"); +} + +#[test] +fn script_grouping_sup_x_plus_1() -> Result<()> { + return test_russian_braille(r#"ax+1"#, "⠠⠁⠌⠭⠀⠖⠼⠁⠱"); +} + +#[test] +fn script_grouping_sup_sub_x2() -> Result<()> { + return test_russian_braille(r#"ax2"#, "⠠⠁⠌⠭⠡⠆⠱"); +} + +#[test] +fn script_grouping_sup_nested() -> Result<()> { + return test_russian_braille(r#"ax2"#, "⠠⠁⠌⠭⠌⠆⠱"); +} + +#[test] +fn script_grouping_sup_frac() -> Result<()> { + return test_russian_braille(r#"a12"#, "⠠⠁⠌⠼⠁⠆⠱"); +} + +#[test] +fn script_grouping_sup_complex_frac() -> Result<()> { + return test_russian_braille(r#"ax+1y"#, "⠠⠁⠌⠐⠆⠭⠀⠖⠼⠁⠀⠳⠠⠽⠰⠱"); +} + +#[test] +fn script_grouping_sup_sqrt() -> Result<()> { + return test_russian_braille(r#"ax"#, "⠠⠁⠌⠩⠱⠭⠹⠱"); +} + +#[test] +fn script_grouping_sup_follow_letter() -> Result<()> { + return test_russian_braille(r#"x2y"#, "⠠⠭⠌⠆⠽"); +} + +#[test] +fn script_grouping_sup_follow_number() -> Result<()> { + return test_russian_braille(r#"x23"#, "⠠⠭⠌⠆⠼⠉"); +} + +#[test] +fn script_grouping_sub_x() -> Result<()> { + return test_russian_braille(r#"ax"#, "⠠⠁⠡⠭⠱"); +} + +#[test] +fn script_grouping_sub_zero() -> Result<()> { + return test_russian_braille(r#"x0"#, "⠠⠭⠡⠴"); +} + +#[test] +fn script_grouping_sub_ten() -> Result<()> { + return test_russian_braille(r#"x10"#, "⠠⠭⠡⠂⠴"); +} + +#[test] +fn script_grouping_sub_digits_sequence() -> Result<()> { + return test_russian_braille(r#"D13"#, "⠨⠙⠡⠂⠒"); +} + +#[test] +fn script_grouping_sub_infinity() -> Result<()> { + return test_russian_braille(r#"t"#, "⠠⠞⠡⠻"); +} + +#[test] +fn script_grouping_sub_minus_x() -> Result<()> { + return test_russian_braille(r#"a-x"#, "⠠⠁⠡⠀⠤⠭⠱"); +} + +#[test] +fn script_grouping_sub_minus_2() -> Result<()> { + return test_russian_braille(r#"a-2"#, "⠠⠁⠡⠤⠆"); +} + +#[test] +fn script_grouping_sub_x_plus_1() -> Result<()> { + return test_russian_braille(r#"ax+1"#, "⠠⠁⠡⠐⠭⠀⠖⠼⠁⠱"); +} + +#[test] +fn script_grouping_sub_nested() -> Result<()> { + return test_russian_braille(r#"ax2"#, "⠠⠁⠡⠭⠡⠆⠱"); +} + +#[test] +fn script_grouping_sub_follow_letter() -> Result<()> { + return test_russian_braille(r#"x2y"#, "⠠⠭⠡⠆⠽"); +} + +#[test] +fn script_grouping_sub_follow_number() -> Result<()> { + return test_russian_braille(r#"x23"#, "⠠⠭⠡⠆⠼⠉"); +} + +#[test] +fn script_grouping_subsup_numeric() -> Result<()> { + return test_russian_braille(r#"x12"#, "⠠⠭⠡⠼⠁⠌⠼⠃⠱"); +} + +#[test] +fn script_grouping_subsup_i_n() -> Result<()> { + return test_russian_braille(r#"xin"#, "⠠⠭⠡⠊⠌⠝⠱"); +} + +#[test] +fn script_grouping_subsup_grouped_sub() -> Result<()> { + return test_russian_braille(r#"xi+12"#, "⠠⠭⠡⠐⠊⠀⠖⠼⠁⠌⠼⠃⠱"); +} + +#[test] +fn script_grouping_subsup_grouped_sup() -> Result<()> { + return test_russian_braille(r#"x0n-1"#, "⠠⠭⠡⠼⠚⠌⠠⠝⠀⠤⠼⠁⠱"); +} + +#[test] +fn script_grouping_subsup_nested_sup() -> Result<()> { + return test_russian_braille(r#"x0n2"#, "⠠⠭⠡⠼⠚⠌⠠⠝⠌⠆⠱"); +} + +#[test] +fn script_grouping_negative_base_sup() -> Result<()> { + return test_russian_braille(r#"-x2"#, "⠤⠠⠭⠌⠆"); +} + +#[test] +fn script_grouping_paren_base_sup() -> Result<()> { + return test_russian_braille(r#"(x+1)2"#, "⠣⠠⠭⠀⠖⠼⠁⠜⠌⠆"); +} + +#[test] +fn script_grouping_frac_base_sup() -> Result<()> { + return test_russian_braille(r#"1x2"#, "⠼⠁⠳⠠⠭⠌⠆"); +} + +#[test] +fn script_grouping_root_base_sup() -> Result<()> { + return test_russian_braille(r#"x2"#, "⠩⠱⠠⠭⠹⠌⠆"); +} + +#[test] +fn script_grouping_sup_on_function() -> Result<()> { + return test_russian_braille(r#"sin2x"#, "⠫⠎⠌⠆⠠⠭"); +} + +#[test] +fn script_grouping_log_sub_sup() -> Result<()> { + return test_russian_braille(r#"log23x"#, "⠫⠇⠡⠼⠃⠌⠼⠉⠱⠠⠭"); +} + +#[test] +fn script_grouping_root_index_group() -> Result<()> { + return test_russian_braille(r#"xn+1"#, "⠩⠠⠝⠀⠖⠼⠁⠱⠠⠭⠹"); +} + +#[test] +fn script_grouping_root_index_sub() -> Result<()> { + return test_russian_braille(r#"xn2"#, "⠩⠠⠝⠡⠆⠱⠭⠹"); +} + +#[test] +fn script_grouping_frac_num_group() -> Result<()> { + return test_russian_braille(r#"x+1y"#, "⠆⠠⠭⠀⠖⠼⠁⠀⠳⠠⠽⠰"); +} + +#[test] +fn script_grouping_frac_den_group() -> Result<()> { + return test_russian_braille(r#"xy+1"#, "⠆⠠⠭⠀⠳⠽⠀⠖⠼⠁⠰"); +} + +#[test] +fn script_grouping_nested_frac() -> Result<()> { + return test_russian_braille(r#"1x1y"#, "⠆⠆⠼⠁⠀⠳⠠⠭⠰⠀⠳⠆⠼⠁⠀⠳⠠⠽⠰⠰"); +} + +#[test] +fn script_grouping_sup_after_fraction() -> Result<()> { + return test_russian_braille(r#"x+1y-12"#, "⠆⠠⠭⠀⠖⠼⠁⠀⠳⠠⠽⠀⠤⠼⠁⠰⠌⠆"); +} + +#[test] +fn script_grouping_sub_after_fraction() -> Result<()> { + return test_russian_braille(r#"x+1y-1i"#, "⠆⠠⠭⠀⠖⠼⠁⠀⠳⠠⠽⠀⠤⠼⠁⠰⠡⠠⠊⠱"); +} + +#[test] +fn script_grouping_tensor_like() -> Result<()> { + return test_russian_braille(r#"Tijxjk"#, "⠨⠞⠡⠠⠊⠌⠚⠱⠭⠡⠚⠌⠅⠱"); +} + +#[test] +fn script_grouping_mmultiscripts_left_sub() -> Result<()> { + return test_russian_braille(r#"Fk"#, "⠡⠠⠅⠱⠨⠋"); +} + +#[test] +fn script_grouping_mmultiscripts_left_sup() -> Result<()> { + return test_russian_braille(r#"W4"#, "⠌⠲⠨⠺"); +} + +#[test] +fn script_grouping_mmultiscripts_both_sides() -> Result<()> { + return test_russian_braille(r#"Tijrs"#, "⠡⠠⠗⠱⠌⠎⠱⠨⠞⠡⠠⠊⠱⠌⠚⠱"); +} + +#[test] +fn script_grouping_pre_negative_power() -> Result<()> { + return test_russian_braille(r#"2x-1"#, "⠼⠃⠠⠭⠌⠤⠂"); +} + +#[test] +fn script_grouping_power_of_power_follow() -> Result<()> { + return test_russian_braille(r#"x23y"#, "⠠⠭⠌⠆⠌⠒⠽"); +} + +#[test] +fn script_grouping_subscripted_power_follow() -> Result<()> { + return test_russian_braille(r#"x23y"#, "⠠⠭⠡⠆⠌⠒⠽"); +} + +#[test] +fn script_grouping_power_subscript_follow() -> Result<()> { + return test_russian_braille(r#"x23y"#, "⠠⠭⠌⠆⠡⠒⠽"); +} + +#[test] +fn script_grouping_regressions() -> Result<()> { + let cases = vec![ + ("sup_x", r#"ax"#), + ("sup_zero", r#"x0"#), + ("sup_ten", r#"x10"#), + ("sup_minus_x", r#"a-x"#), + ("sup_minus_2", r#"a-2"#), + ("sup_x_plus_1", r#"ax+1"#), + ("sup_sub_x2", r#"ax2"#), + ("sup_nested", r#"ax2"#), + ("sup_frac", r#"a12"#), + ("sup_sqrt", r#"ax"#), + ("sup_follow_letter", r#"x2y"#), + ("sup_follow_number", r#"x23"#), + ("sub_x", r#"ax"#), + ("sub_zero", r#"x0"#), + ("sub_ten", r#"x10"#), + ("sub_minus_x", r#"a-x"#), + ("sub_minus_2", r#"a-2"#), + ("sub_x_plus_1", r#"ax+1"#), + ("sub_nested", r#"ax2"#), + ("sub_follow_letter", r#"x2y"#), + ("sub_follow_number", r#"x23"#), + ("subsup_numeric", r#"x12"#), + ("subsup_i_n", r#"xin"#), + ("subsup_grouped_sub", r#"xi+12"#), + ("subsup_grouped_sup", r#"x0n-1"#), + ("subsup_nested_sup", r#"x0n2"#), + ("negative_base_sup", r#"-x2"#), + ("paren_base_sup", r#"(x+1)2"#), + ("frac_base_sup", r#"1x2"#), + ("root_base_sup", r#"x2"#), + ("sup_on_function", r#"sin2x"#), + ("log_sub_sup", r#"log23x"#), + ("root_index_group", r#"xn+1"#), + ("root_index_sub", r#"xn2"#), + ("frac_num_group", r#"x+1y"#), + ("frac_den_group", r#"xy+1"#), + ("nested_frac", r#"1x1y"#), + ("sup_after_fraction", r#"x+1y-12"#), + ("sub_after_fraction", r#"x+1y-1i"#), + ("tensor_like", r#"Tijxjk"#), + ("pre_negative_power", r#"2x-1"#), + ("power_of_power_follow", r#"x23y"#), + ("subscripted_power_follow", r#"x23y"#), + ("power_subscript_follow", r#"x23y"#), + ]; + + let expected = std::collections::HashMap::from([ + ("sup_x", "⠠⠁⠌⠭⠱"), + ("sup_zero", "⠠⠭⠌⠴"), + ("sup_ten", "⠠⠭⠌⠂⠴"), + ("sup_minus_x", "⠠⠁⠌⠀⠤⠭⠱"), + ("sup_minus_2", "⠠⠁⠌⠤⠆"), + ("sup_x_plus_1", "⠠⠁⠌⠭⠀⠖⠼⠁⠱"), + ("sup_sub_x2", "⠠⠁⠌⠭⠡⠆⠱"), + ("sup_nested", "⠠⠁⠌⠭⠌⠆⠱"), + ("sup_frac", "⠠⠁⠌⠼⠁⠆⠱"), + ("sup_sqrt", "⠠⠁⠌⠩⠱⠭⠹⠱"), + ("sup_follow_letter", "⠠⠭⠌⠆⠽"), + ("sup_follow_number", "⠠⠭⠌⠆⠼⠉"), + ("sub_x", "⠠⠁⠡⠭⠱"), + ("sub_zero", "⠠⠭⠡⠴"), + ("sub_ten", "⠠⠭⠡⠂⠴"), + ("sub_minus_x", "⠠⠁⠡⠀⠤⠭⠱"), + ("sub_minus_2", "⠠⠁⠡⠤⠆"), + ("sub_x_plus_1", "⠠⠁⠡⠐⠭⠀⠖⠼⠁⠱"), + ("sub_nested", "⠠⠁⠡⠭⠡⠆⠱"), + ("sub_follow_letter", "⠠⠭⠡⠆⠽"), + ("sub_follow_number", "⠠⠭⠡⠆⠼⠉"), + ("subsup_numeric", "⠠⠭⠡⠼⠁⠌⠼⠃⠱"), + ("subsup_i_n", "⠠⠭⠡⠊⠌⠝⠱"), + ("subsup_grouped_sub", "⠠⠭⠡⠐⠊⠀⠖⠼⠁⠌⠼⠃⠱"), + ("subsup_grouped_sup", "⠠⠭⠡⠼⠚⠌⠠⠝⠀⠤⠼⠁⠱"), + ("subsup_nested_sup", "⠠⠭⠡⠼⠚⠌⠠⠝⠌⠆⠱"), + ("negative_base_sup", "⠤⠠⠭⠌⠆"), + ("paren_base_sup", "⠣⠠⠭⠀⠖⠼⠁⠜⠌⠆"), + ("frac_base_sup", "⠼⠁⠳⠠⠭⠌⠆"), + ("root_base_sup", "⠩⠱⠠⠭⠹⠌⠆"), + ("sup_on_function", "⠫⠎⠌⠆⠠⠭"), + ("log_sub_sup", "⠫⠇⠡⠼⠃⠌⠼⠉⠱⠠⠭"), + ("root_index_group", "⠩⠠⠝⠀⠖⠼⠁⠱⠠⠭⠹"), + ("root_index_sub", "⠩⠠⠝⠡⠆⠱⠭⠹"), + ("frac_num_group", "⠆⠠⠭⠀⠖⠼⠁⠀⠳⠠⠽⠰"), + ("frac_den_group", "⠆⠠⠭⠀⠳⠽⠀⠖⠼⠁⠰"), + ("nested_frac", "⠆⠆⠼⠁⠀⠳⠠⠭⠰⠀⠳⠆⠼⠁⠀⠳⠠⠽⠰⠰"), + ("sup_after_fraction", "⠆⠠⠭⠀⠖⠼⠁⠀⠳⠠⠽⠀⠤⠼⠁⠰⠌⠆"), + ("sub_after_fraction", "⠆⠠⠭⠀⠖⠼⠁⠀⠳⠠⠽⠀⠤⠼⠁⠰⠡⠠⠊⠱"), + ("tensor_like", "⠨⠞⠡⠠⠊⠌⠚⠱⠭⠡⠚⠌⠅⠱"), + ("pre_negative_power", "⠼⠃⠠⠭⠌⠤⠂"), + ("power_of_power_follow", "⠠⠭⠌⠆⠌⠒⠽"), + ("subscripted_power_follow", "⠠⠭⠡⠆⠌⠒⠽"), + ("power_subscript_follow", "⠠⠭⠌⠆⠡⠒⠽"), + ]); + + for (label, expr) in cases { + test_braille("Russian", expr, expected[label])?; + } + return Ok(()); +} + +#[test] +fn numbers_and_operators() -> Result<()> { + return test_russian_braille(r#"5+12=17"#, "⠼⠑⠀⠖⠼⠁⠃⠀⠶⠼⠁⠛"); +} + +#[test] +fn source_general_math_text_rules_01() -> Result<()> { + return test_russian_braille(r#"5,§2"#, "⠝⠼⠑⠠⠂⠬⠼⠃"); +} + +#[test] +fn source_general_math_text_rules_02() -> Result<()> { + return test_russian_braille(r#"1+23++10=55."#, "⠼⠁⠀⠖⠼⠃⠐⠼⠉⠀⠖⠠⠄⠀⠖⠼⠁⠚⠠⠀⠶⠼⠑⠑⠠⠲"); +} + +#[test] +fn source_general_math_text_rules_03() -> Result<()> { + return test_russian_braille(r#"xy2"#, "⠠⠭⠐⠽⠳⠆"); +} + +#[test] +fn source_general_math_text_rules_04() -> Result<()> { + return test_russian_braille(r#"1+23+4"#, "⠼⠁⠀⠖⠼⠃⠐⠼⠉⠀⠖⠼⠙"); +} + +#[test] +fn source_general_math_text_rules_05() -> Result<()> { + return test_russian_braille(r#"1+23+4"#, "⠼⠁⠀⠖⠼⠃⠠⠼⠉⠀⠖⠼⠙"); +} + +#[test] +fn percent_and_special_marks_01() -> Result<()> { + return test_russian_braille(r#"25%"#, "⠼⠃⠑⠼⠴"); +} + +#[test] +fn percent_and_special_marks_02() -> Result<()> { + return test_russian_braille(r#"12"#, "⠼⠁⠃⠼⠴⠴"); +} + +#[test] +fn percent_and_special_marks_03() -> Result<()> { + return test_russian_braille(r#"0,56"#, "⠼⠚⠂⠑⠋"); +} + +#[test] +fn labeled_table_rows() -> Result<()> { + return test_russian_braille(r#"(1)x=0"#, "⠍⠑⠞⠅⠁⠀⠎⠞⠗⠕⠅⠊⠀⠲⠣⠼⠁⠜⠀⠠⠭⠀⠶⠀⠼⠚"); +} + +#[test] +fn fraction() -> Result<()> { + return test_russian_braille(r#"x2"#, "⠠⠭⠳⠆"); +} + +#[test] +fn scripts_and_root() -> Result<()> { + return test_russian_braille(r#"x2+y"#, "⠠⠭⠌⠆⠀⠖⠩⠱⠽⠹"); +} + +#[test] +fn cyrillic_text() -> Result<()> { + return test_russian_braille(r#"угол"#, "⠥⠛⠕⠇"); +} + +#[test] +fn wikipedia_linear_parens_flat() -> Result<()> { + return test_russian_braille(r#"3(9-7)=6"#, "⠼⠉⠄⠣⠼⠊⠀⠤⠼⠛⠜⠀⠶⠼⠋"); +} + +#[test] +fn source_arithmetic_examples_01() -> Result<()> { + return test_russian_braille(r#"2481=1944"#, "⠼⠃⠙⠄⠼⠓⠁⠀⠶⠼⠁⠊⠙⠙"); +} + +#[test] +fn source_arithmetic_examples_02() -> Result<()> { + return test_russian_braille(r#"783:9=87"#, "⠼⠛⠓⠉⠀⠲⠼⠊⠀⠶⠼⠓⠛"); +} + +#[test] +fn source_arithmetic_examples_03() -> Result<()> { + return test_russian_braille(r#"12×35=420"#, "⠼⠁⠃⠀⠦⠼⠉⠑⠀⠶⠼⠙⠃⠚"); +} + +#[test] +fn source_arithmetic_examples_04() -> Result<()> { + return test_russian_braille(r#"7456+5623=13079"#, "⠼⠛⠙⠑⠋⠨⠳⠖⠑⠋⠃⠉⠨⠳⠶⠁⠉⠚⠛⠊"); +} + +#[test] +fn source_arithmetic_examples_05() -> Result<()> { + return test_russian_braille(r#"78650-1952=76698"#, "⠼⠛⠓⠋⠑⠚⠨⠳⠤⠁⠊⠑⠃⠨⠳⠶⠛⠋⠋⠊⠓"); +} + +#[test] +fn source_arithmetic_examples_06() -> Result<()> { + return test_russian_braille(r#"327×54826161308=179196"#, "⠼⠉⠃⠛⠨⠳⠦⠑⠙⠓⠨⠳⠃⠋⠁⠋⠨⠳⠁⠉⠚⠓⠨⠳⠶⠁⠛⠊⠁⠊⠋"); +} + +#[test] +fn source_arithmetic_examples_07() -> Result<()> { + return test_russian_braille(r#"2982÷14=21328181442420"#, "⠼⠃⠊⠓⠃⠀⠴⠀⠼⠁⠙⠀⠶⠀⠼⠃⠁⠉⠨⠳⠃⠓⠨⠳⠁⠓⠨⠳⠁⠙⠨⠳⠙⠃⠨⠳⠙⠃⠨⠳⠚"); +} + +#[test] +fn wikipedia_linear_parens() -> Result<()> { + let expr = r#"3(9-7)=6"#; + test_braille("Russian", expr, "⠼⠉⠄⠣⠼⠊⠀⠤⠼⠛⠜⠀⠶⠼⠋")?; + return Ok(()); +} + +#[test] +fn source_arithmetic_examples() -> Result<()> { + let expr = r#"2481=1944"#; + test_braille("Russian", expr, "⠼⠃⠙⠄⠼⠓⠁⠀⠶⠼⠁⠊⠙⠙")?; + + let expr = r#"783:9=87"#; + test_braille("Russian", expr, "⠼⠛⠓⠉⠀⠲⠼⠊⠀⠶⠼⠓⠛")?; + + let expr = r#"12×35=420"#; + test_braille("Russian", expr, "⠼⠁⠃⠀⠦⠼⠉⠑⠀⠶⠼⠙⠃⠚")?; + return Ok(()); +} + +#[test] +fn nested_fraction_and_root() -> Result<()> { + return test_russian_braille(r#"x+1yx-y"#, "⠆⠠⠭⠀⠖⠩⠱⠼⠁⠳⠠⠽⠹⠀⠳⠭⠀⠤⠽⠰"); +} + +#[test] +fn source_simple_fractions_scripts_roots_01() -> Result<()> { + return test_russian_braille(r#"12"#, "⠼⠁⠆"); +} + +#[test] +fn source_simple_fractions_scripts_roots_02() -> Result<()> { + return test_russian_braille(r#"a3"#, "⠠⠁⠳⠒"); +} + +#[test] +fn source_simple_fractions_scripts_roots_03() -> Result<()> { + return test_russian_braille(r#"b7"#, "⠠⠃⠡⠶"); +} + +#[test] +fn source_simple_fractions_scripts_roots_04() -> Result<()> { + return test_russian_braille(r#"x3"#, "⠩⠒⠱⠠⠭⠹"); +} + +#[test] +fn source_thin_fraction_rules_01() -> Result<()> { + return test_russian_braille(r#"a3,2"#, "⠠⠁⠳⠼⠉⠂⠃"); +} + +#[test] +fn source_thin_fraction_rules_02() -> Result<()> { + return test_russian_braille(r#"a-3"#, "⠠⠁⠳⠤⠒"); +} + +#[test] +fn source_thin_fraction_rules_03() -> Result<()> { + return test_russian_braille(r#"3x+yz"#, "⠼⠉⠄⠆⠠⠭⠀⠖⠽⠀⠳⠵⠰"); +} + +#[test] +fn source_thin_fraction_rules_04() -> Result<()> { + return test_russian_braille(r#"xyz"#, "⠠⠭⠳⠽⠄⠵"); +} + +#[test] +fn source_thin_fraction_rules_05() -> Result<()> { + return test_russian_braille(r#"xa+ba-b"#, "⠠⠭⠌⠐⠆⠁⠀⠖⠃⠀⠳⠁⠀⠤⠃⠰⠱"); +} + +#[test] +fn source_index_rules_01() -> Result<()> { + return test_russian_braille(r#"D1,3"#, "⠨⠙⠡⠼⠁⠠⠂⠼⠉⠱"); +} + +#[test] +fn source_index_rules_02() -> Result<()> { + return test_russian_braille(r#"Ps,1"#, "⠨⠏⠡⠠⠎⠠⠂⠼⠁⠱"); +} + +#[test] +fn source_index_rules_03() -> Result<()> { + return test_russian_braille(r#"a2kn+1"#, "⠠⠁⠡⠼⠃⠠⠅⠱⠌⠝⠀⠖⠼⠁⠱"); +} + +#[test] +fn source_index_rules_04() -> Result<()> { + return test_russian_braille(r#"Z+"#, "⠨⠵⠡⠐⠀⠖⠻⠱"); +} + +#[test] +fn source_index_rules_05() -> Result<()> { + return test_russian_braille(r#"a-n+12"#, "⠠⠁⠡⠐⠀⠤⠆⠝⠀⠖⠼⠁⠀⠳⠼⠃⠰⠱"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_01() -> Result<()> { + return test_russian_braille(r#"0,56"#, "⠼⠚⠂⠑⠋"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_02() -> Result<()> { + return test_russian_braille(r#"2/3"#, "⠼⠃⠠⠌⠼⠉"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_03() -> Result<()> { + return test_russian_braille(r#"a/b"#, "⠠⠁⠠⠌⠃"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_04() -> Result<()> { + return test_russian_braille(r#"км/ч"#, "⠅⠍⠠⠌⠟"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_05() -> Result<()> { + return test_russian_braille(r#"25кг"#, "⠼⠃⠑⠅⠛"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_06() -> Result<()> { + return test_russian_braille(r#"5м30см"#, "⠼⠑⠍⠀⠼⠉⠚⠎⠍"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_07() -> Result<()> { + return test_russian_braille(r#"12м2"#, "⠼⠁⠃⠍⠌⠆"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_08() -> Result<()> { + return test_russian_braille(r#"9,8м/с2"#, "⠼⠊⠂⠓⠍⠠⠌⠎⠌⠆"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_09() -> Result<()> { + return test_russian_braille(r#"15Нм"#, "⠼⠁⠑⠨⠝⠄⠍"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_10() -> Result<()> { + return test_russian_braille(r#"12?4"#, "⠼⠁⠃⠬⠙"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_11() -> Result<()> { + return test_russian_braille(r#"[1,4]\{4}=[1,4)"#, "⠷⠼⠁⠠⠂⠼⠙⠾⠀⠰⠤⠪⠼⠙⠕⠀⠶⠷⠼⠁⠠⠂⠼⠙⠜"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_12() -> Result<()> { + return test_russian_braille(r#"5|x"#, "⠼⠑⠸⠠⠭"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_13() -> Result<()> { + return test_russian_braille(r#"xA"#, "⠠⠭⠀⠐⠪⠀⠨⠁"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_14() -> Result<()> { + return test_russian_braille(r#"xA"#, "⠠⠭⠘⠪⠨⠁"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_15() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠨⠁⠘⠪⠃"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_16() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠨⠁⠀⠯⠀⠃"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_17() -> Result<()> { + return test_russian_braille(r#"DE"#, "⠨⠙⠈⠯⠑"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_18() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠨⠁⠈⠯⠃"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_19() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠨⠁⠀⠰⠲⠃"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_20() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠨⠁⠀⠰⠴⠃"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_21() -> Result<()> { + return test_russian_braille(r#"AB\CD"#, "⠨⠁⠀⠰⠴⠃⠀⠰⠤⠉⠀⠰⠲⠙"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_22() -> Result<()> { + return test_russian_braille(r#"(3,5][7,)="#, "⠣⠼⠉⠠⠂⠼⠑⠾⠀⠰⠲⠷⠼⠛⠠⠂⠻⠜⠀⠶⠈⠴"); +} + +#[test] +fn source_gost_numbers_fractions_and_sets_23() -> Result<()> { + return test_russian_braille(r#"36,6"#, "⠼⠉⠋⠂⠋⠨⠴⠨⠉"); +} + +#[test] +fn source_mixed_numbers_and_periodic_decimals_01() -> Result<()> { + return test_russian_braille(r#"0,4(71)"#, "⠼⠚⠂⠙⠣⠛⠁⠜"); +} + +#[test] +fn source_mixed_numbers_and_periodic_decimals_02() -> Result<()> { + return test_russian_braille(r#"1,(523)"#, "⠼⠁⠂⠣⠑⠃⠉⠜"); +} + +#[test] +fn source_mixed_numbers_and_periodic_decimals_03() -> Result<()> { + return test_russian_braille(r#"0,4(71)"#, "⠼⠚⠂⠙⠣⠛⠁⠜"); +} + +#[test] +fn source_mixed_numbers_and_periodic_decimals_04() -> Result<()> { + return test_russian_braille(r#"538"#, "⠼⠑⠼⠉⠦"); +} + +#[test] +fn source_mixed_numbers_and_periodic_decimals_05() -> Result<()> { + return test_russian_braille(r#"224+4-1524"#, "⠼⠃⠐⠆⠼⠃⠙⠀⠖⠼⠙⠀⠤⠼⠁⠑⠀⠳⠼⠃⠙⠰"); +} + +#[test] +fn latin_alphabet_indicators_01() -> Result<()> { + return test_russian_braille(r#"x+A+y+B=x+y+A+B"#, "⠠⠭⠀⠖⠨⠁⠀⠖⠠⠽⠀⠖⠨⠃⠀⠶⠠⠭⠀⠖⠽⠀⠖⠨⠁⠀⠖⠃"); +} + +#[test] +fn latin_alphabet_indicators_02() -> Result<()> { + return test_russian_braille(r#"MCDLXIV"#, "⠨⠍⠉⠙⠇⠭⠊⠧"); +} + +#[test] +fn alphabet_indicators_after_numbers_and_greek_01() -> Result<()> { + return test_russian_braille(r#"2x+15=23"#, "⠼⠃⠄⠠⠭⠀⠖⠼⠁⠑⠀⠶⠼⠃⠉"); +} + +#[test] +fn alphabet_indicators_after_numbers_and_greek_02() -> Result<()> { + return test_russian_braille(r#"L=2πr"#, "⠨⠇⠀⠶⠼⠃⠰⠏⠠⠗"); +} + +#[test] +fn alphabet_indicators_after_numbers_and_greek_03() -> Result<()> { + return test_russian_braille(r#"α+β=Α+Β"#, "⠰⠁⠀⠖⠃⠀⠶⠸⠁⠀⠖⠃"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators_01() -> Result<()> { + return test_russian_braille(r#"x"#, "⠻⠠⠭⠻"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators_02() -> Result<()> { + return test_russian_braille(r#"y"#, "⠸⠠⠽⠸"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators_03() -> Result<()> { + return test_russian_braille(r#"z"#, "⠻⠸⠠⠵⠸⠻"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators_04() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠻⠨⠁⠃⠻"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators_05() -> Result<()> { + return test_russian_braille(r#"x+y"#, "⠻⠠⠭⠻⠀⠖⠽"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators_06() -> Result<()> { + return test_russian_braille(r#"𝐱"#, "⠻⠠⠭⠻"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators_07() -> Result<()> { + return test_russian_braille(r#"𝑥"#, "⠸⠠⠭⠸"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators_08() -> Result<()> { + return test_russian_braille(r#"x"#, "⠻⠠⠭⠻"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators_09() -> Result<()> { + return test_russian_braille(r#"xy"#, "⠻⠠⠭⠽⠻"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators_10() -> Result<()> { + return test_russian_braille(r#"y"#, "⠸⠠⠽⠸"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_01() -> Result<()> { + return test_russian_braille(r#"xy"#, "⠻⠠⠭⠽⠻"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_02() -> Result<()> { + return test_russian_braille(r#"ab"#, "⠸⠠⠁⠸⠸⠃⠸"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_03() -> Result<()> { + return test_russian_braille(r#"xy"#, "⠻⠸⠠⠭⠽⠸⠻"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_04() -> Result<()> { + return test_russian_braille(r#"x"#, "⠸⠠⠭⠸"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_06() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠨⠁⠀⠃"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_07() -> Result<()> { + return test_russian_braille(r#"xприy"#, "⠠⠭⠏⠗⠊⠽"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_08() -> Result<()> { + return test_russian_braille(r#"x+1"#, "⠔⠠⠭⠀⠖⠼⠁⠔"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_09() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠔⠨⠁⠃⠔"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_10() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠌⠨⠁⠃⠌"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_11() -> Result<()> { + return test_russian_braille(r#"x+1"#, "⠧⠠⠭⠀⠖⠼⠁⠼"); +} + +#[test] +fn source_gost_58511_typeform_layout_indicators_12() -> Result<()> { + return test_russian_braille(r#"xy"#, "⠔⠻⠠⠭⠽⠔⠻"); +} + +#[test] +fn wikipedia_times_divide_typeform_section() -> Result<()> { + return test_russian_braille(r#"6×7:14=3"#, "⠼⠋⠀⠦⠼⠛⠀⠲⠼⠁⠙⠀⠶⠼⠉"); +} + +#[test] +fn wikipedia_linear_parens_typeform_section() -> Result<()> { + return test_russian_braille(r#"3·(97)=6"#, "⠼⠉⠄⠣⠼⠊⠀⠤⠼⠛⠜⠀⠶⠼⠋"); +} + +#[test] +fn wikipedia_sqrt_01() -> Result<()> { + return test_russian_braille(r#"10000<101"#, "⠩⠱⠼⠁⠚⠚⠚⠚⠹⠀⠪⠀⠼⠁⠚⠁"); +} + +#[test] +fn wikipedia_sqrt_02() -> Result<()> { + return test_russian_braille(r#"ab"#, "⠩⠱⠠⠁⠹⠄⠃"); +} + +#[test] +fn source_functions_logs_derivatives_01() -> Result<()> { + return test_russian_braille(r#"cosα"#, "⠫⠉⠰⠁"); +} + +#[test] +fn source_functions_logs_derivatives_02() -> Result<()> { + return test_russian_braille(r#"tgxctgx=1"#, "⠫⠞⠠⠭⠄⠫⠉⠞⠠⠭⠀⠶⠼⠁"); +} + +#[test] +fn source_functions_logs_derivatives_03() -> Result<()> { + return test_russian_braille(r#"sin2x"#, "⠫⠎⠌⠆⠠⠭"); +} + +#[test] +fn source_functions_logs_derivatives_04() -> Result<()> { + return test_russian_braille(r#"tg3α+β2"#, "⠫⠞⠌⠒⠐⠆⠰⠁⠀⠖⠃⠀⠳⠼⠃⠰"); +} + +#[test] +fn source_functions_logs_derivatives_05() -> Result<()> { + return test_russian_braille(r#"(ctgβ)2m-n+3"#, "⠣⠫⠉⠞⠰⠃⠜⠌⠼⠃⠠⠍⠀⠤⠝⠀⠖⠼⠉⠱"); +} + +#[test] +fn source_functions_logs_derivatives_06() -> Result<()> { + return test_russian_braille(r#"arcsin2x"#, "⠫⠁⠎⠌⠆⠠⠭"); +} + +#[test] +fn source_functions_logs_derivatives_07() -> Result<()> { + return test_russian_braille(r#"arccosn+1x"#, "⠫⠁⠉⠌⠠⠝⠀⠖⠼⠁⠱⠠⠭"); +} + +#[test] +fn source_functions_logs_derivatives_08() -> Result<()> { + return test_russian_braille(r#"arctg3x+y2"#, "⠫⠁⠞⠌⠒⠐⠆⠠⠭⠀⠖⠽⠀⠳⠼⠃⠰"); +} + +#[test] +fn source_functions_logs_derivatives_09() -> Result<()> { + return test_russian_braille(r#"tanx+cotx"#, "⠫⠞⠠⠭⠀⠖⠫⠉⠞⠠⠭"); +} + +#[test] +fn source_functions_logs_derivatives_10() -> Result<()> { + return test_russian_braille(r#"logxylogyx=1"#, "⠫⠇⠡⠠⠭⠱⠽⠄⠫⠇⠡⠠⠽⠱⠭⠀⠶⠼⠁"); +} + +#[test] +fn source_functions_logs_derivatives_11() -> Result<()> { + return test_russian_braille(r#"shx+chx=sinhx+coshx"#, "⠫⠎⠓⠠⠭⠀⠖⠫⠉⠓⠠⠭⠀⠶⠫⠎⠓⠠⠭⠀⠖⠫⠉⠓⠠⠭"); +} + +#[test] +fn source_functions_logs_derivatives_12() -> Result<()> { + return test_russian_braille(r#"thxcthx=1"#, "⠫⠞⠓⠠⠭⠄⠫⠉⠞⠓⠠⠭⠀⠶⠼⠁"); +} + +#[test] +fn source_functions_logs_derivatives_13() -> Result<()> { + return test_russian_braille(r#"argz=0,sgnx"#, "⠫⠁⠗⠛⠠⠵⠀⠶⠼⠚⠠⠂⠫⠎⠛⠝⠠⠭"); +} + +#[test] +fn source_functions_logs_derivatives_14() -> Result<()> { + return test_russian_braille(r#"detA+rankA=rgA"#, "⠫⠙⠑⠞⠨⠁⠀⠖⠫⠗⠁⠝⠅⠨⠁⠀⠶⠫⠗⠛⠨⠁"); +} + +#[test] +fn source_functions_logs_derivatives_15() -> Result<()> { + return test_russian_braille(r#"Rez+Imz"#, "⠫⠗⠑⠠⠵⠀⠖⠫⠊⠍⠠⠵"); +} + +#[test] +fn source_functions_logs_derivatives_16() -> Result<()> { + return test_russian_braille(r#"gradφ+rotF+divF"#, "⠫⠛⠗⠁⠙⠰⠋⠀⠖⠫⠗⠕⠞⠨⠋⠀⠖⠫⠙⠊⠧⠨⠋"); +} + +#[test] +fn source_functions_logs_derivatives_17() -> Result<()> { + return test_russian_braille(r#"gcd(a,b)=lcm(c,d)"#, "⠫⠛⠉⠙⠣⠠⠁⠠⠂⠃⠜⠀⠶⠫⠇⠉⠍⠣⠠⠉⠠⠂⠙⠜"); +} + +#[test] +fn source_functions_logs_derivatives_18() -> Result<()> { + return test_russian_braille(r#"y(x)=f(x)"#, "⠠⠽⠔⠣⠭⠜⠀⠶⠋⠣⠭⠜"); +} + +#[test] +fn source_functions_logs_derivatives_19() -> Result<()> { + return test_russian_braille(r#"y(x)=limxx0y(x)-y(x0)x-x0"#, "⠠⠽⠔⠣⠭⠜⠀⠶⠫⠇⠍⠨⠡⠠⠭⠀⠒⠕⠭⠡⠴⠱⠆⠽⠣⠭⠜⠀⠤⠽⠣⠭⠡⠴⠜⠀⠳⠭⠀⠤⠭⠡⠴⠰"); +} + +#[test] +fn source_functions_logs_derivatives_20() -> Result<()> { + return test_russian_braille(r#"xnaприn+"#, "⠠⠭⠡⠝⠱⠀⠒⠕⠁⠀⠏⠗⠊⠀⠝⠀⠒⠕⠀⠖⠻"); +} + +#[test] +fn source_large_operator_limits_01() -> Result<()> { + return test_russian_braille(r#"14x2dx"#, "⠮⠡⠂⠌⠲⠠⠭⠌⠆⠙⠭"); +} + +#[test] +fn source_large_operator_limits_02() -> Result<()> { + return test_russian_braille(r#"i=1nai"#, "⠸⠎⠨⠡⠠⠊⠀⠶⠼⠁⠱⠨⠌⠠⠝⠱⠁⠡⠊⠱"); +} + +#[test] +fn source_large_operator_limits_03() -> Result<()> { + return test_russian_braille(r#"0nbk"#, "⠸⠏⠡⠴⠌⠠⠝⠱⠃⠡⠅⠱"); +} + +#[test] +fn source_geometry_matrix_chemistry_01() -> Result<()> { + return test_russian_braille(r#"ABC=15°3012"#, "⠸⠪⠨⠁⠃⠉⠀⠶⠼⠁⠑⠨⠴⠼⠉⠚⠨⠔⠼⠁⠃⠨⠔⠔"); +} + +#[test] +fn source_geometry_matrix_chemistry_02() -> Result<()> { + return test_russian_braille(r#"ABC"#, "⠸⠪⠨⠁⠔⠃⠔⠉⠔"); +} + +#[test] +fn source_geometry_matrix_chemistry_03() -> Result<()> { + return test_russian_braille(r#"A1B1C1"#, "⠸⠙⠨⠁⠡⠂⠃⠡⠂⠉⠡⠂"); +} + +#[test] +fn source_geometry_matrix_chemistry_04() -> Result<()> { + return test_russian_braille(r#"2ABC"#, "⠼⠃⠄⠸⠪⠨⠁⠃⠉"); +} + +#[test] +fn source_geometry_matrix_chemistry_05() -> Result<()> { + return test_russian_braille(r#"3ABC"#, "⠼⠉⠄⠸⠙⠨⠁⠃⠉"); +} + +#[test] +fn source_geometry_matrix_chemistry_06() -> Result<()> { + return test_russian_braille(r#"4EF"#, "⠼⠙⠄⠸⠜⠨⠑⠋"); +} + +#[test] +fn source_geometry_matrix_chemistry_07() -> Result<()> { + return test_russian_braille(r#"KLMPQR"#, "⠸⠙⠨⠅⠇⠍⠀⠢⠸⠙⠨⠏⠟⠗"); +} + +#[test] +fn source_geometry_matrix_chemistry_08() -> Result<()> { + return test_russian_braille(r#"ABCD"#, "⠨⠁⠃⠸⠸⠨⠉⠙"); +} + +#[test] +fn source_geometry_matrix_chemistry_09() -> Result<()> { + return test_russian_braille(r#"ab"#, "⠠⠁⠼⠄⠃"); +} + +#[test] +fn source_geometry_matrix_chemistry_10() -> Result<()> { + return test_russian_braille(r#"ABCD"#, "⠨⠁⠃⠼⠄⠉⠙"); +} + +#[test] +fn source_geometry_matrix_chemistry_11() -> Result<()> { + return test_russian_braille(r#"a=2"#, "⠠⠁⠒⠂⠀⠶⠼⠃"); +} + +#[test] +fn source_geometry_matrix_chemistry_12() -> Result<()> { + return test_russian_braille(r#"AB+BC=AC"#, "⠨⠁⠃⠨⠒⠂⠀⠖⠃⠉⠨⠒⠂⠀⠶⠁⠉⠨⠒⠂"); +} + +#[test] +fn source_geometry_matrix_chemistry_13() -> Result<()> { + return test_russian_braille(r#"KL¯=4PQ¯"#, "⠨⠅⠇⠨⠒⠀⠶⠼⠙⠄⠨⠏⠟⠨⠒"); +} + +#[test] +fn source_geometry_matrix_chemistry_14() -> Result<()> { + return test_russian_braille(r#"ABCD"#, "⠨⠁⠃⠨⠒⠂⠸⠸⠨⠉⠙⠨⠒⠂"); +} + +#[test] +fn source_geometry_matrix_chemistry_15() -> Result<()> { + return test_russian_braille(r#"EF=KL"#, "⠸⠜⠨⠑⠋⠀⠶⠸⠜⠨⠅⠇"); +} + +#[test] +fn source_geometry_matrix_chemistry_16() -> Result<()> { + return test_russian_braille(r#"ABCD"#, "⠨⠁⠃⠨⠒⠂⠂⠸⠸⠨⠉⠙⠰⠨⠒⠂⠂"); +} + +#[test] +fn source_geometry_matrix_chemistry_17() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠨⠁⠃⠨⠒⠂"); +} + +#[test] +fn source_geometry_matrix_chemistry_18() -> Result<()> { + return test_russian_braille(r#"AB¯"#, "⠨⠁⠃⠨⠒"); +} + +#[test] +fn source_geometry_matrix_chemistry_19() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠨⠁⠃⠨⠒⠂⠂"); +} + +#[test] +fn source_geometry_matrix_chemistry_20() -> Result<()> { + return test_russian_braille(r#"AB=KL¯"#, "⠨⠁⠃⠰⠨⠒⠂⠀⠶⠅⠇⠰⠨⠒"); +} + +#[test] +fn source_geometry_matrix_chemistry_21() -> Result<()> { + return test_russian_braille(r#"(abcd)"#, "⠣⠠⠁⠀⠃⠨⠳⠉⠀⠙⠜"); +} + +#[test] +fn source_geometry_matrix_chemistry_22() -> Result<()> { + return test_russian_braille(r#"{x+y+z=1x+2y+3z=2x+3y+2z=5"#, "⠏⠀⠠⠭⠀⠖⠽⠀⠖⠵⠀⠶⠼⠁⠨⠳⠇⠀⠠⠭⠀⠖⠼⠃⠠⠽⠀⠖⠼⠉⠠⠵⠀⠶⠼⠃⠨⠳⠧⠀⠠⠭⠀⠖⠼⠉⠠⠽⠀⠖⠼⠃⠠⠵⠀⠶⠼⠑"); +} + +#[test] +fn source_geometry_matrix_chemistry_23() -> Result<()> { + return test_russian_braille(r#"1ваза-5цветов2ваза-3цветка3ваза-?цветов}"#, "⠼⠁⠺⠁⠵⠁⠀⠤⠼⠑⠉⠺⠑⠞⠕⠺⠀⠹⠨⠳⠼⠃⠺⠁⠵⠁⠀⠤⠼⠉⠉⠺⠑⠞⠅⠁⠀⠸⠨⠳⠼⠉⠺⠁⠵⠁⠀⠤⠠⠢⠉⠺⠑⠞⠕⠺⠀⠼"); +} + +#[test] +fn source_geometry_matrix_chemistry_24() -> Result<()> { + return test_russian_braille(r#"x+y=72x+3y=17"#, "⠠⠭⠀⠖⠽⠀⠶⠼⠛⠨⠳⠼⠃⠠⠭⠀⠖⠼⠉⠠⠽⠀⠶⠼⠁⠛"); +} + +#[test] +fn source_geometry_matrix_chemistry_25() -> Result<()> { + return test_russian_braille(r#"f(x)={0x<0xx0"#, "⠠⠋⠣⠭⠜⠀⠶⠏⠀⠼⠚⠀⠠⠭⠀⠪⠀⠼⠚⠨⠳⠧⠀⠠⠭⠀⠭⠀⠕⠶⠼⠚"); +} + +#[test] +fn source_geometry_matrix_chemistry_26() -> Result<()> { + return test_russian_braille(r#"|abcd|"#, "⠸⠠⠁⠀⠃⠨⠳⠉⠀⠙⠸"); +} + +#[test] +fn source_geometry_matrix_chemistry_26a_right_brace_table() -> Result<()> { + return test_russian_braille(r#"x=1y=2}"#, "⠠⠭⠀⠶⠼⠁⠀⠹⠨⠳⠠⠽⠀⠶⠼⠃⠀⠼"); +} + +#[test] +fn source_geometry_matrix_chemistry_26b_linear_menclose_frame() -> Result<()> { + return test_russian_braille(r#"a+b"#, "⠣⠠⠁⠀⠖⠃⠜"); +} + +#[test] +fn source_geometry_matrix_chemistry_27() -> Result<()> { + return test_russian_braille(r#"H2O"#, "⠨⠓⠡⠆⠕"); +} + +#[test] +fn source_geometry_matrix_chemistry_28() -> Result<()> { + return test_russian_braille(r#"H2C=CH2"#, "⠨⠓⠡⠆⠉⠦⠉⠓⠡⠆"); +} + +#[test] +fn source_label_marks_01() -> Result<()> { + return test_russian_braille(r#"x~"#, "⠠⠭⠢"); +} + +#[test] +fn source_label_marks_02() -> Result<()> { + return test_russian_braille(r#"7~"#, "⠼⠛⠢"); +} + +#[test] +fn source_label_marks_03() -> Result<()> { + return test_russian_braille(r#"x^"#, "⠠⠭⠲"); +} + +#[test] +fn source_label_marks_04() -> Result<()> { + return test_russian_braille(r#"xˇ"#, "⠠⠭⠰⠔"); +} + +#[test] +fn source_label_marks_05() -> Result<()> { + return test_russian_braille(r#"x"#, "⠠⠭⠘⠆"); +} + +#[test] +fn source_label_marks_06() -> Result<()> { + return test_russian_braille(r#"x?"#, "⠠⠭⠘⠠⠢"); +} + +#[test] +fn source_label_marks_07() -> Result<()> { + return test_russian_braille(r#"x"#, "⠠⠭⠘⠦⠶"); +} + +#[test] +fn source_label_marks_08() -> Result<()> { + return test_russian_braille(r#"x"#, "⠠⠭⠔"); +} + +#[test] +fn source_label_marks_09() -> Result<()> { + return test_russian_braille(r#"x"#, "⠠⠭⠨⠦⠶"); +} + +#[test] +fn source_label_marks_10() -> Result<()> { + return test_russian_braille(r#"x~"#, "⠠⠭⠰⠢"); +} + +#[test] +fn source_label_marks_11() -> Result<()> { + return test_russian_braille(r#"x"#, "⠠⠭⠆"); +} + +#[test] +fn source_label_marks_12() -> Result<()> { + return test_russian_braille(r#"x"#, "⠠⠭⠨⠴"); +} + +#[test] +fn source_label_marks_13() -> Result<()> { + return test_russian_braille(r#"x"#, "⠠⠭⠸⠶"); +} + +#[test] +fn source_label_marks_14() -> Result<()> { + return test_russian_braille(r#"x×"#, "⠠⠭⠸⠦"); +} + +#[test] +fn source_label_marks_15() -> Result<()> { + return test_russian_braille(r#"x"#, "⠠⠭⠆⠆"); +} + +#[test] +fn source_label_marks_16() -> Result<()> { + return test_russian_braille(r#"x+y~"#, "⠯⠠⠭⠀⠖⠽⠽⠢"); +} + +#[test] +fn source_label_marks_17() -> Result<()> { + return test_russian_braille(r#"x"#, "⠸⠶⠠⠭"); +} + +#[test] +fn source_label_marks_18() -> Result<()> { + return test_russian_braille(r#"x"#, "⠨⠆⠠⠭"); +} + +#[test] +fn source_label_marks_19() -> Result<()> { + return test_russian_braille(r#"2x"#, "⠼⠃⠐⠸⠆⠠⠭"); +} + +#[test] +fn source_label_marks_20() -> Result<()> { + return test_russian_braille(r#"ax"#, "⠠⠁⠐⠨⠶⠭"); +} + +#[test] +fn source_label_marks_21() -> Result<()> { + return test_russian_braille(r#"x1"#, "⠸⠆⠠⠭⠡⠂"); +} + +#[test] +fn source_label_marks_22() -> Result<()> { + return test_russian_braille(r#"xn2"#, "⠨⠦⠶⠠⠭⠡⠝⠱⠌⠆"); +} + +#[test] +fn source_label_marks_23() -> Result<()> { + return test_russian_braille(r#"7i3?"#, "⠸⠠⠢⠼⠛⠡⠠⠊⠱⠌⠒"); +} + +#[test] +fn source_label_marks_24() -> Result<()> { + return test_russian_braille(r#"x~12"#, "⠠⠭⠢⠡⠼⠁⠌⠼⠃⠱"); +} + +#[test] +fn source_chemical_reactions_and_charges_01() -> Result<()> { + return test_russian_braille(r#"2HCl+2Na2NaCl+H2"#, "⠼⠃⠨⠓⠉⠠⠇⠀⠖⠼⠃⠨⠝⠠⠁⠀⠒⠕⠼⠃⠨⠝⠠⠁⠨⠉⠠⠇⠀⠖⠨⠓⠡⠆"); +} + +#[test] +fn source_chemical_reactions_and_charges_02() -> Result<()> { + return test_russian_braille(r#"H2(g)+I2(g)2HI(g)"#, "⠨⠓⠡⠆⠣⠠⠛⠜⠀⠖⠨⠊⠡⠆⠣⠠⠛⠜⠀⠒⠕⠀⠦⠶⠼⠃⠨⠓⠊⠣⠠⠛⠜"); +} + +#[test] +fn source_chemical_reactions_and_charges_03() -> Result<()> { + return test_russian_braille(r#"2Al2Al3++6e-"#, "⠼⠃⠨⠁⠠⠇⠀⠒⠕⠼⠃⠨⠁⠠⠇⠌⠒⠖⠀⠖⠼⠋⠠⠑⠌⠤"); +} + +#[test] +fn source_chemical_reactions_and_charges_04() -> Result<()> { + return test_russian_braille(r#"SO42-"#, "⠨⠎⠕⠡⠲⠌⠆⠤"); +} + +#[test] +fn source_chemical_reactions_and_charges_05() -> Result<()> { + return test_russian_braille(r#"HPO4--"#, "⠨⠓⠏⠕⠡⠲⠌⠆⠤"); +} + +#[test] +fn source_chemical_reactions_and_charges_06() -> Result<()> { + return test_russian_braille(r#"CNO"#, "⠸⠉⠝⠕"); +} + +#[test] +fn source_chemical_reactions_and_charges_07() -> Result<()> { + return test_russian_braille(r#"N300N"#, "⠨⠝⠀⠒⠕⠨⠌⠼⠉⠚⠚⠱⠨⠝"); +} + +#[test] +fn source_chemical_reactions_and_charges_08() -> Result<()> { + return test_russian_braille(r#"N300N"#, "⠨⠝⠀⠒⠕⠨⠡⠼⠉⠚⠚⠱⠨⠝"); +} + +#[test] +fn source_chemical_reactions_and_charges_09() -> Result<()> { + return test_russian_braille(r#"N300PtN"#, "⠨⠝⠀⠒⠕⠨⠡⠼⠉⠚⠚⠱⠨⠌⠨⠏⠠⠞⠱⠨⠝"); +} + +#[test] +fn source_chemical_reactions_and_charges_10() -> Result<()> { + return test_russian_braille(r#"NaCl(aq)+H(l)+C(s)"#, "⠨⠝⠠⠁⠨⠉⠠⠇⠣⠁⠟⠜⠀⠖⠨⠓⠣⠠⠇⠜⠀⠖⠨⠉⠣⠠⠎⠜"); +} + +#[test] +fn source_chemical_reactions_and_charges_11() -> Result<()> { + return test_russian_braille(r#"e++e--"#, "⠠⠑⠌⠖⠀⠖⠑⠌⠆⠤"); +} + +#[test] +fn source_interaction_mathvariant_greek() -> Result<()> { + return test_russian_braille(r#"α"#, "⠻⠰⠁⠻"); +} + +#[test] +fn source_interaction_mathvariant_scripts() -> Result<()> { + return test_russian_braille(r#"x2"#, "⠻⠠⠭⠡⠆⠻"); +} + +#[test] +fn source_interaction_chemical_msubsup_charge() -> Result<()> { + return test_russian_braille(r#"Fe23+"#, "⠨⠋⠠⠑⠡⠆⠌⠒⠖"); +} + +#[test] +fn source_interaction_geometry_postfix_after_indices() -> Result<()> { + return test_russian_braille(r#"A1B1"#, "⠨⠁⠡⠂⠃⠡⠂⠨⠒⠂"); +} + +#[test] +fn source_gost_logic_arrows_01() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠨⠁⠀⠶⠜⠃"); +} + +#[test] +fn source_gost_logic_arrows_02() -> Result<()> { + return test_russian_braille(r#"BA"#, "⠨⠃⠀⠦⠶⠁"); +} + +#[test] +fn source_gost_logic_arrows_03() -> Result<()> { + return test_russian_braille(r#"CD"#, "⠨⠉⠀⠦⠶⠜⠙"); +} + +#[test] +fn source_gost_logic_arrows_04() -> Result<()> { + return test_russian_braille(r#"x:P(x)"#, "⠫⠄⠠⠭⠀⠲⠨⠏⠣⠠⠭⠜"); +} + +#[test] +fn source_gost_logic_arrows_05() -> Result<()> { + return test_russian_braille(r#"x:P(x)"#, "⠫⠢⠠⠭⠀⠲⠨⠏⠣⠠⠭⠜"); +} + +#[test] +fn source_less_common_math_symbols_01() -> Result<()> { + return test_russian_braille(r#"3±2"#, "⠼⠉⠀⠖⠤⠼⠃"); +} + +#[test] +fn source_less_common_math_symbols_02() -> Result<()> { + return test_russian_braille(r#"xy"#, "⠠⠭⠀⠢⠢⠽"); +} + +#[test] +fn source_less_common_math_symbols_03() -> Result<()> { + return test_russian_braille(r#"ab"#, "⠠⠁⠀⠾⠃"); +} + +#[test] +fn source_less_common_math_symbols_04() -> Result<()> { + return test_russian_braille(r#"x1y"#, "⠠⠭⠀⠪⠶⠼⠁⠀⠪⠶⠠⠽"); +} + +#[test] +fn source_less_common_math_symbols_05() -> Result<()> { + return test_russian_braille(r#"y0"#, "⠠⠽⠀⠕⠶⠼⠚"); +} + +#[test] +fn source_less_common_math_symbols_06() -> Result<()> { + return test_russian_braille(r#"AB"#, "⠨⠁⠀⠠⠡⠀⠃"); +} + +#[test] +fn source_less_common_math_symbols_07() -> Result<()> { + return test_russian_braille(r#"BA"#, "⠨⠃⠀⠈⠌⠀⠁"); +} + +#[test] +fn source_less_common_math_symbols_08() -> Result<()> { + return test_russian_braille(r#"f/x"#, "⠹⠠⠋⠠⠌⠹⠭"); +} + +#[test] +fn source_less_common_math_symbols_09() -> Result<()> { + return test_russian_braille(r#"f"#, "⠫⠴⠠⠋"); +} + +#[test] +fn source_less_common_math_symbols_10() -> Result<()> { + return test_russian_braille(r#"ab"#, "⠠⠁⠸⠃"); +} + +#[test] +fn source_less_common_math_symbols_11() -> Result<()> { + return test_russian_braille(r#"ab"#, "⠠⠁⠀⠼⠀⠃"); +} + +#[test] +fn source_typeform_and_mathvariant_indicators() -> Result<()> { + let expr = r#"x"#; + test_braille("Russian", expr, "⠻⠠⠭⠻")?; + + let expr = r#"y"#; + test_braille("Russian", expr, "⠸⠠⠽⠸")?; + + let expr = r#"z"#; + test_braille("Russian", expr, "⠻⠸⠠⠵⠸⠻")?; + + let expr = r#"AB"#; + test_braille("Russian", expr, "⠻⠨⠁⠃⠻")?; + + let expr = r#"x+y"#; + test_braille("Russian", expr, "⠻⠠⠭⠻⠀⠖⠽")?; + + let expr = r#"𝐱"#; + test_braille("Russian", expr, "⠻⠠⠭⠻")?; + + let expr = r#"𝑥"#; + test_braille("Russian", expr, "⠸⠠⠭⠸")?; + + let expr = r#"x"#; + test_braille("Russian", expr, "⠻⠠⠭⠻")?; + + let expr = r#"xy"#; + test_braille("Russian", expr, "⠻⠠⠭⠽⠻")?; + + let expr = r#"y"#; + test_braille("Russian", expr, "⠸⠠⠽⠸")?; + return Ok(()); +} + +#[test] +fn wikipedia_times_divide_aggregate_section() -> Result<()> { + let expr = r#"6×7:14=3"#; + test_braille("Russian", expr, "⠼⠋⠀⠦⠼⠛⠀⠲⠼⠁⠙⠀⠶⠼⠉")?; + return Ok(()); +} + +#[test] +fn wikipedia_linear_parens_aggregate_section() -> Result<()> { + let expr = r#"3·(97)=6"#; + test_braille("Russian", expr, "⠼⠉⠄⠣⠼⠊⠀⠤⠼⠛⠜⠀⠶⠼⠋")?; + return Ok(()); +} + +#[test] +fn wikipedia_sqrt_aggregate_section() -> Result<()> { + let expr = r#"10000<101"#; + test_braille("Russian", expr, "⠩⠱⠼⠁⠚⠚⠚⠚⠹⠀⠪⠀⠼⠁⠚⠁")?; + return Ok(()); +} + +#[test] +fn source_functions_logs_derivatives() -> Result<()> { + let expr = r#"cosα"#; + test_braille("Russian", expr, "⠫⠉⠰⠁")?; + + let expr = r#"tgxctgx=1"#; + test_braille("Russian", expr, "⠫⠞⠠⠭⠄⠫⠉⠞⠠⠭⠀⠶⠼⠁")?; + + let expr = r#"tanx+cotx"#; + test_braille("Russian", expr, "⠫⠞⠠⠭⠀⠖⠫⠉⠞⠠⠭")?; + + let expr = r#"logxylogyx=1"#; + test_braille("Russian", expr, "⠫⠇⠡⠠⠭⠱⠽⠄⠫⠇⠡⠠⠽⠱⠭⠀⠶⠼⠁")?; + + let expr = r#"shx+chx=sinhx+coshx"#; + test_braille("Russian", expr, "⠫⠎⠓⠠⠭⠀⠖⠫⠉⠓⠠⠭⠀⠶⠫⠎⠓⠠⠭⠀⠖⠫⠉⠓⠠⠭")?; + + let expr = r#"thxcthx=1"#; + test_braille("Russian", expr, "⠫⠞⠓⠠⠭⠄⠫⠉⠞⠓⠠⠭⠀⠶⠼⠁")?; + + let expr = r#"argz=0,sgnx"#; + test_braille("Russian", expr, "⠫⠁⠗⠛⠠⠵⠀⠶⠼⠚⠠⠂⠫⠎⠛⠝⠠⠭")?; + + let expr = r#"detA+rankA=rgA"#; + test_braille("Russian", expr, "⠫⠙⠑⠞⠨⠁⠀⠖⠫⠗⠁⠝⠅⠨⠁⠀⠶⠫⠗⠛⠨⠁")?; + + let expr = r#"Rez+Imz"#; + test_braille("Russian", expr, "⠫⠗⠑⠠⠵⠀⠖⠫⠊⠍⠠⠵")?; + + let expr = r#"gradφ+rotF+divF"#; + test_braille("Russian", expr, "⠫⠛⠗⠁⠙⠰⠋⠀⠖⠫⠗⠕⠞⠨⠋⠀⠖⠫⠙⠊⠧⠨⠋")?; + + let expr = r#"gcd(a,b)=lcm(c,d)"#; + test_braille("Russian", expr, "⠫⠛⠉⠙⠣⠠⠁⠠⠂⠃⠜⠀⠶⠫⠇⠉⠍⠣⠠⠉⠠⠂⠙⠜")?; + + let expr = r#"y(x)=f(x)"#; + test_braille("Russian", expr, "⠠⠽⠔⠣⠭⠜⠀⠶⠋⠣⠭⠜")?; + return Ok(()); +} + +#[test] +fn source_large_operator_limits() -> Result<()> { + let expr = r#"14x2dx"#; + test_braille("Russian", expr, "⠮⠡⠂⠌⠲⠠⠭⠌⠆⠙⠭")?; + + let expr = r#"i=1nai"#; + test_braille("Russian", expr, "⠸⠎⠨⠡⠠⠊⠀⠶⠼⠁⠱⠨⠌⠠⠝⠱⠁⠡⠊⠱")?; + + let expr = r#"0nbk"#; + test_braille("Russian", expr, "⠸⠏⠡⠴⠌⠠⠝⠱⠃⠡⠅⠱")?; + return Ok(()); +} + +#[test] +fn source_geometry_matrix_chemistry() -> Result<()> { + let expr = r#"ABC=15°3012"#; + test_braille("Russian", expr, "⠸⠪⠨⠁⠃⠉⠀⠶⠼⠁⠑⠨⠴⠼⠉⠚⠨⠔⠼⠁⠃⠨⠔⠔")?; + + let expr = r#"A1B1C1"#; + test_braille("Russian", expr, "⠸⠙⠨⠁⠡⠂⠃⠡⠂⠉⠡⠂")?; + + let expr = r#"2ABC"#; + test_braille("Russian", expr, "⠼⠃⠄⠸⠪⠨⠁⠃⠉")?; + + let expr = r#"3ABC"#; + test_braille("Russian", expr, "⠼⠉⠄⠸⠙⠨⠁⠃⠉")?; + + let expr = r#"4EF"#; + test_braille("Russian", expr, "⠼⠙⠄⠸⠜⠨⠑⠋")?; + + let expr = r#"KLMPQR"#; + test_braille("Russian", expr, "⠸⠙⠨⠅⠇⠍⠀⠢⠸⠙⠨⠏⠟⠗")?; + + let expr = r#"ABCD"#; + test_braille("Russian", expr, "⠨⠁⠃⠸⠸⠨⠉⠙")?; + + let expr = r#"ab"#; + test_braille("Russian", expr, "⠠⠁⠼⠄⠃")?; + + let expr = r#"ABCD"#; + test_braille("Russian", expr, "⠨⠁⠃⠼⠄⠉⠙")?; + + let expr = r#"a=2"#; + test_braille("Russian", expr, "⠠⠁⠒⠂⠀⠶⠼⠃")?; + + let expr = r#"AB+BC=AC"#; + test_braille("Russian", expr, "⠨⠁⠃⠨⠒⠂⠀⠖⠃⠉⠨⠒⠂⠀⠶⠁⠉⠨⠒⠂")?; + + let expr = r#"KL¯=4PQ¯"#; + test_braille("Russian", expr, "⠨⠅⠇⠨⠒⠀⠶⠼⠙⠄⠨⠏⠟⠨⠒")?; + + let expr = r#"EF=KL"#; + test_braille("Russian", expr, "⠸⠜⠨⠑⠋⠀⠶⠸⠜⠨⠅⠇")?; + + let expr = r#"(abcd)"#; + test_braille("Russian", expr, "⠣⠠⠁⠀⠃⠨⠳⠉⠀⠙⠜")?; + + let expr = r#"{x+y+z=1x+2y+3z=2x+3y+2z=5"#; + test_braille("Russian", expr, "⠏⠀⠠⠭⠀⠖⠽⠀⠖⠵⠀⠶⠼⠁⠨⠳⠇⠀⠠⠭⠀⠖⠼⠃⠠⠽⠀⠖⠼⠉⠠⠵⠀⠶⠼⠃⠨⠳⠧⠀⠠⠭⠀⠖⠼⠉⠠⠽⠀⠖⠼⠃⠠⠵⠀⠶⠼⠑")?; + + let expr = r#"f(x)={0x<0xx0"#; + test_braille("Russian", expr, "⠠⠋⠣⠭⠜⠀⠶⠏⠀⠼⠚⠀⠠⠭⠀⠪⠀⠼⠚⠨⠳⠧⠀⠠⠭⠀⠭⠀⠕⠶⠼⠚")?; + + let expr = r#"|abcd|"#; + test_braille("Russian", expr, "⠸⠠⠁⠀⠃⠨⠳⠉⠀⠙⠸")?; + + let expr = r#"H2O"#; + test_braille("Russian", expr, "⠨⠓⠡⠆⠕")?; + + let expr = r#"H2C=CH2"#; + test_braille("Russian", expr, "⠨⠓⠡⠆⠉⠦⠉⠓⠡⠆")?; + return Ok(()); +} + +#[test] +fn wikipedia_times_divide_source_section() -> Result<()> { + let expr = r#"6×7:14=3"#; + test_braille("Russian", expr, "⠼⠋⠀⠦⠼⠛⠀⠲⠼⠁⠙⠀⠶⠼⠉")?; + return Ok(()); +} + +#[test] +fn wikipedia_linear_parens_source_section() -> Result<()> { + let expr = r#"3·(97)=6"#; + test_braille("Russian", expr, "⠼⠉⠄⠣⠼⠊⠀⠤⠼⠛⠜⠀⠶⠼⠋")?; + return Ok(()); +} + +#[test] +fn wikipedia_sqrt_source_section() -> Result<()> { + let expr = r#"10000<101"#; + test_braille("Russian", expr, "⠩⠱⠼⠁⠚⠚⠚⠚⠹⠀⠪⠀⠼⠁⠚⠁")?; + return Ok(()); +} diff --git a/tests/braille/UEB/other.rs b/tests/braille/UEB/other.rs index 0c60e27db..35c7cfcf0 100644 --- a/tests/braille/UEB/other.rs +++ b/tests/braille/UEB/other.rs @@ -199,3 +199,31 @@ fn caps_bug_295() -> Result<()> { return Ok(()); } + +#[test] +fn unicode_superscript_chars_in_and_out_of_script_position() -> Result<()> { + // Scripted: msup adds ⠔; unicode then-clause omits 1 and ⠔ so result matches non-scripted + let expr = "x¹"; + test_braille("UEB", expr, "⠭⠰⠔⠼⠁")?; + let expr = "x¹"; + test_braille("UEB", expr, "⠭⠰⠔⠼⠁")?; + let expr = "x"; + test_braille("UEB", expr, "⠭⠰⠔⠐⠖")?; + let expr = "x"; + test_braille("UEB", expr, "⠭⠰⠔⠐⠖")?; + return Ok(()); +} + +#[test] +fn unicode_subscript_chars_in_and_out_of_script_position() -> Result<()> { + let expr = "x"; + test_braille("UEB", expr, "⠭⠰⠢⠼⠁")?; + let expr = "x"; + test_braille("UEB", expr, "⠭⠰⠢⠼⠁")?; + let expr = "x"; + test_braille("UEB", expr, "⠭⠰⠢⠐⠖")?; + let expr = "x"; + test_braille("UEB", expr, "⠭⠰⠢⠐⠖")?; + return Ok(()); +} + diff --git a/tests/common/mod.rs b/tests/common/mod.rs index 9b2269c53..6b42a25b8 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -253,7 +253,7 @@ pub fn test_intent(mathml: &str, target: &str, test_prefs: Vec<(&str, &str)>) -> let new_package = parser::parse(mathml); if let Err(e) = new_package { - panic!("Invalid MathML:\n{}\nError is: {}", &mathml, &e.to_string()); + panic!("Invalid MathML:\n{}\nError is: {}", mathml, e); } let new_package = new_package.unwrap(); diff --git a/tests/languages.rs b/tests/languages.rs index 4732b99f4..b0552b95b 100644 --- a/tests/languages.rs +++ b/tests/languages.rs @@ -1,4 +1,5 @@ #![allow(non_snake_case)] +#![allow(clippy::doc_lazy_continuation, clippy::module_inception, clippy::needless_return)] mod common;