plurimath 0.8.7 → 0.8.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0648b7ffe98de3f19067203ce8f5fc58cfed078c3c78a1b6bde359b9ad7948f0'
4
- data.tar.gz: bffd63b86cc6c8316dbe47bb6e3eb5fcac26f73b6ffc4622ecd31b1f0229b0d7
3
+ metadata.gz: 49c6f8268d1cc7dbaa215281ef92e0ce3e7884635976510d02058d6b95632ba2
4
+ data.tar.gz: 72830804f1dab626d5ec7da7c02071d8423965bf0381f2089708d8e94f126341
5
5
  SHA512:
6
- metadata.gz: d0402ad97a49a4374ce6491a6c9a8130645affae8d7f3b15efca9f20f59d476a97609169dac38483f8575806cfb569876aba14fc3ce3edbe881332f53bc8551d
7
- data.tar.gz: a6729ce0456b3b5d277799cb0315bc5611b428ee7dc62284500783b9fb1d0c401c36f38c4e07403577cb8b3f330114930b774eb0e13b4be70f8f03e9595e36a8
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.