---
- name: pos-neg-number-sets
tag: number-sets
match: "*[2][.='+' or .='-']"
replace:
- bookmark: "*[2]/@id"
- test:
- if: "*[2][.='+']"
then: [{T: "dương"}]
else: [{T: "âm"}]
- bookmark: "*[1]/@id"
- test:
- if: "*[1][.='ℂ']"
then: [{T: số phức}]
- else_if: "*[1][.='ℕ']"
then: [{T: số tự nhiên}]
- else_if: "*[1][.='ℚ']"
then: [{T: số hữu tỷ}]
- else_if: "*[1][.='ℝ']"
then: [{T: số thực}]
- else_if: "*[1][.='ℤ']"
then: [{T: số nguyên}]
else: [{x: "*[1][text()]"}]
- name: dimension-number-sets
tag: number-sets
match: "count(*)=2"
replace:
- bookmark: "*[1]/@id"
- test:
- if: "*[1][.='ℂ']"
then: [{T: "C"}]
- else_if: "*[1][.='ℕ']"
then: [{T: "N"}]
- else_if: "*[1][.='ℚ']"
then: [{T: "Q"}]
- else_if: "*[1][.='ℝ']"
then: [{T: "R"}]
- else_if: "*[1][.='ℤ']"
then: [{T: "Z"}]
else: [{x: "*[1][text()]"}] - bookmark: "*[2]/@id"
- x: "*[2]"
- name: simple-number-sets
tag: number-sets
match: "count(*)=0"
replace:
- bookmark: "@id"
- test:
- if: ".='ℂ'"
then: [{T: số phức}]
- else_if: ".='ℕ'"
then: [{T: số tự nhiên}]
- else_if: ".='ℚ'"
then: [{T: số hữu tỷ}]
- else_if: ".='ℝ'"
then: [{T: số thực}]
- else_if: ".='ℤ'"
then: [{T: số nguyên}]
else: [{x: text()}]
- name: real-part
tag: real-part
match: "."
replace:
- bookmark: "@id"
- T: phần thực
- name: imaginary-part
tag: imaginary-part
match: "."
replace:
- bookmark: "@id"
- T: phần giả lập
- name: evaluated-at-2
tag: evaluate
match: "count(*)=2"
replace:
- x: "*[1]"
- pause: auto
- T: được tính tại
- pause: auto
- x: "*[2]"
- name: evaluated-at-3
tag: evaluate
match: "count(*)=3"
replace:
- x: "*[1]"
- pause: auto
- T: được tính tại
- pause: auto
- x: "*[3]"
- T: "trừ cùng biểu thức được tính tại"
- x: "*[2]"
- name: permutation
tag: pochhammer
match: "count(*)=2 and contains(@data-intent-property, ':infix:')"
replace:
- x: "*[2]"
- T: hoán vị của
- x: "*[1]"
- name: intervals
tag: [open-interval, open-closed-interval, closed-interval, closed-open-interval]
match: "."
replace:
- test:
- if: "name(.)='open-interval'"
then: [{T: "mở"}]
- else_if: "name(.)='open-closed-interval'"
then: [{T: "đóng mở"}]
- else_if: "name(.)='closed-interval'"
then: [{T: "được đóng"}]
else: [{T: "mở đóng"}] - test:
if: "$Verbosity!='Terse'"
then:
- T: "từ"
- x: "*[2]"
- T: "đến"
- x: "*[3]"
else:
- x: "*[2]"
- T: "phẩy"
- x: "*[3]"
- name: default-point
tag: point
match: "."
replace:
- T: "điểm"
- x: "*[1]"
- T: "phẩy"
- x: "*[2]"
- name: bigop-both
tag: large-op
match: "count(*) = 3"
replace:
- x: "*[1]"
- T: từ
- x: "*[2]"
- T: đến
- x: "*[3]"
- test:
if: "following-sibling::*"
then: [{T: của}]
- name: bigop-under
tag: large-op
match: "."
replace:
- x: "*[1]"
- T: trên
- x: "*[2]"
- test:
if: "following-sibling::*"
then: [{T: của}]
- name: largeop
tag: mrow
match: "count(*)=2 and IsInDefinition(*[1], 'LargeOperators')"
replace:
- x: "*[1]"
- T: của
- x: "*[2]"
- name: msubsup-skip-super
tag: [skip-super, say-super]
match: "count(*)=3"
replace:
- x: "*[1]"
- test:
if: "$Verbosity='Terse'"
then: {T: "chỉ số dưới"}
else: {T: "chỉ số dưới"}
- x: "*[2]"
- test:
if: "not(IsNode(*[2],'leaf'))"
then:
- test:
if: "$Verbosity='Terse'"
then: {T: "hết chỉ số dưới"} else: {T: "hết chỉ số dưới"} - pause: short
else_test:
if: "*[2][self::m:mi]" then: [pause: short]
- test:
if: "name(.)='say-super'"
then_test:
if: "$Verbosity='Terse'"
then: {T: "chỉ số trên"}
else: {T: "chỉ số trên"}
- x: "*[3]"
- pause: short
- name: unit
tag: unit
match: "."
variables:
- MRowForCoefficient: "IfThenElse(parent::m:mrow, parent::m:mrow,
IfThenElse(parent::m:power, ancestor::*[2][self::m:mrow],
IfThenElse(parent::m:fraction and not(preceding-sibling::*), ancestor::*[2][self::m:mrow],
IfThenElse(parent::m:power[parent::m:fraction and not(preceding-sibling::*)], ancestor::*[3][self::m:mrow], false()) ) ) )"
- IsSingular: "(not($MRowForCoefficient) and parent::*[name(.)!='skip-super' or *[1][.=1]]) or
($MRowForCoefficient and $MRowForCoefficient[(count(*) = 3 and *[1][self::m:mn and .=1] and *[2]='\u2062')])"
- Prefix: "''"
- Word: "''"
replace:
- bookmark: "@id"
- test:
- if: "DefinitionValue(., 'Speech', 'SIUnits') != ''"
then:
- set_variables: [Word: "DefinitionValue(., 'Speech', 'SIUnits')"]
- else_if: "DefinitionValue(., 'Speech', 'UnitsWithoutPrefixes') != ''"
then:
- set_variables: [Word: "DefinitionValue(., 'Speech', 'UnitsWithoutPrefixes')"]
- else_if: "DefinitionValue(., 'Speech', 'EnglishUnits') != ''"
then:
- set_variables: [Word: "DefinitionValue(., 'Speech', 'EnglishUnits')"]
- else_if: "string-length(.) >= 3 and
substring(., 1, 2) = 'da' and
DefinitionValue(substring(., 3), 'Speech', 'SIUnits') != ''"
then:
- set_variables:
- Prefix: "DefinitionValue('da', 'Speech', 'SIPrefixes')"
- Word: "DefinitionValue(substring(., 3), 'Speech', 'SIUnits')"
- else_if: "string-length(.) >= 2 and
DefinitionValue(substring(., 1, 1), 'Speech', 'SIPrefixes') != '' and
DefinitionValue(substring(., 2), 'Speech', 'SIUnits') != ''"
then:
- set_variables:
- Prefix: "DefinitionValue(substring(., 1, 1), 'Speech', 'SIPrefixes')"
- Word: "DefinitionValue(substring(., 2), 'Speech', 'SIUnits')"
- else:
- set_variables:
- Word: "text()"
- test:
if: "$Prefix = ''"
then:
- test:
- if: "$IsSingular"
then: [x: "$Word"]
- else_if: "DefinitionValue($Word, 'Speech', 'PluralForms') != ''"
then: [x: "DefinitionValue($Word, 'Speech', 'PluralForms')"]
else: [x: "$Word"]
else:
- x: "$Prefix"
- ct: "-"
- test:
- if: "$IsSingular"
then: [x: "concat('\uF8FE', $Word)"]
- else_if: "DefinitionValue($Word, 'Speech', 'PluralForms') != ''"
then: [x: "concat('\uF8FE', DefinitionValue($Word, 'Speech', 'PluralForms'))"]
else: [x: "concat('\uF8FE', $Word)"]
- name: sin
tag: mi
match: ".='sin'"
replace:
- bookmark: "@id"
- T: "sin"
- name: cos
tag: mi
match: ".='cos'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: cô sin}
else: {T: cô sin}
- name: tan
tag: mi
match: ".='tan' or .='tg'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: tang}
else: {T: tang}
- name: sec
tag: mi
match: ".='sec'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: sin đảo}
else: {T: sin đảo}
- name: csc
tag: mi
match: ".='csc'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: cô sin đảo}
else: {T: cô sin đảo}
- name: cot
tag: mi
match: ".='cot'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: cô tang}
else: {T: cô tang}
- name: sinh
tag: mi
match: ".='sinh'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: sin híp bơ bôn}
else: {T: sin híp bơ bôn}
- name: cosh
tag: mi
match: ".='cosh'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: cô sin híp bơ bôn}
else: {T: cô sin híp bơ bôn}
- name: tanh
tag: mi
match: ".='tanh'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: tang híp bơ bôn}
else: {T: tang híp bơ bôn}
- name: sech
tag: mi
match: ".='sech'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: xê can híp bơ bôn}
else: {T: xê can híp bơ bôn}
- name: csch
tag: mi
match: ".='csch'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: cô xê can híp bơ bôn}
else: {T: cô xê can híp bơ bôn}
- name: coth
tag: mi
match: ".='coth'"
replace:
- bookmark: "@id"
- test:
if: "$Verbosity='Terse'"
then: {T: cô tang híp bơ bôn}
else: {T: cô tang híp bơ bôn}
- name: arcsin
tag: mi
match: ".='arcsin'"
replace:
- bookmark: "@id"
- T: "ạt sin"
- name: arccos
tag: mi
match: ".='arccos'"
replace:
- bookmark: "@id"
- T: "ạt cô sin"
- name: arctan
tag: mi
match: ".='arctan'"
replace:
- bookmark: "@id"
- T: "ạt tang"
- name: arccot
tag: mi
match: ".='arccot'"
replace:
- bookmark: "@id"
- T: "ạt cô tang"
-
name: log tag: mi
match: ".= 'log' or .= 'ln'"
replace:
- bookmark: "@id"
- test:
- if: "$Verbosity!='Terse'"
then: [T: ""] - test:
- if: ".= 'log'"
then: [T: "lóc"] - else_if: "$Verbosity='Terse'"
then: [T: "lóc nơ be"]
else: [T: "lóc nơ be"]
- name: multi-line
tag: [piecewise, system-of-equations, lines]
match: "."
variables: [IsColumnSilent: true()]
replace:
- x: "count(*)"
- test:
- if: "self::m:piecewise"
then: [{T: "trường hợp"}]
- else_if: "self::m:system-of-equations"
then: [{T: "biểu thức"}]
else: [{T: "dòng"}]
- pause: short
- x: "*"
- name: default-multiline
tag: [mtr, mlabeledtr]
match: "parent::m:piecewise or parent::m:system-of-equations or parent::m:lines"
replace:
- pause: medium
- test:
- if: "parent::m:piecewise"
then: [{T: "trường hợp"}]
- else_if: "parent::m:system-of-equations"
then: [{T: "biểu thức"}]
else: [{T: "dòng"}]
- x: "count(preceding-sibling::*)+1"
- test:
if: .[self::m:mlabeledtr]
then:
- T: với
- x: "*[1]/*"
- pause: medium
- test:
if: .[self::m:mlabeledtr]
then: [{x: "*[position()>1]"}]
else: {x: "*"}
- name: default-multiline
tag: mtd
match: "parent::*[parent::m:piecewise or parent::m:system-of-equations or parent::m:lines]"
replace:
- x: "*"
- test:
- if: count(following-sibling::*) > 0
then: {pause: short}
- else_if: count(../following-sibling::*) > 0
then: {pause: medium}
else: {pause: long}
- name: 1x1-matrix
tag: [matrix, determinant]
variables: [{IsColumnSilent: true()}]
match: "count(*)=1 and *[self::m:mtr][count(*) = 1]"
replace:
- test:
if: "self::m:determinant" then: {T: định thức}
else: {T: ma trận}
- T: "1 1"
- T: có đầu vào là
- x: "*[1]/*"
- name: 2-or-3x1-matrix
tag: matrix
variables: [{IsColumnSilent: true()}]
match:
- "$ClearSpeak_Matrix != 'SpeakColNum' and " - "*[self::m:mtr][count(*) = 1] and " - count(*)<=3 and - IsNode(*/*/*,'simple') replace:
- test:
if: "$ClearSpeak_Matrix = 'Vector' or $ClearSpeak_Matrix = 'EndVector'"
then: {T: véc tơ}
else: {T: ma trận}
- x: count(*)
- T: 1 cột
- pause: long
- x: "*/*"
- test:
if: "$ClearSpeak_Matrix = 'EndMatrix' or $ClearSpeak_Matrix = 'EndVector'"
then:
- T: "kết thúc"
- test:
if: $ClearSpeak_Matrix = 'EndVector'
then: {T: véc tơ}
else: {T: ma trận}
- name: default-column-matrix
tag: matrix
variables: [{IsColumnSilent: true()}]
match: "*[self::m:mtr][count(*) = 1]"
replace:
- x: "count(*)"
- T: nhân 1 cột
- test:
if: "$ClearSpeak_Matrix = 'Vector' or $ClearSpeak_Matrix = 'EndVector'"
then: {T: véc tơ}
else: {T: ma trận}
- pause: long
- x: "*" - test:
if: "$ClearSpeak_Matrix = 'EndMatrix' or $ClearSpeak_Matrix = 'EndVector'"
then: [{T: "hết ma trận"}]
- name: 1x2-or-3-matrix
tag: matrix
variables: [{IsColumnSilent: "$SpeechStyle = 'ClearSpeak' and $ClearSpeak_Matrix != 'SpeakColNum'"}]
match:
- "$ClearSpeak_Matrix != 'SpeakColNum' and " - count(*)=1 and - count(*[1]/*)<=3 and - IsNode(*/*/*,'simple') replace:
- T: 1 nhân
- x: count(*/*)
- T: "dòng"
- test:
if: "$ClearSpeak_Matrix = 'Vector' or $ClearSpeak_Matrix = 'EndVector'"
then: {T: véc tơ}
else: {T: ma trận}
- pause: long
- x: "*/*"
- test:
if: "$ClearSpeak_Matrix = 'EndMatrix' or $ClearSpeak_Matrix = 'EndVector'"
then:
- T: "hết"
- test:
if: $ClearSpeak_Matrix = 'EndMatrix'
then: {T: ma trận}
else: {T: véc tơ}
- name: default-row-matrix
tag: matrix
variables: [{IsColumnSilent: "$SpeechStyle = 'ClearSpeak' and $ClearSpeak_Matrix = 'SilentColNum'"}]
match: "count(*)=1" replace:
- test:
if: "$ClearSpeak_Matrix = 'Vector' or $ClearSpeak_Matrix = 'EndVector'"
then: {T: véc tơ}
else: {T: ma trận}
- T: một nhân
- x: "count(*/*)"
- T: "dòng"
- pause: long
- pause: medium
- x: "*/*" - test:
if: "$ClearSpeak_Matrix = 'EndMatrix' or $ClearSpeak_Matrix = 'EndVector'"
then:
- T: "hết"
- test:
if: $ClearSpeak_Matrix = 'EndMatrix'
then: {T: ma trận}
else: {T: véc tơ}
- name: simple-small-matrix
tag: [matrix, determinant]
match:
- "$ClearSpeak_Matrix != 'SpeakColNum' and " - (count(*)<=3 and count(*[1]/*)<=3) and - IsNode(*/*/*,'simple') variables: [{IsColumnSilent: "$SpeechStyle = 'ClearSpeak' and $ClearSpeak_Matrix != 'SpeakColNum'"}]
replace:
- test:
if: "self::m:determinant"
then: {T: định thức}
else: {T: ma trận}
- x: count(*)
- T: nhân
- x: count(*[self::m:mtr][1]/*)
- pause: long
- x: "*"
- test:
if: "$ClearSpeak_Matrix = 'EndMatrix' or $ClearSpeak_Matrix = 'EndVector'"
then:
- T: hết
- test:
if: "self::m:determinant"
then: {T: định thức}
else: {T: ma trận}
- name: default-matrix
tag: [matrix, determinant]
variables: [{IsColumnSilent: "$SpeechStyle = 'ClearSpeak' and $ClearSpeak_Matrix = 'SilentColNum'"}]
match: "."
replace:
- test:
if: "self::m:determinant"
then: {T: định thức}
else: {T: ma trận}
- x: "count(*)"
- T: nhân
- x: "count(*[self::m:mtr][1]/*)"
- pause: long
- x: "*"
- test:
if: "$ClearSpeak_Matrix = 'EndMatrix' or $ClearSpeak_Matrix = 'EndVector'"
then:
- T: hết
- test:
if: "self::m:determinant"
then: {T: định thức}
else: {T: ma trận}
- name: chemistry-msub
tag: [chemical-formula]
match: "*[1][.='msub']"
replace:
- x: "*[2]"
- x: "*[3]"
- test:
if: "$Verbosity='Verbose'"
then: [{T: "dưới"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- name: chemistry-msup
tag: [chemical-formula]
match: "*[1][.='msup']"
replace:
- x: "*[2]"
- x: "*[3]"
- test:
if: "$Verbosity='Verbose'"
then: [{T: "trên"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- test:
if: "following-sibling::*[1][.='+' or .='-']" then: [{pause: medium}]
- name: chemistry-scripts
tag: [chemical-formula, chemical-nuclide]
variables:
- Prescripts: "m:mprescripts/following-sibling::*"
- NumChildren: "count(*)" - Postscripts: "*[position()>1 and position() < (last() + ($NumChildren mod 2) -count($Prescripts))]"
match: . replace:
- test:
if: "$Prescripts" then:
- test:
if: "not($Prescripts[2][self::m:none])"
then:
- x: "$Prescripts[2]"
- test:
if: "$Verbosity='Verbose'"
then: [{T: "trên"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "not($Prescripts[1][self::m:none])"
then:
- x: "$Prescripts[1]"
- test:
if: "$Verbosity='Verbose'"
then: [{T: "dưới"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "count($Prescripts) > 2" then:
- test:
if: "not($Prescripts[4][self::m:none])"
then:
- x: "$Prescripts[4]"
- test:
if: "$Verbosity='Verbose'"
then: [{T: "trên"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "not($Prescripts[3][self::m:none])"
then:
- x: "$Prescripts[3]"
- test:
if: "$Verbosity='Verbose'"
then: [{T: "dưới"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- x: "*[1]" - test:
if: "$Postscripts"
then:
- test:
if: "not($Postscripts[1][self::m:none])"
then:
- x: "$Postscripts[1]"
- test:
if: "$Verbosity='Verbose' and not(self::m:chemical-formula)"
then: [{T: "dưới"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "not($Postscripts[2][self::m:none])"
then:
- x: "$Postscripts[2]"
- test:
if: "$Verbosity='Verbose' and not(self::m:chemical-formula)"
then: [{T: "trên"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "count($Postscripts) > 2"
then:
- test:
if: "not($Postscripts[3][self::m:none])"
then:
- x: "$Postscripts[3]"
- test:
if: "$Verbosity='Verbose' and not(self::m:chemical-formula)"
then: [{T: "dưới"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "not($Postscripts[4][self::m:none])"
then:
- x: "$Postscripts[4]"
- test:
if: "$Verbosity='Verbose' and not(self::m:chemical-formula)"
then: [{T: "trên"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "count($Postscripts) > 4"
then:
- test:
if: "not($Postscripts[5][self::m:none])"
then:
- x: "$Postscripts[5]"
- test:
if: "$Verbosity='Verbose' and not(self::m:chemical-formula)"
then: [{T: "dưới"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "not($Postscripts[6][self::m:none])"
then:
- x: "$Postscripts[6]"
- test:
if: "$Verbosity='Verbose' and not(self::m:chemical-formula)"
then: [{T: "trên"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "count($Postscripts) > 6"
then:
- test:
if: "not($Postscripts[7][self::m:none])"
then:
- x: "$Postscripts[7]"
- test:
if: "$Verbosity='Verbose' and not(self::m:chemical-formula)"
then: [{T: "dưới"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "not($Postscripts[8][self::m:none])"
then:
- x: "$Postscripts[8]"
- test:
if: "$Verbosity='Verbose' and not(self::m:chemical-formula)"
then: [{T: "trên"}]
else_test:
if: "$Verbosity='Medium'"
then: [{T: ""}]
- pause: "short"
- test:
if: "$Postscripts[last()][not(self::m:none)] and following-sibling::*[1][.='+' or .='-']"
then: [{pause: medium}]
- name: chemistry
tag: chemical-equation
match: "."
replace:
- x: "*"
- name: chemical-element
tag: chemical-element
match: "."
replace:
- bookmark: "@id"
- spell: text()
- pause: short
- name: chemical-state
tag: chemical-state
match: "."
replace:
- bookmark: "*[1]/@id"
- test:
- if: ".='s'"
then: [{T: "thể rắn"}]
- else_if: ".='l'"
then: [{T: "thể lỏng"}]
- else_if: ".='g'"
then: [{T: "thể khí"}]
else: [{T: "thể lỏng"}] - pause: short
- name: chemical-formula-operator-bond
tag: chemical-formula-operator
match: "@data-chemical-bond"
replace:
- bookmark: "@id"
- test:
- if: ".='-' or .=':'"
then: [{T: "nối đơn"}] - else_if: ".='=' or .='∷'"
then: [{T: "nối đôi"}] - else_if: ".='≡'"
then: [{T: "nối ba"}] - else_if: ".='≣'"
then: [{T: "nối bốn"}] else: [{x: "text()"}]
- name: chemical-formula-operator
tag: chemical-formula-operator
match: "."
replace:
x: "text()"
- name: chemical-arrow-operator
tag: chemical-arrow-operator
match: "."
replace:
- bookmark: "@id"
- test:
- if: ".='→' or .='⟶'"
then_test:
if: "$Verbosity='Terse'"
then: [{T: "cho ra"}] else: [{T: "phản ứng cho ra"}] - else_if: ".='⇌' or .='\u1f8d2'"
then: [{T: "mũi tên hai chiều"}] - else_if: ".='\u1f8d4'"
then: [{T: "mũi tên chiều bên trái"}] - else_if: ".='\u1f8d3'"
then: [{T: "mũi tên chiều bên phải"}] else: [x: "*"]
- name: chemical-equation-operator
tag: chemical-equation-operator
match: "."
replace:
- bookmark: "@id"
- x: "text()"
- name: none
tag: none
match: "../../*[self::m:chemical-formula or self::m:chemical-nuclide]"
replace:
- T: ""
- name: ignore-intent-wrapper
tag: intent-wrapper
match: "."
replace:
- x: "*"