1" Vim syntax file 2" Language: TeX (plain.tex format) 3" Maintainer: Nikolai Weibull <[email protected]> 4" Latest Revision: 2006-04-19 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/initex.vim 17 18syn match plaintexComment display 19 \ contains=ALLBUT,initexComment,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 62if !exists("g:plaintex_no_math") 63 syn region plaintexMath matchgroup=plaintexMath 64 \ contains=@plaintexMath 65 \ start='\$' skip='\\\\\|\\\$' end='\$' 66 syn region plaintexMath matchgroup=plaintexMath 67 \ contains=@plaintexMath keepend 68 \ start='\$\$' skip='\\\\\|\\\$' end='\$\$' 69endif 70 71syn cluster plaintexMath 72 \ contains=plaintexMathCommand,plaintexMathBoxCommand, 73 \ plaintexMathCharacterCommand,plaintexMathDelimiter, 74 \ plaintexMathFontsCommand,plaintexMathLetter,plaintexMathSymbol, 75 \ plaintexMathFunction,plaintexMathOperator,plaintexMathPunctuation, 76 \ plaintexMathRelation 77 78syn match plaintexMathCommand display contains=@NoSpell contained 79 \ '\\\%([!*,;>{}|_^]\|\%([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\)\>\)' 80syn match plaintexMathBoxCommand display contains=@NoSpell contained 81 \ '\\\%([hv]\=phantom\|mathstrut\|smash\)\>' 82syn match plaintexMathCharacterCommand display contains=@NoSpell contained 83 \ '\\\%(b\|bar\|breve\|check\|d\=dots\=\|grave\|hat\|[lv]dots\|tilde\|vec\|wide\%(hat\|tilde\)\)\>' 84syn match plaintexMathDelimiter display contains=@NoSpell contained 85 \ '\\\%(brace\%(vert\)\=\|brack\|cases\|choose\|[lr]\%(angle\|brace\|brack\|ceil\|floor\|group\)\|over\%(brace\|\%(left\|right\)arrow\)\|underbrace\)\>' 86syn match plaintexMathFontsCommand display contains=@NoSpell contained 87 \ '\\\%(\%(bf\|it\|sl\|tt\)fam\|cal\|mit\)\>' 88syn match plaintexMathLetter display contains=@NoSpell contained 89 \ '\\\%(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\)\>' 90syn match plaintexMathSymbol display contains=@NoSpell contained 91 \ '\\\%(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\)\>' 92syn match plaintexMathFunction display contains=@NoSpell contained 93 \ '\\\%(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\)\>' 94syn match plaintexMathOperator display contains=@NoSpell contained 95 \ '\\\%(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\)\>' 96syn match plaintexMathPunctuation display contains=@NoSpell contained 97 \ '\\\%(colon\)\>' 98syn match plaintexMathRelation display contains=@NoSpell contained 99 \ '\\\%(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\)\>' 100 101syn match plaintexParameterDimen display contains=@NoSpell 102 \ '\\maxdimen\>' 103syn match plaintexMathParameterDimen display contains=@NoSpell 104 \ '\\jot\>' 105syn match plaintexParagraphParameterGlue display contains=@NoSpell 106 \ '\\\%(\%(big\|med\|small\)skipamount\|normalbaselineskip\|normallineskip\%(limit\)\=\)\>' 107 108syn match plaintexFontParameterInteger display contains=@NoSpell 109 \ '\\magstep\%(half\)\=\>' 110syn match plaintexJobParameterInteger display contains=@NoSpell 111 \ '\\magnification\>' 112syn match plaintexPageParameterInteger display contains=@NoSpell 113 \ '\\pageno\>' 114 115syn match plaintexPageParameterToken display contains=@NoSpell 116 \ '\\\%(foot\|head\)line\>' 117 118hi def link plaintexOperator Operator 119 120hi def link plaintexDelimiter Delimiter 121 122hi def link plaintexControlSequence Identifier 123hi def link plaintexComment Comment 124hi def link plaintexInclude Include 125hi def link plaintexRepeat Repeat 126 127hi def link plaintexCommand initexCommand 128hi def link plaintexBoxCommand plaintexCommand 129hi def link plaintexCharacterCommand initexCharacterCommand 130hi def link plaintexDebuggingCommand initexDebuggingCommand 131hi def link plaintexFontsCommand initexFontsCommand 132hi def link plaintexGlueCommand plaintexCommand 133hi def link plaintexInsertsCommand plaintexCommand 134hi def link plaintexJobCommand initexJobCommand 135hi def link plaintexKernCommand plaintexCommand 136hi def link plaintexMacroCommand initexMacroCommand 137hi def link plaintexPageCommand plaintexCommand 138hi def link plaintexParagraphCommand plaintexCommand 139hi def link plaintexPenaltiesCommand plaintexCommand 140hi def link plaintexRegistersCommand plaintexCommand 141hi def link plaintexTablesCommand plaintexCommand 142 143hi def link plaintexMath String 144hi def link plaintexMathCommand plaintexCommand 145hi def link plaintexMathBoxCommand plaintexBoxCommand 146hi def link plaintexMathCharacterCommand plaintexCharacterCommand 147hi def link plaintexMathDelimiter plaintexDelimiter 148hi def link plaintexMathFontsCommand plaintexFontsCommand 149hi def link plaintexMathLetter plaintexMathCharacterCommand 150hi def link plaintexMathSymbol plaintexMathLetter 151hi def link plaintexMathFunction Function 152hi def link plaintexMathOperator plaintexOperator 153hi def link plaintexMathPunctuation plaintexCharacterCommand 154hi def link plaintexMathRelation plaintexOperator 155 156hi def link plaintexParameterDimen initexParameterDimen 157hi def link plaintexMathParameterDimen initexMathParameterDimen 158hi def link plaintexParagraphParameterGlue initexParagraphParameterGlue 159hi def link plaintexFontParameterInteger initexFontParameterInteger 160hi def link plaintexJobParameterInteger initexJobParameterInteger 161hi def link plaintexPageParameterInteger initexPageParameterInteger 162hi def link plaintexPageParameterToken initexParameterToken 163 164let b:current_syntax = "plaintex" 165 166let &cpo = s:cpo_save 167unlet s:cpo_save 168