12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- (function (Prism) {
- var funcPattern = /\\(?:[^a-z()[\]]|[a-z*]+)/i;
- var insideEqu = {
- 'equation-command': {
- pattern: funcPattern,
- alias: 'regex'
- }
- };
- Prism.languages.latex = {
- 'comment': /%.*/,
- // the verbatim environment prints whitespace to the document
- 'cdata': {
- pattern: /(\\begin\{((?:lstlisting|verbatim)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
- lookbehind: true
- },
- /*
- * equations can be between $$ $$ or $ $ or \( \) or \[ \]
- * (all are multiline)
- */
- 'equation': [
- {
- pattern: /\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,
- inside: insideEqu,
- alias: 'string'
- },
- {
- pattern: /(\\begin\{((?:align|eqnarray|equation|gather|math|multline)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
- lookbehind: true,
- inside: insideEqu,
- alias: 'string'
- }
- ],
- /*
- * arguments which are keywords or references are highlighted
- * as keywords
- */
- 'keyword': {
- pattern: /(\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,
- lookbehind: true
- },
- 'url': {
- pattern: /(\\url\{)[^}]+(?=\})/,
- lookbehind: true
- },
- /*
- * section or chapter headlines are highlighted as bold so that
- * they stand out more
- */
- 'headline': {
- pattern: /(\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/,
- lookbehind: true,
- alias: 'class-name'
- },
- 'function': {
- pattern: funcPattern,
- alias: 'selector'
- },
- 'punctuation': /[[\]{}&]/
- };
- Prism.languages.tex = Prism.languages.latex;
- Prism.languages.context = Prism.languages.latex;
- }(Prism));
|