xref: /vim-8.2.3635/runtime/syntax/plaintex.vim (revision 214641f7)
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