mml 2.3.0 → 2.3.2

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 (336) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +9 -0
  3. data/.rubocop.yml +4 -0
  4. data/.rubocop_todo.yml +83 -18
  5. data/Gemfile +0 -2
  6. data/README.adoc +176 -47
  7. data/Rakefile +16 -1
  8. data/lib/mml/base/common_attributes.rb +44 -0
  9. data/lib/mml/base/content/annotation.rb +28 -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 +22 -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/maction.rb +1 -0
  47. data/lib/mml/base/math.rb +47 -0
  48. data/lib/mml/base/menclose.rb +1 -1
  49. data/lib/mml/base/mfenced.rb +2 -2
  50. data/lib/mml/base/mglyph.rb +2 -2
  51. data/lib/mml/base/mi.rb +9 -6
  52. data/lib/mml/base/mlabeledtr.rb +2 -6
  53. data/lib/mml/base/mn.rb +3 -2
  54. data/lib/mml/base/mo.rb +3 -3
  55. data/lib/mml/base/mrow.rb +0 -2
  56. data/lib/mml/base/ms.rb +4 -6
  57. data/lib/mml/base/mscarries.rb +1 -1
  58. data/lib/mml/base/mspace.rb +0 -2
  59. data/lib/mml/base/mstyle.rb +4 -8
  60. data/lib/mml/base/mtable.rb +8 -0
  61. data/lib/mml/base/mtd.rb +6 -0
  62. data/lib/mml/base/mtext.rb +0 -2
  63. data/lib/mml/base/semantics.rb +4 -2
  64. data/lib/mml/base/universal_presentation_attributes.rb +46 -0
  65. data/lib/mml/base/v3_common.rb +16 -0
  66. data/lib/mml/base/v3_presentation_attributes.rb +15 -0
  67. data/lib/mml/base/v4_attributes.rb +4 -18
  68. data/lib/mml/base.rb +11 -0
  69. data/lib/mml/common_elements.rb +336 -0
  70. data/lib/mml/context_configuration.rb +29 -0
  71. data/lib/mml/v2/annotation.rb +9 -0
  72. data/lib/mml/v2/annotation_xml.rb +9 -0
  73. data/lib/mml/v2/apply.rb +9 -0
  74. data/lib/mml/v2/arith.rb +93 -0
  75. data/lib/mml/v2/bind.rb +9 -0
  76. data/lib/mml/v2/bvar.rb +9 -0
  77. data/lib/mml/v2/calculus.rb +33 -0
  78. data/lib/mml/v2/ci.rb +9 -0
  79. data/lib/mml/v2/cn.rb +9 -0
  80. data/lib/mml/v2/common_elements.rb +34 -0
  81. data/lib/mml/v2/condition.rb +9 -0
  82. data/lib/mml/v2/configuration.rb +13 -0
  83. data/lib/mml/v2/constants.rb +65 -0
  84. data/lib/mml/v2/csymbol.rb +9 -0
  85. data/lib/mml/v2/degree.rb +9 -0
  86. data/lib/mml/v2/elementary_functions.rb +121 -0
  87. data/lib/mml/v2/fn.rb +9 -0
  88. data/lib/mml/v2/functions.rb +29 -0
  89. data/lib/mml/v2/interval.rb +9 -0
  90. data/lib/mml/v2/inverse.rb +9 -0
  91. data/lib/mml/v2/lambda.rb +9 -0
  92. data/lib/mml/v2/linear_algebra.rb +41 -0
  93. data/lib/mml/v2/logic.rb +33 -0
  94. data/lib/mml/v2/maction.rb +9 -0
  95. data/lib/mml/v2/maligngroup.rb +9 -0
  96. data/lib/mml/v2/malignmark.rb +9 -0
  97. data/lib/mml/v2/math.rb +11 -0
  98. data/lib/mml/v2/menclose.rb +9 -0
  99. data/lib/mml/v2/merror.rb +9 -0
  100. data/lib/mml/v2/mfenced.rb +9 -0
  101. data/lib/mml/v2/mfrac.rb +9 -0
  102. data/lib/mml/v2/mfraction.rb +9 -0
  103. data/lib/mml/v2/mglyph.rb +9 -0
  104. data/lib/mml/v2/mi.rb +9 -0
  105. data/lib/mml/v2/mlabeledtr.rb +9 -0
  106. data/lib/mml/v2/mlongdiv.rb +9 -0
  107. data/lib/mml/v2/mmultiscripts.rb +9 -0
  108. data/lib/mml/v2/mn.rb +9 -0
  109. data/lib/mml/v2/mo.rb +10 -0
  110. data/lib/mml/v2/mover.rb +9 -0
  111. data/lib/mml/v2/mpadded.rb +9 -0
  112. data/lib/mml/v2/mphantom.rb +9 -0
  113. data/lib/mml/v2/mprescripts.rb +9 -0
  114. data/lib/mml/v2/mroot.rb +9 -0
  115. data/lib/mml/v2/mrow.rb +9 -0
  116. data/lib/mml/v2/ms.rb +9 -0
  117. data/lib/mml/v2/mscarries.rb +9 -0
  118. data/lib/mml/v2/mscarry.rb +9 -0
  119. data/lib/mml/v2/msgroup.rb +9 -0
  120. data/lib/mml/v2/msline.rb +9 -0
  121. data/lib/mml/v2/mspace.rb +9 -0
  122. data/lib/mml/v2/msqrt.rb +9 -0
  123. data/lib/mml/v2/msrow.rb +9 -0
  124. data/lib/mml/v2/mstack.rb +9 -0
  125. data/lib/mml/v2/mstyle.rb +10 -0
  126. data/lib/mml/v2/msub.rb +9 -0
  127. data/lib/mml/v2/msubsup.rb +9 -0
  128. data/lib/mml/v2/msup.rb +9 -0
  129. data/lib/mml/v2/mtable.rb +9 -0
  130. data/lib/mml/v2/mtd.rb +9 -0
  131. data/lib/mml/v2/mtext.rb +9 -0
  132. data/lib/mml/v2/mtr.rb +9 -0
  133. data/lib/mml/v2/munder.rb +9 -0
  134. data/lib/mml/v2/munderover.rb +9 -0
  135. data/lib/mml/v2/namespace.rb +7 -0
  136. data/lib/mml/v2/none.rb +9 -0
  137. data/lib/mml/v2/otherwise.rb +9 -0
  138. data/lib/mml/v2/piece.rb +9 -0
  139. data/lib/mml/v2/piecewise.rb +9 -0
  140. data/lib/mml/v2/relations.rb +41 -0
  141. data/lib/mml/v2/reln.rb +13 -0
  142. data/lib/mml/v2/semantics.rb +9 -0
  143. data/lib/mml/v2/sep.rb +9 -0
  144. data/lib/mml/v2/sets.rb +57 -0
  145. data/lib/mml/v2/statistics.rb +33 -0
  146. data/lib/mml/v2/vector_calculus.rb +21 -0
  147. data/lib/mml/v2.rb +311 -0
  148. data/lib/mml/v3/annotation.rb +10 -0
  149. data/lib/mml/v3/annotation_xml.rb +10 -0
  150. data/lib/mml/v3/apply.rb +10 -0
  151. data/lib/mml/v3/arith.rb +115 -0
  152. data/lib/mml/v3/bind.rb +10 -0
  153. data/lib/mml/v3/calculus.rb +40 -0
  154. data/lib/mml/v3/cbytes.rb +10 -0
  155. data/lib/mml/v3/cerror.rb +10 -0
  156. data/lib/mml/v3/ci.rb +10 -0
  157. data/lib/mml/v3/cn.rb +10 -0
  158. data/lib/mml/v3/common_elements.rb +34 -0
  159. data/lib/mml/v3/constants.rb +80 -0
  160. data/lib/mml/v3/constructs.rb +55 -0
  161. data/lib/mml/v3/cs.rb +10 -0
  162. data/lib/mml/v3/csymbol.rb +10 -0
  163. data/lib/mml/v3/deprecated_content.rb +29 -0
  164. data/lib/mml/v3/elementary_functions.rb +145 -0
  165. data/lib/mml/v3/functions.rb +35 -0
  166. data/lib/mml/v3/linear_algebra.rb +50 -0
  167. data/lib/mml/v3/logic.rb +40 -0
  168. data/lib/mml/v3/maction.rb +1 -1
  169. data/lib/mml/v3/math.rb +7 -1
  170. data/lib/mml/v3/mi.rb +1 -0
  171. data/lib/mml/v3/mn.rb +1 -0
  172. data/lib/mml/v3/mo.rb +1 -0
  173. data/lib/mml/v3/mrow.rb +1 -0
  174. data/lib/mml/v3/ms.rb +1 -0
  175. data/lib/mml/v3/mstyle.rb +1 -0
  176. data/lib/mml/v3/mtext.rb +1 -0
  177. data/lib/mml/v3/relations.rb +50 -0
  178. data/lib/mml/v3/sets.rb +70 -0
  179. data/lib/mml/v3/statistics.rb +40 -0
  180. data/lib/mml/v3/vector_calculus.rb +25 -0
  181. data/lib/mml/v3.rb +25 -0
  182. data/lib/mml/v4/a.rb +4 -3
  183. data/lib/mml/v4/annotation.rb +10 -0
  184. data/lib/mml/v4/annotation_xml.rb +14 -0
  185. data/lib/mml/v4/apply.rb +9 -0
  186. data/lib/mml/v4/arith.rb +93 -0
  187. data/lib/mml/v4/calculus.rb +25 -0
  188. data/lib/mml/v4/cbytes.rb +9 -0
  189. data/lib/mml/v4/cerror.rb +9 -0
  190. data/lib/mml/v4/ci.rb +9 -0
  191. data/lib/mml/v4/cn.rb +9 -0
  192. data/lib/mml/v4/common_elements.rb +33 -0
  193. data/lib/mml/v4/constants.rb +65 -0
  194. data/lib/mml/v4/constructs.rb +49 -0
  195. data/lib/mml/v4/cs.rb +9 -0
  196. data/lib/mml/v4/csymbol.rb +9 -0
  197. data/lib/mml/v4/deprecated_content.rb +25 -0
  198. data/lib/mml/v4/elementary_functions.rb +118 -0
  199. data/lib/mml/v4/factorof.rb +9 -0
  200. data/lib/mml/v4/functions.rb +30 -0
  201. data/lib/mml/v4/limit.rb +9 -0
  202. data/lib/mml/v4/linear_algebra.rb +41 -0
  203. data/lib/mml/v4/logic.rb +33 -0
  204. data/lib/mml/v4/maction.rb +1 -2
  205. data/lib/mml/v4/maligngroup.rb +0 -1
  206. data/lib/mml/v4/malignmark.rb +0 -1
  207. data/lib/mml/v4/math.rb +1 -1
  208. data/lib/mml/v4/menclose.rb +0 -1
  209. data/lib/mml/v4/merror.rb +0 -1
  210. data/lib/mml/v4/mfenced.rb +0 -1
  211. data/lib/mml/v4/mfrac.rb +0 -1
  212. data/lib/mml/v4/mfraction.rb +0 -1
  213. data/lib/mml/v4/mglyph.rb +0 -1
  214. data/lib/mml/v4/mi.rb +1 -1
  215. data/lib/mml/v4/mlabeledtr.rb +0 -1
  216. data/lib/mml/v4/mlongdiv.rb +0 -1
  217. data/lib/mml/v4/mmultiscripts.rb +0 -1
  218. data/lib/mml/v4/mn.rb +1 -1
  219. data/lib/mml/v4/mo.rb +1 -1
  220. data/lib/mml/v4/mover.rb +0 -1
  221. data/lib/mml/v4/mpadded.rb +0 -1
  222. data/lib/mml/v4/mphantom.rb +0 -1
  223. data/lib/mml/v4/mprescripts.rb +0 -1
  224. data/lib/mml/v4/mroot.rb +0 -1
  225. data/lib/mml/v4/mrow.rb +1 -1
  226. data/lib/mml/v4/ms.rb +1 -1
  227. data/lib/mml/v4/mscarries.rb +0 -1
  228. data/lib/mml/v4/mscarry.rb +0 -1
  229. data/lib/mml/v4/msgroup.rb +0 -1
  230. data/lib/mml/v4/msline.rb +0 -1
  231. data/lib/mml/v4/mspace.rb +0 -1
  232. data/lib/mml/v4/msqrt.rb +0 -1
  233. data/lib/mml/v4/msrow.rb +0 -1
  234. data/lib/mml/v4/mstack.rb +0 -1
  235. data/lib/mml/v4/mstyle.rb +1 -1
  236. data/lib/mml/v4/msub.rb +0 -1
  237. data/lib/mml/v4/msubsup.rb +0 -1
  238. data/lib/mml/v4/msup.rb +0 -1
  239. data/lib/mml/v4/mtable.rb +0 -1
  240. data/lib/mml/v4/mtd.rb +0 -1
  241. data/lib/mml/v4/mtext.rb +1 -1
  242. data/lib/mml/v4/mtr.rb +0 -1
  243. data/lib/mml/v4/munder.rb +0 -1
  244. data/lib/mml/v4/munderover.rb +0 -1
  245. data/lib/mml/v4/none.rb +0 -1
  246. data/lib/mml/v4/relations.rb +37 -0
  247. data/lib/mml/v4/semantics.rb +0 -1
  248. data/lib/mml/v4/sets.rb +57 -0
  249. data/lib/mml/v4/statistics.rb +33 -0
  250. data/lib/mml/v4/tendsto.rb +9 -0
  251. data/lib/mml/v4/vector_calculus.rb +21 -0
  252. data/lib/mml/v4.rb +421 -44
  253. data/lib/mml/version.rb +1 -1
  254. data/lib/mml/versioned_parser.rb +1 -1
  255. data/lib/mml.rb +3 -1
  256. data/reference-docs/mathml-source/pubtext/mathmlspec.dtd +150 -0
  257. data/reference-docs/mathml-source/pubtext/xmlspec.dtd +2649 -0
  258. data/reference-docs/mathml-source/readme.txt +40 -0
  259. data/reference-docs/mathml-source/run +296 -0
  260. data/reference-docs/mathml-source/style/html/html2xhtml.xsl +216 -0
  261. data/reference-docs/mathml-source/style/html/images.xsl +98 -0
  262. data/reference-docs/mathml-source/style/html/mml6.xsl +1156 -0
  263. data/reference-docs/mathml-source/style/html/mmldiff.xsl +566 -0
  264. data/reference-docs/mathml-source/style/html/mmlspec.xsl +2531 -0
  265. data/reference-docs/mathml-source/style/html/slices-common.xsl +312 -0
  266. data/reference-docs/mathml-source/style/html/slices.xsl +48 -0
  267. data/reference-docs/mathml-source/style/html/xmlspec.xsl +2542 -0
  268. data/reference-docs/mathml-source/style/pdf/mathmlspec.xsl +2510 -0
  269. data/reference-docs/mathml-source/xml/changes.xml +773 -0
  270. data/reference-docs/mathml-source/xml/character-set.xml +1011 -0
  271. data/reference-docs/mathml-source/xml/content-element-def.xml +6143 -0
  272. data/reference-docs/mathml-source/xml/content-markup.xml +8178 -0
  273. data/reference-docs/mathml-source/xml/contributors.xml +425 -0
  274. data/reference-docs/mathml-source/xml/dom-bindings.xml +20 -0
  275. data/reference-docs/mathml-source/xml/dom-intro.xml +114 -0
  276. data/reference-docs/mathml-source/xml/fundamentals.xml +1646 -0
  277. data/reference-docs/mathml-source/xml/glossary.xml +519 -0
  278. data/reference-docs/mathml-source/xml/interface.xml +1096 -0
  279. data/reference-docs/mathml-source/xml/introduction.xml +724 -0
  280. data/reference-docs/mathml-source/xml/mathml-css-sample.xml +304 -0
  281. data/reference-docs/mathml-source/xml/mathml-dom.xml +3813 -0
  282. data/reference-docs/mathml-source/xml/mathml-spec.xml +356 -0
  283. data/reference-docs/mathml-source/xml/mixing.xml +982 -0
  284. data/reference-docs/mathml-source/xml/operator-dict.xml +551 -0
  285. data/reference-docs/mathml-source/xml/parsing.xml +2565 -0
  286. data/reference-docs/mathml-source/xml/presentation-markup.xml +6834 -0
  287. data/reference-docs/mathml-source/xml/references.xml +323 -0
  288. data/reference-docs/mathml-source/xml/validation-grammar.xml +877 -0
  289. data/schemas/README.adoc +17 -0
  290. data/schemas/mathml2/common/common-attribs.xsd +41 -0
  291. data/schemas/mathml2/common/math.xsd +126 -0
  292. data/schemas/mathml2/common/xlink-href.xsd +20 -0
  293. data/schemas/mathml2/content/CVS/Entries +16 -0
  294. data/schemas/mathml2/content/CVS/Repository +1 -0
  295. data/schemas/mathml2/content/CVS/Root +1 -0
  296. data/schemas/mathml2/content/arith.xsd +90 -0
  297. data/schemas/mathml2/content/calculus.xsd +146 -0
  298. data/schemas/mathml2/content/common-attrib.xsd +30 -0
  299. data/schemas/mathml2/content/constants.xsd +83 -0
  300. data/schemas/mathml2/content/constructs.xsd +260 -0
  301. data/schemas/mathml2/content/elementary-functions.xsd +117 -0
  302. data/schemas/mathml2/content/functions.xsd +73 -0
  303. data/schemas/mathml2/content/linear-algebra.xsd +173 -0
  304. data/schemas/mathml2/content/logic.xsd +53 -0
  305. data/schemas/mathml2/content/relations.xsd +55 -0
  306. data/schemas/mathml2/content/semantics.xsd +85 -0
  307. data/schemas/mathml2/content/sets.xsd +236 -0
  308. data/schemas/mathml2/content/statistics.xsd +136 -0
  309. data/schemas/mathml2/content/tokens.xsd +120 -0
  310. data/schemas/mathml2/content/tokens.xsd.~1.3.~ +119 -0
  311. data/schemas/mathml2/content/vector-calculus.xsd +88 -0
  312. data/schemas/mathml2/mathml2.xsd +59 -0
  313. data/schemas/mathml2/presentation/action.xsd +44 -0
  314. data/schemas/mathml2/presentation/characters.xsd +37 -0
  315. data/schemas/mathml2/presentation/common-attribs.xsd +113 -0
  316. data/schemas/mathml2/presentation/common-types.xsd +103 -0
  317. data/schemas/mathml2/presentation/error.xsd +40 -0
  318. data/schemas/mathml2/presentation/layout.xsd +195 -0
  319. data/schemas/mathml2/presentation/scripts.xsd +186 -0
  320. data/schemas/mathml2/presentation/space.xsd +52 -0
  321. data/schemas/mathml2/presentation/style.xsd +69 -0
  322. data/schemas/mathml2/presentation/table.xsd +216 -0
  323. data/schemas/mathml2/presentation/tokens.xsd +124 -0
  324. data/schemas/mathml3/mathml3-common.xsd +99 -0
  325. data/schemas/mathml3/mathml3-content.xsd +684 -0
  326. data/schemas/mathml3/mathml3-presentation.xsd +2151 -0
  327. data/schemas/mathml3/mathml3-strict-content.xsd +186 -0
  328. data/schemas/mathml3/mathml3.xsd +9 -0
  329. data/schemas/mathml4/mathml4-content.rnc +382 -0
  330. data/schemas/mathml4/mathml4-core.rnc +361 -0
  331. data/schemas/mathml4/mathml4-presentation.rnc +358 -0
  332. data/schemas/mathml4/mathml4-strict-content.rnc +86 -0
  333. data/schemas/mathml4/mathml4.rnc +21 -0
  334. data/schemas/mathml4/mathml4.rnc.1 +21 -0
  335. data/schemas/mathml4/mathml4.rng +37 -0
  336. metadata +249 -2
