Commits

Carter Schonwald committed 18fdaa8

my custom latex handles for TM/ST style editors

Comments (0)

Files changed (42)

Bibtex.tmLanguage

+<?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>comment</key>
+	<string>Grammar based on description from http://artis.imag.fr/~Xavier.Decoret/resources/xdkbibtex/bibtex_summary.html#comment
+	
+	TODO: Does not support @preamble
+	</string>
+	<key>fileTypes</key>
+	<array>
+		<string>bib</string>
+	</array>
+	<key>foldingStartMarker</key>
+	<string>\@[a-zA-Z]+\s*[{(].+,</string>
+	<key>foldingStopMarker</key>
+	<string>^\s*[)}]\s*$</string>
+	<key>name</key>
+	<string>BibTeX</string>
+	<key>patterns</key>
+	<array>
+		<dict>
+			<key>begin</key>
+			<string>@Comment</string>
+			<key>beginCaptures</key>
+			<dict>
+				<key>0</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.definition.comment.bibtex</string>
+				</dict>
+			</dict>
+			<key>end</key>
+			<string>$\n?</string>
+			<key>name</key>
+			<string>comment.line.at-sign.bibtex</string>
+		</dict>
+		<dict>
+			<key>begin</key>
+			<string>((@)String)\s*(\{)\s*([a-zA-Z]*)</string>
+			<key>beginCaptures</key>
+			<dict>
+				<key>1</key>
+				<dict>
+					<key>name</key>
+					<string>keyword.other.string-constant.bibtex</string>
+				</dict>
+				<key>2</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.definition.keyword.bibtex</string>
+				</dict>
+				<key>3</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.section.string-constant.begin.bibtex</string>
+				</dict>
+				<key>4</key>
+				<dict>
+					<key>name</key>
+					<string>variable.other.bibtex</string>
+				</dict>
+			</dict>
+			<key>end</key>
+			<string>\}</string>
+			<key>endCaptures</key>
+			<dict>
+				<key>0</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.section.string-constant.end.bibtex</string>
+				</dict>
+			</dict>
+			<key>name</key>
+			<string>meta.string-constant.braces.bibtex</string>
+			<key>patterns</key>
+			<array>
+				<dict>
+					<key>include</key>
+					<string>#string_content</string>
+				</dict>
+			</array>
+		</dict>
+		<dict>
+			<key>begin</key>
+			<string>((@)String)\s*(\()\s*([a-zA-Z]*)</string>
+			<key>beginCaptures</key>
+			<dict>
+				<key>1</key>
+				<dict>
+					<key>name</key>
+					<string>keyword.other.string-constant.bibtex</string>
+				</dict>
+				<key>2</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.definition.keyword.bibtex</string>
+				</dict>
+				<key>3</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.section.string-constant.begin.bibtex</string>
+				</dict>
+				<key>4</key>
+				<dict>
+					<key>name</key>
+					<string>variable.other.bibtex</string>
+				</dict>
+			</dict>
+			<key>end</key>
+			<string>\)</string>
+			<key>endCaptures</key>
+			<dict>
+				<key>0</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.section.string-constant.end.bibtex</string>
+				</dict>
+			</dict>
+			<key>name</key>
+			<string>meta.string-constant.parenthesis.bibtex</string>
+			<key>patterns</key>
+			<array>
+				<dict>
+					<key>include</key>
+					<string>#string_content</string>
+				</dict>
+			</array>
+		</dict>
+		<dict>
+			<key>begin</key>
+			<string>((@)[a-zA-Z]+)\s*(\{)\s*([^\s,]*)</string>
+			<key>beginCaptures</key>
+			<dict>
+				<key>1</key>
+				<dict>
+					<key>name</key>
+					<string>keyword.other.entry-type.bibtex</string>
+				</dict>
+				<key>2</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.definition.keyword.bibtex</string>
+				</dict>
+				<key>3</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.section.entry.begin.bibtex</string>
+				</dict>
+				<key>4</key>
+				<dict>
+					<key>name</key>
+					<string>entity.name.type.entry-key.bibtex</string>
+				</dict>
+			</dict>
+			<key>end</key>
+			<string>\}</string>
+			<key>endCaptures</key>
+			<dict>
+				<key>0</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.section.entry.end.bibtex</string>
+				</dict>
+			</dict>
+			<key>name</key>
+			<string>meta.entry.braces.bibtex</string>
+			<key>patterns</key>
+			<array>
+				<dict>
+					<key>begin</key>
+					<string>([a-zA-Z]+)\s*(\=)</string>
+					<key>beginCaptures</key>
+					<dict>
+						<key>1</key>
+						<dict>
+							<key>name</key>
+							<string>string.unquoted.key.bibtex</string>
+						</dict>
+						<key>2</key>
+						<dict>
+							<key>name</key>
+							<string>punctuation.separator.key-value.bibtex</string>
+						</dict>
+					</dict>
+					<key>end</key>
+					<string>(?=[,}])</string>
+					<key>name</key>
+					<string>meta.key-assignment.bibtex</string>
+					<key>patterns</key>
+					<array>
+						<dict>
+							<key>include</key>
+							<string>#string_content</string>
+						</dict>
+						<dict>
+							<key>include</key>
+							<string>#integer</string>
+						</dict>
+					</array>
+				</dict>
+			</array>
+		</dict>
+		<dict>
+			<key>begin</key>
+			<string>((@)[a-zA-Z]+)\s*(\()\s*([^\s,]*)</string>
+			<key>beginCaptures</key>
+			<dict>
+				<key>1</key>
+				<dict>
+					<key>name</key>
+					<string>keyword.other.entry-type.bibtex</string>
+				</dict>
+				<key>2</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.definition.keyword.bibtex</string>
+				</dict>
+				<key>3</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.section.entry.begin.bibtex</string>
+				</dict>
+				<key>4</key>
+				<dict>
+					<key>name</key>
+					<string>entity.name.type.entry-key.bibtex</string>
+				</dict>
+			</dict>
+			<key>end</key>
+			<string>\)</string>
+			<key>endCaptures</key>
+			<dict>
+				<key>0</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.section.entry.end.bibtex</string>
+				</dict>
+			</dict>
+			<key>name</key>
+			<string>meta.entry.parenthesis.bibtex</string>
+			<key>patterns</key>
+			<array>
+				<dict>
+					<key>begin</key>
+					<string>([a-zA-Z]+)\s*(\=)</string>
+					<key>beginCaptures</key>
+					<dict>
+						<key>1</key>
+						<dict>
+							<key>name</key>
+							<string>string.unquoted.key.bibtex</string>
+						</dict>
+						<key>2</key>
+						<dict>
+							<key>name</key>
+							<string>punctuation.separator.key-value.bibtex</string>
+						</dict>
+					</dict>
+					<key>end</key>
+					<string>(?=[,)])</string>
+					<key>name</key>
+					<string>meta.key-assignment.bibtex</string>
+					<key>patterns</key>
+					<array>
+						<dict>
+							<key>include</key>
+							<string>#string_content</string>
+						</dict>
+						<dict>
+							<key>include</key>
+							<string>#integer</string>
+						</dict>
+					</array>
+				</dict>
+			</array>
+		</dict>
+		<dict>
+			<key>begin</key>
+			<string>[^@\n]</string>
+			<key>end</key>
+			<string>(?=@)</string>
+			<key>name</key>
+			<string>comment.block.bibtex</string>
+		</dict>
+	</array>
+	<key>repository</key>
+	<dict>
+		<key>integer</key>
+		<dict>
+			<key>match</key>
+			<string>\d+</string>
+			<key>name</key>
+			<string>constant.numeric.bibtex</string>
+		</dict>
+		<key>nested_braces</key>
+		<dict>
+			<key>begin</key>
+			<string>\{</string>
+			<key>beginCaptures</key>
+			<dict>
+				<key>0</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.definition.group.begin.bibtex</string>
+				</dict>
+			</dict>
+			<key>end</key>
+			<string>\}</string>
+			<key>endCaptures</key>
+			<dict>
+				<key>0</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.definition.group.end.bibtex</string>
+				</dict>
+			</dict>
+			<key>patterns</key>
+			<array>
+				<dict>
+					<key>include</key>
+					<string>#nested_braces</string>
+				</dict>
+			</array>
+		</dict>
+		<key>string_content</key>
+		<dict>
+			<key>patterns</key>
+			<array>
+				<dict>
+					<key>begin</key>
+					<string>"</string>
+					<key>beginCaptures</key>
+					<dict>
+						<key>0</key>
+						<dict>
+							<key>name</key>
+							<string>punctuation.definition.string.begin.bibtex</string>
+						</dict>
+					</dict>
+					<key>end</key>
+					<string>"</string>
+					<key>endCaptures</key>
+					<dict>
+						<key>0</key>
+						<dict>
+							<key>name</key>
+							<string>punctuation.definition.string.end.bibtex</string>
+						</dict>
+					</dict>
+					<key>name</key>
+					<string>string.quoted.double.bibtex</string>
+					<key>patterns</key>
+					<array>
+						<dict>
+							<key>include</key>
+							<string>#nested_braces</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.bibtex</string>
+						</dict>
+					</dict>
+					<key>end</key>
+					<string>\}</string>
+					<key>endCaptures</key>
+					<dict>
+						<key>0</key>
+						<dict>
+							<key>name</key>
+							<string>punctuation.definition.string.end.bibtex</string>
+						</dict>
+					</dict>
+					<key>name</key>
+					<string>string.quoted.other.braces.bibtex</string>
+					<key>patterns</key>
+					<array>
+						<dict>
+							<key>match</key>
+							<string>@</string>
+							<key>name</key>
+							<string>invalid.illegal.at-sign.bibtex</string>
+						</dict>
+						<dict>
+							<key>include</key>
+							<string>#nested_braces</string>
+						</dict>
+					</array>
+				</dict>
+			</array>
+		</dict>
+	</dict>
+	<key>scopeName</key>
+	<string>text.bibtex</string>
+	<key>uuid</key>
+	<string>47F30BA1-6B1D-11D9-9A60-000D93589AF6</string>
+</dict>
+</plist>

