plurimath 0.8.8 → 0.8.9

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 455b8c76b3f3b81de7fb64404dd70294107831a5af4fdde9b2acf2505895ec73
4
- data.tar.gz: b1f196c6c295a5eae38e537e5a2ca9bc495895ea9eafa0784e2085116e71e36e
3
+ metadata.gz: 49c6f8268d1cc7dbaa215281ef92e0ce3e7884635976510d02058d6b95632ba2
4
+ data.tar.gz: 72830804f1dab626d5ec7da7c02071d8423965bf0381f2089708d8e94f126341
5
5
  SHA512:
6
- metadata.gz: 2b1d2f6056126c677dda6cd5003c7d530009aab799e86b2a382736d8019b6f68652a3b0a050b61d8fb5e751b62c23db3fd0daa5e82dd8c499b4bf8eee140718a
7
- data.tar.gz: 45a364fbf46f1c78e6e5c7507891b3c9a2b47cac2460e775f8c01487e6fce33d993d6282f19002b76605f42b0894f8fff8dcb6da9076632747d8d03c4bfd1389
6
+ metadata.gz: 7bc88e28991910932794cee1d883d15971fcf8bddf381bdf097eee7bed7263a13fb2431ca12fadb6b1dcc1e35634d5383fcb00f05a2a7b631979727b08009847
7
+ data.tar.gz: c22ca2f15f8ab7c86bc6992f06b54007d57be6d6d3262f8a2987b4a2b91f8b2172d9328f5900ed1410ce0d7a3a490dda075cda424a3f2595ff9ae8ebba8a0b14
@@ -0,0 +1,28 @@
1
+ name: gen_docs
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ tags: [ v* ]
7
+ pull_request:
8
+
9
+ jobs:
10
+ generate_docs:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: '3.3'
18
+ bundler-cache: true
19
+
20
+ - name: Generate supported_parens_list.adoc
21
+ run: |
22
+ rm -f supported_parens_list.adoc
23
+ bundle exec rake supported_parens_list.adoc
24
+
25
+ - name: Generate supported_symbols_list.adoc
26
+ run: |
27
+ rm -f supported_symbols_list.adoc
28
+ bundle exec rake supported_symbols_list.adoc
data/Gemfile CHANGED
@@ -12,3 +12,4 @@ gem 'opal-rspec', "~> 1.1.0a"
12
12
  gem 'oga'
13
13
  gem 'ox'
14
14
  gem "unitsml"
15
+ gem "debug"
data/README.adoc CHANGED
@@ -1,123 +1,511 @@
1
1
  = Plurimath
2
2
 
3
- This gem implements a mechanism of conversion between Math languages mentioned below.
3
+ == Purpose
4
+
5
+ Plurimath provides a common data model for mathematical representation languages
6
+ and allows conversion between various math representation languages.
7
+
8
+ Plurimath aims to streamline the process of converting mathematical expressions
9
+ between different representation languages. This facilitates easier integration
10
+ across different systems and platforms, ensuring that mathematical content
11
+ remains consistent and accurate regardless of the format it is presented in.
12
+
13
+ Supported math representational languages:
14
+
15
+ * MathML
16
+ * AsciiMath
17
+ * UnicodeMath
18
+ * LaTeX math
19
+ * OMML
20
+
21
+ Supported units representation languages:
22
+
23
+ * UnitsML
24
+
25
+
26
+ == Benefits
27
+
28
+ Suitability:: Convert mathematical content to the required format for different
29
+ tools and platforms.
30
+
31
+ Correctness:: Ensure mathematical expressions are correctly formatted for print
32
+ and digital publications.
33
+
34
+ Interoperability:: Facilitate the integration of mathematical expressions across
35
+ various software systems and platforms.
36
+
37
+ Accessibility:: Convert mathematical content into formats that are more
38
+ accessible for screen readers and other assistive technologies.
4
39
 
5
- 1. **AsciiMath**
6
- 2. **MathML**
7
- 3. **Latex**
8
40
 
9
41
  == Installation
10
42
 
11
43
  Add this line to your application's Gemfile:
12
44
 
13
- ```ruby
45
+ [source,ruby]
46
+ ----
14
47
  gem "plurimath"
15
- ```
48
+ ----
49
+
16
50
  And then execute:
