rsyntaxtree 1.1.2 → 1.1.3

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: 67efef970625e45d10efb98107d23f9735b43086a41d952fa0aa54c88f5c6fe0
4
- data.tar.gz: 3e727169aa0904018c98f4a414a4401e415cfa857e039d3b0e3051a1ea6ef7fb
3
+ metadata.gz: acb2515dbfcd8e8cca68ba58420e7b7b600564e0adffc8f5eb6fae0584a49e3e
4
+ data.tar.gz: 82120f400b547df8a82e7beaa9744e17591d556029312d52176e02892c4589f3
5
5
  SHA512:
6
- metadata.gz: aea448ac39aaa1a79a8c81485d8d6e9df04ce6b12650638288cc9a01010a2a91cb9f891cac2508aea7b0c6316f79a7bf51fe56baea5b04ac8f5e16d0e1381fa7
7
- data.tar.gz: 90b45fe737da07adef9c65d4ed7883e6dbb75fc879bced542c0e34cfc37a0f7c5d06a2bb00884a56ecc14373f8500356954be614fe6d1e78258fb87621056084
6
+ metadata.gz: 357419369efb924ce4829880dda463eaeac9231adceb9cb96df6fbaf380bcd0cad0b275820f76924e7adcfbf5d91b7ad1424dd6e0ac3bed82a1e8ef7dd1e072b
7
+ data.tar.gz: c827a7e84403f3932dc86ed28eb032253af0606a44a859c90d958a3f5c6b1f9128fd03f774cdd7081ee8808227716490e5452def8103864124dcaef64da150c3
data/README.md CHANGED
@@ -20,13 +20,17 @@ You can run RSyntaxTree's web interface on your local machine using Docker Deskt
20
20
 
21
21
  ## Examples
22
22
 
