1d2cec5b0SBram Moolenaar" Vim syntax file 2d2cec5b0SBram Moolenaar" Language: TeX (plain.tex format) 3*214641f7SBram Moolenaar" Previous Maintainer: Nikolai Weibull <[email protected]> 410c56952SBram Moolenaar" Latest Revision: 2006-10-26 5d2cec5b0SBram Moolenaar 6d2cec5b0SBram Moolenaarif exists("b:current_syntax") 7d2cec5b0SBram Moolenaar finish 8d2cec5b0SBram Moolenaarendif 9d2cec5b0SBram Moolenaar 10d2cec5b0SBram Moolenaarlet s:cpo_save = &cpo 11d2cec5b0SBram Moolenaarset cpo&vim 12d2cec5b0SBram Moolenaar 13d2cec5b0SBram Moolenaarsyn match plaintexControlSequence display contains=@NoSpell 14d2cec5b0SBram Moolenaar \ '\\[a-zA-Z@]\+' 15d2cec5b0SBram Moolenaar 168424a624SBram Moolenaarruntime! syntax/initex.vim 1710c56952SBram Moolenaarunlet b:current_syntax 18d2cec5b0SBram Moolenaar 19d2cec5b0SBram Moolenaarsyn match plaintexComment display 208424a624SBram Moolenaar \ contains=ALLBUT,initexComment,plaintexComment 21d2cec5b0SBram Moolenaar \ '^\s*%[CDM].*$' 22d2cec5b0SBram Moolenaar 23d2cec5b0SBram Moolenaarif exists("g:plaintex_delimiters") 24d2cec5b0SBram Moolenaar syn match plaintexDelimiter display '[][{}]' 25d2cec5b0SBram Moolenaarendif 26d2cec5b0SBram Moolenaar 27d2cec5b0SBram Moolenaarsyn match plaintexRepeat display contains=@NoSpell 28d2cec5b0SBram Moolenaar \ '\\\%(loop\|repeat\)\>' 29d2cec5b0SBram Moolenaar 30d2cec5b0SBram Moolenaarsyn match plaintexCommand display contains=@NoSpell 31d2cec5b0SBram Moolenaar \ '\\\%(plainoutput\|TeX\)\>' 32d2cec5b0SBram Moolenaarsyn match plaintexBoxCommand display contains=@NoSpell 33d2cec5b0SBram Moolenaar \ '\\\%(null\|strut\)\>' 34d2cec5b0SBram Moolenaarsyn match plaintexDebuggingCommand display contains=@NoSpell 35d2cec5b0SBram Moolenaar \ '\\\%(showhyphens\|tracingall\|wlog\)\>' 36d2cec5b0SBram Moolenaarsyn match plaintexFontsCommand display contains=@NoSpell 37d2cec5b0SBram Moolenaar \ '\\\%(bf\|\%(five\|seven\)\%(bf\|i\|rm\|sy\)\|it\|oldstyle\|rm\|sl\|ten\%(bf\|ex\|it\=\|rm\|sl\|sy\|tt\)\|tt\)\>' 38d2cec5b0SBram Moolenaarsyn match plaintexGlueCommand display contains=@NoSpell 39d2cec5b0SBram Moolenaar \ '\\\%(\%(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\)\>' 40d2cec5b0SBram Moolenaarsyn match plaintexInsertsCommand display contains=@NoSpell 41d2cec5b0SBram Moolenaar \ '\\\%(\%(end\|top\)insert\|v\=footnote\)\>' 42d2cec5b0SBram Moolenaarsyn match plaintexJobCommand display contains=@NoSpell 43d2cec5b0SBram Moolenaar \ '\\\%(bye\|fmt\%(name\|version\)\)\>' 44d2cec5b0SBram Moolenaarsyn match plaintexInsertsCommand display contains=@NoSpell 45d2cec5b0SBram Moolenaar \ '\\\%(mid\|page\)insert\>' 46d2cec5b0SBram Moolenaarsyn match plaintexKernCommand display contains=@NoSpell 47d2cec5b0SBram Moolenaar \ '\\\%(en\|\%(neg\)\=thin\)space\>' 48d2cec5b0SBram Moolenaarsyn match plaintexMacroCommand display contains=@NoSpell 49d2cec5b0SBram Moolenaar \ '\\\%(active\|[be]group\|empty\)\>' 50d2cec5b0SBram Moolenaarsyn match plaintexPageCommand display contains=@NoSpell 51d2cec5b0SBram Moolenaar \ '\\\%(\%(super\)\=eject\|nopagenumbers\|\%(normal\|ragged\)bottom\)\>' 52d2cec5b0SBram Moolenaarsyn match plaintexParagraphCommand display contains=@NoSpell 53d2cec5b0SBram Moolenaar \ '\\\%(endgraf\|\%(non\)\=frenchspacing\|hang\|item\%(item\)\=\|narrower\|normalbaselines\|obey\%(lines\|spaces\)\|openup\|proclaim\|\%(tt\)\=raggedright\|textindent\)\>' 54d2cec5b0SBram Moolenaarsyn match plaintexPenaltiesCommand display contains=@NoSpell 55d2cec5b0SBram Moolenaar \ '\\\%(allow\|big\|fil\|good\|med\|no\|small\)\=break\>' 56d2cec5b0SBram Moolenaarsyn match plaintexRegistersCommand display contains=@NoSpell 57d2cec5b0SBram Moolenaar \ '\\\%(advancepageno\|new\%(box\|count\|dimen\|fam\|help\|if\|insert\|language\|muskip\|read\|skip\|toks\|write\)\)\>' 58d2cec5b0SBram Moolenaarsyn match plaintexTablesCommand display contains=@NoSpell 59d2cec5b0SBram Moolenaar \ '&\|\\+\|\\\%(cleartabs\|endline\|hidewidth\|ialign\|multispan\|settabs\|tabalign\)\>' 60d2cec5b0SBram Moolenaar 618424a624SBram Moolenaarif !exists("g:plaintex_no_math") 62d2cec5b0SBram Moolenaar syn region plaintexMath matchgroup=plaintexMath 6310c56952SBram Moolenaar \ contains=@plaintexMath,@NoSpell 64d2cec5b0SBram Moolenaar \ start='\$' skip='\\\\\|\\\$' end='\$' 65d2cec5b0SBram Moolenaar syn region plaintexMath matchgroup=plaintexMath 6610c56952SBram Moolenaar \ contains=@plaintexMath,@NoSpell keepend 67d2cec5b0SBram Moolenaar \ start='\$\$' skip='\\\\\|\\\$' end='\$\$' 688424a624SBram Moolenaarendif 69d2cec5b0SBram Moolenaar 7010c56952SBram Moolenaar" Keep this after plaintexMath, as we don’t want math mode started at a \$. 7110c56952SBram Moolenaarsyn match plaintexCharacterCommand display contains=@NoSpell 7210c56952SBram Moolenaar \ /\\\%(["#$%&'.=^_`~]\|``\|''\|-\{2,3}\|[?!]`\|^^L\|\~\|\%(a[ae]\|A[AE]\|acute\|[cdHoOPStuvijlL]\|copyright\|d\=dag\|folio\|ldotp\|[lr]q\|oe\|OE\|slash\|ss\|underbar\)\>\)/ 7310c56952SBram Moolenaar 74d2cec5b0SBram Moolenaarsyn cluster plaintexMath 75d2cec5b0SBram Moolenaar \ contains=plaintexMathCommand,plaintexMathBoxCommand, 76d2cec5b0SBram Moolenaar \ plaintexMathCharacterCommand,plaintexMathDelimiter, 77d2cec5b0SBram Moolenaar \ plaintexMathFontsCommand,plaintexMathLetter,plaintexMathSymbol, 78d2cec5b0SBram Moolenaar \ plaintexMathFunction,plaintexMathOperator,plaintexMathPunctuation, 79d2cec5b0SBram Moolenaar \ plaintexMathRelation 80d2cec5b0SBram Moolenaar 81d2cec5b0SBram Moolenaarsyn match plaintexMathCommand display contains=@NoSpell contained 82d2cec5b0SBram Moolenaar \ '\\\%([!*,;>{}|_^]\|\%([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\)\>\)' 83d2cec5b0SBram Moolenaarsyn match plaintexMathBoxCommand display contains=@NoSpell contained 84d2cec5b0SBram Moolenaar \ '\\\%([hv]\=phantom\|mathstrut\|smash\)\>' 85d2cec5b0SBram Moolenaarsyn match plaintexMathCharacterCommand display contains=@NoSpell contained 86d2cec5b0SBram Moolenaar \ '\\\%(b\|bar\|breve\|check\|d\=dots\=\|grave\|hat\|[lv]dots\|tilde\|vec\|wide\%(hat\|tilde\)\)\>' 87d2cec5b0SBram Moolenaarsyn match plaintexMathDelimiter display contains=@NoSpell contained 88d2cec5b0SBram Moolenaar \ '\\\%(brace\%(vert\)\=\|brack\|cases\|choose\|[lr]\%(angle\|brace\|brack\|ceil\|floor\|group\)\|over\%(brace\|\%(left\|right\)arrow\)\|underbrace\)\>' 89d2cec5b0SBram Moolenaarsyn match plaintexMathFontsCommand display contains=@NoSpell contained 90d2cec5b0SBram Moolenaar \ '\\\%(\%(bf\|it\|sl\|tt\)fam\|cal\|mit\)\>' 91d2cec5b0SBram Moolenaarsyn match plaintexMathLetter display contains=@NoSpell contained 92d2cec5b0SBram Moolenaar \ '\\\%(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\)\>' 93d2cec5b0SBram Moolenaarsyn match plaintexMathSymbol display contains=@NoSpell contained 94d2cec5b0SBram Moolenaar \ '\\\%(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\)\>' 95d2cec5b0SBram Moolenaarsyn match plaintexMathFunction display contains=@NoSpell contained 96d2cec5b0SBram Moolenaar \ '\\\%(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\)\>' 97d2cec5b0SBram Moolenaarsyn match plaintexMathOperator display contains=@NoSpell contained 98d2cec5b0SBram Moolenaar \ '\\\%(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\)\>' 99d2cec5b0SBram Moolenaarsyn match plaintexMathPunctuation display contains=@NoSpell contained 100d2cec5b0SBram Moolenaar \ '\\\%(colon\)\>' 101d2cec5b0SBram Moolenaarsyn match plaintexMathRelation display contains=@NoSpell contained 102d2cec5b0SBram Moolenaar \ '\\\%(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\)\>' 103d2cec5b0SBram Moolenaar 104d2cec5b0SBram Moolenaarsyn match plaintexParameterDimen display contains=@NoSpell 105d2cec5b0SBram Moolenaar \ '\\maxdimen\>' 106d2cec5b0SBram Moolenaarsyn match plaintexMathParameterDimen display contains=@NoSpell 107d2cec5b0SBram Moolenaar \ '\\jot\>' 108d2cec5b0SBram Moolenaarsyn match plaintexParagraphParameterGlue display contains=@NoSpell 109d2cec5b0SBram Moolenaar \ '\\\%(\%(big\|med\|small\)skipamount\|normalbaselineskip\|normallineskip\%(limit\)\=\)\>' 110d2cec5b0SBram Moolenaar 111d2cec5b0SBram Moolenaarsyn match plaintexFontParameterInteger display contains=@NoSpell 112d2cec5b0SBram Moolenaar \ '\\magstep\%(half\)\=\>' 113d2cec5b0SBram Moolenaarsyn match plaintexJobParameterInteger display contains=@NoSpell 114d2cec5b0SBram Moolenaar \ '\\magnification\>' 115d2cec5b0SBram Moolenaarsyn match plaintexPageParameterInteger display contains=@NoSpell 116d2cec5b0SBram Moolenaar \ '\\pageno\>' 117d2cec5b0SBram Moolenaar 118d2cec5b0SBram Moolenaarsyn match plaintexPageParameterToken display contains=@NoSpell 119d2cec5b0SBram Moolenaar \ '\\\%(foot\|head\)line\>' 120d2cec5b0SBram Moolenaar 121d2cec5b0SBram Moolenaarhi def link plaintexOperator Operator 122d2cec5b0SBram Moolenaar 123d2cec5b0SBram Moolenaarhi def link plaintexDelimiter Delimiter 124d2cec5b0SBram Moolenaar 125d2cec5b0SBram Moolenaarhi def link plaintexControlSequence Identifier 126d2cec5b0SBram Moolenaarhi def link plaintexComment Comment 127d2cec5b0SBram Moolenaarhi def link plaintexInclude Include 128d2cec5b0SBram Moolenaarhi def link plaintexRepeat Repeat 129d2cec5b0SBram Moolenaar 1308424a624SBram Moolenaarhi def link plaintexCommand initexCommand 131d2cec5b0SBram Moolenaarhi def link plaintexBoxCommand plaintexCommand 1328424a624SBram Moolenaarhi def link plaintexCharacterCommand initexCharacterCommand 1338424a624SBram Moolenaarhi def link plaintexDebuggingCommand initexDebuggingCommand 1348424a624SBram Moolenaarhi def link plaintexFontsCommand initexFontsCommand 135d2cec5b0SBram Moolenaarhi def link plaintexGlueCommand plaintexCommand 136d2cec5b0SBram Moolenaarhi def link plaintexInsertsCommand plaintexCommand 1378424a624SBram Moolenaarhi def link plaintexJobCommand initexJobCommand 138d2cec5b0SBram Moolenaarhi def link plaintexKernCommand plaintexCommand 1398424a624SBram Moolenaarhi def link plaintexMacroCommand initexMacroCommand 140d2cec5b0SBram Moolenaarhi def link plaintexPageCommand plaintexCommand 141d2cec5b0SBram Moolenaarhi def link plaintexParagraphCommand plaintexCommand 142d2cec5b0SBram Moolenaarhi def link plaintexPenaltiesCommand plaintexCommand 143d2cec5b0SBram Moolenaarhi def link plaintexRegistersCommand plaintexCommand 144d2cec5b0SBram Moolenaarhi def link plaintexTablesCommand plaintexCommand 145d2cec5b0SBram Moolenaar 146d2cec5b0SBram Moolenaarhi def link plaintexMath String 147d2cec5b0SBram Moolenaarhi def link plaintexMathCommand plaintexCommand 148d2cec5b0SBram Moolenaarhi def link plaintexMathBoxCommand plaintexBoxCommand 149d2cec5b0SBram Moolenaarhi def link plaintexMathCharacterCommand plaintexCharacterCommand 150d2cec5b0SBram Moolenaarhi def link plaintexMathDelimiter plaintexDelimiter 151d2cec5b0SBram Moolenaarhi def link plaintexMathFontsCommand plaintexFontsCommand 152d2cec5b0SBram Moolenaarhi def link plaintexMathLetter plaintexMathCharacterCommand 153d2cec5b0SBram Moolenaarhi def link plaintexMathSymbol plaintexMathLetter 154d2cec5b0SBram Moolenaarhi def link plaintexMathFunction Function 155d2cec5b0SBram Moolenaarhi def link plaintexMathOperator plaintexOperator 156d2cec5b0SBram Moolenaarhi def link plaintexMathPunctuation plaintexCharacterCommand 157d2cec5b0SBram Moolenaarhi def link plaintexMathRelation plaintexOperator 158d2cec5b0SBram Moolenaar 1598424a624SBram Moolenaarhi def link plaintexParameterDimen initexParameterDimen 1608424a624SBram Moolenaarhi def link plaintexMathParameterDimen initexMathParameterDimen 1618424a624SBram Moolenaarhi def link plaintexParagraphParameterGlue initexParagraphParameterGlue 1628424a624SBram Moolenaarhi def link plaintexFontParameterInteger initexFontParameterInteger 1638424a624SBram Moolenaarhi def link plaintexJobParameterInteger initexJobParameterInteger 1648424a624SBram Moolenaarhi def link plaintexPageParameterInteger initexPageParameterInteger 1658424a624SBram Moolenaarhi def link plaintexPageParameterToken initexParameterToken 166d2cec5b0SBram Moolenaar 167d2cec5b0SBram Moolenaarlet b:current_syntax = "plaintex" 168d2cec5b0SBram Moolenaar 169d2cec5b0SBram Moolenaarlet &cpo = s:cpo_save 170d2cec5b0SBram Moolenaarunlet s:cpo_save 171