asciidoctor-latex 1.5.0.3.dev → 1.5.0.4.dev

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +28 -5
  3. data/README.adoc +48 -23
  4. data/Rakefile +2 -1
  5. data/data/asciidoc_tex_macros.tex +86 -3
  6. data/data/extras.css +73 -1
  7. data/data/preamble_article.tex +15 -6
  8. data/data/preamble_book.tex +25 -9
  9. data/examples/README.adoc +341 -9
  10. data/examples/README.html +915 -0
  11. data/examples/math_article.adoc +46 -46
  12. data/examples/xref-equations.adoc +1 -2
  13. data/lib/asciidoctor-latex/click.css +2 -0
  14. data/lib/asciidoctor-latex/click.js +6 -0
  15. data/lib/asciidoctor-latex/jquery.js +4 -0
  16. data/lib/asciidoctor-latex/preamble_processor.rb +18 -0
  17. data/lib/asciidoctor/latex/click_block.rb +7 -4
  18. data/lib/asciidoctor/latex/converter.rb +75 -29
  19. data/lib/asciidoctor/latex/core_ext/utility.rb +55 -0
  20. data/lib/asciidoctor/latex/css.rb +50 -0
  21. data/lib/asciidoctor/latex/environment_block.rb +13 -6
  22. data/lib/asciidoctor/latex/inject_html.rb +2 -1
  23. data/lib/asciidoctor/latex/node_processors.rb +329 -152
  24. data/lib/asciidoctor/latex/prepend_processor.rb +1 -0
  25. data/lib/asciidoctor/latex/tex_postprocessor.rb +8 -3
  26. data/lib/asciidoctor/latex/tex_preprocessor.rb +31 -9
  27. data/lib/asciidoctor/latex/version.rb +1 -1
  28. data/test/examples/adoc/ampersand.adoc +2 -0
  29. data/test/examples/adoc/block_olist.adoc +58 -0
  30. data/test/examples/adoc/block_ulist.adoc +42 -0
  31. data/test/examples/adoc/box.adoc +35 -1
  32. data/test/examples/adoc/chem.adoc +8 -0
  33. data/test/examples/adoc/click_plain.adoc +24 -0
  34. data/test/examples/adoc/dlist.adoc +15 -0
  35. data/test/examples/adoc/env2.adoc +57 -0
  36. data/test/examples/adoc/env_joke.adoc +12 -0
  37. data/test/examples/adoc/env_plain.adoc +10 -0
  38. data/test/examples/adoc/eq-latex.adoc +39 -0
  39. data/test/examples/adoc/eq.adoc +18 -0
  40. data/test/examples/adoc/eq.tex +28 -0
  41. data/test/examples/adoc/eqalign.adoc +19 -6
  42. data/test/examples/adoc/eqalign.tex +25 -0
  43. data/test/examples/adoc/eqno-latex.adoc +120 -0
  44. data/test/examples/adoc/extras.adoc +14 -0
  45. data/test/examples/adoc/hypertarget.adoc +29 -0
  46. data/test/examples/adoc/image.adoc +7 -0
  47. data/test/examples/adoc/newEnvironments.tex +0 -0
  48. data/test/examples/adoc/table.adoc +6 -0
  49. data/test/examples/adoc/table.tex +10 -0
  50. data/test/examples/adoc/tex_pathologies.adoc +30 -0
  51. data/test/examples/html/env.html +147 -0
  52. data/test/examples/html/equations.html +14 -0
  53. data/test/examples/tex/ampersand.tex +2 -0
  54. data/test/examples/tex/block_admonition.tex +20 -0
  55. data/test/examples/tex/block_audio.tex +7 -0
  56. data/test/examples/tex/block_colist.tex +23 -0
  57. data/test/examples/tex/block_dlist.tex +117 -0
  58. data/test/examples/tex/block_example.tex +20 -0
  59. data/test/examples/tex/block_floating_title.tex +20 -0
  60. data/test/examples/tex/block_image.tex +46 -0
  61. data/test/examples/tex/block_listing.tex +59 -0
  62. data/test/examples/tex/block_literal.tex +28 -0
  63. data/test/examples/tex/block_olist.tex +119 -0
  64. data/test/examples/tex/block_open.tex +22 -0
  65. data/test/examples/tex/block_outline.tex +25 -0
  66. data/test/examples/tex/block_page_break.tex +4 -0
  67. data/test/examples/tex/block_paragraph.tex +13 -0
  68. data/test/examples/tex/block_pass.tex +3 -0
  69. data/test/examples/tex/block_preamble.tex +15 -0
  70. data/test/examples/tex/block_quote.tex +51 -0
  71. data/test/examples/tex/block_sidebar.tex +21 -0
  72. data/test/examples/tex/block_stem.tex +19 -0
  73. data/test/examples/tex/block_table.tex +188 -0
  74. data/test/examples/tex/block_thematic_break.tex +1 -0
  75. data/test/examples/tex/block_toc.tex +27 -0
  76. data/test/examples/tex/block_ulist.tex +96 -0
  77. data/test/examples/tex/block_verse.tex +39 -0
  78. data/test/examples/tex/block_video.tex +15 -0
  79. data/test/examples/tex/box.tex +25 -0
  80. data/test/examples/tex/chem.tex +7 -0
  81. data/test/examples/tex/click_plain.tex +25 -0
  82. data/test/examples/tex/dlist.tex +17 -0
  83. data/test/examples/tex/document.tex +25 -0
  84. data/test/examples/tex/embedded.tex +7 -0
  85. data/test/examples/tex/env.tex +7 -7
  86. data/test/examples/tex/env2.tex +29 -0
  87. data/test/examples/tex/env_joke.tex +9 -0
  88. data/test/examples/tex/env_plain.tex +7 -0
  89. data/test/examples/tex/eq-latex.tex +49 -0
  90. data/test/examples/tex/eq.tex +9 -0
  91. data/test/examples/tex/eqalign.tex +23 -0
  92. data/test/examples/tex/eqno-latex.tex +237 -0
  93. data/test/examples/tex/exponent1.tex +2 -0
  94. data/test/examples/tex/exponent2.tex +4 -0
  95. data/test/examples/tex/extras.tex +13 -0
  96. data/test/examples/tex/hypertarget.tex +25 -0
  97. data/test/examples/tex/image.tex +4 -0
  98. data/test/examples/tex/inline_anchor.tex +25 -0
  99. data/test/examples/tex/inline_break.tex +7 -0
  100. data/test/examples/tex/inline_button.tex +1 -0
  101. data/test/examples/tex/inline_callout.tex +4 -0
  102. data/test/examples/tex/inline_footnote.tex +9 -0
  103. data/test/examples/tex/inline_image.tex +25 -0
  104. data/test/examples/tex/inline_kbd.tex +3 -0
  105. data/test/examples/tex/inline_menu.tex +5 -0
  106. data/test/examples/tex/inline_quoted.tex +63 -0
  107. data/test/examples/tex/line_break.tex +4 -0
  108. data/test/examples/tex/listing.tex +10 -0
  109. data/test/examples/tex/literal.tex +42 -0
  110. data/test/examples/tex/macro_underscore.tex +6 -0
  111. data/test/examples/tex/math.tex +8 -0
  112. data/test/examples/tex/open_block.tex +10 -0
  113. data/test/examples/tex/page_break.tex +4 -0
  114. data/test/examples/tex/pass.tex +3 -0
  115. data/test/examples/tex/section.tex +51 -0
  116. data/test/examples/tex/sections.tex +13 -0
  117. data/test/examples/tex/table.tex +10 -0
  118. data/test/examples/tex/tex_pathologies.tex +26 -0
  119. data/test/examples/tex/zero.tex +1 -1
  120. metadata +188 -26
  121. data/examples/box.adoc +0 -16
  122. data/examples/chem.adoc +0 -17
  123. data/examples/eq-alignment.adoc +0 -5
  124. data/examples/eq-block.adoc +0 -60
  125. data/test/examples/adoc/admonition.adoc +0 -11
  126. data/test_jc/admonition.adoc +0 -4
  127. data/test_jc/click.adoc +0 -7
  128. data/test_jc/env.adoc +0 -31
  129. data/test_jc/example.adoc +0 -17
  130. data/test_jc/floating_title.adoc +0 -15
  131. data/test_jc/image.adoc +0 -84
  132. data/test_jc/images/frog.jpg +0 -0
  133. data/test_jc/images/red_frog.jpeg +0 -0
  134. data/test_jc/images/yellow_frog.jpeg +0 -0
  135. data/test_jc/listing.adoc +0 -9
  136. data/test_jc/lists.adoc +0 -20
  137. data/test_jc/math.adoc +0 -10
  138. data/test_jc/preamble.adoc +0 -14
  139. data/test_jc/section-numbered.adoc +0 -9
  140. data/test_jc/section.adoc +0 -7
  141. data/test_jc/sidebar.adoc +0 -61
  142. data/test_jc/verse.adoc +0 -15
