1" Vim syntax file 2" Language: TeX (plain.tex format) 3" Maintainer: Nikolai Weibull <[email protected]> 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 167