blob: a930712a72ae1c1c17735e554991c8769537feed [file] [log] [blame]
" Vim syntax file
" Language: TeX (plain.tex format)
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-03-26
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn match plaintexControlSequence display contains=@NoSpell
\ '\\[a-zA-Z@]\+'
runtime! syntax/coretex.vim
syn match plaintexComment display
\ contains=ALLBUT,coretexComment,plaintexComment
\ '^\s*%[CDM].*$'
if exists("g:plaintex_delimiters")
syn match plaintexDelimiter display '[][{}]'
endif
syn match plaintexRepeat display contains=@NoSpell
\ '\\\%(loop\|repeat\)\>'
syn match plaintexCommand display contains=@NoSpell
\ '\\\%(plainoutput\|TeX\)\>'
syn match plaintexBoxCommand display contains=@NoSpell
\ '\\\%(null\|strut\)\>'
syn match plaintexCharacterCommand display contains=@NoSpell
\ /\\\%(["#$%&'.=^_`~]\|``\|''\|-\{2,3}\|[?!]`\|^^L\|\~\|\%(a[ae]\|A[AE]\|acute\|[cdHoOPStuvijlL]\|copyright\|d\=dag\|folio\|ldotp\|[lr]q\|oe\|OE\|slash\|ss\|underbar\)\>\)/
syn match plaintexDebuggingCommand display contains=@NoSpell
\ '\\\%(showhyphens\|tracingall\|wlog\)\>'
syn match plaintexFontsCommand display contains=@NoSpell
\ '\\\%(bf\|\%(five\|seven\)\%(bf\|i\|rm\|sy\)\|it\|oldstyle\|rm\|sl\|ten\%(bf\|ex\|it\=\|rm\|sl\|sy\|tt\)\|tt\)\>'
syn match plaintexGlueCommand display contains=@NoSpell
\ '\\\%(\%(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\)\>'
syn match plaintexInsertsCommand display contains=@NoSpell
\ '\\\%(\%(end\|top\)insert\|v\=footnote\)\>'
syn match plaintexJobCommand display contains=@NoSpell
\ '\\\%(bye\|fmt\%(name\|version\)\)\>'
syn match plaintexInsertsCommand display contains=@NoSpell
\ '\\\%(mid\|page\)insert\>'
syn match plaintexKernCommand display contains=@NoSpell
\ '\\\%(en\|\%(neg\)\=thin\)space\>'
syn match plaintexMacroCommand display contains=@NoSpell
\ '\\\%(active\|[be]group\|empty\)\>'
syn match plaintexPageCommand display contains=@NoSpell
\ '\\\%(\%(super\)\=eject\|nopagenumbers\|\%(normal\|ragged\)bottom\)\>'
syn match plaintexParagraphCommand display contains=@NoSpell
\ '\\\%(endgraf\|\%(non\)\=frenchspacing\|hang\|item\%(item\)\=\|narrower\|normalbaselines\|obey\%(lines\|spaces\)\|openup\|proclaim\|\%(tt\)\=raggedright\|textindent\)\>'
syn match plaintexPenaltiesCommand display contains=@NoSpell
\ '\\\%(allow\|big\|fil\|good\|med\|no\|small\)\=break\>'
syn match plaintexRegistersCommand display contains=@NoSpell
\ '\\\%(advancepageno\|new\%(box\|count\|dimen\|fam\|help\|if\|insert\|language\|muskip\|read\|skip\|toks\|write\)\)\>'
syn match plaintexTablesCommand display contains=@NoSpell
\ '&\|\\+\|\\\%(cleartabs\|endline\|hidewidth\|ialign\|multispan\|settabs\|tabalign\)\>'
syn region plaintexMath matchgroup=plaintexMath
\ contains=@plaintexMath
\ start='\$' skip='\\\\\|\\\$' end='\$'
syn region plaintexMath matchgroup=plaintexMath
\ contains=@plaintexMath keepend
\ start='\$\$' skip='\\\\\|\\\$' end='\$\$'
syn cluster plaintexMath
\ contains=plaintexMathCommand,plaintexMathBoxCommand,
\ plaintexMathCharacterCommand,plaintexMathDelimiter,
\ plaintexMathFontsCommand,plaintexMathLetter,plaintexMathSymbol,
\ plaintexMathFunction,plaintexMathOperator,plaintexMathPunctuation,
\ plaintexMathRelation
syn match plaintexMathCommand display contains=@NoSpell contained
\ '\\\%([!*,;>{}|_^]\|\%([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\)\>\)'
syn match plaintexMathBoxCommand display contains=@NoSpell contained
\ '\\\%([hv]\=phantom\|mathstrut\|smash\)\>'
syn match plaintexMathCharacterCommand display contains=@NoSpell contained
\ '\\\%(b\|bar\|breve\|check\|d\=dots\=\|grave\|hat\|[lv]dots\|tilde\|vec\|wide\%(hat\|tilde\)\)\>'
syn match plaintexMathDelimiter display contains=@NoSpell contained
\ '\\\%(brace\%(vert\)\=\|brack\|cases\|choose\|[lr]\%(angle\|brace\|brack\|ceil\|floor\|group\)\|over\%(brace\|\%(left\|right\)arrow\)\|underbrace\)\>'
syn match plaintexMathFontsCommand display contains=@NoSpell contained
\ '\\\%(\%(bf\|it\|sl\|tt\)fam\|cal\|mit\)\>'
syn match plaintexMathLetter display contains=@NoSpell contained
\ '\\\%(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\)\>'
syn match plaintexMathSymbol display contains=@NoSpell contained
\ '\\\%(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\)\>'
syn match plaintexMathFunction display contains=@NoSpell contained
\ '\\\%(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\)\>'
syn match plaintexMathOperator display contains=@NoSpell contained
\ '\\\%(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\)\>'
syn match plaintexMathPunctuation display contains=@NoSpell contained
\ '\\\%(colon\)\>'
syn match plaintexMathRelation display contains=@NoSpell contained
\ '\\\%(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\)\>'
syn match plaintexParameterDimen display contains=@NoSpell
\ '\\maxdimen\>'
syn match plaintexMathParameterDimen display contains=@NoSpell
\ '\\jot\>'
syn match plaintexParagraphParameterGlue display contains=@NoSpell
\ '\\\%(\%(big\|med\|small\)skipamount\|normalbaselineskip\|normallineskip\%(limit\)\=\)\>'
syn match plaintexFontParameterInteger display contains=@NoSpell
\ '\\magstep\%(half\)\=\>'
syn match plaintexJobParameterInteger display contains=@NoSpell
\ '\\magnification\>'
syn match plaintexPageParameterInteger display contains=@NoSpell
\ '\\pageno\>'
syn match plaintexPageParameterToken display contains=@NoSpell
\ '\\\%(foot\|head\)line\>'
hi def link plaintexOperator Operator
hi def link plaintexDelimiter Delimiter
hi def link plaintexControlSequence Identifier
hi def link plaintexComment Comment
hi def link plaintexInclude Include
hi def link plaintexRepeat Repeat
hi def link plaintexCommand coretexCommand
hi def link plaintexBoxCommand plaintexCommand
hi def link plaintexCharacterCommand coretexCharacterCommand
hi def link plaintexDebuggingCommand coretexDebuggingCommand
hi def link plaintexFontsCommand coretexFontsCommand
hi def link plaintexGlueCommand plaintexCommand
hi def link plaintexInsertsCommand plaintexCommand
hi def link plaintexJobCommand coretexJobCommand
hi def link plaintexKernCommand plaintexCommand
hi def link plaintexMacroCommand coretexMacroCommand
hi def link plaintexPageCommand plaintexCommand
hi def link plaintexParagraphCommand plaintexCommand
hi def link plaintexPenaltiesCommand plaintexCommand
hi def link plaintexRegistersCommand plaintexCommand
hi def link plaintexTablesCommand plaintexCommand
hi def link plaintexMath String
hi def link plaintexMathCommand plaintexCommand
hi def link plaintexMathBoxCommand plaintexBoxCommand
hi def link plaintexMathCharacterCommand plaintexCharacterCommand
hi def link plaintexMathDelimiter plaintexDelimiter
hi def link plaintexMathFontsCommand plaintexFontsCommand
hi def link plaintexMathLetter plaintexMathCharacterCommand
hi def link plaintexMathSymbol plaintexMathLetter
hi def link plaintexMathFunction Function
hi def link plaintexMathOperator plaintexOperator
hi def link plaintexMathPunctuation plaintexCharacterCommand
hi def link plaintexMathRelation plaintexOperator
hi def link plaintexParameterDimen coretexParameterDimen
hi def link plaintexMathParameterDimen coretexMathParameterDimen
hi def link plaintexParagraphParameterGlue coretexParagraphParameterGlue
hi def link plaintexFontParameterInteger coretexFontParameterInteger
hi def link plaintexJobParameterInteger coretexJobParameterInteger
hi def link plaintexPageParameterInteger coretexPageParameterInteger
hi def link plaintexPageParameterToken coretexParameterToken
let b:current_syntax = "plaintex"
let &cpo = s:cpo_save
unlet s:cpo_save