@@ -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,22 @@
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 :src, :string
11
+
12
+ xml do
13
+ namespace Mml::Namespace
14
+ element "share"
15
+ map_attribute "src", to: :src
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ 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
@@ -15,6 +15,7 @@ module Mml
15
15
  xml do
16
16
  namespace Mml::Namespace
17
17
  element "maction"
18
+ mixed_content
18
19
 
19
20
  map_attribute "mathcolor", to: :mathcolor
20
21
  map_attribute "mathbackground", to: :mathbackground
data/lib/mml/base/math.rb CHANGED
@@ -8,6 +8,30 @@ module Mml
8
8
  def self.included(klass)
9
9
  klass.class_eval do
10
10
  attribute :display, :string
11
+ attribute :alttext, :string
12
+ attribute :decimalpoint, :string
13
+ attribute :macros, :string
14
+ attribute :lang, :string
15
+ attribute :bevelled, :string
16
+ attribute :mathcolor, :string
17
+ attribute :mathvariant, :string
18
+ attribute :rowalign, :string
19
+ attribute :columnalign, :string
20
+ attribute :rowspacing, :string
21
+ attribute :columnspacing, :string
22
+ attribute :rowlines, :string
23
+ attribute :columnlines, :string
24
+ attribute :frame, :string
25
+ # Linebreak attributes
26
+ attribute :indentalign, :string
27
+ attribute :indentshift, :string
28
+ attribute :indentalignfirst, :string
29
+ attribute :indentshiftfirst, :string
30
+ attribute :indentalignlast, :string
31
+ attribute :indentshiftlast, :string
32
+ attribute :linebreakmultchar, :string
33
+ attribute :linebreakstyle, :string
34
+ attribute :indenttarget, :string
11
35
 