17
- ```shell
18
- $ bundle install
19
- ```
20
- Or install it yourself as:
21
- ```shell
22
- $ gem install plurimath
23
- ```
51
+
52
+ [source,sh]
53
+ ----
54
+ $ bundle install
55
+ ----
56
+
57
+ Or install it yourself with:
58
+
59
+ [source,sh]
60
+ ----
61
+ $ gem install plurimath
62
+ ----
24
63
 
25
64
  == Usage
26
65
 
27
- Pass the string you want to convert and Math type of the string provided, which will give you **Plurimath::Math::Formula** object as output, Let's see some examples below.
66
+ The central data model in Plurimath is the `Plurimath::Formula` class, which
67
+ allows you to transform any math representation language into any other
68
+ representation language.
28
69
 
29
- === *Conversion Examples*
30
70
 
31
- ===== Asciimath Formula Example
32
- [source, ruby, indent=2]
71
+ === Conversion Examples
72
+
73
+ ==== AsciiMath Formula Example
74
+
75
+ [source,ruby]
33
76
  ----
34
77
  asciimath = "sin(1)"
35
78
  formula = Plurimath::Math.parse(asciimath, :asciimath)
36
79
  ----
37
- ===== MathML Formula Example
38
- [source, ruby, indent=2]
80
+
81
+ ==== MathML Formula Example
82
+
83
+ [source,ruby]
39
84
  ----
40
85
  mathml = <<~MATHML
41
- <math xmlns='http://www.w3.org/1998/Math/MathML'>
42
- <mstyle displaystyle='true'>
43
- <mi>sin</mi>
44
- <mn>1</mn>
45
- </mstyle>
46
- </math>
47
- MATHML
48
- formula = Plurimath::Math.parse(mathml, "mathml")
49
- ----
50
- ===== Latex Formula Example
51
- [source, ruby, indent=2]
86
+ <math xmlns='http://www.w3.org/1998/Math/MathML'>
87
+ <mstyle displaystyle='true'>
88
+ <mi>sin</mi>
89
+ <mn>1</mn>
90
+ </mstyle>
91
+ </math>
92
+ MATHML
93
+ formula = Plurimath::Math.parse(mathml, :mathml)
94
+ ----
95
+
96
+ ==== LaTeX Formula Example
97
+
98
+ [source,ruby]
52
99
  ----
53
100
  latex = "\\sin{1}"
54
- formula = Plurimath::Math.parse(latex, "latex")
101
+ formula = Plurimath::Math.parse(latex, :latex)
55
102
  ----
56
- ---
57
- Since we have the object of **Plurimath::Formula**,We can generate **AsciiMath**, **MathMl** or **Latex** string from the formula object,All we have to do is call conversion function on formula object, see examples below.
58
103
 
59
- ===== AsciiMath Output conversion
60
- [source, ruby, indent=2]
104
+ ==== UnicodeMath Formula Example
105
+
106
+ [source,ruby]
107
+ ----
108
+ unicodemath = "sin(1)"
109
+ formula = Plurimath::Math.parse(unicodemath, :unicodemath)
110
+ ----
111
+
112
+ ==== OMML Formula Example
113
+
114
+ [source,ruby]
115
+ ----
116
+ omml = <<~OMML
117
+ <m:oMathPara xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math">
118
+ <m:oMath>
119
+ <m:f>
120
+ <m:fPr>
121
+ <m:ctrlPr />
122
+ </m:fPr>
123
+ <m:num>
124
+ <m:r>
125
+ <m:t>sin</m:t>
126
+ </m:r>
127
+ </m:num>
128
+ <m:den>
129
+ <m:r>
130
+ <m:t>1</m:t>
131
+ </m:r>
132
+ </m:den>
133
+ </m:f>
134
+ </m:oMath>
135
+ </m:oMathPara>
136
+ OMML
137
+ formula = Plurimath::Math.parse(omml, :omml)
138
+ ----
139
+
140
+ === Converting to Other Formats
141
+
142
+ Once you have a `Plurimath::Math::Formula` object, you can convert it to
143
+ AsciiMath, MathML, LaTeX, UnicodeMath, or OMML by calling the respective
144
+ conversion function on the `Formula` object.
145
+
146
+ ==== AsciiMath Output Conversion
147
+
148
+ [source,ruby]
61
149
  ----
62
150
  formula.to_asciimath
63
- > sin(1)
151
+ # => "sin(1)"
64
152
  ----
