annotate runtime/syntax/tex.vim @ 12:bdeee1504ac1

updated for version 7.0004
author vimboss
date Fri, 02 Jul 2004 15:38:35 +0000
parents 3fc0f57ecb91
children 125e80798a85
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim syntax file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Language: TeX
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 7
diff changeset
4 " Last Change: Jun 15, 2004
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 7
diff changeset
5 " Version: 25
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 " URL: http://www.erols.com/astronaut/vim/index.html#vimlinks_syntax
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 " Notes: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 " 1. If you have a \begin{verbatim} that appears to overrun its boundaries,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 " use %stopzone.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 " 2. Run-on equations ($..$ and $$..$$, particularly) can also be stopped
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 " by suitable use of %stopzone.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 " 3. If you have a slow computer, you may wish to modify
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 " syn sync maxlines=200
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 " syn sync minlines=50
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 " to values that are more to your liking.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 " 4. There is no match-syncing for $...$ and $$...$$; hence large
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 " equation blocks constructed that way may exhibit syncing problems.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 " (there's no difference between begin/end patterns)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 " 5. If you have the variable "g:tex_no_error" defined then none of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 " lexical error-checking will be done.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 " ie. let g:tex_no_error=1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 " Version Clears: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 " For version 5.x: Clear all syntax items
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 " For version 6.x: Quit when a syntax file was already loaded
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 if version < 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 syntax clear
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 elseif exists("b:current_syntax")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 " Define the default highlighting. {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 " For version 5.7 and earlier: only when not done already
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 " For version 5.8 and later: only when an item doesn't have highlighting yet
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 if version >= 508 || !exists("did_tex_syntax_inits")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 let did_tex_syntax_inits = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 if version < 508
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 command -nargs=+ HiLink hi link <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 command -nargs=+ HiLink hi def link <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 if exists("g:tex_tex") && !exists("g:tex_no_error")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 let g:tex_no_error= 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 " Determine whether or not to use "*.sty" mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 " The user may override the normal determination by setting
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 " g:tex_stylish to 1 (for "*.sty" mode)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 " or to 0 else (normal "*.tex" mode)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 " or on a buffer-by-buffer basis with b:tex_stylish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 let b:extfname=expand("%:e")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 if exists("g:tex_stylish")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 let b:tex_stylish= g:tex_stylish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 elseif !exists("b:tex_stylish")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 if b:extfname == "sty" || b:extfname == "cls" || b:extfname == "clo" || b:extfname == "dtx" || b:extfname == "ltx"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 let b:tex_stylish= 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 let b:tex_stylish= 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 " (La)TeX keywords: only use the letters a-zA-Z {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 " but _ is the only one that causes problems.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 if version < 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 set isk-=_
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 if b:tex_stylish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 set isk+=@
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 setlocal isk-=_
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 if b:tex_stylish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 setlocal isk+=@
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 " Clusters: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 " --------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88 syn cluster texCmdGroup contains=texCmdBody,texComment,texDefParm,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texSectionMarker,texSectionName,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 if !exists("g:tex_no_error")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
90 syn cluster texCmdGroup add=texMathError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 syn cluster texEnvGroup contains=texMatcher,texMathDelim,texSpecialChar,texStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 7
diff changeset
94 syn cluster texRefGroup contains=texMatcher,texComment,texDelimiter
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95 if !exists("tex_no_math")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 syn cluster texMathZones contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97 syn cluster texMatchGroup add=@texMathZones
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 syn cluster texMathDelimGroup contains=texMathDelimBad,texMathDelimKey,texMathDelimSet1,texMathDelimSet2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 syn cluster texMathMatchGroup contains=@texMathZones,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathMatcher,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 syn cluster texMathZoneGroup contains=texComment,texDelimiter,texLength,texMathDelim,texMathMatcher,texMathOper,texRefZone,texSpecialChar,texStatement,texTypeSize,texTypeStyle
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 if !exists("g:tex_no_error")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 syn cluster texMathMatchGroup add=texMathError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 syn cluster texMathZoneGroup add=texMathError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 " Try to flag {} and () mismatches: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 if !exists("g:tex_no_error")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup,texError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup,texError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 syn region texParen start="(" end=")" contains=@texMatchGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 if !exists("g:tex_no_error")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 syn match texError "[}\])]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119 if !exists("tex_no_math")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 if !exists("g:tex_no_error")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 syn match texMathError "}" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 syn region texMathMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\}" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 " TeX/LaTeX keywords: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 " Instead of trying to be All Knowing, I just match \..alphameric..
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 " Note that *.tex files may not have "@" in their \commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 if exists("g:tex_tex") || b:tex_stylish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 syn match texStatement "\\[a-zA-Z@]\+"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 syn match texStatement "\\\a\+"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 if !exists("g:tex_no_error")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 syn match texError "\\\a*@[a-zA-Z@]*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 " TeX/LaTeX delimiters: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 syn match texDelimiter "&"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140 syn match texDelimiter "\\\\"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 " Tex/Latex Options: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 syn match texOption "[^\\]\zs#\d\+\|^#\d\+"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145 " texAccent (tnx to Karim Belabas) avoids annoying highlighting for accents: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146 if b:tex_stylish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 syn match texAccent "\\[bcdvuH][^a-zA-Z@]"me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148 syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 syn match texAccent "\\[bcdvuH]\A"me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)\A"me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153 syn match texAccent "\\[bcdvuH]$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 syn match texAccent +\\[=^.\~"`']+
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155 syn match texAccent +\\['=t'.c^ud"vb~Hr]{\a}+
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 " \begin{}/\end{} section markers: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 syn match texSectionMarker "\\begin\>\|\\end\>" nextgroup=texSectionName
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 syn region texSectionName matchgroup=Delimiter start="{" end="}" contained nextgroup=texSectionModifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
161 syn region texSectionModifier matchgroup=Delimiter start="\[" end="]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 " \documentclass, \documentstyle, \usepackage: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 syn match texDocType "\\documentclass\>\|\\documentstyle\>\|\\usepackage\>" nextgroup=texSectionName,texDocTypeArgs
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 syn region texDocTypeArgs matchgroup=Delimiter start="\[" end="]" contained nextgroup=texSectionName
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 " TeX input: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 syn match texInput "\\input\s\+[a-zA-Z/.0-9_^]\+"hs=s+7 contains=texStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 syn match texInputFile "\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}" contains=texStatement,texInputCurlies
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 syn match texInputFile "\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 syn match texInputCurlies "[{}]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172 syn region texInputFileOpt matchgroup=Delimiter start="\[" end="\]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 " Type Styles (LaTeX 2.09): {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 syn match texTypeStyle "\\rm\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 syn match texTypeStyle "\\em\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 syn match texTypeStyle "\\bf\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 syn match texTypeStyle "\\it\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 syn match texTypeStyle "\\sl\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 syn match texTypeStyle "\\sf\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 syn match texTypeStyle "\\sc\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 syn match texTypeStyle "\\tt\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 " Type Styles: attributes, commands, families, etc (LaTeX2E): {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185 syn match texTypeStyle "\\textbf\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 syn match texTypeStyle "\\textit\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 syn match texTypeStyle "\\textmd\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 syn match texTypeStyle "\\textrm\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 syn match texTypeStyle "\\textsc\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 syn match texTypeStyle "\\textsf\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191 syn match texTypeStyle "\\textsl\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 syn match texTypeStyle "\\texttt\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193 syn match texTypeStyle "\\textup\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 syn match texTypeStyle "\\emph\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 syn match texTypeStyle "\\mathbb\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 syn match texTypeStyle "\\mathbf\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 syn match texTypeStyle "\\mathcal\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 syn match texTypeStyle "\\mathfrak\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 syn match texTypeStyle "\\mathit\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 syn match texTypeStyle "\\mathnormal\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 syn match texTypeStyle "\\mathrm\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 syn match texTypeStyle "\\mathsf\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 syn match texTypeStyle "\\mathtt\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 syn match texTypeStyle "\\rmfamily\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 syn match texTypeStyle "\\sffamily\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 syn match texTypeStyle "\\ttfamily\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 syn match texTypeStyle "\\itshape\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 syn match texTypeStyle "\\scshape\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 syn match texTypeStyle "\\slshape\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213 syn match texTypeStyle "\\upshape\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 syn match texTypeStyle "\\bfseries\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 syn match texTypeStyle "\\mdseries\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 " Some type sizes: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219 syn match texTypeSize "\\tiny\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 syn match texTypeSize "\\scriptsize\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 syn match texTypeSize "\\footnotesize\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 syn match texTypeSize "\\small\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223 syn match texTypeSize "\\normalsize\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 syn match texTypeSize "\\large\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 syn match texTypeSize "\\Large\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 syn match texTypeSize "\\LARGE\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 syn match texTypeSize "\\huge\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228 syn match texTypeSize "\\Huge\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 " Spacecodes (TeX'isms): {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231 " \mathcode`\^^@="2201 \delcode`\(="028300 \sfcode`\)=0 \uccode`X=`X \lccode`x=`x
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 syn match texSpaceCode "\\\(math\|cat\|del\|lc\|sf\|uc\)code`"me=e-1 nextgroup=texSpaceCodeChar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233 syn match texSpaceCodeChar "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235 " Sections, subsections, etc: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
236 syn match texSection "\\\(sub\)*section\*\=\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
237 syn match texSection "\\\(title\|author\|part\|chapter\|paragraph\|subparagraph\)\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238 syn match texSection "\\begin\s*{\s*abstract\s*}\|\\end\s*{\s*abstract\s*}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240 " Bad Math (mismatched): {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 if !exists("tex_no_math")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|subequations\|smallmatrix\|xxalignat\)\s*}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243 syn match texBadMath "\\end\s*{\s*\(align\|alignat\|displaymath\|displaymath\|eqnarray\|equation\|flalign\|gather\|math\|multline\|xalignat\)\*\=\s*}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244 syn match texBadMath "\\[\])]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247 " Math Zones: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 if !exists("tex_no_math")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 " TexNewMathZone: creates a mathzone with the given suffix and mathzone name. {{{2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
250 " Starred forms are created if starform is true. Starred
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251 " forms have syntax group and synchronization groups with a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 " "S" appended. Handles: cluster, syntax, sync, and HiLink.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 fun! TexNewMathZone(sfx,mathzone,starform)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 let grpname = "texMathZone".a:sfx
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 let syncname = "texSyncMathZone".a:sfx
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 exe "syn cluster texMathZones add=".grpname
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
258 exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
259 exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
260 exe 'HiLink '.grpname.' texMath'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
261 if a:starform
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
262 let grpname = "texMathZone".a:sfx.'S'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
263 let syncname = "texSyncMathZone".a:sfx.'S'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
264 exe "syn cluster texMathZones add=".grpname
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
265 exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
266 exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
267 exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
268 exe 'HiLink '.grpname.' texMath'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
269 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
270 endfun
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
271
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
272 " Standard Math Zones: {{{2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273 call TexNewMathZone("A","align",1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
274 call TexNewMathZone("B","alignat",1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
275 call TexNewMathZone("C","displaymath",1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276 call TexNewMathZone("D","eqnarray",1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
277 call TexNewMathZone("E","equation",1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
278 call TexNewMathZone("F","flalign",1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
279 call TexNewMathZone("G","gather",1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
280 call TexNewMathZone("H","math",1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
281 call TexNewMathZone("I","multline",1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
282 call TexNewMathZone("J","subequations",0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
283 call TexNewMathZone("K","xalignat",1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284 call TexNewMathZone("L","xxalignat",0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
286 " Inline Math Zones: {{{2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287 syn region texMathZoneV matchgroup=Delimiter start="\\(" matchgroup=Delimiter end="\\)\|%stopzone\>" keepend contains=@texMathZoneGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288 syn region texMathZoneW matchgroup=Delimiter start="\\\[" matchgroup=Delimiter end="\\]\|%stopzone\>" keepend contains=@texMathZoneGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289 syn region texMathZoneX matchgroup=Delimiter start="\$" skip="\\\\\|\\\$" matchgroup=Delimiter end="\$" end="%stopzone\>" contains=@texMathZoneGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290 syn region texMathZoneY matchgroup=Delimiter start="\$\$" matchgroup=Delimiter end="\$\$" end="%stopzone\>" keepend contains=@texMathZoneGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291 syn region texMathZoneZ matchgroup=texStatement start="\\ensuremath\s*{" matchgroup=texStatement end="}" end="%stopzone\>" contains=@texMathZoneGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
293 syn match texMathOper "[_^=]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
294
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
295 " \left..something.. and \right..something.. support: {{{2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296 syn match texMathDelimBad contained "\S"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 syn match texMathDelim contained "\\\(left\|right\|[bB]igg\=[lr]\)\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298 syn match texMathDelim contained "\\\(left\|right\)arrow\>\|\<\([aA]rrow\|brace\)\=vert\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299 syn match texMathDelim contained "\\lefteqn\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
300 syn match texMathDelimSet2 contained "\\" nextgroup=texMathDelimKey,texMathDelimBad
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301 syn match texMathDelimSet1 contained "[<>()[\]|/.]\|\\[{}|]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302 syn keyword texMathDelimKey contained backslash lceil lVert rgroup uparrow
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
303 syn keyword texMathDelimKey contained downarrow lfloor rangle rmoustache Uparrow
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
304 syn keyword texMathDelimKey contained Downarrow lgroup rbrace rvert updownarrow
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
305 syn keyword texMathDelimKey contained langle lmoustache rceil rVert Updownarrow
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
306 syn keyword texMathDelimKey contained lbrace lvert rfloor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
309 " Special TeX characters ( \$ \& \% \# \{ \} \_ \S \P ) : {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310 syn match texSpecialChar "\\[$&%#{}_]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
311 if b:tex_stylish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
312 syn match texSpecialChar "\\[SP@][^a-zA-Z@]"me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
314 syn match texSpecialChar "\\[SP@]\A"me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
315 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
316 syn match texSpecialChar "\\\\"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
317 if !exists("tex_no_math")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
318 syn match texOnlyMath "[_^]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
319 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
320 syn match texSpecialChar "\^\^[0-9a-f]\{2}\|\^\^\S"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
321
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
322 " Comments: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
323 " Normal TeX LaTeX : %....
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
324 " Documented TeX Format: ^^A... -and- leading %s (only)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
325 syn cluster texCommentGroup contains=texTodo,@Spell
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
326 syn case ignore
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
327 syn keyword texTodo contained combak fixme todo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
328 syn case match
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
329 if b:extfname == "dtx"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
330 syn match texComment "\^\^A.*$" contains=@texCommentGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
331 syn match texComment "^%\+" contains=@texCommentGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
332 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
333 syn match texComment "%.*$" contains=@texCommentGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
334 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
335
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
336 " Separate lines used for verb` and verb# so that the end conditions {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
337 " will appropriately terminate. Ideally vim would let me save a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
338 " character from the start pattern and re-use it in the end-pattern.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
339 syn region texZone start="\\begin{verbatim}" end="\\end{verbatim}\|%stopzone\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
340 if version < 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
341 syn region texZone start="\\verb\*\=`" end="`\|%stopzone\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
342 syn region texZone start="\\verb\*\=#" end="#\|%stopzone\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
343 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
344 if b:tex_stylish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
345 syn region texZone start="\\verb\*\=\z([^\ta-zA-Z@]\)" end="\z1\|%stopzone\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
347 syn region texZone start="\\verb\*\=\z([^\ta-zA-Z]\)" end="\z1\|%stopzone\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
348 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
349 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
350
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
351 " Tex Reference Zones: {{{1
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 7
diff changeset
352 syn region texZone matchgroup=texStatement start="@samp{" end="}\|%stopzone\>" contains=@texRefGroup
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 7
diff changeset
353 syn region texRefZone matchgroup=texStatement start="\\nocite{" end="}\|%stopzone\>" contains=@texRefGroup
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 7
diff changeset
354 syn region texRefZone matchgroup=texStatement start="\\bibliography{" end="}\|%stopzone\>" contains=@texRefGroup
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 7
diff changeset
355 syn region texRefZone matchgroup=texStatement start="\\cite\([tp]\*\=\)\={" end="}\|%stopzone\>" contains=@texRefGroup
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 7
diff changeset
356 syn region texRefZone matchgroup=texStatement start="\\label{" end="}\|%stopzone\>" contains=@texRefGroup
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 7
diff changeset
357 syn region texRefZone matchgroup=texStatement start="\\\(page\|eq\)ref{" end="}\|%stopzone\>" contains=@texRefGroup
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 7
diff changeset
358 syn region texRefZone matchgroup=texStatement start="\\v\=ref{" end="}\|%stopzone\>" contains=@texRefGroup
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
359
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
360 " Handle newcommand, newenvironment : {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
361 syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
362 syn region texCmdName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texCmdArgs,texCmdBody skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
363 syn region texCmdArgs contained matchgroup=Delimiter start="\["rs=s+1 end="]" nextgroup=texCmdBody skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
364 syn region texCmdBody contained matchgroup=Delimiter start="{"rs=s+1 skip="\\\\\|\\[{}]" matchgroup=Delimiter end="}" contains=@texCmdGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
365 syn match texNewEnv "\\newenvironment\>" nextgroup=texEnvName skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366 syn region texEnvName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvBgn skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
367 syn region texEnvBgn contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvEnd skipwhite skipnl contains=@texEnvGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
368 syn region texEnvEnd contained matchgroup=Delimiter start="{"rs=s+1 end="}" skipwhite skipnl contains=@texEnvGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
369
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
370 " Definitions/Commands: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
371 syn match texDefCmd "\\def\>" nextgroup=texDefName skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
372 if b:tex_stylish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
373 syn match texDefName contained "\\[a-zA-Z@]\+" nextgroup=texDefParms,texCmdBody skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
374 syn match texDefName contained "\\[^a-zA-Z@]" nextgroup=texDefParms,texCmdBody skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
375 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
376 syn match texDefName contained "\\\a\+" nextgroup=texDefParms,texCmdBody skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
377 syn match texDefName contained "\\\A" nextgroup=texDefParms,texCmdBody skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
378 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
379 syn match texDefParms contained "#[^{]*" contains=texDefParm nextgroup=texCmdBody skipwhite skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380 syn match texDefParm contained "#\d\+"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
381
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 " TeX Lengths: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
383 syn match texLength "\<\d\+\(\.\d\+\)\=\s*\(true\)\=\s*\(bp\|cc\|cm\|dd\|em\|ex\|in\|mm\|pc\|pt\|sp\)\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
384
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
385 " TeX String Delimiters: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
386 syn match texString "\(``\|''\|,,\)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
387
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
388 " LaTeX synchronization: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
389 syn sync maxlines=200
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
390 syn sync minlines=50
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
391
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
392 syn sync match texSyncStop groupthere NONE "%stopzone\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
393
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
394 " Synchronization: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
395 " The $..$ and $$..$$ make for impossible sync patterns
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
396 " (one can't tell if a "$$" starts or stops a math zone by itself)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
397 " The following grouptheres coupled with minlines above
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
398 " help improve the odds of good syncing.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
399 if !exists("tex_no_math")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
400 syn sync match texSyncMathZoneA groupthere NONE "\\end{abstract}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
401 syn sync match texSyncMathZoneA groupthere NONE "\\end{center}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
402 syn sync match texSyncMathZoneA groupthere NONE "\\end{description}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
403 syn sync match texSyncMathZoneA groupthere NONE "\\end{enumerate}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
404 syn sync match texSyncMathZoneA groupthere NONE "\\end{itemize}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
405 syn sync match texSyncMathZoneA groupthere NONE "\\end{table}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
406 syn sync match texSyncMathZoneA groupthere NONE "\\end{tabular}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
407 syn sync match texSyncMathZoneA groupthere NONE "\\\(sub\)*section\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
408 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
409
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
410 " Highlighting: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
411 if did_tex_syntax_inits == 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
412 let did_tex_syntax_inits= 2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
413 " TeX highlighting groups which should share similar highlighting
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
414 if !exists("g:tex_no_error")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
415 if !exists("tex_no_math")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
416 HiLink texBadMath texError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
417 HiLink texMathDelimBad texError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
418 HiLink texMathError texError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
419 if !b:tex_stylish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
420 HiLink texOnlyMath texError
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
421 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
422 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
423 HiLink texError Error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
424 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
425
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
426 HiLink texDefCmd texDef
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
427 HiLink texDefName texDef
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
428 HiLink texDocType texCmdName
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
429 HiLink texDocTypeArgs texCmdArgs
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
430 HiLink texInputFileOpt texCmdArgs
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
431 HiLink texInputCurlies texDelimiter
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
432 HiLink texLigature texSpecialChar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
433 if !exists("tex_no_math")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
434 HiLink texMathDelimSet1 texMathDelim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
435 HiLink texMathDelimSet2 texMathDelim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
436 HiLink texMathDelimKey texMathDelim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
437 HiLink texMathMatcher texMath
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
438 HiLink texMathZoneW texMath
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
439 HiLink texMathZoneX texMath
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
440 HiLink texMathZoneY texMath
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
441 HiLink texMathZoneZ texMath
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
442 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
443 HiLink texSectionMarker texCmdName
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
444 HiLink texSectionName texSection
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
445 HiLink texSpaceCode texStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
446 HiLink texTypeSize texType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
447 HiLink texTypeStyle texType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
448
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
449 " Basic TeX highlighting groups
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
450 HiLink texCmdArgs Number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
451 HiLink texCmdName Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
452 HiLink texComment Comment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
453 HiLink texDef Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
454 HiLink texDefParm Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
455 HiLink texDelimiter Delimiter
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
456 HiLink texInput Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
457 HiLink texInputFile Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
458 HiLink texLength Number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
459 HiLink texMath Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
460 HiLink texMathDelim Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
461 HiLink texMathOper Operator
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
462 HiLink texNewCmd Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
463 HiLink texNewEnv Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
464 HiLink texOption Number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
465 HiLink texRefZone Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
466 HiLink texSection PreCondit
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
467 HiLink texSpaceCodeChar Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
468 HiLink texSpecialChar SpecialChar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
469 HiLink texStatement Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
470 HiLink texString String
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
471 HiLink texTodo Todo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
472 HiLink texType Type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
473 HiLink texZone PreCondit
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
474
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
475 delcommand HiLink
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
476 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
477
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
478 " Current Syntax: {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
479 unlet b:extfname
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
480 let b:current_syntax = "tex"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
481 " vim: ts=8 fdm=marker