12
36
  xml do
13
37
  namespace Mml::Namespace
@@ -15,6 +39,29 @@ module Mml
15
39
  mixed_content
16
40
 
17
41
  map_attribute :display, to: :display
42
+ map_attribute "alttext", to: :alttext
43
+ map_attribute "decimalpoint", to: :decimalpoint
44
+ map_attribute :macros, to: :macros
45
+ map_attribute "xml:lang", to: :lang
46
+ map_attribute "bevelled", to: :bevelled
47
+ map_attribute "mathcolor", to: :mathcolor
48
+ map_attribute "mathvariant", to: :mathvariant
49
+ map_attribute "rowalign", to: :rowalign
50
+ map_attribute "columnalign", to: :columnalign
51
+ map_attribute "rowspacing", to: :rowspacing
52
+ map_attribute "columnspacing", to: :columnspacing
53
+ map_attribute "rowlines", to: :rowlines
54
+ map_attribute "columnlines", to: :columnlines
55
+ map_attribute "frame", to: :frame
56
+ map_attribute "indentalign", to: :indentalign
57
+ map_attribute "indentshift", to: :indentshift
58
+ map_attribute "indentalignfirst", to: :indentalignfirst
59
+ map_attribute "indentshiftfirst", to: :indentshiftfirst
60
+ map_attribute "indentalignlast", to: :indentalignlast
61
+ map_attribute "indentshiftlast", to: :indentshiftlast
62
+ map_attribute "linebreakmultchar", to: :linebreakmultchar
63
+ map_attribute "linebreakstyle", to: :linebreakstyle
64
+ map_attribute "indenttarget", to: :indenttarget
18
65
  end