65
- *Note:*
66
- Asciimath doesn't support link:AsciiMath-Supported-Data.adoc#symbols-inherited-from-latex[*following symbols*] but Latex does.So from Latex to Asciimath conversion we are returning latex's supported symbols if it's not supported in Asciimath.
67
153
 
68
- ===== Latex Output conversion
69
- [source, ruby, indent=2]
154
+ NOTE: AsciiMath doesn't support
155
+ link:AsciiMath-Supported-Data.adoc#symbols-inherited-from-latex[certain symbols]
156
+ that LaTeX does. During conversion from LaTeX to AsciiMath, if a symbol is not
157
+ supported in AsciiMath, the LaTeX symbol will be returned.
158
+
159
+
160
+ ==== LaTeX Output Conversion
161
+
162
+ [source,ruby]
70
163
  ----
71
164
  formula.to_latex
72
- > \\sin1
165
+ # => "\\sin1"
73
166
  ----
74
- ===== MathML Output conversion
75
- [source, ruby, indent=2]
167
+
168
+ ==== MathML Output Conversion
169
+
170
+ [source,ruby]
76
171
  ----
77
172
  formula.to_mathml
78
- > <math xmlns='http://www.w3.org/1998/Math/MathML'>
79
- > <mstyle displaystyle='true'>
80
- > <mi>sin</mi>
81
- > <mn>1</mn>
82
- > </mstyle>
83
- > </math>
173
+ # => "<math xmlns='http://www.w3.org/1998/Math/MathML'><mstyle displaystyle='true'><mi>sin</mi><mn>1</mn></mstyle></math>"
174
+ ----
175
+
176
+ ==== UnicodeMath Output Conversion
177
+
178
+ [source,ruby]
179
+ ----
180
+ formula.to_unicodemath
181
+ # => "sin(1)"
182
+ ----
183
+
184
+ ==== OMML Output Conversion
185
+
186
+ [source,ruby]
187
+ ----
188
+ formula.to_omml
189
+ # => "<m:oMathPara xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\"><m:oMath><m:f><m:fPr><m:ctrlPr /></m:fPr><m:num><m:r><m:t>sin</m:t></m:r></m:num><m:den><m:r><m:t>1</m:t></m:r></m:den></m:f></m:oMath></m:oMathPara>"
190
+ ----
191
+
192
+ == Handling Complex Mathematical Expressions
193
+
194
+ Plurimath is capable of handling complex mathematical expressions with nested
195
+ functions and operators.
196
+
197
+ This feature is particularly useful for application that requires consistent and
198
+ accurate conversion of intricate mathematical content.
199
+
200
+ === Example of a Complex Expression
201
+
202
+ Consider the following complex LaTeX expression:
203
+
204
+ [source,latex]
84
205
  ----
85
- === XML Engines
206
+ \frac{\sqrt{a^2 + b^2}}{\sin(\theta) + \cos(\theta)}
207
+ ----
208
+
209
+ You can parse and convert this complex expression with Plurimath:
210
+
211
+ [source,ruby]
212
+ ----
213
+ complex_latex = "\\frac{\\sqrt{a^2 + b^2}}{\\sin(\\theta) + \\cos(\\theta)}"
214
+ formula = Plurimath::Math.parse(complex_latex, :latex)
215
+
216
+ # Convert to AsciiMath
217
+ asciimath = formula.to_asciimath
218
+ # => "frac(sqrt(a^2 + b^2))(sin(theta) + cos(theta))"
219
+
220
+ # Convert to MathML
221
+ mathml = formula.to_mathml
222
+ # => "<math xmlns='http://www.w3.org/1998/Math/MathML'><mfrac><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></mrow></msqrt><mrow><mi>sin</mi><mo>(</mo><mi>θ</mi><mo>)</mo><mo>+</mo><mi>cos</mi><mo>(</mo><mi>θ</mi><mo>)</mo></mrow></mfrac></math>"
223
+
224
+ # Convert to UnicodeMath
225
+ unicodemath = formula.to_unicodemath
226
+ # => "frac(√(a^2 + b^2))(sin(θ) + cos(θ))"
227
+
228
+ # Convert to OMML
229
+ omml = formula.to_omml
230
+ # => "<omml representation of the expression>"
231
+ ----
232
+
233
+
234
+
235
+
236
+ == Displaying the Math Parse Tree
237
+
238
+ Plurimath allows you to display the math parse tree both as `Formula` objects
239
+ and in the math language of expression.
240
+
241
+ === Displaying as Formula Objects
242
+
243
+ You can display the parse tree as `Formula` objects to understand the structure
244
+ of the parsed mathematical expression.
245
+
246
+ [source,ruby]
247
+ ----
248
+ formula = Plurimath::Math.parse("sin(1)", :asciimath)
249
+ formula.to_display(:asciimath)
250
+ # |_ Math zone
251
+ # |_ "sin(1)"
252
+ # |_ "sin" function apply
253
+ # |_ "1" argument
254
+ ----
255
+
256
+ === Displaying in the Math Language of Expression
257
+
258
+ You can also display the parse tree in the math language of expression to see
259
+ how the expression is represented in that language.
260
+
261
+ [source,ruby]
262
+ ----
263
+ formula = Plurimath::Math.parse("sin(1)", :asciimath)
264
+ formula.to_display(:latex)
265
+ # |_ Math zone
266
+ # |_ "\\sin1"
267
+ # |_ "sin" function apply
268
+ # |_ "1" argument
269
+ ----
270
+
271
+ // == Integration
272
+
273
+ // Integrate Plurimath into your project by requiring the gem and using its
274
+ // conversion capabilities as shown in the above examples. You can parse
275
+ // mathematical expressions from various formats and convert them as needed for
276
+ // your application's requirements.
86
277
 
