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': /%.*/,
|
12 |
|
13 | 'cdata': {
|
14 | pattern: /(\\begin\{((?:lstlisting|verbatim)\*?)\})[\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\{((?:align|eqnarray|equation|gather|math|multline)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
|
29 | lookbehind: true,
|
30 | inside: insideEqu,
|
31 | alias: 'string'
|
32 | }
|
33 | ],
|
34 | |
35 |
|
36 |
|
37 |
|
38 | 'keyword': {
|
39 | pattern: /(\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,
|
40 | lookbehind: true
|
41 | },
|
42 | 'url': {
|
43 | pattern: /(\\url\{)[^}]+(?=\})/,
|
44 | lookbehind: true
|
45 | },
|
46 | |
47 |
|
48 |
|
49 |
|
50 | 'headline': {
|
51 | pattern: /(\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|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));
|