Bibtex.tmLanguage.cache

Binary file added.

Cases.sublime-snippet

+<snippet>
+    <content><![CDATA[\begin{cases}
+	${1:equation}, &\text{ if }${2:case}\\\\
+	$0
+\end{cases}]]></content>
+    <tabTrigger>cas</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description>Cases</description>
+</snippet>

Chapter.sublime-snippet

+<snippet>
+    <content><![CDATA[\chapter{${1:chapter name}} % (fold)
+\label{cha:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3)/g}}}
+${0:$TM_SELECTED_TEXT}
+% chapter $2 (end)]]></content>
+    <tabTrigger>cha</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description>Chapter</description>
+</snippet>

Comments.tmPreferences

+<?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>name</key>
+	<string>Comments</string>
+	<key>scope</key>
+	<string>text.tex.latex</string>
+	<key>settings</key>
+	<dict>
+		<key>shellVariables</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>TM_COMMENT_START</string>
+				<key>value</key>
+				<string>% </string>
+			</dict>
+		</array>
+	</dict>
+	<key>uuid</key>
+	<string>678850E6-C630-4EEF-B307-14ADEE2B2994</string>
+</dict>
+</plist>

Comments.tmPreferences.cache

Binary file added.

Description.sublime-snippet

+<snippet>
+    <content><![CDATA[\\begin{description}
+	\item[$1] $0
+\\end{description}]]></content>
+    <tabTrigger>desc</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description>Description</description>
+</snippet>

