rsyntaxtree 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 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