blob: a930712a72ae1c1c17735e554991c8769537feed [file] [log] [blame]
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00001" Vim syntax file
2" Language: TeX (plain.tex format)
3" Maintainer: Nikolai Weibull <now@bitwi.se>
4" Latest Revision: 2006-03-26
5
6if exists("b:current_syntax")
7 finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn match plaintexControlSequence display contains=@NoSpell
14 \ '\\[a-zA-Z@]\+'
15
16runtime! syntax/coretex.vim
17
18syn match plaintexComment display
19 \ contains=ALLBUT,coretexComment,plaintexComment
20 \ '^\s*%[CDM].*$'
21
22if exists("g:plaintex_delimiters")
23 syn match plaintexDelimiter display '[][{}]'
24endif
25
26syn match plaintexRepeat display contains=@NoSpell
27 \ '\\\%(loop\|repeat\)\>'
28
29syn match plaintexCommand display contains=@NoSpell
30 \ '\\\%(plainoutput\|TeX\)\>'
31syn match plaintexBoxCommand display contains=@NoSpell
32 \ '\\\%(null\|strut\)\>'
33syn match plaintexCharacterCommand display contains=@NoSpell
34 \ /\\\%(["#$%&'.=^_`~]\|``\|''\|-\{2,3}\|[?!]`\|^^L\|\~\|\%(a[ae]\|A[AE]\|acute\|[cdHoOPStuvijlL]\|copyright\|d\=dag\|folio\|ldotp\|[lr]q\|oe\|OE\|slash\|ss\|underbar\)\>\)/
35syn match plaintexDebuggingCommand display contains=@NoSpell
36 \ '\\\%(showhyphens\|tracingall\|wlog\)\>'
37syn match plaintexFontsCommand display contains=@NoSpell
38 \ '\\\%(bf\|\%(five\|seven\)\%(bf\|i\|rm\|sy\)\|it\|oldstyle\|rm\|sl\|ten\%(bf\|ex\|it\=\|rm\|sl\|sy\|tt\)\|tt\)\>'
39syn match plaintexGlueCommand display contains=@NoSpell
40 \ '\\\%(\%(big\|en\|med\|\%(no\|off\)interline\|small\)skip\|\%(center\|left\|right\)\=line\|\%(dot\|\%(left\|right\)arrow\)fill\|[hv]glue\|[lr]lap\|q\=quad\|space\|topglue\)\>'
41syn match plaintexInsertsCommand display contains=@NoSpell
42 \ '\\\%(\%(end\|top\)insert\|v\=footnote\)\>'
43syn match plaintexJobCommand display contains=@NoSpell
44 \ '\\\%(bye\|fmt\%(name\|version\)\)\>'
45syn match plaintexInsertsCommand display contains=@NoSpell
46 \ '\\\%(mid\|page\)insert\>'
47syn match plaintexKernCommand display contains=@NoSpell
48 \ '\\\%(en\|\%(neg\)\=thin\)space\>'
49syn match plaintexMacroCommand display contains=@NoSpell
50 \ '\\\%(active\|[be]group\|empty\)\>'
51syn match plaintexPageCommand display contains=@NoSpell
52 \ '\\\%(\%(super\)\=eject\|nopagenumbers\|\%(normal\|ragged\)bottom\)\>'
53syn match plaintexParagraphCommand display contains=@NoSpell
54 \ '\\\%(endgraf\|\%(non\)\=frenchspacing\|hang\|item\%(item\)\=\|narrower\|normalbaselines\|obey\%(lines\|spaces\)\|openup\|proclaim\|\%(tt\)\=raggedright\|textindent\)\>'
55syn match plaintexPenaltiesCommand display contains=@NoSpell
56 \ '\\\%(allow\|big\|fil\|good\|med\|no\|small\)\=break\>'
57syn match plaintexRegistersCommand display contains=@NoSpell
58 \ '\\\%(advancepageno\|new\%(box\|count\|dimen\|fam\|help\|if\|insert\|language\|muskip\|read\|skip\|toks\|write\)\)\>'
59syn match plaintexTablesCommand display contains=@NoSpell
60 \ '&\|\\+\|\\\%(cleartabs\|endline\|hidewidth\|ialign\|multispan\|settabs\|tabalign\)\>'
61
62syn region plaintexMath matchgroup=plaintexMath
63 \ contains=@plaintexMath
64 \ start='\$' skip='\\\\\|\\\$' end='\$'
65syn region plaintexMath matchgroup=plaintexMath
66 \ contains=@plaintexMath keepend
67 \ start='\$\$' skip='\\\\\|\\\$' end='\$\$'
68
69syn cluster plaintexMath
70 \ contains=plaintexMathCommand,plaintexMathBoxCommand,
71 \ plaintexMathCharacterCommand,plaintexMathDelimiter,
72 \ plaintexMathFontsCommand,plaintexMathLetter,plaintexMathSymbol,
73 \ plaintexMathFunction,plaintexMathOperator,plaintexMathPunctuation,
74 \ plaintexMathRelation
75
76syn match plaintexMathCommand display contains=@NoSpell contained
77 \ '\\\%([!*,;>{}|_^]\|\%([aA]rrowvert\|[bB]ig\%(g[lmr]\=\|r\)\=\|\%(border\|p\)\=matrix\|displaylines\|\%(down\|up\)bracefill\|eqalign\%(no\)\|leqalignno\|[lr]moustache\|mathpalette\|root\|s[bp]\|skew\|sqrt\)\>\)'
78syn match plaintexMathBoxCommand display contains=@NoSpell contained
79 \ '\\\%([hv]\=phantom\|mathstrut\|smash\)\>'
80syn match plaintexMathCharacterCommand display contains=@NoSpell contained
81 \ '\\\%(b\|bar\|breve\|check\|d\=dots\=\|grave\|hat\|[lv]dots\|tilde\|vec\|wide\%(hat\|tilde\)\)\>'
82syn match plaintexMathDelimiter display contains=@NoSpell contained
83 \ '\\\%(brace\%(vert\)\=\|brack\|cases\|choose\|[lr]\%(angle\|brace\|brack\|ceil\|floor\|group\)\|over\%(brace\|\%(left\|right\)arrow\)\|underbrace\)\>'
84syn match plaintexMathFontsCommand display contains=@NoSpell contained
85 \ '\\\%(\%(bf\|it\|sl\|tt\)fam\|cal\|mit\)\>'
86syn match plaintexMathLetter display contains=@NoSpell contained
87 \ '\\\%(aleph\|alpha\|beta\|chi\|[dD]elta\|ell\|epsilon\|eta\|[gG]amma\|[ij]math\|iota\|kappa\|[lL]ambda\|[mn]u\|[oO]mega\|[pP][hs]\=i\|rho\|[sS]igma\|tau\|[tT]heta\|[uU]psilon\|var\%(epsilon\|ph\=i\|rho\|sigma\|theta\)\|[xX]i\|zeta\)\>'
88syn match plaintexMathSymbol display contains=@NoSpell contained
89 \ '\\\%(angle\|backslash\|bot\|clubsuit\|emptyset\|epsilon\|exists\|flat\|forall\|hbar\|heartsuit\|Im\|infty\|int\|lnot\|nabla\|natural\|neg\|pmod\|prime\|Re\|sharp\|smallint\|spadesuit\|surd\|top\|triangle\%(left\|right\)\=\|vdash\|wp\)\>'
90syn match plaintexMathFunction display contains=@NoSpell contained
91 \ '\\\%(arc\%(cos\|sin\|tan\)\|arg\|\%(cos\|sin\|tan\)h\=\|coth\=\|csc\|de[gt]\|dim\|exp\|gcd\|hom\|inf\|ker\|lo\=g\|lim\%(inf\|sup\)\=\|ln\|max\|min\|Pr\|sec\|sup\)\>'
92syn match plaintexMathOperator display contains=@NoSpell contained
93 \ '\\\%(amalg\|ast\|big\%(c[au]p\|circ\|o\%(dot\|plus\|times\|sqcup\)\|triangle\%(down\|up\)\|uplus\|vee\|wedge\|bmod\|bullet\)\|c[au]p\|cdot[ps]\=\|circ\|coprod\|d\=dagger\|diamond\%(suit\)\=\|div\|land\|lor\|mp\|o\%(dot\|int\|minus\|plus\|slash\|times\)pm\|prod\|setminus\|sqc[au]p\|sqsu[bp]seteq\|star\|su[bp]set\%(eq\)\=\|sum\|times\|uplus\|vee\|wedge\|wr\)\>'
94syn match plaintexMathPunctuation display contains=@NoSpell contained
95 \ '\\\%(colon\)\>'
96syn match plaintexMathRelation display contains=@NoSpell contained
97 \ '\\\%(approx\|asymp\|bowtie\|buildrel\|cong\|dashv\|doteq\|[dD]ownarrow\|equiv\|frown\|geq\=\|gets\|gg\|hook\%(left\|right\)arrow\|iff\|in\|leq\=\|[lL]eftarrow\|\%(left\|right\)harpoon\%(down\|up\)\|[lL]eftrightarrow\|ll\|[lL]ongleftrightarrow\|longmapsto\|[lL]ongrightarrow\|mapsto\|mid\|models\|[ns][ew]arrow\|neq\=\|ni\|not\%(in\)\=\|owns\|parallel\|perp\|prec\%(eq\)\=\|propto\|[rR]ightarrow\|rightleftharpoons\|sim\%(eq\)\=\|smile\|succ\%(eq\)\=\|to\|[uU]parrow\|[uU]pdownarrow\|[vV]ert\)\>'
98
99syn match plaintexParameterDimen display contains=@NoSpell
100 \ '\\maxdimen\>'
101syn match plaintexMathParameterDimen display contains=@NoSpell
102 \ '\\jot\>'
103syn match plaintexParagraphParameterGlue display contains=@NoSpell
104 \ '\\\%(\%(big\|med\|small\)skipamount\|normalbaselineskip\|normallineskip\%(limit\)\=\)\>'
105
106syn match plaintexFontParameterInteger display contains=@NoSpell
107 \ '\\magstep\%(half\)\=\>'
108syn match plaintexJobParameterInteger display contains=@NoSpell
109 \ '\\magnification\>'
110syn match plaintexPageParameterInteger display contains=@NoSpell
111 \ '\\pageno\>'
112
113syn match plaintexPageParameterToken display contains=@NoSpell
114 \ '\\\%(foot\|head\)line\>'
115
116hi def link plaintexOperator Operator
117
118hi def link plaintexDelimiter Delimiter
119
120hi def link plaintexControlSequence Identifier
121hi def link plaintexComment Comment
122hi def link plaintexInclude Include
123hi def link plaintexRepeat Repeat
124
125hi def link plaintexCommand coretexCommand
126hi def link plaintexBoxCommand plaintexCommand
127hi def link plaintexCharacterCommand coretexCharacterCommand
128hi def link plaintexDebuggingCommand coretexDebuggingCommand
129hi def link plaintexFontsCommand coretexFontsCommand
130hi def link plaintexGlueCommand plaintexCommand
131hi def link plaintexInsertsCommand plaintexCommand
132hi def link plaintexJobCommand coretexJobCommand
133hi def link plaintexKernCommand plaintexCommand
134hi def link plaintexMacroCommand coretexMacroCommand
135hi def link plaintexPageCommand plaintexCommand
136hi def link plaintexParagraphCommand plaintexCommand
137hi def link plaintexPenaltiesCommand plaintexCommand
138hi def link plaintexRegistersCommand plaintexCommand
139hi def link plaintexTablesCommand plaintexCommand
140
141hi def link plaintexMath String
142hi def link plaintexMathCommand plaintexCommand
143hi def link plaintexMathBoxCommand plaintexBoxCommand
144hi def link plaintexMathCharacterCommand plaintexCharacterCommand
145hi def link plaintexMathDelimiter plaintexDelimiter
146hi def link plaintexMathFontsCommand plaintexFontsCommand
147hi def link plaintexMathLetter plaintexMathCharacterCommand
148hi def link plaintexMathSymbol plaintexMathLetter
149hi def link plaintexMathFunction Function
150hi def link plaintexMathOperator plaintexOperator
151hi def link plaintexMathPunctuation plaintexCharacterCommand
152hi def link plaintexMathRelation plaintexOperator
153
154hi def link plaintexParameterDimen coretexParameterDimen
155hi def link plaintexMathParameterDimen coretexMathParameterDimen
156hi def link plaintexParagraphParameterGlue coretexParagraphParameterGlue
157hi def link plaintexFontParameterInteger coretexFontParameterInteger
158hi def link plaintexJobParameterInteger coretexJobParameterInteger
159hi def link plaintexPageParameterInteger coretexPageParameterInteger
160hi def link plaintexPageParameterToken coretexParameterToken
161
162let b:current_syntax = "plaintex"
163
164let &cpo = s:cpo_save
165unlet s:cpo_save
166