Displaymath-($$).sublime-snippet

+<snippet>
+    <content><![CDATA[\[
+	$TM_SELECTED_TEXT$1
+\]]]></content>
+    <tabTrigger>$$</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description>Display Math — \[ … \]</description>
+</snippet>

Enumerate.sublime-snippet

+<snippet>
+    <content><![CDATA[\\begin{enumerate}
+	\item $0
+\\end{enumerate}]]></content>
+    <tabTrigger>enum</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description>Enumerate</description>
+</snippet>

Equation-Star.sublime-snippet

+<snippet>
+    <content><![CDATA[\begin{equation*}
+    $0
+\end{equation*}]]></content>
+    <tabTrigger>eqs</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description>Equation Star</description>
+</snippet>

Equation.sublime-snippet

+<snippet>
+    <content><![CDATA[\begin{equation}
+	$0
+\end{equation}]]></content>
+    <tabTrigger>eq</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description>Equation</description>
+</snippet>

Figure.sublime-snippet

+<snippet>
+    <content><![CDATA[${1:Figure}~\ref{${2:fig:}}$0]]></content>
+    <tabTrigger>figure</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description>Figure</description>
+</snippet>

Inline-Equation.sublime-snippet

+<snippet>
+    <content><![CDATA[\( $0 \)]]></content>
+    <tabTrigger>eql</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description> Inline Equation Star</description>
+</snippet>