19
66
  end
20
67
  end
@@ -18,7 +18,7 @@ module Mml
18
18
 
19
19
  map_attribute "mathcolor", to: :mathcolor
20
20
  map_attribute "mathbackground", to: :mathbackground
21
- map_attribute "notation", to: :notation
21
+ map_attribute "notation", to: :notation, render_empty: true
22
22
  end
23
23
  end
24
24
  end
@@ -22,10 +22,10 @@ module Mml
22
22
  map_content to: :content
23
23
 
24
24
  map_attribute "mathbackground", to: :mathbackground
25
- map_attribute "separators", to: :separators
25
+ map_attribute "separators", to: :separators, render_empty: true
26
26
  map_attribute "mathcolor", to: :mathcolor
27
27
  map_attribute "close", to: :close
28
- map_attribute "open", to: :open
28
+ map_attribute "open", to: :open, render_empty: true
29
29
  end
30
30
  end
31
31
  end
@@ -15,8 +15,8 @@ module Mml
15
15
  attribute :valign, :string
16
16
  attribute :mathvariant, :string
17
17
  attribute :mathbackground, :string
18
+ attribute :fontfamily, :string
18
19
 
19
- attribute :mathsize, :string
20
20
  attribute :mathcolor, :string
21
21
 
22
22
  xml do