23
- See [RSyntaxTree Example Gallery](https://yohasebe.github.io/rsyntaxtree/examples) page for syntax tree samples for
23
+ See [RSyntaxTree Example Gallery](https://yohasebe.github.io/rsyntaxtree/examples) page for examples for
24
24
 
25
25
  - Generative Grammar
26
- - Combinatory Categorial Grammar (Experimental)
27
- - Head-Driven Phrase Structure Grammar (Experimental)
28
- - Cognitive Grammar (Experimental)
29
-
26
+ - Combinatory Categorial Grammar
27
+ - Head-Driven Phrase Structure Grammar
28
+ - Cognitive Grammar
29
+ - Construction Grammar
30
+ - Pragmatics
31
+ - Phonology
32
+
33
+ **NOTE**: Some tree structures in the example gallery are experimental in the sense that they are not drawn according to conventions of the field.
30
34
 
31
35
  **Input text**
32
36
 
data/Rakefile CHANGED
@@ -53,6 +53,8 @@ task :generate do
53
53
  opts[:leafstyle] = value
54
54
  when "font"
55
55
  opts[:fontstyle] = case value
56
+ when /mono/i
57
+ "mono"
56
58
  when /sans/i
57
59
  "sans"
58
60
  when /serif/i
data/bin/rsyntaxtree CHANGED
@@ -19,7 +19,7 @@ opts = Optimist.options do
19
19
  opt :outdir, "Output directory", default: "./"
20
20
  opt :format, "Output format: png, gif, jpg, pdf, or svg", default: "png"
21
21
  opt :leafstyle, "visual style of tree leaves: auto, triangle, bar, or nothing", default: "auto"
22
- opt :fontstyle, "Font style (available when ttf font is specified): sans, serif, cjk", default: "sans"
22
+ opt :fontstyle, "Font style (available when ttf font is specified): sans, serif, cjk, mono", default: "sans"
23
23
  opt :font, "Path to a ttf font used to generate tree (optional)", type: String
24
24
  opt :fontsize, "Size: 8-26", default: 16
25
25
  opt :margin, "Margin: 0-10", default: 1
@@ -33,7 +33,7 @@ end
33
33
  Optimist.die :outdir, "must be an exsting directory path" unless FileTest.directory?(opts[:outdir])
34
34
  Optimist.die :format, "must be png, jpg, gif, or svg" unless /\A(png|jpg|gif|pdf|svg)\z/ =~ opts[:format]
35
35
  Optimist.die :leafstyle, "must be auto, triangle, bar, or nothing" unless /\A(auto|triangle|bar|nothing)\z/ =~ opts[:leafstyle]
36
- Optimist.die :fontstyle, "must be sans, serif, cjk" unless /\A(sans|serif|cjk)\z/ =~ opts[:fontstyle]
36
+ Optimist.die :fontstyle, "must be sans, serif, cjk, or mono" unless /\A(sans|serif|cjk|mono)\z/ =~ opts[:fontstyle]
37
37
  Optimist.die :font, "must be path to an existing ttf font" if opts[:font] && !File.exist?(opts[:font])
38
38
  Optimist.die :fontsize, "must be in the range of 8-26" unless opts[:fontsize] >= 8 && opts[:fontsize] <= 26
39
39
  Optimist.die :color, "must be either on or off" unless /\A(on|off|true|false)\z/ =~ opts[:color]
@@ -2,7 +2,7 @@
2
2
  name: "011"
3
3
  caption: "CCG sample"
4
4
  colorization: "off"
5
- category: "Combinatory Categorial Grammar (Experimental)"
5
+ category: "Combinatory Categorial Grammar"
6
6
  polyline: "off"
7
7
  symmetrization: "off"
8
8
  connector: "none"
@@ -2,7 +2,7 @@
2
2
  name: "012"
3
3
  caption: "CCG sample"
4
4
  colorization: "off"
5
- category: "Combinatory Categorial Grammar (Experimental)"
5
+ category: "Combinatory Categorial Grammar"
6
6
  polyline: "off"
7
7
  symmetrization: "off"
8
8
  connector: "none"
@@ -2,7 +2,7 @@
2
2
  name: "013"
3
3
  caption: "HPSG sample"
4
4
  colorization: "off"
5
- category: "Head-Driven Phrase Structure Grammar (Experimental)"
5
+ category: "Head-Driven Phrase Structure Grammar"
6
6
  polyline: "off"
7
7
  symmetrization: "off"
8
8
  connector: "bar"
@@ -2,7 +2,7 @@
2
2
  name: "014"
3
3
  caption: "Cognitive Grammar sample"
4
4
  colorization: "off"
5
- category: "Cognitive Grammar (Experimental)"
5
+ category: "Cognitive Grammar"
6
6
  polyline: "off"
7
7
  symmetrization: "off"
8
8
  connector: "auto"
@@ -6,7 +6,7 @@ category: "Computer Science"
6
6
  polyline: "on"
7
7
  symmetrization: "off"
8
8
  connector: "bar"
9
- font: "Noto Sans"
9
+ font: "Noto Sans Mono"
10
10
  reference: "Stuart 2014"
11
11
  ---
12
12
  ```
@@ -6,7 +6,7 @@ category: "Computer Science"
6
6
  polyline: "on"
7
7
  symmetrization: "off"
8
8
  connector: "bar"
9
- font: "Noto Serif"
9
+ font: "Noto Sans Mono"
10
10
  reference: ""
11
11
  ---
12
12
  ```
Binary file
Binary file
Binary file
@@ -16,65 +16,65 @@
16
16
  </pattern>
17
17
  </defs>
18
18
  <rect x="-20" y="-20" width="3748.6000000000004" height="3315.999999999999" stroke="none" fill="white" />"
19
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1675.0000000000005' y='132.0'><tspan x='1675.0000000000005' y='132.0' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;statement&#62;</tspan>
19
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1675.0000000000005' y='132.0'><tspan x='1675.0000000000005' y='132.0' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;statement&#62;</tspan>
20
20
  </text>
21
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1749.0000000000005' y='475.20000000000005'><tspan x='1749.0000000000005' y='475.20000000000005' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;while&#62;</tspan>
21
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1749.0000000000005' y='475.20000000000005'><tspan x='1749.0000000000005' y='475.20000000000005' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;while&#62;</tspan>
22
22
  </text>
23
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='30.40000000000009' y='818.4'><tspan x='30.40000000000009' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>w<tspan style='fill:none;'>■</tspan></tspan>
23
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='30.40000000000009' y='818.4'><tspan x='30.40000000000009' y='818.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>w<tspan style='fill:none;'>■</tspan></tspan>
24
24
  </text>
25
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='278.0000000000002' y='818.4'><tspan x='278.0000000000002' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>(<tspan style='fill:none;'>■</tspan></tspan>
25
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='278.0000000000002' y='818.4'><tspan x='278.0000000000002' y='818.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>(<tspan style='fill:none;'>■</tspan></tspan>
26
26
  </text>
27
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='798.4500000000003' y='818.4'><tspan x='798.4500000000003' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
27
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='798.4500000000003' y='818.4'><tspan x='798.4500000000003' y='818.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
28
28
  </text>
29
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='825.4500000000003' y='1161.6'><tspan x='825.4500000000003' y='1161.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;less-than&#62;</tspan>
29
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='825.4500000000003' y='1161.6'><tspan x='825.4500000000003' y='1161.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;less-than&#62;</tspan>
30
30
  </text>
31
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='494.60000000000014' y='1504.8'><tspan x='494.60000000000014' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
31
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='494.60000000000014' y='1504.8'><tspan x='494.60000000000014' y='1504.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
32
32
  </text>
33
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='545.1000000000001' y='1848.0'><tspan x='545.1000000000001' y='1848.0' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
33
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='545.1000000000001' y='1848.0'><tspan x='545.1000000000001' y='1848.0' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
34
34
  </text>
35
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='600.1000000000001' y='2191.2'><tspan x='600.1000000000001' y='2191.2' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>v<tspan style='fill:none;'>■</tspan></tspan>
35
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='600.1000000000001' y='2191.2'><tspan x='600.1000000000001' y='2191.2' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>v<tspan style='fill:none;'>■</tspan></tspan>
36
36
  </text>
37
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='936.2000000000003' y='1504.8'><tspan x='936.2000000000003' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>&#60;<tspan style='fill:none;'>■</tspan></tspan>
37
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='936.2000000000003' y='1504.8'><tspan x='936.2000000000003' y='1504.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>&#60;<tspan style='fill:none;'>■</tspan></tspan>
38
38
  </text>
39
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1170.8000000000002' y='1504.8'><tspan x='1170.8000000000002' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;less-than&#62;</tspan>
39
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1170.8000000000002' y='1504.8'><tspan x='1170.8000000000002' y='1504.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;less-than&#62;</tspan>
40
40
  </text>
41
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1185.3000000000002' y='1848.0'><tspan x='1185.3000000000002' y='1848.0' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
41
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1185.3000000000002' y='1848.0'><tspan x='1185.3000000000002' y='1848.0' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
42
42
  </text>
43
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1235.8000000000002' y='2191.2'><tspan x='1235.8000000000002' y='2191.2' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
43
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1235.8000000000002' y='2191.2'><tspan x='1235.8000000000002' y='2191.2' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
44
44
  </text>
45
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1287.3000000000002' y='2534.3999999999996'><tspan x='1287.3000000000002' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>n<tspan style='fill:none;'>■</tspan></tspan>
45
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1287.3000000000002' y='2534.3999999999996'><tspan x='1287.3000000000002' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>n<tspan style='fill:none;'>■</tspan></tspan>
46
46
  </text>
47
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1641.4000000000003' y='818.4'><tspan x='1641.4000000000003' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>)<tspan style='fill:none;'>■</tspan></tspan>
47
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1641.4000000000003' y='818.4'><tspan x='1641.4000000000003' y='818.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>)<tspan style='fill:none;'>■</tspan></tspan>
48
48
  </text>
49
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1858.0000000000005' y='818.4'><tspan x='1858.0000000000005' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>{<tspan style='fill:none;'>■</tspan></tspan>
49
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1858.0000000000005' y='818.4'><tspan x='1858.0000000000005' y='818.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>{<tspan style='fill:none;'>■</tspan></tspan>
50
50
  </text>
51
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2366.3750000000005' y='818.4'><tspan x='2366.3750000000005' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;statement&#62;</tspan>
51
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2366.3750000000005' y='818.4'><tspan x='2366.3750000000005' y='818.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;statement&#62;</tspan>
52
52
  </text>
53
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2423.3750000000005' y='1161.6'><tspan x='2423.3750000000005' y='1161.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;assign&#62;</tspan>
53
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2423.3750000000005' y='1161.6'><tspan x='2423.3750000000005' y='1161.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;assign&#62;</tspan>
54
54
  </text>
55
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2079.6000000000004' y='1504.8'><tspan x='2079.6000000000004' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>v<tspan style='fill:none;'>■</tspan></tspan>
55
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2079.6000000000004' y='1504.8'><tspan x='2079.6000000000004' y='1504.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>v<tspan style='fill:none;'>■</tspan></tspan>
56
56
  </text>
57
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2310.2000000000007' y='1504.8'><tspan x='2310.2000000000007' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>=<tspan style='fill:none;'>■</tspan></tspan>
57
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2310.2000000000007' y='1504.8'><tspan x='2310.2000000000007' y='1504.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>=<tspan style='fill:none;'>■</tspan></tspan>
58
58
  </text>
59
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2779.1500000000005' y='1504.8'><tspan x='2779.1500000000005' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
59
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2779.1500000000005' y='1504.8'><tspan x='2779.1500000000005' y='1504.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
60
60
  </text>
61
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2806.1500000000005' y='1848.0'><tspan x='2806.1500000000005' y='1848.0' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;less-than&#62;</tspan>
61
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2806.1500000000005' y='1848.0'><tspan x='2806.1500000000005' y='1848.0' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;less-than&#62;</tspan>
62
62
  </text>
63
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2820.6500000000005' y='2191.2'><tspan x='2820.6500000000005' y='2191.2' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
63
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2820.6500000000005' y='2191.2'><tspan x='2820.6500000000005' y='2191.2' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
64
64
  </text>
65
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2544.8' y='2534.3999999999996'><tspan x='2544.8' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
65
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2544.8' y='2534.3999999999996'><tspan x='2544.8' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
66
66
  </text>
67
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2599.8' y='2877.5999999999995'><tspan x='2599.8' y='2877.5999999999995' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>v<tspan style='fill:none;'>■</tspan></tspan>
67
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2599.8' y='2877.5999999999995'><tspan x='2599.8' y='2877.5999999999995' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>v<tspan style='fill:none;'>■</tspan></tspan>
68
68
  </text>
69
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2885.4000000000005' y='2534.3999999999996'><tspan x='2885.4000000000005' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>*<tspan style='fill:none;'>■</tspan></tspan>
69
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2885.4000000000005' y='2534.3999999999996'><tspan x='2885.4000000000005' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>*<tspan style='fill:none;'>■</tspan></tspan>
70
70
  </text>
71
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3147.0' y='2534.3999999999996'><tspan x='3147.0' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
71
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3147.0' y='2534.3999999999996'><tspan x='3147.0' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
72
72
  </text>
73
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3197.5' y='2877.5999999999995'><tspan x='3197.5' y='2877.5999999999995' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
73
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3197.5' y='2877.5999999999995'><tspan x='3197.5' y='2877.5999999999995' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
74
74
  </text>
75
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3249.0' y='3220.7999999999993'><tspan x='3249.0' y='3220.7999999999993' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>n<tspan style='fill:none;'>■</tspan></tspan>
75
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3249.0' y='3220.7999999999993'><tspan x='3249.0' y='3220.7999999999993' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>n<tspan style='fill:none;'>■</tspan></tspan>
76
76
  </text>
77
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3588.6000000000004' y='818.4'><tspan x='3588.6000000000004' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>}<tspan style='fill:none;'>■</tspan></tspan>
77
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3588.6000000000004' y='818.4'><tspan x='3588.6000000000004' y='818.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>}<tspan style='fill:none;'>■</tspan></tspan>
78
78
  </text>
79
79
  <polyline style='stroke:black; stroke-width:2; fill:none;'
80
80
  points='1866.0000000000005 365.2 1866.0000000000005 276.1 1866.0000000000005 276.1 1866.0000000000005 187.0' />
@@ -1,9 +1,9 @@
1
1
  <?xml version="1.0" standalone="no"?>
2
2
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg width="3054.6" height="2605.6" viewBox="-20, -20, 3074.6, 2625.6" version="1.1" xmlns="http://www.w3.org/2000/svg">
3
+ <svg width="2876.4000000000005" height="2613.6" viewBox="-20, -20, 2896.4000000000005, 2633.6" version="1.1" xmlns="http://www.w3.org/2000/svg">
4
4
  <defs>
5
- <marker id="arrow" markerUnits="strokeWidth" markerWidth="13.440000000000001" markerHeight="13.440000000000001" viewBox="0 0 13.440000000000001 13.440000000000001" refX="6.720000000000001" refY="0">
6
- <polyline fill="none" stroke="black" stroke-width="1" points="0,13.440000000000001,6.720000000000001,0,13.440000000000001,13.440000000000001" />
5
+ <marker id="arrow" markerUnits="strokeWidth" markerWidth="12.160000000000002" markerHeight="12.160000000000002" viewBox="0 0 12.160000000000002 12.160000000000002" refX="6.080000000000001" refY="0">
6
+ <polyline fill="none" stroke="black" stroke-width="1" points="0,12.160000000000002,6.080000000000001,0,12.160000000000002,12.160000000000002" />
7
7
  </marker>
8
8
  <pattern id="hatchBlack" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
9
9
  <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
@@ -15,149 +15,149 @@
15
15
  <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
16
16
  </pattern>
17
17
  </defs>
18
- <rect x="-20" y="-20" width="3074.6" height="2625.6" stroke="none" fill="white" />"
19
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1319.1' y='132.0'><tspan x='1319.1' y='132.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;expression&#62;</tspan>
18
+ <rect x="-20" y="-20" width="2896.4000000000005" height="2633.6" stroke="none" fill="white" />"
19
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1235.9000000000003' y='132.0'><tspan x='1235.9000000000003' y='132.0' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
20
20
  </text>
21
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1412.6' y='436.2'><tspan x='1412.6' y='436.2' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;term&#62;</tspan>
21
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1325.9000000000003' y='437.2'><tspan x='1325.9000000000003' y='437.2' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
22
22
  </text>
23
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='576.9000000000001' y='740.4'><tspan x='576.9000000000001' y='740.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;term&#62;</tspan>
23
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='540.1000000000001' y='742.4'><tspan x='540.1000000000001' y='742.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
24
24
  </text>
25
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='559.4000000000001' y='1044.6'><tspan x='559.4000000000001' y='1044.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;factor&#62;</tspan>
25
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='522.6000000000001' y='1047.6'><tspan x='522.6000000000001' y='1047.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;factor&#62;</tspan>
26
26
  </text>
27
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='33.59999999999991' y='1348.8'><tspan x='33.59999999999991' y='1348.8' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">(</tspan>
27
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='30.40000000000009' y='1352.8'><tspan x='30.40000000000009' y='1352.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">(</tspan>
28
28
  </text>
29
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='530.1500000000001' y='1348.8'><tspan x='530.1500000000001' y='1348.8' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;expression&#62;</tspan>
29
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='495.1' y='1352.8'><tspan x='495.1' y='1352.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
30
30
  </text>
31
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='191.0' y='1653.0'><tspan x='191.0' y='1653.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;expression&#62;</tspan>
31
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='174.0' y='1658.0'><tspan x='174.0' y='1658.0' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
32
32
  </text>
33
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='284.5' y='1957.2'><tspan x='284.5' y='1957.2' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;term&#62;</tspan>
33
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='264.0' y='1963.2'><tspan x='264.0' y='1963.2' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
34
34
  </text>
35
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='267.0' y='2261.4'><tspan x='267.0' y='2261.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;factor&#62;</tspan>
35
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='246.5' y='2268.4'><tspan x='246.5' y='2268.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;factor&#62;</tspan>
36
36
  </text>
37
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='349.5000000000001' y='2565.6'><tspan x='373.0000000000001' y='2565.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">A</tspan>
37
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='324.5' y='2573.6'><tspan x='352.0' y='2573.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">A</tspan>
38
38
  </text>
39
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='735.4000000000001' y='1653.0'><tspan x='749.9000000000001' y='1653.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">+</tspan>
39
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='690.6000000000001' y='1658.0'><tspan x='705.6000000000001' y='1658.0' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">+</tspan>
40
40
  </text>
41
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='962.8' y='1653.0'><tspan x='962.8' y='1653.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;term&#62;</tspan>
41
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='906.2' y='1658.0'><tspan x='906.2' y='1658.0' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
42
42
  </text>
43
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='945.3' y='1957.2'><tspan x='945.3' y='1957.2' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;factor&#62;</tspan>
43
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='888.7' y='1963.2'><tspan x='888.7' y='1963.2' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;factor&#62;</tspan>
44
44
  </text>
45
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1027.8' y='2261.4'><tspan x='1052.8' y='2261.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">B</tspan>
45
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='966.7' y='2268.4'><tspan x='992.7' y='2268.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">B</tspan>
46
46
  </text>
47
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1320.2' y='1348.8'><tspan x='1320.2' y='1348.8' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">)</tspan>
47
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1242.8000000000002' y='1352.8'><tspan x='1242.8000000000002' y='1352.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">)</tspan>
48
48
  </text>
49
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1477.6' y='740.4'><tspan x='1492.1' y='740.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">*</tspan>
49
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1386.4000000000003' y='742.4'><tspan x='1401.4000000000003' y='742.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">*</tspan>
50
50
  </text>
51
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2230.7999999999997' y='740.4'><tspan x='2230.7999999999997' y='740.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;factor&#62;</tspan>
51
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2094.2000000000007' y='742.4'><tspan x='2094.2000000000007' y='742.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;factor&#62;</tspan>
52
52
  </text>
53
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1704.9999999999998' y='1044.6'><tspan x='1704.9999999999998' y='1044.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">(</tspan>
53
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1602.0000000000005' y='1047.6'><tspan x='1602.0000000000005' y='1047.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">(</tspan>
54
54
  </text>
55
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2201.5499999999997' y='1044.6'><tspan x='2201.5499999999997' y='1044.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;expression&#62;</tspan>
55
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2066.7000000000003' y='1047.6'><tspan x='2066.7000000000003' y='1047.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
56
56
  </text>
57
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1862.3999999999996' y='1348.8'><tspan x='1862.3999999999996' y='1348.8' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;expression&#62;</tspan>
57
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1745.6000000000004' y='1352.8'><tspan x='1745.6000000000004' y='1352.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
58
58
  </text>
59
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1955.8999999999996' y='1653.0'><tspan x='1955.8999999999996' y='1653.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;term&#62;</tspan>
59
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1835.6000000000004' y='1658.0'><tspan x='1835.6000000000004' y='1658.0' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
60
60
  </text>
61
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1938.3999999999996' y='1957.2'><tspan x='1938.3999999999996' y='1957.2' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;factor&#62;</tspan>
61
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1818.1000000000004' y='1963.2'><tspan x='1818.1000000000004' y='1963.2' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;factor&#62;</tspan>
62
62
  </text>
63
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2020.8999999999996' y='2261.4'><tspan x='2045.3999999999996' y='2261.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">C</tspan>
63
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1896.1000000000004' y='2268.4'><tspan x='1922.6000000000004' y='2268.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">C</tspan>
64
64
  </text>
65
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2406.7999999999997' y='1348.8'><tspan x='2421.2999999999997' y='1348.8' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">+</tspan>
65
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2262.2000000000007' y='1352.8'><tspan x='2277.2000000000007' y='1352.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">+</tspan>
66
66
  </text>
67
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2634.2' y='1348.8'><tspan x='2634.2' y='1348.8' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;term&#62;</tspan>
67
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2477.8' y='1352.8'><tspan x='2477.8' y='1352.8' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
68
68
  </text>
69
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2616.7' y='1653.0'><tspan x='2616.7' y='1653.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">&#60;factor&#62;</tspan>
69
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2460.3' y='1658.0'><tspan x='2460.3' y='1658.0' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;factor&#62;</tspan>
70
70
  </text>
71
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2699.2' y='1957.2'><tspan x='2721.2' y='1957.2' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">D</tspan>
71
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2538.3' y='1963.2'><tspan x='2563.3' y='1963.2' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">D</tspan>
72
72
  </text>
73
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2991.6' y='1044.6'><tspan x='2991.6' y='1044.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">)</tspan>
73
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2814.4000000000005' y='1047.6'><tspan x='2814.4000000000005' y='1047.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">)</tspan>
74
74
  </text>
75
75
  <polyline style='stroke:black; stroke-width:2; fill:none;'
76
- points='1524.1 326.2 1524.1 256.6 1524.1 256.6 1524.1 187.0' />
76
+ points='1433.4000000000003 327.2 1433.4000000000003 257.1 1433.4000000000003 257.1 1433.4000000000003 187.0' />
77
77
  <polyline style='stroke:black; stroke-width:2; fill:none;'
78
- points='688.4000000000001 630.4 688.4000000000001 560.8 1524.1 560.8 1524.1 491.2' />
78
+ points='647.6000000000001 632.4 647.6000000000001 562.3 1433.4000000000003 562.3 1433.4000000000003 492.2' />
79
79
  <polyline style='stroke:black; stroke-width:2; fill:none;'
80
- points='1524.1 630.4 1524.1 560.8 1524.1 560.8 1524.1 491.2' />
80
+ points='1433.4000000000003 632.4 1433.4000000000003 562.3 1433.4000000000003 562.3 1433.4000000000003 492.2' />
81
81
  <polyline style='stroke:black; stroke-width:2; fill:none;'
82
- points='2359.7999999999997 630.4 2359.7999999999997 560.8 1524.1 560.8 1524.1 491.2' />
82
+ points='2219.2000000000007 632.4 2219.2000000000007 562.3 1433.4000000000003 562.3 1433.4000000000003 492.2' />
83
83
  <polyline style='stroke:black; stroke-width:2; fill:none;'
84
- points='688.4000000000001 934.5999999999999 688.4000000000001 865.0 688.4000000000001 865.0 688.4000000000001 795.4' />
84
+ points='647.6000000000001 937.5999999999999 647.6000000000001 867.5 647.6000000000001 867.5 647.6000000000001 797.4' />
85
85
  <polyline style='stroke:black; stroke-width:2; fill:none;'
86
- points='45.09999999999991 1238.8 45.09999999999991 1169.1999999999998 688.4000000000001 1169.1999999999998 688.4000000000001 1099.6' />
86
+ points='41.40000000000009 1242.8 41.40000000000009 1172.6999999999998 647.6000000000001 1172.6999999999998 647.6000000000001 1102.6' />
87
87
  <polyline style='stroke:black; stroke-width:2; fill:none;'
88
- points='735.1500000000001 1238.8 735.1500000000001 1169.1999999999998 688.4000000000001 1169.1999999999998 688.4000000000001 1099.6' />
88
+ points='692.6 1242.8 692.6 1172.6999999999998 647.6000000000001 1172.6999999999998 647.6000000000001 1102.6' />
89
89
  <polyline style='stroke:black; stroke-width:2; fill:none;'
90
- points='1331.7 1238.8 1331.7 1169.1999999999998 688.4000000000001 1169.1999999999998 688.4000000000001 1099.6' />
90
+ points='1253.8000000000002 1242.8 1253.8000000000002 1172.6999999999998 647.6000000000001 1172.6999999999998 647.6000000000001 1102.6' />
91
91
  <polyline style='stroke:black; stroke-width:2; fill:none;'
92
- points='396.0 1543.0 396.0 1473.4 735.1500000000001 1473.4 735.1500000000001 1403.8' />
92
+ points='371.5 1548.0 371.5 1477.9 692.6 1477.9 692.6 1407.8' />
93
93
  <polyline style='stroke:black; stroke-width:2; fill:none;'
94
- points='781.9000000000001 1543.0 781.9000000000001 1473.4 735.1500000000001 1473.4 735.1500000000001 1403.8' />
94
+ points='737.6000000000001 1548.0 737.6000000000001 1477.9 692.6 1477.9 692.6 1407.8' />
95
95
  <polyline style='stroke:black; stroke-width:2; fill:none;'
96
- points='1074.3 1543.0 1074.3 1473.4 735.1500000000001 1473.4 735.1500000000001 1403.8' />
96
+ points='1013.7 1548.0 1013.7 1477.9 692.6 1477.9 692.6 1407.8' />
97
97
  <polyline style='stroke:black; stroke-width:2; fill:none;'
98
- points='396.0 1847.2 396.0 1777.6 396.0 1777.6 396.0 1708.0' />
98
+ points='371.5 1853.2 371.5 1783.1 371.5 1783.1 371.5 1713.0' />
99
99
  <polyline style='stroke:black; stroke-width:2; fill:none;'
100
- points='396.0 2151.4 396.0 2081.8 396.0 2081.8 396.0 2012.2' />
100
+ points='371.5 2158.4 371.5 2088.3 371.5 2088.3 371.5 2018.2' />
101
101
  <polyline style='stroke:black; stroke-width:2; fill:none;'
102
- points='396.0000000000001 2455.6 396.0000000000001 2386.0 396.0 2386.0 396.0 2316.4' />
102
+ points='371.5 2463.6 371.5 2393.5 371.5 2393.5 371.5 2323.4' />
103
103
  <polyline style='stroke:black; stroke-width:2; fill:none;'
104
- points='1074.3 1847.2 1074.3 1777.6 1074.3 1777.6 1074.3 1708.0' />
104
+ points='1013.7 1853.2 1013.7 1783.1 1013.7 1783.1 1013.7 1713.0' />
105
105
  <polyline style='stroke:black; stroke-width:2; fill:none;'
106
- points='1074.3 2151.4 1074.3 2081.8 1074.3 2081.8 1074.3 2012.2' />
106
+ points='1013.7 2158.4 1013.7 2088.3 1013.7 2088.3 1013.7 2018.2' />
107
107
  <polyline style='stroke:black; stroke-width:2; fill:none;'
108
- points='1716.4999999999998 934.5999999999999 1716.4999999999998 865.0 2359.7999999999997 865.0 2359.7999999999997 795.4' />
108
+ points='1613.0000000000005 937.5999999999999 1613.0000000000005 867.5 2219.2000000000007 867.5 2219.2000000000007 797.4' />
109
109
  <polyline style='stroke:black; stroke-width:2; fill:none;'
110
- points='2406.5499999999997 934.5999999999999 2406.5499999999997 865.0 2359.7999999999997 865.0 2359.7999999999997 795.4' />
110
+ points='2264.2000000000003 937.5999999999999 2264.2000000000003 867.5 2219.2000000000007 867.5 2219.2000000000007 797.4' />
111
111
  <polyline style='stroke:black; stroke-width:2; fill:none;'
112
- points='3003.1 934.5999999999999 3003.1 865.0 2359.7999999999997 865.0 2359.7999999999997 795.4' />
112
+ points='2825.4000000000005 937.5999999999999 2825.4000000000005 867.5 2219.2000000000007 867.5 2219.2000000000007 797.4' />
113
113
  <polyline style='stroke:black; stroke-width:2; fill:none;'
114
- points='2067.3999999999996 1238.8 2067.3999999999996 1169.1999999999998 2406.5499999999997 1169.1999999999998 2406.5499999999997 1099.6' />
114
+ points='1943.1000000000004 1242.8 1943.1000000000004 1172.6999999999998 2264.2000000000003 1172.6999999999998 2264.2000000000003 1102.6' />
115
115
  <polyline style='stroke:black; stroke-width:2; fill:none;'
116
- points='2453.2999999999997 1238.8 2453.2999999999997 1169.1999999999998 2406.5499999999997 1169.1999999999998 2406.5499999999997 1099.6' />
116
+ points='2309.2000000000007 1242.8 2309.2000000000007 1172.6999999999998 2264.2000000000003 1172.6999999999998 2264.2000000000003 1102.6' />
117
117
  <polyline style='stroke:black; stroke-width:2; fill:none;'
118
- points='2745.7 1238.8 2745.7 1169.1999999999998 2406.5499999999997 1169.1999999999998 2406.5499999999997 1099.6' />
118
+ points='2585.3 1242.8 2585.3 1172.6999999999998 2264.2000000000003 1172.6999999999998 2264.2000000000003 1102.6' />
119
119
  <polyline style='stroke:black; stroke-width:2; fill:none;'
120
- points='2067.3999999999996 1543.0 2067.3999999999996 1473.4 2067.3999999999996 1473.4 2067.3999999999996 1403.8' />
120
+ points='1943.1000000000004 1548.0 1943.1000000000004 1477.9 1943.1000000000004 1477.9 1943.1000000000004 1407.8' />
121
121
  <polyline style='stroke:black; stroke-width:2; fill:none;'
122
- points='2067.3999999999996 1847.2 2067.3999999999996 1777.6 2067.3999999999996 1777.6 2067.3999999999996 1708.0' />
122
+ points='1943.1000000000004 1853.2 1943.1000000000004 1783.1 1943.1000000000004 1783.1 1943.1000000000004 1713.0' />
123
123
  <polyline style='stroke:black; stroke-width:2; fill:none;'
124
- points='2067.3999999999996 2151.4 2067.3999999999996 2081.8 2067.3999999999996 2081.8 2067.3999999999996 2012.2' />
124
+ points='1943.1000000000004 2158.4 1943.1000000000004 2088.3 1943.1000000000004 2088.3 1943.1000000000004 2018.2' />
125
125
  <polyline style='stroke:black; stroke-width:2; fill:none;'
126
- points='2745.7 1543.0 2745.7 1473.4 2745.7 1473.4 2745.7 1403.8' />
126
+ points='2585.3 1548.0 2585.3 1477.9 2585.3 1477.9 2585.3 1407.8' />
127
127
  <polyline style='stroke:black; stroke-width:2; fill:none;'
128
- points='2745.7 1847.2 2745.7 1777.6 2745.7 1777.6 2745.7 1708.0' />
128
+ points='2585.3 1853.2 2585.3 1783.1 2585.3 1783.1 2585.3 1713.0' />
129
129
  <rect style='stroke: black; stroke-width:2;'
130
- x='349.5000000000001' y='2493.2' rx='46.5' ry='46.5'
131
- width='93.0' height='93.0'
130
+ x='324.5' y='2500.4' rx='47.0' ry='47.0'
131
+ width='94.0' height='94.0'
132
132
  fill='none' />
133
133
 
134
134
  <rect style='stroke: black; stroke-width:2;'
135
- x='735.4000000000001' y='1580.6' rx='46.5' ry='46.5'
136
- width='93.0' height='93.0'
135
+ x='690.6000000000001' y='1584.8' rx='47.0' ry='47.0'
136
+ width='94.0' height='94.0'
137
137
  fill='none' />
138
138
 
139
139
  <rect style='stroke: black; stroke-width:2;'
140
- x='1027.8' y='2189.0' rx='46.5' ry='46.5'
141
- width='93.0' height='93.0'
140
+ x='966.7' y='2195.2000000000003' rx='47.0' ry='47.0'
141
+ width='94.0' height='94.0'
142
142
  fill='none' />
143
143
 
144
144
  <rect style='stroke: black; stroke-width:2;'
145
- x='1477.6' y='668.0' rx='46.5' ry='46.5'
146
- width='93.0' height='93.0'
145
+ x='1386.4000000000003' y='669.1999999999999' rx='47.0' ry='47.0'
146
+ width='94.0' height='94.0'
147
147
  fill='none' />
148
148
 
149
149
  <rect style='stroke: black; stroke-width:2;'
150
- x='2020.8999999999996' y='2189.0' rx='46.5' ry='46.5'
151
- width='93.0' height='93.0'
150
+ x='1896.1000000000004' y='2195.2000000000003' rx='47.0' ry='47.0'
151
+ width='94.0' height='94.0'
152
152
  fill='none' />
153
153
 
154
154
  <rect style='stroke: black; stroke-width:2;'
155
- x='2406.7999999999997' y='1276.3999999999999' rx='46.5' ry='46.5'
156
- width='93.0' height='93.0'
155
+ x='2262.2000000000007' y='1279.6' rx='47.0' ry='47.0'
156
+ width='94.0' height='94.0'
157
157
  fill='none' />
158
158
 
159
159
  <rect style='stroke: black; stroke-width:2;'
160
- x='2699.2' y='1884.8' rx='46.5' ry='46.5'
161
- width='93.0' height='93.0'
160
+ x='2538.3' y='1890.0' rx='47.0' ry='47.0'
161
+ width='94.0' height='94.0'
162
162
  fill='none' />
163
163
  </svg>
@@ -16,35 +16,35 @@
16
16
  </pattern>
17
17
  </defs>
18
18
  <rect x="-20" y="-20" width="1458.6000000000004" height="1089.6" stroke="none" fill="white" />"
19
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='668.3125000000001' y='132.0'><tspan x='688.8125000000001' y='132.0' style="font-weight: bold; " text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">D</tspan>
19
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='668.3125000000001' y='132.0'><tspan x='688.8125000000001' y='132.0' style="font-weight: bold; " text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">D</tspan>
20
20
  </text>
21
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='298.05000000000007' y='431.2'><tspan x='318.55000000000007' y='431.2' style="font-weight: bold; " text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">D</tspan>
21
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='298.05000000000007' y='431.2'><tspan x='318.55000000000007' y='431.2' style="font-weight: bold; " text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">D</tspan>
22
22
  </text>
23
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='147.20000000000005' y='730.4'><tspan x='147.20000000000005' y='730.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">A</tspan>
23
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='147.20000000000005' y='730.4'><tspan x='147.20000000000005' y='730.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">A</tspan>
24
24
  </text>
25
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='30.399999999999977' y='1029.6'><tspan x='53.89999999999998' y='1029.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">A</tspan>
25
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='30.399999999999977' y='1029.6'><tspan x='53.89999999999998' y='1029.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">A</tspan>
26
26
  </text>
27
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='240.00000000000006' y='1029.6'><tspan x='240.00000000000006' y='1029.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">B</tspan>
27
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='240.00000000000006' y='1029.6'><tspan x='240.00000000000006' y='1029.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">B</tspan>
28
28
  </text>
29
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='472.4000000000001' y='730.4'><tspan x='492.9000000000001' y='730.4' style="font-weight: bold; " text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">D</tspan>
29
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='472.4000000000001' y='730.4'><tspan x='492.9000000000001' y='730.4' style="font-weight: bold; " text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">D</tspan>
30
30
  </text>
31
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='403.6000000000001' y='1029.6'><tspan x='403.6000000000001' y='1029.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">C</tspan>
31
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='403.6000000000001' y='1029.6'><tspan x='403.6000000000001' y='1029.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">C</tspan>
32
32
  </text>
33
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='565.2' y='1029.6'><tspan x='585.7' y='1029.6' style="font-weight: bold; " text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">D</tspan>
33
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='565.2' y='1029.6'><tspan x='585.7' y='1029.6' style="font-weight: bold; " text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">D</tspan>
34
34
  </text>
35
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1059.0750000000003' y='431.2'><tspan x='1059.0750000000003' y='431.2' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">G</tspan>
35
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1059.0750000000003' y='431.2'><tspan x='1059.0750000000003' y='431.2' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">G</tspan>
36
36
  </text>
37
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='868.1000000000001' y='730.4'><tspan x='868.1000000000001' y='730.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">F</tspan>
37
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='868.1000000000001' y='730.4'><tspan x='868.1000000000001' y='730.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">F</tspan>
38
38
  </text>
39
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='774.8000000000002' y='1029.6'><tspan x='774.8000000000002' y='1029.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">E</tspan>
39
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='774.8000000000002' y='1029.6'><tspan x='774.8000000000002' y='1029.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">E</tspan>
40
40
  </text>
41
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='932.4000000000001' y='1029.6'><tspan x='959.9000000000001' y='1029.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">F</tspan>
41
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='932.4000000000001' y='1029.6'><tspan x='959.9000000000001' y='1029.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">F</tspan>
42
42
  </text>
43
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1236.5500000000002' y='730.4'><tspan x='1257.0500000000002' y='730.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">G</tspan>
43
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1236.5500000000002' y='730.4'><tspan x='1257.0500000000002' y='730.4' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">G</tspan>
44
44
  </text>
45
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1142.0000000000002' y='1029.6'><tspan x='1162.5000000000002' y='1029.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">G</tspan>
45
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1142.0000000000002' y='1029.6'><tspan x='1162.5000000000002' y='1029.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">G</tspan>
46
46
  </text>
47
- <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1351.6000000000004' y='1029.6'><tspan x='1351.6000000000004' y='1029.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">H</tspan>
47
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1351.6000000000004' y='1029.6'><tspan x='1351.6000000000004' y='1029.6' style="" text-decoration="" font-family="'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">H</tspan>
48
48
  </text>
49
49
  <polyline style='stroke:black; stroke-width:2; fill:none;'
50
50
  points='342.05000000000007 321.2 342.05000000000007 254.1 712.3125000000001 254.1 712.3125000000001 187.0' />
@@ -31,12 +31,12 @@ The `Radical symmetrization` option affects the way branch nodes are drawn. The
31
31
 
32
32
  ### Fonts Used to Generate PNG
33
33
 
34
- Currently, you can choose between the font styles `Noto Sans`, `Noto Serif`, and `WQY Zen Hei`.
34
+ Currently, you can choose among the font styles `Noto Sans`, `Noto Serif`, `Noto Sans Mono` and `WQY Zen Hei`.
35
35
 
36
36
  - `Noto Sans` can display basic Unicode characters (including Japanese hiragana/katakana/kanji).
37
37
  - `Noto Serif` can display basic Unicode characters (including Japanese hiragana/katakana/kanji).
38
38
  - `WQY Zen Hei` can display a wide range of Chinese/Japanese/Korean (CJK) characters.
39
-
39
+ - `Noto Sans Mono` can display basic Unicode characters in a mono-spaced typeface.
40
40
 
41
41
  ### Install Fonts for SVG
42
42
 
@@ -47,6 +47,7 @@ SVG images are dependent on the fonts installed locally on your computer. In ord
47
47
  - [Noto Serif](https://fonts.google.com/noto/specimen/Noto+Serif): for latin and other basic Unicode characters in serif
48
48
  - [Noto Serif JP](https://fonts.google.com/noto/specimen/Noto+Serif+JP): for Japanese characters in serif
49
49
  - [WQY Zen Hei](https://packages.ubuntu.com/bionic/fonts/fonts-wqy-zenhei): for CJK characters
50
+ - [Noto Sans Mono](https://fonts.google.com/noto/specimen/Noto+Sans+Mono): for latin and other basic Unicode characters in sans serif mono (semi-condensed)
50
51
  - [OpenMoji](https://openmoji.org/): for emoji characters.
51
52
 
52
53
 
@@ -218,11 +218,11 @@ module RSyntaxTree
218
218
  case @fontstyle
219
219
  when /(?:cjk)/
220
220
  fontstyle = "'WenQuanYi Zen Hei', 'Noto Sans', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"
221
- when /(?:sans)/
221
+ when /(?:sans|mono)/
222
222
  fontstyle = if e[:cjk]
223
- "'Noto Sans JP', 'Noto Sans', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"
223
+ "'Noto Sans JP', 'Noto Sans Mono SemiConcensed', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"
224
224
  else
225
- "'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"
225
+ "'Noto Sans Mono SemiConcensed', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"
226
226
  end
227
227
  when /(?:serif)/
228
228
  fontstyle = if e[:cjk]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RSyntaxTree
4
- VERSION = "1.1.2"
4
+ VERSION = "1.1.3"
5
5
  end
data/lib/rsyntaxtree.rb CHANGED
@@ -63,6 +63,15 @@ module RSyntaxTree
63
63
  new_params[key] = value.to_f
64
64
  when :fontstyle
65
65
  case value
66
+ when "noto-sans-mono", "mono"
67
+ fontset[:normal] = FONT_DIR + "/NotoSansMono_SemiCondensed-Regular.ttf"
68
+ fontset[:italic] = FONT_DIR + "/NotoSansMono_SemiCondensed-Regular.ttf"
69
+ fontset[:bold] = FONT_DIR + "/NotoSansMono_SemiCondensed-Bold.ttf"
70
+ fontset[:bolditalic] = FONT_DIR + "/NotoSansMono_SemiCondensed-Bold.ttf"
71
+ fontset[:math] = FONT_DIR + "/latinmodern-math.otf"
72
+ fontset[:cjk] = FONT_DIR + "/NotoSansJP-Regular.otf"
73
+ fontset[:emoji] = FONT_DIR + "/OpenMoji-Black.ttf"
74
+ new_params[:fontstyle] = "mono"
66
75
  when "noto-sans", "sans"
67
76
  fontset[:normal] = FONT_DIR + "/NotoSans-Regular.ttf"
68
77
  fontset[:italic] = FONT_DIR + "/NotoSans-Italic.ttf"
@@ -44,6 +44,8 @@ class ExampleParserTest < Minitest::Test
44
44
  opts[:leafstyle] = value
45
45
  when "font"
46
46
  opts[:fontstyle] = case value
47
+ when /mono/i
48
+ "mono"
47
49
  when /sans/i
48
50
  "sans"
49
51
  when /serif/i
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsyntaxtree
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoichiro Hasebe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-28 00:00:00.000000000 Z
11
+ date: 2023-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: optimist
@@ -228,6 +228,8 @@ files:
228
228
  - fonts/NotoSansJP-Bold.otf
229
229
  - fonts/NotoSansJP-Regular.otf
230
230
  - fonts/NotoSansMath-Regular.ttf
231
+ - fonts/NotoSansMono_SemiCondensed-Bold.ttf
232
+ - fonts/NotoSansMono_SemiCondensed-Regular.ttf
231
233
  - fonts/NotoSerif-Bold.ttf
232
234
  - fonts/NotoSerif-BoldItalic.ttf
233
235
  - fonts/NotoSerif-Italic.ttf