Inline-Math.sublime-snippet

+<snippet>
+    <content><![CDATA[\( $0 \)]]></content>
+    <tabTrigger>q</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description>Inline Equation</description>
+</snippet>

Item[description].sublime-snippet

+<snippet>
+    <content><![CDATA[\\item[${1:description}] ${0:item}]]></content>
+    <tabTrigger>itd</tabTrigger>
+    <scope>text.tex.latex meta.function.environment.list</scope>
+    <description>\item[description]</description>
+</snippet>

Itemize.sublime-snippet

+<snippet>
+    <content><![CDATA[\\begin{itemize}
+	\item $0
+\\end{itemize}]]></content>
+    <tabTrigger>item</tabTrigger>
+    <scope>text.tex.latex</scope>
+    <description>Itemize</description>
+</snippet>

LaTeX Beamer.tmLanguage

+<?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/>
+	<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>^~B</string>
+	<key>name</key>
+	<string>LaTeX Beamer</string>
+	<key>patterns</key>
+	<array>
+		<dict>
+			<key>begin</key>
+			<string>(?:\s*)((\\)begin)(\{)(frame)(\})</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>end</key>
+			<string>((\\)end)(\{)(frame)(\})</string>
+			<key>name</key>
+			<string>meta.function.environment.frame.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.frametitle.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>entity.name.function.frame.latex</string>
+				</dict>
+				<key>5</key>
+				<dict>
+					<key>name</key>
+					<string>punctuation.definition.arguments.end.latex</string>
+				</dict>
+			</dict>
+			<key>match</key>
+			<string>((\\)frametitle)(\{)(.*)(\})</string>
+			<key>name</key>
+			<string>meta.function.frametitle.latex</string>
+		</dict>
+		<dict>
+			<key>include</key>
+			<string>text.tex.latex</string>
+		</dict>
+	</array>
+	<key>scopeName</key>
+	<string>text.tex.latex.beamer</string>
+	<key>uuid</key>
+	<string>2ACA20AA-B008-469B-A04A-6DE232973ED8</string>
+</dict>
+</plist>

LaTeX Beamer.tmLanguage.cache

Binary file added.

LaTeX Log.tmLanguage

