UNPKG

1.6 kBJavaScriptView Raw
1(function(Prism) {
2 var funcPattern = /\\(?:[^a-z()[\]]|[a-z*]+)/i,
3 insideEqu = {
4 'equation-command': {
5 pattern: funcPattern,
6 alias: 'regex'
7 }
8 };
9
10 Prism.languages.latex = {
11 'comment': /%.*/m,
12 // the verbatim environment prints whitespace to the document
13 'cdata': {
14 pattern: /(\\begin\{((?:verbatim|lstlisting)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
15 lookbehind: true
16 },
17 /*
18 * equations can be between $ $ or \( \) or \[ \]
19 * (all are multiline)
20 */
21 'equation': [
22 {
23 pattern: /\$(?:\\[\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 * arguments which are keywords or references are highlighted
36 * as keywords
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 * section or chapter headlines are highlighted as bold so that
48 * they stand out more
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})(Prism);