asciimath 2.0.4 → 2.0.5
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 +4 -4
- data/CHANGELOG.adoc +6 -0
- data/lib/asciimath/latex.rb +4 -4
- data/lib/asciimath/parser.rb +9 -9
- data/lib/asciimath/symbol_table.rb +7 -2
- data/lib/asciimath/version.rb +1 -1
- data/spec/customisation_spec.rb +6 -0
- data/spec/parser_spec.rb +5 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86018ef6bb3e96fddebb125bf2d246b847378dd686cfa720398c09970ad00696
|
4
|
+
data.tar.gz: 6347a679a01a6fbfa1b56cfa366e43f80bf195a763efe9150f69067dbaf0c227
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9886f869eafa972e926c0103fc13c56a67203d2a71eaa607489169d7695225cfe3cdbf216ef325153e9d24f7ea8f57c26482a71752a9713992d866826b08a879
|
7
|
+
data.tar.gz: 985c445a620542eb3d6f851ce1c832b2c8b89c9aa1d3a2258c64d23456cddb7b36b7953de5f954c3fbbfd9769f113edc499881b88206b4bfc67137ea3cfbaf03
|
data/CHANGELOG.adoc
CHANGED
data/lib/asciimath/latex.rb
CHANGED
@@ -73,7 +73,7 @@ module AsciiMath
|
|
73
73
|
:glb => "\\operatorname{glb}",
|
74
74
|
:partial => "\\del",
|
75
75
|
:prime => ?',
|
76
|
-
:tilde => "
|
76
|
+
:tilde => "\\tilde",
|
77
77
|
:nbsp => "\\;",
|
78
78
|
:lceiling => "\\lceil",
|
79
79
|
:rceiling => "\\rceil",
|
@@ -172,9 +172,9 @@ module AsciiMath
|
|
172
172
|
if e.is_a?(AsciiMath::AST::UnaryOp) &&
|
173
173
|
%i[underbrace overbrace].include?(e.operator.value)
|
174
174
|
append(e)
|
175
|
-
|
176
|
-
|
177
|
-
|
175
|
+
else
|
176
|
+
curly(e)
|
177
|
+
end
|
178
178
|
|
179
179
|
if sub
|
180
180
|
@latex << "_"
|
data/lib/asciimath/parser.rb
CHANGED
@@ -253,9 +253,9 @@ module AsciiMath
|
|
253
253
|
b.add('!=', 'ne', :ne, :symbol)
|
254
254
|
b.add(':=', :assign, :symbol)
|
255
255
|
b.add('<', 'lt', :lt, :symbol)
|
256
|
-
b.add('mlt', :mlt, :symbol)
|
256
|
+
b.add('mlt', 'll', :mlt, :symbol)
|
257
257
|
b.add('>', 'gt', :gt, :symbol)
|
258
|
-
b.add('mgt', :mgt, :symbol)
|
258
|
+
b.add('mgt', 'gg', :mgt, :symbol)
|
259
259
|
b.add('<=', 'le', :le, :symbol)
|
260
260
|
b.add('>=', 'ge', :ge, :symbol)
|
261
261
|
b.add('-<', '-lt', 'prec', :prec, :symbol)
|
@@ -432,16 +432,16 @@ module AsciiMath
|
|
432
432
|
b.add('ubrace', 'underbrace', :underbrace, :unary)
|
433
433
|
b.add('obrace', 'overbrace', :overbrace, :unary)
|
434
434
|
b.add('cancel', :cancel, :unary)
|
435
|
-
b.add('bb', :bold, :unary)
|
436
|
-
b.add('bbb', :double_struck, :unary)
|
435
|
+
b.add('bb', 'mathbf', :bold, :unary)
|
436
|
+
b.add('bbb', 'mathbb', :double_struck, :unary)
|
437
437
|
b.add('ii', :italic, :unary)
|
438
438
|
b.add('bii', :bold_italic, :unary)
|
439
|
-
b.add('cc', :script, :unary)
|
439
|
+
b.add('cc', 'mathcal', :script, :unary)
|
440
440
|
b.add('bcc', :bold_script, :unary)
|
441
|
-
b.add('tt', :monospace, :unary)
|
442
|
-
b.add('fr', :fraktur, :unary)
|
441
|
+
b.add('tt', 'mathtt', :monospace, :unary)
|
442
|
+
b.add('fr', 'mathfrak', :fraktur, :unary)
|
443
443
|
b.add('bfr', :bold_fraktur, :unary)
|
444
|
-
b.add('sf', :sans_serif, :unary)
|
444
|
+
b.add('sf', 'mathsf', :sans_serif, :unary)
|
445
445
|
b.add('bsf', :bold_sans_serif, :unary)
|
446
446
|
b.add('sfi', :sans_serif_italic, :unary)
|
447
447
|
b.add('sfbi', :sans_serif_bold_italic, :unary)
|
@@ -801,7 +801,7 @@ module AsciiMath
|
|
801
801
|
end
|
802
802
|
|
803
803
|
DEFAULT_COLOR_TABLE = ::AsciiMath::Parser.add_default_colors(AsciiMath::ColorTableBuilder.new).build
|
804
|
-
DEFAULT_PARSER_SYMBOL_TABLE = ::AsciiMath::Parser.add_default_parser_symbols(AsciiMath::SymbolTableBuilder.new).build
|
804
|
+
DEFAULT_PARSER_SYMBOL_TABLE = ::AsciiMath::Parser.add_default_parser_symbols(AsciiMath::SymbolTableBuilder.new(allow_symbol_overwrites: false)).build
|
805
805
|
end
|
806
806
|
|
807
807
|
class Expression
|
@@ -1,7 +1,8 @@
|
|
1
1
|
module AsciiMath
|
2
2
|
class SymbolTableBuilder
|
3
|
-
def initialize()
|
3
|
+
def initialize(allow_symbol_overwrites: true)
|
4
4
|
@table = {}
|
5
|
+
@allow_symbol_overwrites = allow_symbol_overwrites
|
5
6
|
end
|
6
7
|
|
7
8
|
def add(*args)
|
@@ -15,7 +16,11 @@ module AsciiMath
|
|
15
16
|
entry[:value] = args.pop
|
16
17
|
|
17
18
|
entry.freeze
|
18
|
-
args.each
|
19
|
+
args.map(&:freeze).each do |name|
|
20
|
+
raise "Symbol overwrites are disallowed, but were attempted for #{name}" if !@allow_symbol_overwrites && !@table[name].nil?
|
21
|
+
|
22
|
+
@table[name] = entry
|
23
|
+
end
|
19
24
|
end
|
20
25
|
|
21
26
|
def build
|
data/lib/asciimath/version.rb
CHANGED
data/spec/customisation_spec.rb
CHANGED
@@ -25,4 +25,10 @@ describe 'AsciiMath::Parser', :variant => :ast do
|
|
25
25
|
parsed = AsciiMath::parse("a + b", my_tokens_table.build)
|
26
26
|
expect(parsed.ast).to eq(seq(identifier('a'), ::AsciiMath::AST::Symbol.new(:foo, '+', :symbol), identifier('b')))
|
27
27
|
end
|
28
|
+
|
29
|
+
it "should support disallowing symbol overwrites" do
|
30
|
+
my_tokens_table = AsciiMath::SymbolTableBuilder.new(allow_symbol_overwrites: false)
|
31
|
+
AsciiMath::Parser.add_default_parser_symbols(my_tokens_table)
|
32
|
+
expect{my_tokens_table.add('+', :foo, :symbol)}.to raise_error 'Symbol overwrites are disallowed, but were attempted for +'
|
33
|
+
end
|
28
34
|
end
|
data/spec/parser_spec.rb
CHANGED
@@ -649,6 +649,11 @@ RSpec.shared_examples 'AsciiMath Examples' do
|
|
649
649
|
:mathml => '<math><munder><munder accentunder="true"><mrow><mo>(</mo><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow><mo>⏟</mo></munder><mtext>Adjustment to texture space</mtext></munder></math>'
|
650
650
|
))
|
651
651
|
|
652
|
+
example('tilde x', &should_generate(
|
653
|
+
:ast => unary(symbol('tilde'), 'x'),
|
654
|
+
:latex => '\\tilde{x}'
|
655
|
+
))
|
656
|
+
|
652
657
|
|
653
658
|
version = RUBY_VERSION.split('.').map { |s| s.to_i }
|
654
659
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciimath
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pepijn Van Eeckhoudt
|
8
8
|
- Gark Garcia
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-04-09 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: A pure Ruby AsciiMath parsing and conversion library.
|
15
15
|
email:
|
@@ -85,7 +85,7 @@ homepage: ''
|
|
85
85
|
licenses:
|
86
86
|
- MIT
|
87
87
|
metadata: {}
|
88
|
-
post_install_message:
|
88
|
+
post_install_message:
|
89
89
|
rdoc_options: []
|
90
90
|
require_paths:
|
91
91
|
- lib
|
@@ -100,8 +100,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: '0'
|
102
102
|
requirements: []
|
103
|
-
rubygems_version: 3.
|
104
|
-
signing_key:
|
103
|
+
rubygems_version: 3.0.3.1
|
104
|
+
signing_key:
|
105
105
|
specification_version: 4
|
106
106
|
summary: AsciiMath parser and converter
|
107
107
|
test_files:
|