87
- **Plurimath** supports two XML engines.
88
278
 
89
- 1. **Oga**
90
- 2. **Ox**
279
+ == Working with UnitsML
280
+
281
+ === General
282
+
283
+ Plurimath supports https://www.unitsml.org[UnitsML], a markup language used to
284
+ express units of measure in a way that can be understood by humans and machines.
285
+ This allows you to handle mathematical expressions involving units of measure
286
+ seamlessly.
287
+
288
+ UnitsML can be used with the following math representation languages:
289
+
290
+ * MathML
291
+ * AsciiMath
292
+
293
+ For detailed information on supported units and symbols in UnitsML, refer to the
294
+ link:UnitsML-Supported-Data.adoc[UnitsML Supported Data] documentation.
295
+
296
+
297
+ === Parsing and Converting UnitsML Expressions
298
+
299
+ Plurimath can parse UnitsML expressions and convert them to other mathematical
300
+ representation languages. Here's an example of how to work with UnitsML in
301
+ Plurimath.
302
+
303
+ === Example: Parsing and Converting UnitsML
304
+
305
+ Consider the following UnitsML expression in AsciiMath syntax:
306
+
307
+ [source,asciimath]
308
+ ----
309
+ h = 6.62607015 xx 10^(-34) "unitsml(kg*m^2*s^(-1))"
310
+ ----
311
+
312
+ ==== Step-by-Step Customization
313
+
314
+ . **Parse the UnitsML Expression**
315
+ . **Customize and Convert to AsciiMath**
316
+ . **Customize and Convert to MathML**
317
+ . **Customize and Convert to UnicodeMath**
318
+ . **Customize and Convert to OMML**
319
+
320
+ ==== Parse the UnitsML Expression
321
+
322
+ First, parse the UnitsML expression using Plurimath:
323
+
324
+ [source,ruby]
325
+ ----
326
+ require 'plurimath'
327
+
328
+ asciimath_unitsml = 'h = 6.62607015 xx 10^(-34) "unitsml(kg*m^2*s^(-1))"'
329
+ formula = Plurimath::Math.parse(asciimath_unitsml, :asciimath)
330
+ ----
331
+
332
+ ==== Customize and Convert to AsciiMath
333
+
334
+ You can customize the output by modifying the resulting string after conversion:
335
+
336
+ [source,ruby]
337
+ ----
338
+ asciimath = formula.to_asciimath
339
+ # Customization logic (if any)
340
+ puts asciimath
341
+ # Output: 'h = 6.62607015 xx 10^(-34) "unitsml(kg*m^2*s^(-1))"'
342
+ ----
343
+
344
+ ==== Customize and Convert to MathML
345
+
346
+ To customize the MathML output, you can use additional attributes and options:
347
+
348
+ [source,ruby]
349
+ ----
350
+ mathml = formula.to_mathml
351
+ # Customization logic (if any)
352
+ puts mathml
353
+ # Output: "<math xmlns='http://www.w3.org/1998/Math/MathML'><mrow><mi>h</mi><mo>=</mo><mn>6.62607015</mn><mo>×</mo><msup><mn>10</mn><mrow><mo>−</mo><mn>34</mn></mrow></msup><mtext>kg·m²·s⁻¹</mtext></mrow></math>"
354
+ ----
355
+
356
+ ==== Customize and Convert to UnicodeMath
357
+
358
+ Similarly, customize the UnicodeMath output:
359
+
360
+ [source,ruby]
361
+ ----
362
+ unicodemath = formula.to_unicodemath
363
+ # Customization logic (if any)
364
+ puts unicodemath
365
+ # Output: 'h = 6.62607015 × 10^(−34) kg·m²·s⁻¹'
366
+ ----
367
+
368
+ ==== Customize and Convert to OMML
369
+
370
+ For OMML output, you can customize the XML structure:
371
+
372
+ [source,ruby]
373
+ ----
374
+ omml = formula.to_omml
375
+ # Customization logic (if any)
376
+ puts omml
377
+ # Output: "<m:oMathPara xmlns:m='http://schemas.openxmlformats.org/officeDocument/2006/math'><m:oMath><m:r><m:t>h</m:t></m:r><m:r><m:t>=</m:t></m:r><m:r><m:t>6.62607015</m:t></m:r><m:r><m:t>×</m:t></m:r><m:sSup><m:sSupPr><m:ctrlPr /></m:sSupPr><m:e><m:r><m:t>10</m:t></m:r></m:e><m:sup><m:r><m:t>−34</m:t></m:r></m:sup></m:sSup><m:r><m:t>kg·m²·s⁻¹</m:t></m:r></m:oMath></m:oMathPara>"
378
+ ----
379
+
380
+ === Complete Example Code with Customization
381
+
382
+ Here's the complete code for parsing, converting, and customizing the UnitsML
383
+ expression between different formats:
384
+
385
+ [source,ruby]
386
+ ----
387
+ require 'plurimath'
388
+
389
+ # Step 1: Parse the UnitsML Expression
390
+ asciimath_unitsml = 'h = 6.62607015 xx 10^(-34) "unitsml(kg*m^2*s^(-1))"'
391
+ formula = Plurimath::Math.parse(asciimath_unitsml, :asciimath)
392
+
393
+ # Step 2: Convert to AsciiMath
394
+ asciimath = formula.to_asciimath
395
+ # Customization logic for AsciiMath (if needed)
396
+ puts "AsciiMath: #{asciimath}"
397
+ # Output: 'h = 6.62607015 xx 10^(-34) "unitsml(kg*m^2*s^(-1))"'
398
+
399
+ # Step 3: Convert to MathML
400
+ mathml = formula.to_mathml
401
+ # Customization logic for MathML (if needed)
402
+ puts "MathML: #{mathml}"
403
+ # Output: "<math xmlns='http://www.w3.org/1998/Math/MathML'><mrow><mi>h</mi><mo>=</mo><mn>6.62607015</mn><mo>×</mo><msup><mn>10</mn><mrow><mo>−</mo><mn>34</mn></mrow></msup><mtext>kg·m²·s⁻¹</mtext></mrow></math>"
404
+
405
+ # Step 4: Convert to UnicodeMath
406
+ unicodemath = formula.to_unicodemath
407
+ # Customization logic for UnicodeMath (if needed)
408
+ puts "UnicodeMath: #{unicodemath}"
409
+ # Output: 'h = 6.62607015 × 10^(−34) kg·m²·s⁻¹'
410
+
411
+ # Step 5: Convert to OMML
412
+ omml = formula.to_omml
413
+ # Customization logic for OMML (if needed)
414
+ puts "OMML: #{omml}"
415
+ # Output: "<m:oMathPara xmlns:m='http://schemas.openxmlformats.org/officeDocument/2006/math'><m:oMath><m:r><m:t>h</m:t></m:r><m:r><m:t>=</m:t></m:r><m:r><m:t>6.62607015</m:t></m:r><m:r><m:t>×</m:t></m:r><m:sSup><m:sSupPr><m:ctrlPr /></m:sSupPr><m:e><m:r><m:t>10</m:t></m:r></m:e><m:sup><m:r><m:t>−34</m:t></m:r></m:sup></m:sSup><m:r><m:t>kg·m²·s⁻¹</m:t></m:r></m:oMath></m:oMathPara>"
416
+ ----
417
+
418
+
419
+
420
+
421
+ == Compatibility
422
+
423
+ === General
424
+
425
+ Not every math representation language supports expressing all symbols and
426
+ primitives supported by another. For example, the `backepsilon` symbol is
427
+ supported by LaTeX and UnicodeMath, but not AsciiMath.
428
+
429
+ Plurimath implements a "compatibility wrapper" syntax for each math
430
+ representation language to allow all symbols usable by Plurimath to be expressed
431
+ in a side-effect-free wrapper in those languages. For example, in AsciiMath, the
432
+ `"__{symbol-name}"` is side-effect-free because it is considered a single symbol
433
+ as a text string of `"__{symbol-name}"`. Plurimath can recognize it, but other
434
+ renderers or processors would treat it as a single symbol, which is accurate.
435
+
436
+
437
+ === Example of Compatibility Wrapper
438
+
439
+ For a symbol like `backepsilon`.
440
+
441
+ In AsciiMath:
442
+
443
+ [source,ruby]
444
+ ----
445
+ "__{backepsilon}"
446
+ ----
447
+
448
+ In LaTeX:
449
+
450
+ [source,ruby]
451
+ ----
452
+ "\\backepsilon"
453
+ ----
454
+
455
+ In UnicodeMath:
456
+
457
+ [source,ruby]
458
+ ----
459
+ "∍"
460
+ ----
461
+
462
+ In MathML:
463
+
464
+ [source,xml]
465
+ ----
466
+ <mi>∍</mi>
467
+ ----
468
+
469
+ == XML Engines
470
+
471
+ **Plurimath** supports two XML engines:
472
+
473
+ . **Oga**: A pure Ruby XML parser
474
+ . **Ox**: A fast XML parser
475
+
476
+ By default, **Ox** is used.
477
+
478
+ To switch to **Oga**, use the following syntax:
479
+
480
+ [source,ruby]
481
+ ----
482
+ require "plurimath/xml_engines/oga" = load files related to Oga
483
+ Plurimath.xml_engine = Plurimath::XmlEngine::Oga = set Oga as Plurimath XML engine
484
+ ----
91
485
 