@@ -31,8 +31,8 @@ module Mml
31
31
  map_attribute "valign", to: :valign
32
32
  map_attribute "mathvariant", to: :mathvariant
33
33
  map_attribute "mathbackground", to: :mathbackground
34
+ map_attribute "fontfamily", to: :fontfamily
34
35
 
35
- map_attribute "mathsize", to: :mathsize
36
36
  map_attribute "mathcolor", to: :mathcolor
37
37
  end
38
38
  end
data/lib/mml/base/mi.rb CHANGED
@@ -7,23 +7,26 @@ module Mml
7
7
  # Use fully qualified names (e.g., Mml::Namespace).
8
8
  def self.included(klass)
9
9
  klass.class_eval do
10
- attribute :dir, :string
11
10
  attribute :value, :string
12
- attribute :mathsize, :string
13
11
  attribute :mathcolor, :string
14
- attribute :mathvariant, :string
15
12
  attribute :mathbackground, :string
13
+ attribute :mathsize, :string
14
+ attribute :mathvariant, :string
15
+ attribute :mglyph_value, :mglyph, collection: true
16
+ attribute :lang, :string
16
17
 
17
18
  xml do
18
19
  namespace Mml::Namespace
19
20
  element "mi"
21
+ mixed_content
20
22
 
21
23
  map_content to: :value
22
- map_attribute "dir", to: :dir
23
- map_attribute "mathsize", to: :mathsize
24
24
  map_attribute "mathcolor", to: :mathcolor
25
- map_attribute "mathvariant", to: :mathvariant
26
25
  map_attribute "mathbackground", to: :mathbackground
26
+ map_attribute "mathsize", to: :mathsize
27
+ map_attribute "mathvariant", to: :mathvariant
28
+ map_attribute "xml:lang", to: :lang
29
+ map_element "mglyph", to: :mglyph_value
27
30
  end
28
31
  end
29
32
  end