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