config/sublime/Packages/LaTeX/LaTeX.tmLanguage
2012-08-01 21:04:05 -07:00

1554 lines
38 KiB
Text

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>tex</string>
</array>
<key>firstLineMatch</key>
<string>^\\documentclass(?!.*\{beamer\})</string>
<key>foldingStartMarker</key>
<string>\\begin\{.*\}|%.*\(fold\)\s*$</string>
<key>foldingStopMarker</key>
<string>\\end\{.*\}|%.*\(end\)\s*$</string>
<key>keyEquivalent</key>
<string>^~L</string>
<key>name</key>
<string>LaTeX</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?=\s)(?&lt;=\\[\w@]|\\[\w@]{2}|\\[\w@]{3}|\\[\w@]{4}|\\[\w@]{5}|\\[\w@]{6})\s</string>
<key>name</key>
<string>meta.space-after-command.latex</string>
</dict>
<dict>
<key>begin</key>
<string>((\\)(?:usepackage|documentclass))(?:(\[)([^\]]*)(\]))?(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.preamble.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>support.class.latex</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.preamble.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>((\\)(?:include|input))(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.include.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>support.class.latex</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.include.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?x)
( # Capture 1
(\\) # Marker
(?:
(?:sub){0,2}section # Functions
| (?:sub)?paragraph
| chapter|part|addpart
| addchap|addsec|minisec
)
(?:\*)? # Optional Unnumbered
)
(?:
(\[)([^\[]*?)(\]) # Optional Title
)??
(\{) # Opening Bracket
</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.section.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>entity.name.section.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.end.latex</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
</dict>
<key>comment</key>
<string>this works OK with all kinds of crazy stuff as long as section is one line</string>
<key>contentName</key>
<string>entity.name.section.latex</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.section.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?:\s*)((\\)begin)(\{)(lstlisting)(\})(?:(\[).*(\]))?(\s*%\s*(?i:Java)\n?)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.be.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.begin.latex</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.end.latex</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>comment.line.percentage.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>source.java.embedded</string>
<key>end</key>
<string>((\\)end)(\{)(lstlisting)(\})</string>
<key>name</key>
<string>meta.function.embedded.java.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.java</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?:\s*)((\\)begin)(\{)(lstlisting)(\})(?:(\[).*(\]))?(\s*%\s*(?i:Python)\n?)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.be.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.begin.latex</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.end.latex</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>comment.line.percentage.latex</string>
</dict>
</dict>
<key>comment</key>
<string>Put the lstlisting match before the more general environment listing. Someday it would be nice to make this rule general enough to figure out which language is inside the lstlisting environment rather than my own personal use for python. --Brad</string>
<key>contentName</key>
<string>source.python.embedded</string>
<key>end</key>
<string>((\\)end)(\{)(lstlisting)(\})</string>
<key>name</key>
<string>meta.function.embedded.python.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.python</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?:\s*)((\\)begin)(\{)(lstlisting)(\})(?:(\[).*(\]))?(\s*%.*\n?)?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.be.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.begin.latex</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.end.latex</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>comment.line.percentage.latex</string>
</dict>
</dict>
<key>comment</key>
<string>Put the lstlisting match before the more general environment listing. Someday it would be nice to make this rule general enough to figure out which language is inside the lstlisting environment rather than my own personal use for python. --Brad</string>
<key>contentName</key>
<string>source.generic.embedded</string>
<key>end</key>
<string>((\\)end)(\{)(lstlisting)(\})</string>
<key>name</key>
<string>meta.function.embedded.generic.latex</string>
</dict>
<dict>
<key>begin</key>
<string>(?:\s*)((\\)begin)(\{)((?:V|v)erbatim|alltt)(\})</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.be.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>markup.raw.verbatim.latex</string>
<key>end</key>
<string>((\\)end)(\{)(\4)(\})</string>
<key>name</key>
<string>meta.function.verbatim.latex</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.url.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>markup.underline.link.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
</dict>
<key>match</key>
<string>(?:\s*)((\\)(?:url|href))(\{)([^}]*)(\})</string>
<key>name</key>
<string>meta.function.link.url.latex</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.be.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
</dict>
<key>comment</key>
<string>These two patterns match the \begin{document} and \end{document} commands, so that the environment matching pattern following them will ignore those commands.</string>
<key>match</key>
<string>(?:\s*)((\\)begin)(\{)(document)(\})</string>
<key>name</key>
<string>meta.function.begin-document.latex</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.be.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
</dict>
<key>match</key>
<string>(?:\s*)((\\)end)(\{)(document)(\})</string>
<key>name</key>
<string>meta.function.end-document.latex</string>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(?:\s*) # Optional whitespace
((\\)begin) # Marker - Function
(\{) # Open Bracket
(
(?:
align|equation|eqnarray # Argument
| multline|aligned|alignat
| split|gather|gathered
)
(?:\*)? # Optional Unnumbered
)
(\}) # Close Bracket
(\s*\n)? # Match to end of line absent of content
</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.be.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>string.other.math.block.environment.latex</string>
<key>end</key>
<string>(?x)
(?:\s*) # Optional whitespace
((\\)end) # Marker - Function
(\{) # Open Bracket
(\4) # Previous capture from begin
(\}) # Close Bracket
(?:\s*\n)? # Match to end of line absent of content
</string>
<key>name</key>
<string>meta.function.environment.math.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(?:\s*) # Optional whitespace
((\\)begin) # Marker - Function
(\{) # Open Bracket
(array|tabular[xy*]?)
(\}) # Close Bracket
(\s*\n)? # Match to end of line absent of content
</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.be.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>meta.data.environment.tabular.latex</string>
<key>end</key>
<string>(?x)
(?:\s*) # Optional whitespace
((\\)end) # Marker - Function
(\{) # Open Bracket
(\4) # Previous capture from begin
(\}) # Close Bracket
(?:\s*\n)? # Match to end of line absent of content
</string>
<key>name</key>
<string>meta.function.environment.tabular.latex</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\</string>
<key>name</key>
<string>punctuation.definition.table.row.latex</string>
</dict>
<dict>
<key>begin</key>
<string>(?:^|(?&lt;=\\\\))(?!\\\\|\s*\\end\{(?:tabular|array))</string>
<key>end</key>
<string>(?=\\\\|\s*\\end\{(?:tabular|array))</string>
<key>name</key>
<string>meta.row.environment.tabular.latex</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>&amp;</string>
<key>name</key>
<string>punctuation.definition.table.cell.latex</string>
</dict>
<dict>
<key>begin</key>
<string>(?:^|(?&lt;=&amp;))((?!&amp;|\\\\|$))</string>
<key>end</key>
<string>(?=&amp;|\\\\|\s*\\end\{(?:tabular|array))</string>
<key>name</key>
<string>meta.cell.environment.tabular.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?:\s*)((\\)begin)(\{)(itemize|enumerate|description|list)(\})</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.be.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.latex</string>
</dict>
</dict>
<key>end</key>
<string>((\\)end)(\{)(\4)(\})(?:\s*\n)?</string>
<key>name</key>
<string>meta.function.environment.list.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?:\s*)((\\)begin)(\{)(\w+[*]?)(\})</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.be.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.latex</string>
</dict>
</dict>
<key>end</key>
<string>((\\)end)(\{)(\4)(\})(?:\s*\n)?</string>
<key>name</key>
<string>meta.function.environment.general.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
</dict>
<key>match</key>
<string>(\\)(newcommand|renewcommand)\b</string>
<key>name</key>
<string>storage.type.function.latex</string>
</dict>
<dict>
<key>begin</key>
<string>((\\)marginpar)(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.marginpar.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.marginpar.begin.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>meta.paragraph.margin.latex</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.marginpar.end.latex</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>((\\)footnote)(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.footnote.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.footnote.begin.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>meta.footnote.latex</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.footnote.end.latex</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>((\\)emph)(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.emph.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.emph.begin.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>markup.italic.emph.latex</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.emph.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.emph.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>((\\)textit)(\{)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.textit.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.textit.begin.latex</string>
</dict>
</dict>
<key>comment</key>
<string>We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won't be inherited by the argument to \textit{...}.
Put specific matches for particular LaTeX keyword.functions before the last two more general functions</string>
<key>contentName</key>
<string>markup.italic.textit.latex</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.textit.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.textit.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>((\\)textbf)(\{)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.textbf.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.textbf.begin.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>markup.bold.textbf.latex</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.textbf.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.textbf.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>((\\)texttt)(\{)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.texttt.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.texttt.begin.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>markup.raw.texttt.latex</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.texttt.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.texttt.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.item.latex</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.keyword.latex</string>
</dict>
</dict>
<key>match</key>
<string>(\\)item\b</string>
<key>name</key>
<string>meta.scope.item.latex</string>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(
(\\) # Marker
(?:foot)?(?:full)?(?:no)?(?:short)? # Function Name
[cC]ite
(?:al)?(?:t|p|author|year(?:par)?|title)?[ANP]*
\*? # Optional Unabreviated
)
(?:(\[)[^\]]*(\]))? # Optional
(?:(\[)[^\]]*(\]))? # Arguments
(\{) # Opening Bracket
</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.cite.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.keyword.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.begin.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.end.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.begin.latex</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.optional.end.latex</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.latex</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.citation.latex</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>[\w:.]+</string>
<key>name</key>
<string>constant.other.reference.citation.latex</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>((\\)(?:\w*[r|R]ef\*?))(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.ref.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.keyword.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.reference.label.latex</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>[a-zA-Z0-9\.,:/*!^_-]</string>
<key>name</key>
<string>constant.other.reference.label.latex</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>((\\)label)(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.label.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.keyword.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.latex</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.definition.label.latex</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>[a-zA-Z0-9\.,:/*!^_-]</string>
<key>name</key>
<string>variable.parameter.definition.label.latex</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>((\\)verb[\*]?)\s*((\\)scantokens)(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.verb.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>support.function.verb.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.verb.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.begin.latex</string>
</dict>
</dict>
<key>contentName</key>
<string>markup.raw.verb.latex</string>
<key>end</key>
<string>(\})</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.verb.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.verb.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.latex</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.verb.latex</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>markup.raw.verb.latex</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.verb.latex</string>
</dict>
</dict>
<key>match</key>
<string>((\\)verb[\*]?)\s*((?&lt;=\s)\S|[^a-zA-Z])(.*?)(\3|$)</string>
<key>name</key>
<string>meta.function.verb.latex</string>
</dict>
<dict>
<key>begin</key>
<string>"`</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.latex</string>
</dict>
</dict>
<key>end</key>
<string>"'</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.european.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>``</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.latex</string>
</dict>
</dict>
<key>end</key>
<string>''|"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>"&gt;</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.latex</string>
</dict>
</dict>
<key>end</key>
<string>"&lt;</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.guillemot.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>"&lt;</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.latex</string>
</dict>
</dict>
<key>end</key>
<string>"&gt;</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.guillemot.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\\\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.latex</string>
</dict>
</dict>
<key>end</key>
<string>\\\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>string.other.math.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\\\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.latex</string>
</dict>
</dict>
<key>end</key>
<string>\\\]</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.latex</string>
</dict>
</dict>
<key>name</key>
<string>string.other.math.latex</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>(?&lt;!\S)'.*?'</string>
<key>name</key>
<string>invalid.illegal.string.quoted.single.latex</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;!\S)".*?"</string>
<key>name</key>
<string>invalid.illegal.string.quoted.double.latex</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.latex</string>
</dict>
</dict>
<key>match</key>
<string>(\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\b</string>
<key>name</key>
<string>constant.character.latex</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.column-specials.begin.latex</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.column-specials.end.latex</string>
</dict>
</dict>
<key>match</key>
<string>(?:&lt;|&gt;)(\{)\$(\})</string>
<key>name</key>
<string>meta.column-specials.latex</string>
</dict>
<dict>
<key>include</key>
<string>text.tex</string>
</dict>
</array>
<key>scopeName</key>
<string>text.tex.latex</string>
<key>uuid</key>
<string>3BEEA00C-6B1D-11D9-B8AD-000D93589AF6</string>
</dict>
</plist>