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