├── xmlcatalog
└── catalog.xml
├── example
├── katexify-example.xml
├── test.xpl
└── example.xml
├── css
└── katex-overrides.css
├── xspec
├── mtable.xspec
└── subsup.xspec
├── xsl
├── invoke-mml2tex.xsl
├── function-names.xsl
├── test-mml.xsl
├── katexify.xsl
├── operators.xsl
└── mml2tex.xsl
├── LICENSE
├── texmap
└── texmap-upgreek.xml
├── xpl
└── mml2tex.xpl
└── README.md
/xmlcatalog/catalog.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/example/katexify-example.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Γ
4 | =
5 | π
6 |
7 |
8 | r
9 |
10 |
11 | 2
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/css/katex-overrides.css:
--------------------------------------------------------------------------------
1 | /* KaTeX font overrides */
2 |
3 | .katex .override-text {
4 | font-family: serif;
5 | font-style: normal;
6 | }
7 |
8 | .katex .override-textbf {
9 | font-family: serif;
10 | font-style: normal;
11 | font-weight: bold;
12 | }
13 |
14 | .katex .override-textsf {
15 | font-family: sans-serif;
16 | font-style: normal;
17 | }
18 |
19 | .katex .override-textsf {
20 | font-variant: small-caps;
21 | font-style: normal;
22 | }
23 |
24 | .katex .override-texttt {
25 | font-family: monospace;
26 | font-style: normal;
27 | }
28 |
--------------------------------------------------------------------------------
/xspec/mtable.xspec:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
32 |
33 | \begin{array}{ccc}
34 | 11 & = & 13\\
35 | 21 & = & 23
36 | \end{array}
37 |
38 |
39 |
--------------------------------------------------------------------------------
/xsl/invoke-mml2tex.xsl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015, transpect.io
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice, this
8 | list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 |
25 |
--------------------------------------------------------------------------------
/example/test.xpl:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 | Area enclosed by a circle
11 |
12 | A=πr2
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/example/example.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Area enclosed by a circle
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | 1
12 |
13 |
14 | ⋯
15 |
16 |
17 | 0
18 |
19 |
20 |
21 |
22 | ⋮
23 |
24 |
25 | ⋱
26 |
27 |
28 | ⋮
29 |
30 |
31 |
32 |
33 | 0
34 |
35 |
36 | ⋯
37 |
38 |
39 | 1
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/xspec/subsup.xspec:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
24 |
25 | {t_{rm}}_{2}
26 |
27 |
28 |
29 |
47 |
48 | {t_{rm}}^{2}
49 |
50 |
51 |
--------------------------------------------------------------------------------
/xsl/function-names.xsl:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/xsl/test-mml.xsl:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | \documentclass{scrbook}
31 | \usepackage[T1]{fontenc}
32 | \usepackage[utf8]{inputenc}
33 | \usepackage{amsmath}
34 | \usepackage{amssymb}
35 | \usepackage{amsfonts}
36 | \usepackage{amsxtra}
37 | \usepackage{wasysym}
38 | \usepackage{isomath}
39 | \usepackage{mathtools}
40 | \usepackage{txfonts}
41 | \usepackage[ngerman]{babel}
42 | \begin{document}
43 |
44 |
45 |
46 |
47 | $
48 |
49 |
50 |
51 | $
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 | \end{document}
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/texmap/texmap-upgreek.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/xpl/mml2tex.xpl:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 | Takes an XML file as input and generates processing
14 | instructions from MathML equations.
15 |
16 |
17 |
18 |
19 | Expects an XML document.
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | Expects a character map for mapping from Unicode to TeX.
32 |
33 |
34 |
35 |
36 |
37 |
38 | Provides the XML document with mml2tex processing instructions.
39 |
40 |
41 |
42 |
43 |
44 | Switch XSLT optimizations for MathML on or off.
45 |
46 |
47 |
48 |
49 |
50 | Used to switch debug mode on or off. Pass 'yes' to enable debug mode.
51 |
52 |
53 |
54 |
55 |
56 | Expects a file URI of the directory that should be used to store debug information.
57 |
58 |
59 |
60 |
61 |
62 | Whether to recover from some errors or not
63 |
64 |
65 |
66 |
67 |
68 | uri to texmap
69 |
70 |
71 |
72 |
73 |
74 | uri to texmap for upgreek chars
75 |
76 |
77 |
78 |
79 |
80 | [yes|no] Whether to output \textstyle or \displaystyle when math/@display is set
81 |
82 |
83 |
84 |
85 |
86 | [yes|no] Whether to always use \left and \right for ([{}]) etc.
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 | MathML equations are converted to "mml2tex" processing instructions.
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # mml2tex
2 |
3 | mml2tex is an XProc/XSLT-library to convert MathML to LaTeX.
4 |
5 | It should currently support MathML 2 and 3 presentation markup. Content markup and some MathML 1 elements are not supported.
6 |
7 | You may either invoke mml2tex standalone or include it as library in your XSLT or XProc project. The LaTeX code is wrapped in processing instructions named `mml2tex`.
8 |
9 | This library is also used in [docx2tex](https://github.com/transpect/docx2tex) that converts Word docx files with OOMML (= new equation editor) formulas to LaTeX.
10 |
11 | Consider this XML input file …
12 |
13 | ```xml
14 |
15 |
16 | Area enclosed by a circle
17 |
18 |
19 | A
20 | =
21 | π
22 |
23 |
24 | r
25 |
26 |
27 | 2
28 |
29 |
30 |
31 |
32 |
33 |
34 | ```
35 |
36 | … you should get this output:
37 | ```xml
38 |
39 | Area enclosed by a circle
40 |
41 |
42 |
43 |
44 | ```
45 |
46 |
47 | ## Invoke standalone
48 |
49 | mml2tex is a library rather than a standalone stylesheet. If you intend to run mml2tex standalone, you need to include the dependencies, add a proper XML catalog and invoke Saxon with XML resolver support.
50 |
51 | ```
52 | mkdir myProjectDir
53 | cd myProjectDir
54 | git clone git@github.com:transpect/mml2tex.git
55 | git clone git@github.com:transpect/xslt-util.git
56 | mkdir xmlcatalog
57 | touch xmlcatalog/catalog.xml
58 | ```
59 |
60 | Then edit `xmlcatalog/catalog.xml` with your text editor of choice:
61 |
62 | ```xml
63 |
64 |
65 |
66 |
67 | ```
68 |
69 | Download [Apache XML Commons Resolver](https://xerces.apache.org/mirrors.cgi) and invoke Saxon:
70 |
71 | ```
72 | java -cp "C:/home/myUsername/xmltools/saxon/saxon9he.jar;C:/home/myUsername/xmltools/xml-commons-resolver/resolver.jar" \
73 | -Dxml.catalog.files=C:/home/myUsername/myProjectDir/xmlcatalog/catalog.xml \
74 | net.sf.saxon.Transform \
75 | -catalog:xmlcatalog/catalog.xml \
76 | -xsl:mml2tex/xsl/invoke-mml2tex.xsl \
77 | -s:mml2tex/example/example.xml
78 | ```
79 |
80 |
81 | ## Include as XSLT library
82 |
83 | You have to import `mml2tex.xsl` in your XSLT stylesheet and create a template that matches on the MathML equations. The MathML markup must be processed within the `mathml2tex` mode. You can take `xsl/mml2tex.xsl` as example:
84 |
85 | ```xml
86 |
87 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 | ```
125 |
126 | *Note:* You may omit the `xsl:processing-instruction`. Then the LaTeX code will be issued as plain text. This method is not recommended, because subsequent text replacements may break your LaTeX code. It's better to leave the LaTeX code within the processing instruction and resolve it as last step.
127 |
128 | ## Include as XProc library
129 |
130 | ### Get dependencies
131 |
132 | Running mml2tex requires an XProc processor, the libary store-debug.xpl and of course mml2tex. To facilitate the invocation of the XProc pipeline, we recommend to use our patched calabash-frontend. You can checkout the repositories with Git or SVN.
133 |
134 | #### Git
135 |
136 | ```
137 | $ git clone https://github.com/transpect/calabash-frontend calabash --recursive
138 | $ git clone https://github.com/transpect/cascade
139 | $ git clone https://github.com/transpect/mml-normalize
140 | $ git clone https://github.com/transpect/mml2tex
141 | $ git clone https://github.com/transpect/xproc-util
142 | $ git clone https://github.com/transpect/xslt-util
143 | ```
144 |
145 | #### SVN
146 |
147 | ```
148 | $ svn co https://github.com/transpect/calabash-frontend/trunk calabash
149 | $ svn co https://github.com/transpect/cascade/trunk cascade
150 | $ svn co https://github.com/transpect/mml-normalize/trunk mml-normalize
151 | $ svn co https://github.com/transpect/mml2tex/trunk mml2tex
152 | $ svn co https://github.com/transpect/xproc-util/trunk xproc-util
153 | $ svn co https://github.com/transpect/xslt-util-util/trunk xslt-util
154 | ```
155 |
156 | ### Create an XML catalog
157 |
158 | As a convention, our calabash frontend looks after an XML catalog file under `xmlcatalog/catalog.xml`. Therefore you have to create the directory and the file.
159 | ```
160 | $ mkdir xmlcatalog
161 | $ touch xmlcatalog/catalog.xml
162 | ```
163 | The catalog is necessary to resolve canonical URIs in import statements, such as `http://transpect.io/mml2tex/xpl/mml2tex.xpl`. Therefore, you have to edit the file `catalog.xml` and add appropriate `rewriteURI` statements for your dependencies.
164 |
165 | ```xml
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 | ```
177 |
178 | ### Include mml2tex in your XProc pipeline
179 |
180 | The step `mml2tex:convert` facilitates the use of the mml2tex library in your XProc pipeline. As prerequisites, you must add the namespace `http://transpect.io/mml2tex` and a `p:import` statement. A sample `test.xpl` may look like this:
181 |
182 | ```xml
183 |
184 |
188 |
189 |
190 |
191 |
192 | Area enclosed by a circle
193 |
194 | A=πr2
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 | ```
215 | ### Run the pipeline
216 |
217 | We provide frontend scripts for XML Calabash which look after the XML catalogs, make some paths suitable for XProc and add some Java libraries to the class path. There is a Bash script for Unix-like operating systems as well as an Batch file for Windows. You can find them in the calabash directory.
218 | ```
219 | $ ./calabash/calabash.sh test.xpl
220 | ```
221 |
222 | ### Alternative XSLT-only invocation for KaTeX-compatible output
223 |
224 | ```
225 | $ saxon/saxon.sh -xsl:mml2tex/xsl/katexify.xsl -s:mml2tex/example/katexify-example.xml -im:mathml2tex
226 | ```
227 | Assumptions: A Saxon front-end script is present in the current (project) directory, for example by
228 |
229 | ```
230 | $ svn co https://subversion.le-tex.de/common/saxon-pe98/ saxon
231 | ```
232 |
233 | And the additional transpect libraries xslt-util, xproc-util, cascade, and normalize-mml are present
234 | (all from https://github.com/transpect/[library]) in the project directory, see above.
235 |
236 | And there is an xmlcatalog/catalog.xml that imports the library catalogs using `nextCatalog` instructions.
237 |
238 | The Saxon front-end script will look for and use this catalog by default.
239 |
240 | Input:
241 |
242 | ```xml
243 |
244 | Γ
245 | =
246 | π
247 |
248 |
249 | r
250 |
251 |
252 | 2
253 |
254 |
255 |
256 | ```
257 |
258 | Output:
259 |
260 | `\Gamma = \pi r ^{2}`
261 |
--------------------------------------------------------------------------------
/xsl/katexify.xsl:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
40 |
44 |
45 |
46 |
47 |
51 |
52 |
53 |
54 |
55 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
125 |
126 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
171 |
172 |
173 |
174 |
175 |
176 |
177 | \htmlClass{override-
178 |
179 | }{\text{
180 |
181 | }}
182 |
183 |
184 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 | \tag{
204 |
205 | }
206 |
207 |
208 |
209 | \text{[cedil]}
210 |
211 |
212 |
213 |
214 |
216 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
--------------------------------------------------------------------------------
/xsl/operators.xsl:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
1140 |
1141 |
1142 |
1143 |
1144 |
1145 |
1146 |
1147 |
1150 |
1151 |
1152 |
1153 |
--------------------------------------------------------------------------------
/xsl/mml2tex.xsl:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
42 |
43 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
83 |
84 |
85 |
86 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
114 |
115 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 | \textstyle
152 |
153 |
154 | \displaystyle
155 |
156 |
157 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
228 | &
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 | \newline
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
350 |
351 | /
352 |
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 |
361 |
364 |
365 |
366 |
367 | {
368 |
369 | }{
370 |
371 | }
372 |
373 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 | {}^{
390 |
391 |
392 | }_{
393 |
394 | }{
395 |
396 |
397 | }{
398 |
399 | }^{
400 |
401 |
402 |
403 | }_{
404 |
405 | }
406 |
407 |
408 |
409 |
413 |
414 | \tensor*[
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 | ]{
423 |
424 | }{
425 |
426 |
427 |
428 |
429 |
430 |
431 | }
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 | ^{
440 |
441 | }
442 |
443 |
444 | _{
445 |
446 | }
447 |
448 |
449 |
450 |
451 |
452 | \sqrt{
453 |
454 | }
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 | \sqrt
463 |
464 |
465 | [
466 |
467 | ]
468 |
469 |
470 | {
471 |
472 | }
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 | {
481 |
482 |
483 | {
484 |
485 |
486 |
492 |
493 |
494 |
495 |
496 |
497 | }
498 | }
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
530 |
531 |
533 |
534 |
536 |
537 |
538 |
539 |
540 |
541 | {
542 |
543 |
544 |
545 |
546 | {
547 |
548 |
549 |
550 | }
551 |
552 |
553 | \limits
554 |
555 | _{
556 |
557 | }^{
558 |
559 |
560 |
566 |
567 |
568 |
569 |
570 |
571 | }
572 | }
573 |
574 |
575 |
576 |
577 |
578 |
580 |
585 | \begin{array}{
586 |
587 |
588 |
589 |
590 |
591 | :
592 |
593 |
594 | |
595 |
596 |
597 |
598 |
599 | }
600 |
601 |
602 | \end{array}
603 |
604 |
605 |
606 |
607 |
610 |
611 |
612 |
613 |
614 |
616 |
617 |
618 | \\
619 |
620 |
621 |
622 |
623 |
624 |
625 |
\hline
626 |
627 |
628 |
629 |
\hdashline
630 |
631 |
632 |
633 |
\hdashline[.4pt/1pt]
634 |
635 |
636 |
637 |
638 |
639 |
640 |
641 |
642 | &
643 |
644 |
645 |
646 |
647 | \multicolumn{
648 |
649 | }{
650 |
651 | }{
652 |
653 | }
654 |
655 | &
656 |
657 |
658 |
659 |
672 |
673 |
674 |
675 |
676 |
677 |
678 |
679 |
680 |
681 |
682 |
683 |
684 |
685 |
686 |
687 |
688 |
689 |
690 |
694 |
695 |
696 |
697 |
698 |
699 |
700 |
701 |
702 | \text{\c
703 |
704 |
705 | }
706 |
707 |
708 | \hat
709 |
710 |
711 | \check
712 |
713 |
714 | \overbrace
715 |
716 |
717 | \underbrace
718 |
719 |
720 | \overbracket
721 |
722 |
723 | \underbracket
724 |
725 |
726 | \text{\H
727 |
728 |
729 | }
730 |
731 |
732 | \widehat
733 |
734 |
735 | \hat
736 |
737 |
738 | \widetilde
739 |
740 |
741 | \tilde
742 |
743 |
744 | \dot
745 |
746 |
747 | \ddot
748 |
749 |
750 | \dddot
751 |
752 |
753 | \ddddot
754 |
755 |
756 | \grave
757 |
758 |
759 | \acute
760 |
761 |
762 | \breve
763 |
764 |
765 | \mathring
766 |
767 |
768 | \overline
769 |
770 |
771 | \overline{\overline
772 |
773 |
774 | }
775 |
776 |
777 | \underline
778 |
779 |
780 |
781 |
782 |
783 | \overset{
784 |
785 | }
786 |
787 |
788 | \underset{
789 |
790 | }
791 |
792 |
793 | \xleftarrow
794 |
795 |
796 | \xrightarrow
797 |
798 |
801 | [
802 |
803 | ]
804 |
805 |
807 | {}
808 |
809 |
810 | \vec
811 |
812 |
814 | \overrightarrow
815 |
816 |
818 | \underrightarrow
819 |
820 |
822 | \overleftarrow
823 |
824 |
826 | \underleftarrow
827 |
828 |
830 | \overleftrightarrow
831 |
832 |
834 | \underleftrightarrow
835 |
836 |
837 | \xleftrightarrow
838 |
839 |
840 | \xLeftarrow
841 |
842 |
843 | \xRightarrow
844 |
845 |
846 | \xLeftrightarrow
847 |
848 |
849 | \xleftharpoonup
850 |
851 |
852 | \xrightharpoonup
853 |
854 |
855 | \xleftrightharpoons
856 |
857 |
858 | \xrightleftharpoons
859 |
860 |
861 |
862 |
863 |
864 |
865 |
866 |
867 |
868 |
869 |
870 |
871 |
872 |
873 |
874 |
875 | \overset{
876 |
877 | }{\underset{
878 |
879 | }{
880 |
881 | }}
882 |
883 |
884 |
886 |
887 |
888 |
889 |
890 |
891 | \limits
892 |
893 |
894 | }
895 |
896 |
897 |
903 |
904 |
907 | \begin{cases}
908 |
909 |
912 | \end{cases}
913 |
914 |
917 |
918 |
919 |
920 |
921 |
923 | \binom{
924 |
925 | }{
926 |
927 | }
928 |
929 |
930 |
931 |
932 |
933 |
934 |
935 |
936 |
941 |
942 |
943 |
944 |
945 |
946 |
947 |
948 |
949 |
950 |
951 |
952 |
953 |
954 |
955 |
956 |
957 |
958 |
959 |
960 |
961 |
962 |
963 |
964 |
965 |
966 |
967 |
968 |
969 |
970 |
971 |
972 |
973 |
974 |
975 |
976 |
982 |
983 |
984 |
985 |
986 |
987 |
988 |
994 | \begin{matrix}
995 |
996 | \end{matrix}
997 |
998 |
999 |
1001 |
1002 |
1003 |
1004 |
1005 |
1006 |
1007 |
1014 |
1015 |
1016 |
1017 |
1018 |
1019 |
1020 |
1021 |
1022 |
1023 |
1028 |
1029 |
1030 |
1031 |
1032 |
1033 |
1034 |
1035 |
1036 |
1037 |
1038 |
1039 |
1042 |
1043 |
1044 |
1045 |
1046 |
1047 |
1048 |
1049 |
1050 |
1051 |
1052 |
1053 |
1055 |
1056 |
1057 |
1058 |
1065 |
1066 |
1070 |
1072 |
1073 |
1074 |
1078 |
1079 |
1080 |
1082 |
1083 |
1084 |
1085 |
1086 |
1087 |
1088 |
1089 |
1090 |
1091 |
1092 |
1093 |
1094 |
1095 |
1096 |
1097 |
1098 |
1099 |
1100 |
1101 |
1102 |
1103 |
1104 |
1105 |
1106 |
1107 |
1108 |
1109 |
1110 |
1111 |
1112 |
1113 |
1114 |
1115 |
1116 |
1117 |
1118 |
1119 |
1120 |
1121 |
1122 |
1123 |
1124 |
1125 |
1126 |
1127 |
1128 |
1129 |
1130 |
1131 |
1132 |
1133 |
1134 |
1135 |
1136 |
1137 |
1138 |
1139 |
1140 |
1141 |
1142 |
1143 |
1144 |
1145 |
1146 |
1147 |
1148 |
1149 |
1150 |
1152 |
1153 |
1154 |
1157 |
1158 |
1159 |
1161 |
1162 |
1165 |
1166 |
1167 |
1168 |
1171 |
1172 |
1176 |
1177 |
1178 |
1179 | \text{
1180 |
1181 | }
1182 |
1183 |
1188 |
1189 |
1190 |
1191 | \text{
1192 |
1193 | }
1194 |
1195 |
1196 |
1197 |
1198 |
1201 |
1202 |
1203 |
1207 |
1208 |
1209 |
1210 |
1211 |
1212 |
1213 |
1214 |
1215 |
1216 |
1217 |
1218 |
1219 |
1221 |
1226 |
1227 |
1231 |
1232 |
1233 |
1234 | [WARNING]: mglyph ()
1235 |
1236 |
1237 |
1238 |
1239 |
1240 |
1243 |
1244 |
1250 |
1251 | }
1252 |
1253 |
1254 |
1255 |
1256 |
1257 |
1258 |
1259 |
1260 |
1261 |
1262 |
1263 |
1264 |
1265 |
1266 |
1267 |
1270 |
1271 |
1272 |
1273 |
1274 |
1276 |
1277 |
1278 |
1279 |
1280 |
1287 |
1291 |
1294 |
1301 |
1302 |
1303 |
1304 |
1306 |
1307 |
1308 |
1309 |
1310 |
1311 |
1312 |
1313 |
1321 |
1322 |
1323 |
1324 |
1325 |
1327 |
1328 |
1329 |
1330 |
1331 |
1333 |
1334 |
1335 |
1336 |
--------------------------------------------------------------------------------