mml 2.2.1 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +9 -0
  3. data/.rubocop.yml +4 -0
  4. data/.rubocop_todo.yml +36 -17
  5. data/CLAUDE.md +79 -0
  6. data/Gemfile +0 -2
  7. data/README.adoc +334 -82
  8. data/Rakefile +16 -1
  9. data/lib/mml/base/content/annotation.rb +30 -0
  10. data/lib/mml/base/content/annotation_xml.rb +31 -0
  11. data/lib/mml/base/content/apply.rb +27 -0
  12. data/lib/mml/base/content/arith.rb +243 -0
  13. data/lib/mml/base/content/bind.rb +27 -0
  14. data/lib/mml/base/content/bvar.rb +20 -0
  15. data/lib/mml/base/content/calculus.rb +103 -0
  16. data/lib/mml/base/content/cbytes.rb +24 -0
  17. data/lib/mml/base/content/cerror.rb +24 -0
  18. data/lib/mml/base/content/ci.rb +77 -0
  19. data/lib/mml/base/content/cn.rb +33 -0
  20. data/lib/mml/base/content/condition.rb +20 -0
  21. data/lib/mml/base/content/constants.rb +173 -0
  22. data/lib/mml/base/content/cs.rb +22 -0
  23. data/lib/mml/base/content/csymbol.rb +79 -0
  24. data/lib/mml/base/content/declare.rb +34 -0
  25. data/lib/mml/base/content/degree.rb +20 -0
  26. data/lib/mml/base/content/elementary_functions.rb +309 -0
  27. data/lib/mml/base/content/fn.rb +25 -0
  28. data/lib/mml/base/content/functions.rb +85 -0
  29. data/lib/mml/base/content/interval.rb +24 -0
  30. data/lib/mml/base/content/inverse.rb +25 -0
  31. data/lib/mml/base/content/lambda.rb +20 -0
  32. data/lib/mml/base/content/linear_algebra.rb +122 -0
  33. data/lib/mml/base/content/logic.rb +93 -0
  34. data/lib/mml/base/content/otherwise.rb +20 -0
  35. data/lib/mml/base/content/piece.rb +20 -0
  36. data/lib/mml/base/content/piecewise.rb +20 -0
  37. data/lib/mml/base/content/relations.rb +113 -0
  38. data/lib/mml/base/content/reln.rb +19 -0
  39. data/lib/mml/base/content/semantics.rb +27 -0
  40. data/lib/mml/base/content/sep.rb +19 -0
  41. data/lib/mml/base/content/sets.rb +163 -0
  42. data/lib/mml/base/content/share.rb +24 -0
  43. data/lib/mml/base/content/statistics.rb +95 -0
  44. data/lib/mml/base/content/vector_calculus.rb +63 -0
  45. data/lib/mml/base/content_loader.rb +195 -0
  46. data/lib/mml/base/deprecated_font_attributes.rb +31 -0
  47. data/lib/mml/base/maction.rb +29 -0
  48. data/lib/mml/base/maligngroup.rb +26 -0
  49. data/lib/mml/base/malignmark.rb +26 -0
  50. data/lib/mml/base/math.rb +64 -0
  51. data/lib/mml/base/menclose.rb +27 -0
  52. data/lib/mml/base/merror.rb +25 -0
  53. data/lib/mml/base/mfenced.rb +34 -0
  54. data/lib/mml/base/mfrac.rb +35 -0
  55. data/lib/mml/base/mfraction.rb +33 -0
  56. data/lib/mml/base/mglyph.rb +44 -0
  57. data/lib/mml/base/mi.rb +37 -0
  58. data/lib/mml/base/mlabeledtr.rb +33 -0
  59. data/lib/mml/base/mlongdiv.rb +31 -0
  60. data/lib/mml/base/mmultiscripts.rb +31 -0
  61. data/lib/mml/base/mn.rb +35 -0
  62. data/lib/mml/base/mo.rb +74 -0
  63. data/lib/mml/base/mover.rb +29 -0
  64. data/lib/mml/base/mpadded.rb +35 -0
  65. data/lib/mml/base/mphantom.rb +25 -0
  66. data/lib/mml/base/mprescripts.rb +24 -0
  67. data/lib/mml/base/mroot.rb +25 -0
  68. data/lib/mml/base/mrow.rb +27 -0
  69. data/lib/mml/base/ms.rb +35 -0
  70. data/lib/mml/base/mscarries.rb +33 -0
  71. data/lib/mml/base/mscarry.rb +29 -0
  72. data/lib/mml/base/msgroup.rb +31 -0
  73. data/lib/mml/base/msline.rb +34 -0
  74. data/lib/mml/base/mspace.rb +52 -0
  75. data/lib/mml/base/msqrt.rb +25 -0
  76. data/lib/mml/base/msrow.rb +27 -0
  77. data/lib/mml/base/mstack.rb +33 -0
  78. data/lib/mml/base/mstyle.rb +185 -0
  79. data/lib/mml/base/msub.rb +27 -0
  80. data/lib/mml/base/msubsup.rb +29 -0
  81. data/lib/mml/base/msup.rb +27 -0
  82. data/lib/mml/base/mtable.rb +65 -0
  83. data/lib/mml/base/mtd.rb +35 -0
  84. data/lib/mml/base/mtext.rb +30 -0
  85. data/lib/mml/base/mtr.rb +35 -0
  86. data/lib/mml/base/munder.rb +31 -0
  87. data/lib/mml/base/munderover.rb +31 -0
  88. data/lib/mml/base/none.rb +24 -0
  89. data/lib/mml/base/semantics.rb +25 -0
  90. data/lib/mml/base/universal_presentation_attributes.rb +42 -0
  91. data/lib/mml/base/v3_common.rb +16 -0
  92. data/lib/mml/base/v3_only/operator_attrs.rb +24 -0
  93. data/lib/mml/base/v3_only/style_attrs.rb +31 -0
  94. data/lib/mml/base/v3_only/table_attrs.rb +28 -0
  95. data/lib/mml/base/v3_only.rb +11 -0
  96. data/lib/mml/base/v3_presentation_attributes.rb +15 -0
  97. data/lib/mml/base/v4_attributes.rb +16 -0
  98. data/lib/mml/base.rb +61 -0
  99. data/lib/mml/common_elements.rb +419 -0
  100. data/lib/mml/context_configuration.rb +147 -0
  101. data/lib/mml/context_options.rb +64 -0
  102. data/lib/mml/namespace.rb +10 -0
  103. data/lib/mml/v2/annotation.rb +9 -0
  104. data/lib/mml/v2/annotation_xml.rb +9 -0
  105. data/lib/mml/v2/apply.rb +9 -0
  106. data/lib/mml/v2/arith.rb +93 -0
  107. data/lib/mml/v2/bind.rb +9 -0
  108. data/lib/mml/v2/bvar.rb +9 -0
  109. data/lib/mml/v2/calculus.rb +33 -0
  110. data/lib/mml/v2/ci.rb +9 -0
  111. data/lib/mml/v2/cn.rb +9 -0
  112. data/lib/mml/v2/common_elements.rb +34 -0
  113. data/lib/mml/v2/condition.rb +9 -0
  114. data/lib/mml/v2/configuration.rb +13 -0
  115. data/lib/mml/v2/constants.rb +65 -0
  116. data/lib/mml/v2/csymbol.rb +9 -0
  117. data/lib/mml/v2/degree.rb +9 -0
  118. data/lib/mml/v2/elementary_functions.rb +121 -0
  119. data/lib/mml/v2/fn.rb +9 -0
  120. data/lib/mml/v2/functions.rb +29 -0
  121. data/lib/mml/v2/interval.rb +9 -0
  122. data/lib/mml/v2/inverse.rb +9 -0
  123. data/lib/mml/v2/lambda.rb +9 -0
  124. data/lib/mml/v2/linear_algebra.rb +41 -0
  125. data/lib/mml/v2/logic.rb +33 -0
  126. data/lib/mml/v2/maction.rb +9 -0
  127. data/lib/mml/v2/maligngroup.rb +9 -0
  128. data/lib/mml/v2/malignmark.rb +9 -0
  129. data/lib/mml/v2/math.rb +11 -0
  130. data/lib/mml/v2/menclose.rb +9 -0
  131. data/lib/mml/v2/merror.rb +9 -0
  132. data/lib/mml/v2/mfenced.rb +9 -0
  133. data/lib/mml/v2/mfrac.rb +9 -0
  134. data/lib/mml/v2/mfraction.rb +9 -0
  135. data/lib/mml/v2/mglyph.rb +9 -0
  136. data/lib/mml/v2/mi.rb +9 -0
  137. data/lib/mml/v2/mlabeledtr.rb +9 -0
  138. data/lib/mml/v2/mlongdiv.rb +9 -0
  139. data/lib/mml/v2/mmultiscripts.rb +9 -0
  140. data/lib/mml/v2/mn.rb +9 -0
  141. data/lib/mml/v2/mo.rb +10 -0
  142. data/lib/mml/v2/mover.rb +9 -0
  143. data/lib/mml/v2/mpadded.rb +9 -0
  144. data/lib/mml/v2/mphantom.rb +9 -0
  145. data/lib/mml/v2/mprescripts.rb +9 -0
  146. data/lib/mml/v2/mroot.rb +9 -0
  147. data/lib/mml/v2/mrow.rb +9 -0
  148. data/lib/mml/v2/ms.rb +9 -0
  149. data/lib/mml/v2/mscarries.rb +9 -0
  150. data/lib/mml/v2/mscarry.rb +9 -0
  151. data/lib/mml/v2/msgroup.rb +9 -0
  152. data/lib/mml/v2/msline.rb +9 -0
  153. data/lib/mml/v2/mspace.rb +9 -0
  154. data/lib/mml/v2/msqrt.rb +9 -0
  155. data/lib/mml/v2/msrow.rb +9 -0
  156. data/lib/mml/v2/mstack.rb +9 -0
  157. data/lib/mml/v2/mstyle.rb +10 -0
  158. data/lib/mml/v2/msub.rb +9 -0
  159. data/lib/mml/v2/msubsup.rb +9 -0
  160. data/lib/mml/v2/msup.rb +9 -0
  161. data/lib/mml/v2/mtable.rb +9 -0
  162. data/lib/mml/v2/mtd.rb +9 -0
  163. data/lib/mml/v2/mtext.rb +9 -0
  164. data/lib/mml/v2/mtr.rb +9 -0
  165. data/lib/mml/v2/munder.rb +9 -0
  166. data/lib/mml/v2/munderover.rb +9 -0
  167. data/lib/mml/v2/namespace.rb +7 -0
  168. data/lib/mml/v2/none.rb +9 -0
  169. data/lib/mml/v2/otherwise.rb +9 -0
  170. data/lib/mml/v2/piece.rb +9 -0
  171. data/lib/mml/v2/piecewise.rb +9 -0
  172. data/lib/mml/v2/relations.rb +41 -0
  173. data/lib/mml/v2/reln.rb +13 -0
  174. data/lib/mml/v2/semantics.rb +9 -0
  175. data/lib/mml/v2/sep.rb +9 -0
  176. data/lib/mml/v2/sets.rb +57 -0
  177. data/lib/mml/v2/statistics.rb +33 -0
  178. data/lib/mml/v2/vector_calculus.rb +21 -0
  179. data/lib/mml/v2.rb +311 -0
  180. data/lib/mml/v3/annotation.rb +10 -0
  181. data/lib/mml/v3/annotation_xml.rb +10 -0
  182. data/lib/mml/v3/apply.rb +10 -0
  183. data/lib/mml/v3/arith.rb +115 -0
  184. data/lib/mml/v3/bind.rb +10 -0
  185. data/lib/mml/v3/calculus.rb +40 -0
  186. data/lib/mml/v3/cbytes.rb +10 -0
  187. data/lib/mml/v3/cerror.rb +10 -0
  188. data/lib/mml/v3/ci.rb +10 -0
  189. data/lib/mml/v3/cn.rb +10 -0
  190. data/lib/mml/v3/common_elements.rb +42 -0
  191. data/lib/mml/v3/configuration.rb +4 -96
  192. data/lib/mml/v3/constants.rb +80 -0
  193. data/lib/mml/v3/constructs.rb +55 -0
  194. data/lib/mml/v3/cs.rb +10 -0
  195. data/lib/mml/v3/csymbol.rb +10 -0
  196. data/lib/mml/v3/deprecated_content.rb +29 -0
  197. data/lib/mml/v3/elementary_functions.rb +145 -0
  198. data/lib/mml/v3/functions.rb +35 -0
  199. data/lib/mml/v3/linear_algebra.rb +50 -0
  200. data/lib/mml/v3/logic.rb +40 -0
  201. data/lib/mml/v3/maction.rb +3 -15
  202. data/lib/mml/v3/maligngroup.rb +2 -12
  203. data/lib/mml/v3/malignmark.rb +2 -12
  204. data/lib/mml/v3/math.rb +7 -8
  205. data/lib/mml/v3/menclose.rb +3 -14
  206. data/lib/mml/v3/merror.rb +3 -12
  207. data/lib/mml/v3/mfenced.rb +3 -21
  208. data/lib/mml/v3/mfrac.rb +3 -20
  209. data/lib/mml/v3/mfraction.rb +3 -20
  210. data/lib/mml/v3/mglyph.rb +3 -38
  211. data/lib/mml/v3/mi.rb +4 -30
  212. data/lib/mml/v3/mlabeledtr.rb +2 -23
  213. data/lib/mml/v3/mlongdiv.rb +3 -18
  214. data/lib/mml/v3/mmultiscripts.rb +3 -20
  215. data/lib/mml/v3/mn.rb +4 -30
  216. data/lib/mml/v3/mo.rb +5 -78
  217. data/lib/mml/v3/mover.rb +3 -16
  218. data/lib/mml/v3/mpadded.rb +3 -22
  219. data/lib/mml/v3/mphantom.rb +3 -12
  220. data/lib/mml/v3/mprescripts.rb +2 -10
  221. data/lib/mml/v3/mroot.rb +3 -12
  222. data/lib/mml/v3/mrow.rb +4 -18
  223. data/lib/mml/v3/ms.rb +5 -36
  224. data/lib/mml/v3/mscarries.rb +3 -20
  225. data/lib/mml/v3/mscarry.rb +3 -16
  226. data/lib/mml/v3/msgroup.rb +3 -18
  227. data/lib/mml/v3/msline.rb +2 -20
  228. data/lib/mml/v3/mspace.rb +3 -50
  229. data/lib/mml/v3/msqrt.rb +3 -12
  230. data/lib/mml/v3/msrow.rb +3 -14
  231. data/lib/mml/v3/mstack.rb +3 -20
  232. data/lib/mml/v3/mstyle.rb +6 -204
  233. data/lib/mml/v3/msub.rb +3 -14
  234. data/lib/mml/v3/msubsup.rb +3 -16
  235. data/lib/mml/v3/msup.rb +3 -14
  236. data/lib/mml/v3/mtable.rb +3 -53
  237. data/lib/mml/v3/mtd.rb +3 -16
  238. data/lib/mml/v3/mtext.rb +4 -30
  239. data/lib/mml/v3/mtr.rb +2 -21
  240. data/lib/mml/v3/munder.rb +3 -18
  241. data/lib/mml/v3/munderover.rb +3 -18
  242. data/lib/mml/v3/namespace.rb +1 -4
  243. data/lib/mml/v3/none.rb +2 -10
  244. data/lib/mml/v3/relations.rb +50 -0
  245. data/lib/mml/v3/semantics.rb +3 -12
  246. data/lib/mml/v3/sets.rb +70 -0
  247. data/lib/mml/v3/statistics.rb +40 -0
  248. data/lib/mml/v3/vector_calculus.rb +25 -0
  249. data/lib/mml/v3.rb +74 -75
  250. data/lib/mml/v4/a.rb +3 -13
  251. data/lib/mml/v4/annotation.rb +10 -0
  252. data/lib/mml/v4/annotation_xml.rb +14 -0
  253. data/lib/mml/v4/apply.rb +9 -0
  254. data/lib/mml/v4/arith.rb +93 -0
  255. data/lib/mml/v4/calculus.rb +25 -0
  256. data/lib/mml/v4/cbytes.rb +9 -0
  257. data/lib/mml/v4/cerror.rb +9 -0
  258. data/lib/mml/v4/ci.rb +9 -0
  259. data/lib/mml/v4/cn.rb +9 -0
  260. data/lib/mml/v4/common_elements.rb +46 -0
  261. data/lib/mml/v4/configuration.rb +4 -97
  262. data/lib/mml/v4/constants.rb +65 -0
  263. data/lib/mml/v4/constructs.rb +49 -0
  264. data/lib/mml/v4/cs.rb +9 -0
  265. data/lib/mml/v4/csymbol.rb +9 -0
  266. data/lib/mml/v4/deprecated_content.rb +25 -0
  267. data/lib/mml/v4/elementary_functions.rb +118 -0
  268. data/lib/mml/v4/factorof.rb +9 -0
  269. data/lib/mml/v4/functions.rb +30 -0
  270. data/lib/mml/v4/limit.rb +9 -0
  271. data/lib/mml/v4/linear_algebra.rb +41 -0
  272. data/lib/mml/v4/logic.rb +33 -0
  273. data/lib/mml/v4/maction.rb +3 -19
  274. data/lib/mml/v4/maligngroup.rb +3 -17
  275. data/lib/mml/v4/malignmark.rb +3 -17
  276. data/lib/mml/v4/math.rb +4 -14
  277. data/lib/mml/v4/menclose.rb +3 -18
  278. data/lib/mml/v4/merror.rb +3 -16
  279. data/lib/mml/v4/mfenced.rb +3 -25
  280. data/lib/mml/v4/mfrac.rb +3 -24
  281. data/lib/mml/v4/mfraction.rb +3 -20
  282. data/lib/mml/v4/mglyph.rb +3 -35
  283. data/lib/mml/v4/mi.rb +4 -30
  284. data/lib/mml/v4/mlabeledtr.rb +5 -23
  285. data/lib/mml/v4/mlongdiv.rb +3 -18
  286. data/lib/mml/v4/mmultiscripts.rb +3 -24
  287. data/lib/mml/v4/mn.rb +4 -29
  288. data/lib/mml/v4/mo.rb +4 -75
  289. data/lib/mml/v4/mover.rb +3 -20
  290. data/lib/mml/v4/mpadded.rb +3 -26
  291. data/lib/mml/v4/mphantom.rb +3 -16
  292. data/lib/mml/v4/mprescripts.rb +3 -11
  293. data/lib/mml/v4/mroot.rb +3 -16
  294. data/lib/mml/v4/mrow.rb +4 -20
  295. data/lib/mml/v4/ms.rb +4 -34
  296. data/lib/mml/v4/mscarries.rb +3 -20
  297. data/lib/mml/v4/mscarry.rb +3 -16
  298. data/lib/mml/v4/msgroup.rb +3 -18
  299. data/lib/mml/v4/msline.rb +3 -21
  300. data/lib/mml/v4/mspace.rb +3 -49
  301. data/lib/mml/v4/msqrt.rb +3 -16
  302. data/lib/mml/v4/msrow.rb +3 -18
  303. data/lib/mml/v4/mstack.rb +3 -24
  304. data/lib/mml/v4/mstyle.rb +4 -186
  305. data/lib/mml/v4/msub.rb +3 -18
  306. data/lib/mml/v4/msubsup.rb +3 -20
  307. data/lib/mml/v4/msup.rb +3 -18
  308. data/lib/mml/v4/mtable.rb +3 -55
  309. data/lib/mml/v4/mtd.rb +3 -20
  310. data/lib/mml/v4/mtext.rb +4 -29
  311. data/lib/mml/v4/mtr.rb +3 -25
  312. data/lib/mml/v4/munder.rb +3 -22
  313. data/lib/mml/v4/munderover.rb +3 -22
  314. data/lib/mml/v4/namespace.rb +1 -4
  315. data/lib/mml/v4/none.rb +5 -11
  316. data/lib/mml/v4/relations.rb +37 -0
  317. data/lib/mml/v4/semantics.rb +3 -12
  318. data/lib/mml/v4/sets.rb +57 -0
  319. data/lib/mml/v4/statistics.rb +33 -0
  320. data/lib/mml/v4/tendsto.rb +9 -0
  321. data/lib/mml/v4/vector_calculus.rb +21 -0
  322. data/lib/mml/v4.rb +426 -71
  323. data/lib/mml/version.rb +1 -1
  324. data/lib/mml/versioned_parser.rb +46 -0
  325. data/lib/mml.rb +36 -6
  326. data/reference-docs/mathml-source/pubtext/mathmlspec.dtd +150 -0
  327. data/reference-docs/mathml-source/pubtext/xmlspec.dtd +2649 -0
  328. data/reference-docs/mathml-source/readme.txt +40 -0
  329. data/reference-docs/mathml-source/run +296 -0
  330. data/reference-docs/mathml-source/style/html/html2xhtml.xsl +216 -0
  331. data/reference-docs/mathml-source/style/html/images.xsl +98 -0
  332. data/reference-docs/mathml-source/style/html/mml6.xsl +1156 -0
  333. data/reference-docs/mathml-source/style/html/mmldiff.xsl +566 -0
  334. data/reference-docs/mathml-source/style/html/mmlspec.xsl +2531 -0
  335. data/reference-docs/mathml-source/style/html/slices-common.xsl +312 -0
  336. data/reference-docs/mathml-source/style/html/slices.xsl +48 -0
  337. data/reference-docs/mathml-source/style/html/xmlspec.xsl +2542 -0
  338. data/reference-docs/mathml-source/style/pdf/mathmlspec.xsl +2510 -0
  339. data/reference-docs/mathml-source/xml/changes.xml +773 -0
  340. data/reference-docs/mathml-source/xml/character-set.xml +1011 -0
  341. data/reference-docs/mathml-source/xml/content-element-def.xml +6143 -0
  342. data/reference-docs/mathml-source/xml/content-markup.xml +8178 -0
  343. data/reference-docs/mathml-source/xml/contributors.xml +425 -0
  344. data/reference-docs/mathml-source/xml/dom-bindings.xml +20 -0
  345. data/reference-docs/mathml-source/xml/dom-intro.xml +114 -0
  346. data/reference-docs/mathml-source/xml/fundamentals.xml +1646 -0
  347. data/reference-docs/mathml-source/xml/glossary.xml +519 -0
  348. data/reference-docs/mathml-source/xml/interface.xml +1096 -0
  349. data/reference-docs/mathml-source/xml/introduction.xml +724 -0
  350. data/reference-docs/mathml-source/xml/mathml-css-sample.xml +304 -0
  351. data/reference-docs/mathml-source/xml/mathml-dom.xml +3813 -0
  352. data/reference-docs/mathml-source/xml/mathml-spec.xml +356 -0
  353. data/reference-docs/mathml-source/xml/mixing.xml +982 -0
  354. data/reference-docs/mathml-source/xml/operator-dict.xml +551 -0
  355. data/reference-docs/mathml-source/xml/parsing.xml +2565 -0
  356. data/reference-docs/mathml-source/xml/presentation-markup.xml +6834 -0
  357. data/reference-docs/mathml-source/xml/references.xml +323 -0
  358. data/reference-docs/mathml-source/xml/validation-grammar.xml +877 -0
  359. data/schemas/README.adoc +15 -0
  360. data/schemas/mathml2/CVS/Entries +4 -0
  361. data/schemas/mathml2/CVS/Repository +1 -0
  362. data/schemas/mathml2/CVS/Root +1 -0
  363. data/schemas/mathml2/common/CVS/Entries +4 -0
  364. data/schemas/mathml2/common/CVS/Repository +1 -0
  365. data/schemas/mathml2/common/CVS/Root +1 -0
  366. data/schemas/mathml2/common/common-attribs.xsd +41 -0
  367. data/schemas/mathml2/common/math.xsd +126 -0
  368. data/schemas/mathml2/common/xlink-href.xsd +20 -0
  369. data/schemas/mathml2/content/CVS/Entries +16 -0
  370. data/schemas/mathml2/content/CVS/Repository +1 -0
  371. data/schemas/mathml2/content/CVS/Root +1 -0
  372. data/schemas/mathml2/content/arith.xsd +90 -0
  373. data/schemas/mathml2/content/calculus.xsd +146 -0
  374. data/schemas/mathml2/content/common-attrib.xsd +30 -0
  375. data/schemas/mathml2/content/constants.xsd +83 -0
  376. data/schemas/mathml2/content/constructs.xsd +260 -0
  377. data/schemas/mathml2/content/elementary-functions.xsd +117 -0
  378. data/schemas/mathml2/content/functions.xsd +73 -0
  379. data/schemas/mathml2/content/linear-algebra.xsd +173 -0
  380. data/schemas/mathml2/content/logic.xsd +53 -0
  381. data/schemas/mathml2/content/relations.xsd +55 -0
  382. data/schemas/mathml2/content/semantics.xsd +85 -0
  383. data/schemas/mathml2/content/sets.xsd +236 -0
  384. data/schemas/mathml2/content/statistics.xsd +136 -0
  385. data/schemas/mathml2/content/tokens.xsd +120 -0
  386. data/schemas/mathml2/content/tokens.xsd.~1.3.~ +119 -0
  387. data/schemas/mathml2/content/vector-calculus.xsd +88 -0
  388. data/schemas/mathml2/mathml2.xsd +59 -0
  389. data/schemas/mathml2/presentation/CVS/Entries +12 -0
  390. data/schemas/mathml2/presentation/CVS/Repository +1 -0
  391. data/schemas/mathml2/presentation/CVS/Root +1 -0
  392. data/schemas/mathml2/presentation/action.xsd +44 -0
  393. data/schemas/mathml2/presentation/characters.xsd +37 -0
  394. data/schemas/mathml2/presentation/common-attribs.xsd +113 -0
  395. data/schemas/mathml2/presentation/common-types.xsd +103 -0
  396. data/schemas/mathml2/presentation/error.xsd +40 -0
  397. data/schemas/mathml2/presentation/layout.xsd +195 -0
  398. data/schemas/mathml2/presentation/scripts.xsd +186 -0
  399. data/schemas/mathml2/presentation/space.xsd +52 -0
  400. data/schemas/mathml2/presentation/style.xsd +69 -0
  401. data/schemas/mathml2/presentation/table.xsd +216 -0
  402. data/schemas/mathml2/presentation/tokens.xsd +124 -0
  403. data/schemas/mathml3/mathml3-common.xsd +99 -0
  404. data/schemas/mathml3/mathml3-content.xsd +684 -0
  405. data/schemas/mathml3/mathml3-presentation.xsd +2151 -0
  406. data/schemas/mathml3/mathml3-strict-content.xsd +186 -0
  407. data/schemas/mathml3/mathml3.xsd +9 -0
  408. metadata +308 -4
  409. data/lib/mml/v3/common_attributes.rb +0 -22
  410. data/lib/mml/v4/common_attributes.rb +0 -26
