plaintex.vim 10 KB

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