1 | (function (Prism) {
|
2 | var funcPattern = /\\(?:[^a-z()[\]]|[a-z*]+)/i;
|
3 | var insideEqu = {
|
4 | 'equation-command': {
|
5 | pattern: funcPattern,
|
6 | alias: 'regex'
|
7 | }
|
8 | };
|
9 |
|
10 | Prism.languages.latex = {
|
11 | 'comment': /%.*/m,
|
12 |
|
13 | 'cdata': {
|
14 | pattern: /(\\begin\{((?:verbatim|lstlisting)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
|
15 | lookbehind: true
|
16 | },
|
17 | |
18 |
|
19 |
|
20 |
|
21 | 'equation': [
|
22 | {
|
23 | pattern: /\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,
|
24 | inside: insideEqu,
|
25 | alias: 'string'
|
26 | },
|
27 | {
|
28 | pattern: /(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
|
29 | lookbehind: true,
|
30 | inside: insideEqu,
|
31 | alias: 'string'
|
32 | }
|
33 | ],
|
34 | |
35 |
|
36 |
|
37 |
|
38 | 'keyword': {
|
39 | pattern: /(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,
|
40 | lookbehind: true
|
41 | },
|
42 | 'url': {
|
43 | pattern: /(\\url\{)[^}]+(?=\})/,
|
44 | lookbehind: true
|
45 | },
|
46 | |
47 |
|
48 |
|
49 |
|
50 | 'headline': {
|
51 | pattern: /(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/,
|
52 | lookbehind: true,
|
53 | alias: 'class-name'
|
54 | },
|
55 | 'function': {
|
56 | pattern: funcPattern,
|
57 | alias: 'selector'
|
58 | },
|
59 | 'punctuation': /[[\]{}&]/
|
60 | };
|
61 |
|
62 | Prism.languages.tex = Prism.languages.latex;
|
63 | Prism.languages.context = Prism.languages.latex;
|
64 | }(Prism));
|