• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sile-typesetter / sile / 11987615580

23 Nov 2024 01:36PM UTC coverage: 68.563% (+8.0%) from 60.594%
11987615580

push

github

web-flow
Merge pull request #2167 from Omikhleia/feat-operator-table

feat(math): Support the MathML operator dictionary and many TeX-like aliases

4115 of 4123 new or added lines in 6 files covered. (99.81%)

214 existing lines in 5 files now uncovered.

13622 of 19868 relevant lines covered (68.56%)

3653.44 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

98.08
/packages/math/unicode-symbols.lua
1
--- Extend the unicode-symbols-generated symbols with additional aliases.
2
local mathml_entities = require("packages.math.mathml-entities")
16✔
3
local symbols = mathml_entities.symbols
16✔
4
local operatorDict = mathml_entities.operatorDict
16✔
5

6
--- Add aliases for symbols that have multiple names.
7
-- We check that the alias is already defined in the generated dictionary,
8
-- and that the symbol is not defined.
9
-- If not, we raise an error: our operator dictionary is probably broken.
10
-- @tparam string symbol Symbol needing an alias
11
-- @tparam string alias  Existing alias
12
local function addAlias (symbol, alias)
13
   if symbols[symbol] then
560✔
NEW
14
      SU.error("Symbol " .. symbol .. " already defined (operator dictionary is probably broken)")
×
15
   end
16
   if not symbols[alias] then
560✔
NEW
17
      SU.error("Symbol " .. alias .. " not defined (operator dictionary is probably broken)")
×
18
   end
19
   symbols[symbol] = symbols[alias]
560✔
20
end
21

22
-- \% in TeX is the regular ordinary mathpercent symbol (U+0025)
23
addAlias("%", "mathpercent")
16✔
24

25
-- Additional TeX-like operators
26
addAlias("dots", "unicodeellipsis")
16✔
27
addAlias("ldots", "unicodeellipsis")
16✔
28
addAlias("cdots", "unicodecdots")
16✔
29
addAlias("implies", "Longrightarrow")
16✔
30
addAlias("iff", "Longleftrightarrow")
16✔
31
addAlias("vec", "overrightarrow")
16✔
32

33
-- Alias from unicode-math/um-code-epilogue.dtx
34
-- (Symbols with multiple names)
35
addAlias("le", "leq")
16✔
36
addAlias("ge", "geq")
16✔
37
addAlias("neq", "ne")
16✔
38
addAlias("triangle", "bigtriangleup")
16✔
39
addAlias("bigcirc", "mdlgwhtcircle")
16✔
40
addAlias("circ", "vysmwhtcircle")
16✔
41
addAlias("bullet", "smblkcircle")
16✔
42
addAlias("yen", "mathyen")
16✔
43
addAlias("sterling", "mathsterling")
16✔
44
addAlias("diamond", "smwhtdiamond")
16✔
45
addAlias("emptyset", "varnothing")
16✔
46
addAlias("hbar", "hslash")
16✔
47
addAlias("land", "wedge")
16✔
48
addAlias("lor", "vee")
16✔
49
addAlias("owns", "ni")
16✔
50
addAlias("gets", "leftarrow")
16✔
51
addAlias("mathring", "ocirc")
16✔
52
addAlias("lnot", "neg")
16✔
53

54
-- Additional aliases from LaTeX / AMS
55
-- (Mix from unicode-math and AMS names in unicode.xml
56
addAlias("colon", "mathcolon")
16✔
57
addAlias("eth", "matheth")
16✔
58
addAlias("AA", "Angstrom")
16✔
59
addAlias("bbsum", "Bbbsum")
16✔
60
addAlias("blacksquare", "mdlgblksquare")
16✔
61
addAlias("square", "mdlgwhtsquare")
16✔
62
addAlias("lozenge", "mdlgwhtlozenge")
16✔
63
addAlias("circlearrowleft", "acwcirclearrow")
16✔
64
addAlias("circlearrowright", "cwcirclearrow")
16✔
65
addAlias("blacklozenge", "mdlgblklozenge")
16✔
66

67
-- (Original-TeX) TeX-like greek letters
68
symbols.alpha = "α"
16✔
69
symbols.beta = "β"
16✔
70
symbols.gamma = "γ"
16✔
71
symbols.delta = "δ"
16✔
72
symbols.epsilon = "ϵ"
16✔
73
symbols.varepsilon = "ε"
16✔
74
symbols.zeta = "ζ"
16✔
75
symbols.eta = "η"
16✔
76
symbols.theta = "θ"
16✔
77
symbols.vartheta = "ϑ"
16✔
78
symbols.iota = "ι"
16✔
79
symbols.kappa = "κ"
16✔
80
symbols.lambda = "λ"
16✔
81
symbols.mu = "μ"
16✔
82
symbols.nu = "ν"
16✔
83
symbols.xi = "ξ"
16✔
84
symbols.omicron = "ο"
16✔
85
symbols.pi = "π"
16✔
86
symbols.varpi = "ϖ"
16✔
87
symbols.rho = "ρ"
16✔
88
symbols.varrho = "ϱ"
16✔
89
symbols.sigma = "σ"
16✔
90
symbols.varsigma = "ς"
16✔
91
symbols.tau = "τ"
16✔
92
symbols.upsilon = "υ"
16✔
93
symbols.phi = "ϕ"
16✔
94
symbols.varphi = "φ"
16✔
95
symbols.chi = "χ"
16✔
96
symbols.psi = "ψ"
16✔
97
symbols.omega = "ω"
16✔
98
symbols.Alpha = "Α"
16✔
99
symbols.Beta = "Β"
16✔
100
symbols.Gamma = "Γ"
16✔
101
symbols.Delta = "Δ"
16✔
102
symbols.Epsilon = "Ε"
16✔
103
symbols.Zeta = "Ζ"
16✔
104
symbols.Eta = "Η"
16✔
105
symbols.Theta = "Θ"
16✔
106
symbols.Iota = "Ι"
16✔
107
symbols.Kappa = "Κ"
16✔
108
symbols.Lambda = "Λ"
16✔
109
symbols.Mu = "Μ"
16✔
110
symbols.Nu = "Ν"
16✔
111
symbols.Xi = "Ξ"
16✔
112
symbols.Omicron = "Ο"
16✔
113
symbols.Pi = "Π"
16✔
114
symbols.Rho = "Ρ"
16✔
115
symbols.Sigma = "Σ"
16✔
116
symbols.Tau = "Τ"
16✔
117
symbols.Upsilon = "Υ"
16✔
118
symbols.Phi = "Φ"
16✔
119
symbols.Chi = "Χ"
16✔
120
symbols.Psi = "Ψ"
16✔
121
symbols.Omega = "Ω"
16✔
122
-- Other TeX-like greek symbols
123
symbols.digamma = "ϝ" -- Supported by TeMML, MathJax, and LaTeX's unicode-math
16✔
124
symbols.Digamma = "Ϝ" -- Supported by LaTeX's unicode-math
16✔
125

126
-- In xml-entities's unicode.xml, the minus-hyphen (U+002D) has different
127
-- properties from to the minus sign (U+2212).
128
-- In our TeX-like syntax, they should however lead to the same symbol.
129
operatorDict["-"] = operatorDict["−"]
16✔
130

131
return {
16✔
132
   symbols = symbols,
16✔
133
   operatorDict = operatorDict,
16✔
134
}
16✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc