#set page(width: auto, height: auto, margin: 2em)
#set text(fallback: false)
#set raw(lang: "typc")
#show raw: set text(font: ("DejaVu Sans Mono", "Noto Serif CJK SC"))
#align(center, `$ a 0 9 "a09" $`)
= Example A
+ New Computer Modern Math
$ a 0 9 "a09" $
= Example B
+ Fira Math
#show math.equation: set text(font: "Fira Math")
$ a 0 9 "a09" $
= Example C1
+ Fira _Math_, covers `regex("0")`
+ New Computer Modern Math
#show math.equation: set text(font: (
(name: "Fira Math", covers: regex("0")),
"New Computer Modern Math",
))
$ a 0 9 "a09" $
= Example C2
+ Fira _Sans_, covers `regex("0")`
+ New Computer Modern Math
#show math.equation: set text(font: (
(name: "Fira Sans", covers: regex("0")),
"New Computer Modern Math",
))
$ a 0 9 "a09" $
My guess
For texts in math.equation, render the character using the first font that covers and contains it.
For real math in math.equation, render the chracter using the first font that support OpenType math features, ignoring covers configurations.