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