+<?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>firstLineMatch</key>
+	<string>This is (pdf|pdfe)?TeXk?, Version </string>
+	<key>foldingStartMarker</key>
+	<string>/\*\*|\(\s*$</string>
+	<key>foldingStopMarker</key>
+	<string>\*\*/|^\s*\)</string>
+	<key>name</key>
+	<string>LaTeX Log</string>
+	<key>patterns</key>
+	<array>
+		<dict>
+			<key>match</key>
+			<string>.*Warning:</string>
+			<key>name</key>
+			<string>invalid.deprecated</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>[^:]*:\d*:.*</string>
+			<key>name</key>
+			<string>invalid.deprecated</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>.*Error|^!.*</string>
+			<key>name</key>
+			<string>invalid.illegal</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>.*\.sty</string>
+			<key>name</key>
+			<string>entity.name.function</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>.*\.cls</string>
+			<key>name</key>
+			<string>entity.name.type.class</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>.*\.cfg</string>
+			<key>name</key>
+			<string>entity.name.tag.configuration</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>.*\.def</string>
+			<key>name</key>
+			<string>entity.name.tag.definition</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>.*Info.*</string>
+			<key>name</key>
+			<string>comment.block.documentation</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>.*FiXme:</string>
+			<key>name</key>
+			<string>meta.log.latex.fixme</string>
+		</dict>
+		<dict>
+			<key>begin</key>
+			<string>(Overfull|Underfull)</string>
+			<key>captures</key>
+			<dict>
+				<key>1</key>
+				<dict>
+					<key>name</key>
+					<string>keyword.control.hyphenation.latex</string>
+				</dict>
+			</dict>
+			<key>end</key>
+			<string>(\[\]\n)</string>
+			<key>name</key>
+			<string>meta.log.latex.hyphenation</string>
+			<key>patterns</key>
+			<array>
+				<dict>
+					<key>match</key>
+					<string>[0-9]+\-\-[0-9]+</string>
+					<key>name</key>
+					<string>variable.parameter.hyphenation.latex2</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.log.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.log.latex</string>
+				</dict>
+			</dict>
+			<key>name</key>
+			<string>string.unquoted.other.filename.log.latex</string>
+			<key>patterns</key>
+			<array>
+				<dict>
+					<key>captures</key>
+					<dict>
+						<key>1</key>
+						<dict>
+							<key>name</key>
+							<string>entity.name.function.filename.latex</string>
+						</dict>
+					</dict>
+					<key>match</key>
+					<string>(.*/.*\.pdf)</string>
+					<key>name</key>
+					<string>support.function.with-arg.latex</string>
+				</dict>
+			</array>
+		</dict>
+	</array>
+	<key>scopeName</key>
+	<string>text.log.latex</string>
+	<key>uuid</key>
+	<string>F68ACE95-7DB3-4DFB-AA8A-89988B116B5C</string>
+</dict>
+</plist>

LaTeX Log.tmLanguage.cache

Binary file added.

LaTeX Memoir.tmLanguage

+<?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/>
+	<key>firstLineMatch</key>
+	<string>^\\documentclass(\[.*\])?\{memoir\}</string>
+	<key>foldingStartMarker</key>
+	<string>\\begin\{.*\}|%.*\(fold\)\s*$</string>
+	<key>foldingStopMarker</key>
+	<string>\\end\{.*\}|%.*\(end\)\s*$</string>
+	<key>keyEquivalent</key>
+	<string>^~M</string>
+	<key>name</key>
+	<string>LaTeX Memoir</string>
+	<key>patterns</key>
+	<array>
+		<dict>
+			<key>begin</key>
+			<string>(?:\s*)((\\)begin)(\{)(framed|shaded|leftbar)(\})</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>end</key>
+			<string>((\\)end)(\{)(\4)(\})</string>
+			<key>name</key>
+			<string>meta.function.memoir-fbox.latex</string>
+			<key>patterns</key>
+			<array>
+				<dict>
+					<key>include</key>
+					<string>$self</string>
+				</dict>
+			</array>
+		</dict>
+		<dict>
+			<key>begin</key>
+			<string>(?:\s*)((\\)begin)(\{)((?:fboxv|boxedv|V)erbatim)(\})</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.memoir-verbatim.latex</string>
+		</dict>
+		<dict>
+			<key>begin</key>
+			<string>(?:\s*)((\\)begin)(\{)(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)(\{)(alltt)(\})</string>
+			<key>name</key>
+			<string>meta.function.memoir-alltt.latex</string>
+			<key>patterns</key>
+			<array>
+				<dict>
+					<key>captures</key>
+					<dict>
+						<key>1</key>
+						<dict>
+							<key>name</key>
+							<string>punctuation.definition.function.tex</string>
+						</dict>
+					</dict>
+					<key>match</key>
+					<string>(\\)[A-Za-z]+</string>
+					<key>name</key>
+					<string>support.function.general.tex</string>
+				</dict>
+			</array>
+		</dict>
+		<dict>
+			<key>include</key>
+			<string>text.tex.latex</string>
+		</dict>
+	</array>
+	<key>scopeName</key>
+	<string>text.tex.latex.memoir</string>
+	<key>uuid</key>
+	<string>D0853B20-ABFF-48AB-8AB9-3D8BA0755C05</string>
+</dict>
+</plist>

LaTeX Memoir.tmLanguage.cache

Binary file added.
+<?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>