@@ -0,0 +1,163 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ # Sets operator base module
7
+ module Sets
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :definition_url, :string
11
+ attribute :encoding_value, :string
12
+
13
+ xml do
14
+ namespace Mml::Namespace
15
+ map_attribute "definitionURL", to: :definition_url
16
+ map_attribute "encoding", to: :encoding_value
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ module Set
23
+ def self.included(klass)
24
+ klass.class_eval do
25
+ include Sets
26
+
27
+ attribute :type, :string
28
+ xml do
29
+ element "set"
30
+ mixed_content
31
+ map_attribute "type", to: :type
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ module List
38
+ def self.included(klass)
39
+ klass.class_eval do
40
+ include Sets
41
+
42
+ attribute :order, :string
43
+ xml do
44
+ element "list"
45
+ mixed_content
46
+ map_attribute "order", to: :order
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ module Union
53
+ def self.included(klass)
54
+ klass.class_eval do
55
+ include Sets
56
+
57
+ xml { element "union" }
58
+ end
59
+ end
60
+ end
61
+
62
+ module Intersect
63
+ def self.included(klass)
64
+ klass.class_eval do
65
+ include Sets
66
+
67
+ xml { element "intersect" }
68
+ end
69
+ end
70
+ end
71
+
72
+ module In
73
+ def self.included(klass)
74
+ klass.class_eval do
75
+ include Sets
76
+
77
+ xml { element "in" }
78
+ end
79
+ end
80
+ end
81
+
82
+ module Notin
83
+ def self.included(klass)
84
+ klass.class_eval do
85
+ include Sets
86
+
87
+ xml { element "notin" }
88
+ end
89
+ end
90
+ end
91
+
92
+ module Subset
93
+ def self.included(klass)
94
+ klass.class_eval do
95
+ include Sets
96
+
97
+ xml { element "subset" }
98
+ end
99
+ end
100
+ end
101
+
102
+ module Prsubset
103
+ def self.included(klass)
104
+ klass.class_eval do
105
+ include Sets
106
+
107
+ xml { element "prsubset" }
108
+ end
109
+ end
110
+ end
111
+
112
+ module Notsubset
113
+ def self.included(klass)
114
+ klass.class_eval do
115
+ include Sets
116
+
117
+ xml { element "notsubset" }
118
+ end
119
+ end
120
+ end
121
+
122
+ module Notprsubset
123
+ def self.included(klass)
124
+ klass.class_eval do
125
+ include Sets
126
+
127
+ xml { element "notprsubset" }
128
+ end
129
+ end
130
+ end
131
+
132
+ module Setdiff
133
+ def self.included(klass)
134
+ klass.class_eval do
135
+ include Sets
136
+
137
+ xml { element "setdiff" }
138
+ end
139
+ end
140
+ end
141
+
142
+ module Card
143
+ def self.included(klass)
144
+ klass.class_eval do
145
+ include Sets
146
+
147
+ xml { element "card" }
148
+ end
149
+ end
150
+ end
151
+
152
+ module Cartesianproduct
153
+ def self.included(klass)
154
+ klass.class_eval do
155
+ include Sets
156
+
157
+ xml { element "cartesianproduct" }
158
+ end
159
+ end
160
+ end
161
+ end
162
+ end
163
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ # share enables referencing and reuse of subexpressions.
7
+ module Share
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :href, :string
11
+ attribute :src, :string
12
+
13
+ xml do
14
+ namespace Mml::Namespace
15
+ element "share"
16
+ map_attribute "href", to: :href
17
+ map_attribute "src", to: :src
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,95 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ # Statistics operator base module
7
+ module Statistics
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :definition_url, :string
11
+ attribute :encoding_value, :string
12
+
13
+ xml do
14
+ namespace Mml::Namespace
15
+ map_attribute "definitionURL", to: :definition_url
16
+ map_attribute "encoding", to: :encoding_value
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ module Mean
23
+ def self.included(klass)
24
+ klass.class_eval do
25
+ include Statistics
26
+
27
+ xml { element "mean" }
28
+ end
29
+ end
30
+ end
31
+
32
+ module Sdev
33
+ def self.included(klass)
34
+ klass.class_eval do
35
+ include Statistics
36
+
37
+ xml { element "sdev" }
38
+ end
39
+ end
40
+ end
41
+
42
+ module Variance
43
+ def self.included(klass)
44
+ klass.class_eval do
45
+ include Statistics
46
+
47
+ xml { element "variance" }
48
+ end
49
+ end
50
+ end
51
+
52
+ module Median
53
+ def self.included(klass)
54
+ klass.class_eval do
55
+ include Statistics
56
+
57
+ xml { element "median" }
58
+ end
59
+ end
60
+ end
61
+
62
+ module Mode
63
+ def self.included(klass)
64
+ klass.class_eval do
65
+ include Statistics
66
+
67
+ xml { element "mode" }
68
+ end
69
+ end
70
+ end
71
+
72
+ module Moment
73
+ def self.included(klass)
74
+ klass.class_eval do
75
+ include Statistics
76
+
77
+ xml { element "moment" }
78
+ end
79
+ end
80
+ end
81
+
82
+ module Momentabout
83
+ def self.included(klass)
84
+ klass.class_eval do
85
+ xml do
86
+ namespace Mml::Namespace
87
+ element "momentabout"
88
+ mixed_content
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ # Vector calculus operator base module
7
+ module VectorCalculus
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :definition_url, :string
11
+ attribute :encoding_value, :string
12
+
13
+ xml do
14
+ namespace Mml::Namespace
15
+ map_attribute "definitionURL", to: :definition_url
16
+ map_attribute "encoding", to: :encoding_value
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ module Divergence
23
+ def self.included(klass)
24
+ klass.class_eval do
25
+ include VectorCalculus
26
+
27
+ xml { element "divergence" }
28
+ end
29
+ end
30
+ end
31
+
32
+ module Grad
33
+ def self.included(klass)
34
+ klass.class_eval do
35
+ include VectorCalculus
36
+
37
+ xml { element "grad" }
38
+ end
39
+ end
40
+ end
41
+
42
+ module Curl
43
+ def self.included(klass)
44
+ klass.class_eval do
45
+ include VectorCalculus
46
+
47
+ xml { element "curl" }
48
+ end
49
+ end
50
+ end
51
+
52
+ module Laplacian
53
+ def self.included(klass)
54
+ klass.class_eval do
55
+ include VectorCalculus
56
+
57
+ xml { element "laplacian" }
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,195 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ # Content MathML elements autoloader
6
+ module Content
7
+ autoload :Cn, "#{__dir__}/content/cn"
8
+ autoload :Ci, "#{__dir__}/content/ci"
9
+ autoload :Csymbol, "#{__dir__}/content/csymbol"
10
+ autoload :Cbytes, "#{__dir__}/content/cbytes"
11
+ autoload :Cs, "#{__dir__}/content/cs"
12
+ autoload :Cerror, "#{__dir__}/content/cerror"
13
+ autoload :Apply, "#{__dir__}/content/apply"
14
+ autoload :Semantics, "#{__dir__}/content/semantics"
15
+ autoload :Annotation, "#{__dir__}/content/annotation"
16
+ autoload :AnnotationXml, "#{__dir__}/content/annotation_xml"
17
+
18
+ # Constructs
19
+ autoload :Bvar, "#{__dir__}/content/bvar"
20
+ autoload :Bind, "#{__dir__}/content/bind"
21
+ autoload :Condition, "#{__dir__}/content/condition"
22
+ autoload :Interval, "#{__dir__}/content/interval"
23
+ autoload :Lambda, "#{__dir__}/content/lambda"
24
+ autoload :Inverse, "#{__dir__}/content/inverse"
25
+ autoload :Degree, "#{__dir__}/content/degree"
26
+ autoload :Piecewise, "#{__dir__}/content/piecewise"
27
+ autoload :Piece, "#{__dir__}/content/piece"
28
+ autoload :Otherwise, "#{__dir__}/content/otherwise"
29
+ autoload :Sep, "#{__dir__}/content/sep"
30
+
31
+ # Arithmetic (all defined in arith.rb)
32
+ autoload :Arith, "#{__dir__}/content/arith"
33
+ autoload :Abs, "#{__dir__}/content/arith"
34
+ autoload :Conjugate, "#{__dir__}/content/arith"
35
+ autoload :Arg, "#{__dir__}/content/arith"
36
+ autoload :Real, "#{__dir__}/content/arith"
37
+ autoload :Imaginary, "#{__dir__}/content/arith"
38
+ autoload :Floor, "#{__dir__}/content/arith"
39
+ autoload :Ceiling, "#{__dir__}/content/arith"
40
+ autoload :Quotient, "#{__dir__}/content/arith"
41
+ autoload :Divide, "#{__dir__}/content/arith"
42
+ autoload :Rem, "#{__dir__}/content/arith"
43
+ autoload :Minus, "#{__dir__}/content/arith"
44
+ autoload :Plus, "#{__dir__}/content/arith"
45
+ autoload :Times, "#{__dir__}/content/arith"
46
+ autoload :Power, "#{__dir__}/content/arith"
47
+ autoload :Root, "#{__dir__}/content/arith"
48
+ autoload :Max, "#{__dir__}/content/arith"
49
+ autoload :Min, "#{__dir__}/content/arith"
50
+ autoload :Gcd, "#{__dir__}/content/arith"
51
+ autoload :Lcm, "#{__dir__}/content/arith"
52
+ autoload :Sum, "#{__dir__}/content/arith"
53
+ autoload :Product, "#{__dir__}/content/arith"
54
+ autoload :Factorial, "#{__dir__}/content/arith"
55
+
56
+ # Logic (all defined in logic.rb)
57
+ autoload :Logic, "#{__dir__}/content/logic"
58
+ autoload :And, "#{__dir__}/content/logic"
59
+ autoload :Or, "#{__dir__}/content/logic"
60
+ autoload :Xor, "#{__dir__}/content/logic"
61
+ autoload :Not, "#{__dir__}/content/logic"
62
+ autoload :Implies, "#{__dir__}/content/logic"
63
+ autoload :Forall, "#{__dir__}/content/logic"
64
+ autoload :Exists, "#{__dir__}/content/logic"
65
+
66
+ # Relations (all defined in relations.rb)
67
+ autoload :Relations, "#{__dir__}/content/relations"
68
+ autoload :Eq, "#{__dir__}/content/relations"
69
+ autoload :Neq, "#{__dir__}/content/relations"
70
+ autoload :Lt, "#{__dir__}/content/relations"
71
+ autoload :Gt, "#{__dir__}/content/relations"
72
+ autoload :Leq, "#{__dir__}/content/relations"
73
+ autoload :Geq, "#{__dir__}/content/relations"
74
+ autoload :Equivalent, "#{__dir__}/content/relations"
75
+ autoload :Approx, "#{__dir__}/content/relations"
76
+ autoload :Factorof, "#{__dir__}/content/relations"
77
+
78
+ # Sets (all defined in sets.rb)
79
+ autoload :Sets, "#{__dir__}/content/sets"
80
+ autoload :Set, "#{__dir__}/content/sets"
81
+ autoload :Union, "#{__dir__}/content/sets"
82
+ autoload :Intersect, "#{__dir__}/content/sets"
83
+ autoload :In, "#{__dir__}/content/sets"
84
+ autoload :Notin, "#{__dir__}/content/sets"
85
+ autoload :Subset, "#{__dir__}/content/sets"
86
+ autoload :Prsubset, "#{__dir__}/content/sets"
87
+ autoload :Notsubset, "#{__dir__}/content/sets"
88
+ autoload :Notprsubset, "#{__dir__}/content/sets"
89
+ autoload :Setdiff, "#{__dir__}/content/sets"
90
+ autoload :Card, "#{__dir__}/content/sets"
91
+ autoload :Cartesianproduct, "#{__dir__}/content/sets"
92
+
93
+ # Calculus (all defined in calculus.rb)
94
+ autoload :Calculus, "#{__dir__}/content/calculus"
95
+ autoload :Int, "#{__dir__}/content/calculus"
96
+ autoload :Diff, "#{__dir__}/content/calculus"
97
+ autoload :Partialdiff, "#{__dir__}/content/calculus"
98
+ autoload :Limit, "#{__dir__}/content/calculus"
99
+ autoload :Lowlimit, "#{__dir__}/content/calculus"
100
+ autoload :Uplimit, "#{__dir__}/content/calculus"
101
+ autoload :Tendsto, "#{__dir__}/content/calculus"
102
+
103
+ # Functions (all defined in functions.rb)
104
+ autoload :Functions, "#{__dir__}/content/functions"
105
+ autoload :Compose, "#{__dir__}/content/functions"
106
+ autoload :Domain, "#{__dir__}/content/functions"
107
+ autoload :Codomain, "#{__dir__}/content/functions"
108
+ autoload :Image, "#{__dir__}/content/functions"
109
+ autoload :Ident, "#{__dir__}/content/functions"
110
+ autoload :Domainofapplication, "#{__dir__}/content/functions"
111
+ autoload :Fn, "#{__dir__}/content/fn"
112
+ autoload :Reln, "#{__dir__}/content/reln"
113
+ autoload :Declare, "#{__dir__}/content/declare"
114
+ autoload :Share, "#{__dir__}/content/share"
115
+
116
+ # Elementary functions (all defined in elementary_functions.rb)
117
+ autoload :ElementaryFunctions, "#{__dir__}/content/elementary_functions"
118
+ autoload :Exp, "#{__dir__}/content/elementary_functions"
119
+ autoload :Ln, "#{__dir__}/content/elementary_functions"
120
+ autoload :Log, "#{__dir__}/content/elementary_functions"
121
+ autoload :Logbase, "#{__dir__}/content/elementary_functions"
122
+ autoload :Sin, "#{__dir__}/content/elementary_functions"
123
+ autoload :Cos, "#{__dir__}/content/elementary_functions"
124
+ autoload :Tan, "#{__dir__}/content/elementary_functions"
125
+ autoload :Sec, "#{__dir__}/content/elementary_functions"
126
+ autoload :Csc, "#{__dir__}/content/elementary_functions"
127
+ autoload :Cot, "#{__dir__}/content/elementary_functions"
128
+ autoload :Arcsin, "#{__dir__}/content/elementary_functions"
129
+ autoload :Arccos, "#{__dir__}/content/elementary_functions"
130
+ autoload :Arctan, "#{__dir__}/content/elementary_functions"
131
+ autoload :Arccot, "#{__dir__}/content/elementary_functions"
132
+ autoload :Arccsc, "#{__dir__}/content/elementary_functions"
133
+ autoload :Arcsec, "#{__dir__}/content/elementary_functions"
134
+ autoload :Sinh, "#{__dir__}/content/elementary_functions"
135
+ autoload :Cosh, "#{__dir__}/content/elementary_functions"
136
+ autoload :Tanh, "#{__dir__}/content/elementary_functions"
137
+ autoload :Sech, "#{__dir__}/content/elementary_functions"
138
+ autoload :Csch, "#{__dir__}/content/elementary_functions"
139
+ autoload :Coth, "#{__dir__}/content/elementary_functions"
140
+ autoload :Arcsinh, "#{__dir__}/content/elementary_functions"
141
+ autoload :Arccosh, "#{__dir__}/content/elementary_functions"
142
+ autoload :Arctanh, "#{__dir__}/content/elementary_functions"
143
+ autoload :Arccoth, "#{__dir__}/content/elementary_functions"
144
+ autoload :Arccsch, "#{__dir__}/content/elementary_functions"
145
+ autoload :Arcsech, "#{__dir__}/content/elementary_functions"
146
+
147
+ # Constants (all defined in constants.rb)
148
+ autoload :Constants, "#{__dir__}/content/constants"
149
+ autoload :Naturalnumbers, "#{__dir__}/content/constants"
150
+ autoload :Primes, "#{__dir__}/content/constants"
151
+ autoload :Integers, "#{__dir__}/content/constants"
152
+ autoload :Rationals, "#{__dir__}/content/constants"
153
+ autoload :Reals, "#{__dir__}/content/constants"
154
+ autoload :Complexes, "#{__dir__}/content/constants"
155
+ autoload :Emptyset, "#{__dir__}/content/constants"
156
+ autoload :Exponentiale, "#{__dir__}/content/constants"
157
+ autoload :Imaginaryi, "#{__dir__}/content/constants"
158
+ autoload :Pi, "#{__dir__}/content/constants"
159
+ autoload :Eulergamma, "#{__dir__}/content/constants"
160
+ autoload :True, "#{__dir__}/content/constants"
161
+ autoload :False, "#{__dir__}/content/constants"
162
+ autoload :Infinity, "#{__dir__}/content/constants"
163
+ autoload :Notanumber, "#{__dir__}/content/constants"
164
+
165
+ # Linear algebra (all defined in linear_algebra.rb)
166
+ autoload :LinearAlgebra, "#{__dir__}/content/linear_algebra"
167
+ autoload :Vector, "#{__dir__}/content/linear_algebra"
168
+ autoload :Matrix, "#{__dir__}/content/linear_algebra"
169
+ autoload :Matrixrow, "#{__dir__}/content/linear_algebra"
170
+ autoload :Determinant, "#{__dir__}/content/linear_algebra"
171
+ autoload :Transpose, "#{__dir__}/content/linear_algebra"
172
+ autoload :Selector, "#{__dir__}/content/linear_algebra"
173
+ autoload :Vectorproduct, "#{__dir__}/content/linear_algebra"
174
+ autoload :Scalarproduct, "#{__dir__}/content/linear_algebra"
175
+ autoload :Outerproduct, "#{__dir__}/content/linear_algebra"
176
+
177
+ # Vector calculus (all defined in vector_calculus.rb)
178
+ autoload :VectorCalculus, "#{__dir__}/content/vector_calculus"
179
+ autoload :Divergence, "#{__dir__}/content/vector_calculus"
180
+ autoload :Grad, "#{__dir__}/content/vector_calculus"
181
+ autoload :Curl, "#{__dir__}/content/vector_calculus"
182
+ autoload :Laplacian, "#{__dir__}/content/vector_calculus"
183
+
184
+ # Statistics (all defined in statistics.rb)
185
+ autoload :Statistics, "#{__dir__}/content/statistics"
186
+ autoload :Mean, "#{__dir__}/content/statistics"
187
+ autoload :Sdev, "#{__dir__}/content/statistics"
188
+ autoload :Variance, "#{__dir__}/content/statistics"
189
+ autoload :Median, "#{__dir__}/content/statistics"
190
+ autoload :Mode, "#{__dir__}/content/statistics"
191
+ autoload :Moment, "#{__dir__}/content/statistics"
192
+ autoload :Momentabout, "#{__dir__}/content/statistics"
193
+ end
194
+ end
195
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ # Deprecated MathML 1 font attributes: fontfamily, fontweight, fontstyle,
6
+ # fontsize, color, background.
7
+ # These are removed in MathML 4 default schema but valid in mathml4-legacy.
8
+ module DeprecatedFontAttributes
9
+ def self.included(klass)
10
+ klass.class_eval do
11
+ attribute :fontfamily, :string
12
+ attribute :fontweight, :string
13
+ attribute :fontstyle, :string
14
+ attribute :fontsize, :string
15
+ attribute :color, :string
16
+ attribute :background, :string
17
+
18
+ xml do
19
+ namespace Mml::Namespace
20
+ map_attribute "fontfamily", to: :fontfamily
21
+ map_attribute "fontweight", to: :fontweight
22
+ map_attribute "fontstyle", to: :fontstyle
23
+ map_attribute "fontsize", to: :fontsize
24
+ map_attribute "color", to: :color
25
+ map_attribute "background", to: :background
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Maction
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+ attribute :actiontype, :string
13
+ attribute :selection, :string
14
+
15
+ xml do
16
+ namespace Mml::Namespace
17
+ element "maction"
18
+ mixed_content
19
+
20
+ map_attribute "mathcolor", to: :mathcolor
21
+ map_attribute "mathbackground", to: :mathbackground
22
+ map_attribute "actiontype", to: :actiontype
23
+ map_attribute "selection", to: :selection
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Maligngroup
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+ attribute :groupalign, :string
13
+
14
+ xml do
15
+ namespace Mml::Namespace
16
+ element "maligngroup"
17
+
18
+ map_attribute "mathcolor", to: :mathcolor
19
+ map_attribute "mathbackground", to: :mathbackground
20
+ map_attribute "groupalign", to: :groupalign
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Malignmark
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+ attribute :edge, :string
13
+
14
+ xml do
15
+ namespace Mml::Namespace
16
+ element "malignmark"
17
+
18
+ map_attribute "mathcolor", to: :mathcolor
19
+ map_attribute "mathbackground", to: :mathbackground
20
+ map_attribute "edge", to: :edge
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end