92
- By default, **Ox** is used which can be easily changed using the following syntax.
93
- ```[source, ruby]
94
- require "plurimath/xml_engines/oga" # load files related to oga
486
+ You can switch back to **Ox** similarly.
95
487
 
96
- Plurimath.xml_engine = Plurimath::XmlEngine::Oga # set Oga as Plurimath xml engine
97
- ```
98
- Using the same syntax you can change from **Oga** to **Ox**.
488
+ === Supported content
99
489
 
100
- === Supported Content
490
+ === General
101
491
 
102
- Take a look into the link:supported_symbols_list.adoc[Symbols, target="_blank"] and link:supported_parens_list.adoc[Parenthesis, target="_blank"] tables for parenthesis and symbols support.
492
+ Consult the following tables for details on supported symbols and parentheses:
103
493
 
104
- --
105
- link:AsciiMath-Supported-Data.adoc[AsciiMath Supported Data, target="_blank"]
106
- --
494
+ * link:supported_symbols_list.adoc[Symbols]
495
+ * link:supported_parens_list.adoc[Parentheses]
107
496
 
108
- --
109
- link:MathML-Supported-Data.adoc[MathML Supported Data, target="_blank"]
110
- --
497
+ NOTE: To regenerate these files, delete them and run:
498
+ `bundle exec rake supported_symbols_list.adoc`.
111
499
 
112
- --
113
- link:Latex-Supported-Data.adoc[Latex Supported Data, target="_blank"]
114
- --
500
+ ==== Supported Data Files
115
501
 
116
- --
117
- link:UnicodeMath-Supported-Data.adoc[UnicodeMath Supported Data, target="_blank"]
118
- --
502
+ * link:AsciiMath-Supported-Data.adoc[AsciiMath Supported Data]
503
+ * link:MathML-Supported-Data.adoc[MathML Supported Data]
504
+ * link:Latex-Supported-Data.adoc[LaTeX Supported Data]
505
+ * link:UnicodeMath-Supported-Data.adoc[UnicodeMath Supported Data]
506
+ * link:OMML-Supported-Data.adoc[OMML Supported Data]
507
+ * link:UnitsML-Supported-Data.adoc[UnitsML Supported Data]
119
508
 
509
+ == Copyright and license
120
510
 
121
- --
122
- link:UnitsML-Supported-Data.adoc[UnitsML Supported Data, target="_blank"]
123
- --
511
+ Copyright Ribose. BSD 2-clause license.