@@ -0,0 +1,28 @@
1
+ The Pythagorean theorem, $a^2 + b^2 = c^2$,
2
+ relates the hypotenuse to the altitude
3
+ and base of a right triangle.
4
+
5
+
6
+ Euler’s formula states that
7
+ \[
8
+ e^{2\pi \sqrt{-1}} = 1
9
+ \]
10
+
11
+
12
+ Ain’t that great!
13
+
14
+
15
+ \begin{equation*}
16
+ \sum_{k=1}^\infty \frac{1}{n}
17
+ \end{equation}
18
+
19
+ \begin{equation}
20
+ \label{hoho}
21
+ \sum_{k=1}^\infty \frac{1}{n^2}
22
+ \end{equation}
23
+
24
+ \begin{equation}
25
+ \sum_{k=1}^\infty \frac{1}{n^3}
26
+ -
27
+ \end{equation}
28
+
@@ -1,13 +1,26 @@
1
1
  //.eqalign
2
2
 
3
- [env.equation]
4
- --
5
- \sum_{k=1}^\infty \frac{1}{n}
6
- --
3
+
7
4
 
8
5
  [env.equationalign]
9
6
  --
10
7
  a &= b + c \\
11
- a &= (c + d) + d \\
12
- &= c + 2d
8
+ b &= x + y \\
9
+ a &= x + y + c
10
+ --
11
+
12
+
13
+ [env.equationalign#foo]
13
14
  --
15
+ A &= B + C \\
16
+ B &= X + Y \\
17
+ Z &= X + Y + C
18
+ --
19
+
20
+
21
+ [env.equationalign%numbered]
22
+ --
23
+ a &= b + c \\
24
+ b &= x + y \\
25
+ a &= x + y + c
26
+ --
@@ -0,0 +1,25 @@
1
+ \begin{equation*}
2
+ \begin{split}
3
+ a &= b + c \\
4
+ b &= x + y \\
5
+ a &= x + y + c
6
+ \end{split}
7
+ \end{equation}
8
+
9
+ \begin{equation}
10
+ \label{foo}
11
+ \begin{split}
12
+ A &= B + C \\
13
+ B &= X + Y \\
14
+ Z &= X + Y + C
15
+ \end{split}
16
+ \end{equation}
17
+
18
+ \begin{equation}
19
+ \begin{split}
20
+ a &= b + c \\
21
+ b &= x + y \\
22
+ a &= x + y + c
23
+ \end{split}
24
+ \end{equation}
25
+
@@ -0,0 +1,120 @@
1
+ == Numbered Equations
2
+
3
+
4
+ The environment `[env.equation]` is automatically
5
+ numbered by default, as in the examples below.
6
+
7
+
8
+ [env.equation]
9
+ --
10
+ a^3 + b^3 = c^3
11
+ --
12
+
13
+
14
+ [env.equation]
15
+ --
16
+ \int_0^1 x^n dx = \frac{1}{n}
17
+ --
18
+
19
+ Here is how the first equation is done:
20
+ ----
21
+ [env.equation]
22
+ --
23
+ a^3 + b^3 = c^3
24
+ --
25
+ ----
26
+
27
+ === Some more equations
28
+
29
+ .Pythagorean theorem
30
+ [env.equation#pyth]
31
+ --
32
+ a^2 + b^2 = c^2
33
+ --
34
+
35
+ A Fourier series:
36
+
37
+ [env.equation#fourier]
38
+ --
39
+ f(z) = \sum_{n=-\infty}^\infty e^{2\pi i n z }.
40
+ --
41
+
42
+
43
+ A matrix:
44
+ [env.equation#eq-matrix]
45
+ --
46
+ M = \left(
47
+ \begin{matrix}
48
+ 1 & 2 \\
49
+ 3 & 4
50
+ \end{matrix}
51
+ \right)
52
+ --
53
+
54
+
55
+ === Titles
56
+
57
+ Equations can take a title:
58
+
59
+ .Fundamental theorem of calculus
60
+ [env.equation]
61
+ --
62
+ \frac{d}{dx} \int_a^x f(t) dt = f(x)
63
+ --
64
+
65
+ We wrote this:
66
+
67
+ ----
68
+
69
+ .Fundamental theorem of calculus
70
+ [env.equation]
71
+ --
72
+ \frac{d}{dx} \int_a^x f(t) dt = f(x)
73
+ --
74
+ ----
75
+
76
+ === Suppressing numbering
77
+
78
+ Numbering can be suppresed on a per-item basis.
79
+ This gives a "bare" equation.
80
+
81
+
82
+ [env.equation%no-number ]
83
+ --
84
+ M = \left[
85
+ \begin{array}{ c c }
86
+ 1 & 2 \\
87
+ 3 & 4
88
+ \end{array} \right]
89
+ --
90
+
91
+ We wrote `[env.equation%no-number]`.
92
+ If numbering is suppressed but a title is present,
93
+ the title is displayed.
94
+
95
+ .Symmetric matrix
96
+ [env.equation%no-number]
97
+ --
98
+ M = \left[
99
+ \begin{array}{ c c }
100
+ 1 & 2 \\
101
+ -2 & 5
102
+ \end{array} \right]
103
+ --
104
+
105
+ Here is the source:
106
+
107
+ ----
108
+ .Symmetric matrix
109
+ [env.equation%no-number]
110
+ --
111
+ M = \left[
112
+ \begin{array}{ c c }
113
+ 1 & 2 \\
114
+ -2 & 5
115
+ \end{array} \right]
116
+ --
117
+ ----
118
+
119
+
120
+ Note: In <<eq-matrix>> we defined a matrix.
@@ -0,0 +1,14 @@
1
+ [.foo]
2
+ This is test
3
+ Of whether --
4
+ Yes,
5
+ Whether, perhaps, and maybe,
6
+ But certainly not,
7
+ not, not indeed!
8
+ Lines can be formattted just the way we
9
+ Please!
10
+
11
+ [.text-center]
12
+ --
13
+ This text should be centered.
14
+ --
@@ -0,0 +1,29 @@
1
+ //.sections
2
+
3
+
4
+ == Section AA
5
+
6
+ But I must explain to you how all this mistaken
7
+ idea of denouncing pleasure and praising pain
8
+ was born and I will give you a complete account
9
+ of the system, and expound the actual teachings
10
+ of the great explorer of the truth, the
11
+ master-builder of human happiness. No one
12
+ rejects, dislikes, or avoids pleasure itself,
13
+ because it is pleasure, but because those who
14
+ do not know how to pursue pleasure rationally
15
+ encounter consequences that are extremely
16
+ painful. Nor again is there anyone who loves
17
+ or pursues or desires to obtain pain of itself,
18
+ because it is pain, but because occasionally
19
+ circumstances occur in which toil and pain can
20
+ procure him some great pleasure. To take a trivial
21
+ example, which of us ever undertakes laborious
22
+ physical exercise, except to obtain some
23
+ advantage from it? But who has any right
24
+ to find fault with a man who chooses to
25
+ enjoy a pleasure that has no
26
+ annoying consequences, or one who avoids
27
+ a pain that produces no resultant pleasure?
28
+
29
+ I refer you to <<_section_aa>>.
@@ -0,0 +1,7 @@
1
+ //.image
2
+ image::sunset.jpg[width=200]
3
+
4
+
5
+ //.image
6
+ .Graph
7
+ image::sunset.jpg[width=200]
File without changes
@@ -0,0 +1,6 @@
1
+ //.table
2
+ |===
3
+ | Eggs | one dozen
4
+ | Potatoes | nine pounds
5
+ | Milks | three quarts
6
+ |===
@@ -0,0 +1,10 @@
1
+ \begin{center}
2
+ \begin{tabular}{|c|c|}
3
+ \hline
4
+ Eggs & one dozen \\
5
+ Potatoes & nine pounds \\
6
+ Milks & three quarts \\
7
+ \hline
8
+ \end{tabular}
9
+ \end{center}
10
+
@@ -0,0 +1,30 @@
1
+ //.tex_pathology1
2
+ $\Delta = \set{\text{0, roots of \(g\)}}$
3
+
4
+ //.tex_pathology2
5
+ $2s^{-1/2}\arctan\left(\frac{x-s}{s}\right)^{1/2}$
6
+
7
+ //.tex_pathology3
8
+ $x^{1/2}(x-1)^{1/2}(x-s)^{3/2}$
9
+
10
+ //.tae_pathology4
11
+ $f'(x) = s(s-1)+ O((x-s))$
12
+
13
+ //.tae_pathology4b
14
+ $f'(x) = s(s-1)+ O( (x-s) )$
15
+
16
+ //.tex_patholgies5
17
+ [env.equation]
18
+ --
19
+ a_g(s) \frac{ d^g }{ds^g}[\omega(s)] + \cdots +
20
+ ba_1(s) \frac{ d }{ds}[\omega(s)] +
21
+ a_0(s) [\omega(s)] = 0
22
+ --
23
+
24
+ //.tex_pathologies6
25
+ [env.equationalign]
26
+ --
27
+ \omega(s) = x^{-1/2}(x-1)^{-1/2}(x-s)^{-1/2} dx \\
28
+ \omega'(s) = \frac{1}{2} x^{-1/2}(x-1)^{-1/2}(x-s)^{-3/2} dx \\
29
+ \omega'(s) = \frac{3}{4} x^{-1/2}(x-1)^{-1/2}(x-s)^{-5/2} dx
30
+ --
@@ -0,0 +1,147 @@
1
+ <!-- .env_theorem -->
2
+ <div class="openblock theorem">
3
+ <div class="title">Theorem 1.</div>
4
+ <div class="content">
5
+ <div style="font-size: 1.05em; font-style: oblique; line-height: 1.5em; margin-bottom: 1.5em;">There exist infinitely many prime numbers.</div>
6
+ </div>
7
+ </div>
8
+
9
+ <!-- .env_theorem_no_numbers -->
10
+ <div class="openblock theorem">
11
+ <div class="title">Theorem</div>
12
+ <div class="content">
13
+ <div style="font-size: 1.05em; font-style: oblique; line-height: 1.5em; margin-bottom: 1.5em;">There exist infinitely many prime numbers.</div>
14
+ </div>
15
+ </div>
16
+
17
+ <!-- .env_theorem_titled -->
18
+ <div class="openblock theorem">
19
+ <div class="title">Theorem 1: Euclid</div>
20
+ <div class="content">
21
+ <div style="font-size: 1.05em; font-style: oblique; line-height: 1.5em; margin-bottom: 1.5em;">There exist infinitely many prime numbers.</div>
22
+ </div>
23
+ </div>
24
+
25
+ <!-- .env_theorem_titled_no_number -->
26
+ <div class="openblock theorem">
27
+ <div class="title">Theorem: Euclid</div>
28
+ <div class="content">
29
+ <div style="font-size: 1.05em; font-style: oblique; line-height: 1.5em; margin-bottom: 1.5em;">There exist infinitely many prime numbers.</div>
30
+ </div>
31
+ </div>
32
+
33
+ <!-- .env_equation -->
34
+ <div class="openblock equation">
35
+ <div class="content">
36
+ <table class="zero" style="border: 0; border-collapse: collapse; width: 100%;">
37
+ <tr style="border: 0; border-collapse: collapse; font-size: 12pt;">
38
+ <td style="width: 100%;">\[ a^{p-1} \equiv 1\ \text{mod}\ p \]</td>
39
+ </tr>
40
+ </table>
41
+ </div>
42
+ </div>
43
+
44
+ <!-- .click_comment -->
45
+ <div class="openblock click">
46
+ <div class="title">Comment</div>
47
+ <div class="content">
48
+ <div style="font-size: 1.05em; font-style: oblique; line-height: 1.5em; margin-bottom: 1.5em;">It is sometimes useful to "hide" a comment …​</div>
49
+ </div>
50
+ </div>
51
+
52
+ <!-- .box -->
53
+ <div class="openblock box">
54
+ <div class="content">Buurem lok medes, nor. Paat for deng zu locnoop.</div>
55
+ </div>
56
+
57
+ <!-- .box_numbered -->
58
+ <div class="openblock box">
59
+ <div class="title">1.</div>
60
+ <div class="content">Buurem lok medes, nor. Paat for deng zu locnoop.</div>
61
+ </div>
62
+
63
+ <!-- .box_with_title -->
64
+ <div class="openblock box">
65
+ <div class="title">Blaar, dem za doop</div>
66
+ <div class="content">Buurem lok medes, nor. Paat for deng zu locnoop.</div>
67
+ </div>
68
+
69
+ <!-- .box_numbered_with_title -->
70
+ <div class="openblock box">
71
+ <div class="title">1: Blaar, dem za doop</div>
72
+ <div class="content">Buurem lok medes, nor. Paat for deng zu locnoop.</div>
73
+ </div>
74
+
75
+ <!-- .env_equation_no_number -->
76
+ <div class="openblock equation">
77
+ <div class="content">
78
+ <table class="zero" style="border: 0; border-collapse: collapse; width: 100%;">
79
+ <tr style="border: 0; border-collapse: collapse; font-size: 12pt;">
80
+ <td style="width: 100%;">\[ a^{p-1} \equiv 1\ \text{mod}\ p \]</td>
81
+ </tr>
82
+ </table>
83
+ </div>
84
+ </div>
85
+
86
+ <!-- .env_equationalign -->
87
+ <div class="openblock equationalign">
88
+ <div class="content">
89
+ <table class="zero" style="border: 0; border-collapse: collapse; width: 100%;">
90
+ <tr style="border: 0; border-collapse: collapse; font-size: 12pt;">
91
+ <td style="width: 100%;">\[\begin{split} a &amp;= b + c \\ c &amp;= d + e \\ a &amp;= b + d + e \end{split}\]</td>
92
+ </tr>
93
+ </table>
94
+ </div>
95
+ </div>
96
+
97
+ <!-- .chem -->
98
+ <div class="paragraph">
99
+ <p>This — \(\ce{ 2H2 + O2 → 2H2O }\) — happens a lot.</p>
100
+ </div>
101
+
102
+ <!-- .cheenv -->
103
+ <div class="openblock chem" id="reaction-smelt">
104
+ <div class="content">
105
+ <table class="zero" style="border: 0; border-collapse: collapse; width: 100%;">
106
+ <tr class="zero" style="border: 0; border-collapse: collapse; font-size: 10pt;">
107
+ <td style="width: 100%;">\[\ce{2Fe2O3 + 3C → 4Fe + 3CO2}\]</td>
108
+ <td style="text-align: right;">(1)</td>
109
+ </tr>
110
+ </table>
111
+ </div>
112
+ </div>
113
+
114
+ <!-- .jsxgraph -->
115
+ <div class="openblock jsxgraph">
116
+ <div class="title">JSXGraph 1.</div>
117
+ <div class="content">
118
+ <link href="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css" rel="stylesheet" type="text/css">
119
+ <script src="//cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.3/jsxgraphcore.js" type="text/javascript"></script><script src="http://jsxgraph.uni-bayreuth.de/distrib/GeonextReader.js" type="text/javascript"></script>
120
+ <div class="jxgbox" id="box" style="height: 200px; width: 200px;"></div>
121
+ <script type="text/javascript">
122
+ var board = JXG.JSXGraph.initBoard('box',
123
+ {boundingbox: [-10, 10, 10, -10], axis:true});
124
+ </script><br>
125
+ </div>
126
+ </div>
127
+
128
+
129
+ <!-- .%external_reference -->
130
+ <div class="paragraph">
131
+ <p>He read an article in <a href="http://washingtonpost.com">The Washington Post</a></p>
132
+ </div>
133
+
134
+ <!-- .chem_env -->
135
+ <div class="paragraph">
136
+ <p>Let’s smelt some iron!</p>
137
+ </div>
138
+ <div class="openblock chem" id="reaction-smelt">
139
+ <div class="content">
140
+ <table class="zero" style="border: 0; border-collapse: collapse; width: 100%;">
141
+ <tr class="zero" style="border: 0; border-collapse: collapse; font-size: 10pt;">
142
+ <td style="width: 100%;">\[\ce{2Fe2O3 + 3C → 4Fe + 3CO2}\]</td>
143
+ <td style="text-align: right;">(1)</td>
144
+ </tr>
145
+ </table>
146
+ </div>
147
+ </div>