2014-07-10 21:05:51 -07:00
|
|
|
|
" Vim syntax file
|
|
|
|
|
" Language: TeX
|
2024-02-20 15:30:18 -07:00
|
|
|
|
" Maintainer: This runtime file is looking for a new maintainer.
|
|
|
|
|
" Former Maintainer: Charles E. Campbell
|
2022-04-27 08:48:35 -07:00
|
|
|
|
" Last Change: Apr 22, 2022
|
2024-02-20 15:30:18 -07:00
|
|
|
|
" 2024 Feb 19 by Vim Project (announce adoption)
|
2022-04-27 08:48:35 -07:00
|
|
|
|
" Version: 121
|
2024-02-20 15:30:18 -07:00
|
|
|
|
" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
|
2014-07-10 21:05:51 -07:00
|
|
|
|
"
|
|
|
|
|
" Notes: {{{1
|
|
|
|
|
"
|
|
|
|
|
" 1. If you have a \begin{verbatim} that appears to overrun its boundaries,
|
|
|
|
|
" use %stopzone.
|
|
|
|
|
"
|
|
|
|
|
" 2. Run-on equations ($..$ and $$..$$, particularly) can also be stopped
|
|
|
|
|
" by suitable use of %stopzone.
|
|
|
|
|
"
|
|
|
|
|
" 3. If you have a slow computer, you may wish to modify
|
|
|
|
|
"
|
|
|
|
|
" syn sync maxlines=200
|
|
|
|
|
" syn sync minlines=50
|
|
|
|
|
"
|
|
|
|
|
" to values that are more to your liking.
|
|
|
|
|
"
|
|
|
|
|
" 4. There is no match-syncing for $...$ and $$...$$; hence large
|
|
|
|
|
" equation blocks constructed that way may exhibit syncing problems.
|
|
|
|
|
" (there's no difference between begin/end patterns)
|
|
|
|
|
"
|
|
|
|
|
" 5. If you have the variable "g:tex_no_error" defined then none of the
|
|
|
|
|
" lexical error-checking will be done.
|
|
|
|
|
"
|
|
|
|
|
" ie. let g:tex_no_error=1
|
|
|
|
|
"
|
|
|
|
|
" 6. Please see :help latex-syntax for information on
|
|
|
|
|
" syntax folding :help tex-folding
|
|
|
|
|
" spell checking :help tex-nospell
|
|
|
|
|
" commands and mathzones :help tex-runon
|
|
|
|
|
" new command highlighting :help tex-morecommands
|
|
|
|
|
" error highlighting :help tex-error
|
|
|
|
|
" new math groups :help tex-math
|
|
|
|
|
" new styles :help tex-style
|
|
|
|
|
" using conceal mode :help tex-conceal
|
|
|
|
|
|
|
|
|
|
" Version Clears: {{{1
|
2017-04-28 12:06:44 -07:00
|
|
|
|
" quit when a syntax file was already loaded
|
|
|
|
|
if exists("b:current_syntax")
|
2014-07-10 21:05:51 -07:00
|
|
|
|
finish
|
|
|
|
|
endif
|
|
|
|
|
let s:keepcpo= &cpo
|
|
|
|
|
set cpo&vim
|
|
|
|
|
scriptencoding utf-8
|
|
|
|
|
|
|
|
|
|
" by default, enable all region-based highlighting
|
|
|
|
|
let s:tex_fast= "bcmMprsSvV"
|
|
|
|
|
if exists("g:tex_fast")
|
|
|
|
|
if type(g:tex_fast) != 1
|
|
|
|
|
" g:tex_fast exists and is not a string, so
|
|
|
|
|
" turn off all optional region-based highighting
|
|
|
|
|
let s:tex_fast= ""
|
|
|
|
|
else
|
|
|
|
|
let s:tex_fast= g:tex_fast
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" let user determine which classes of concealment will be supported
|
|
|
|
|
" a=accents/ligatures d=delimiters m=math symbols g=Greek s=superscripts/subscripts
|
|
|
|
|
if !exists("g:tex_conceal")
|
|
|
|
|
let s:tex_conceal= 'abdmgsS'
|
|
|
|
|
else
|
|
|
|
|
let s:tex_conceal= g:tex_conceal
|
|
|
|
|
endif
|
2015-01-04 12:26:51 -07:00
|
|
|
|
if !exists("g:tex_superscripts")
|
2017-02-01 13:26:34 -07:00
|
|
|
|
let s:tex_superscripts= '[0-9a-zA-W.,:;+-<>/()=]'
|
2016-07-07 20:26:00 -07:00
|
|
|
|
else
|
|
|
|
|
let s:tex_superscripts= g:tex_superscripts
|
2015-01-04 12:26:51 -07:00
|
|
|
|
endif
|
|
|
|
|
if !exists("g:tex_subscripts")
|
2017-02-01 13:26:34 -07:00
|
|
|
|
let s:tex_subscripts= '[0-9aehijklmnoprstuvx,+-/().]'
|
2016-07-07 20:26:00 -07:00
|
|
|
|
else
|
|
|
|
|
let s:tex_subscripts= g:tex_subscripts
|
2015-01-04 12:26:51 -07:00
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
|
|
" Determine whether or not to use "*.sty" mode {{{1
|
|
|
|
|
" The user may override the normal determination by setting
|
|
|
|
|
" g:tex_stylish to 1 (for "*.sty" mode)
|
|
|
|
|
" or to 0 else (normal "*.tex" mode)
|
|
|
|
|
" or on a buffer-by-buffer basis with b:tex_stylish
|
|
|
|
|
let s:extfname=expand("%:e")
|
|
|
|
|
if exists("g:tex_stylish")
|
|
|
|
|
let b:tex_stylish= g:tex_stylish
|
|
|
|
|
elseif !exists("b:tex_stylish")
|
|
|
|
|
if s:extfname == "sty" || s:extfname == "cls" || s:extfname == "clo" || s:extfname == "dtx" || s:extfname == "ltx"
|
|
|
|
|
let b:tex_stylish= 1
|
|
|
|
|
else
|
|
|
|
|
let b:tex_stylish= 0
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" handle folding {{{1
|
|
|
|
|
if !exists("g:tex_fold_enabled")
|
2016-05-03 12:00:18 -07:00
|
|
|
|
let s:tex_fold_enabled= 0
|
2014-07-10 21:05:51 -07:00
|
|
|
|
elseif g:tex_fold_enabled && !has("folding")
|
2016-05-03 12:00:18 -07:00
|
|
|
|
let s:tex_fold_enabled= 0
|
2014-07-10 21:05:51 -07:00
|
|
|
|
echomsg "Ignoring g:tex_fold_enabled=".g:tex_fold_enabled."; need to re-compile vim for +fold support"
|
2016-05-03 12:00:18 -07:00
|
|
|
|
else
|
|
|
|
|
let s:tex_fold_enabled= 1
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2016-05-03 12:00:18 -07:00
|
|
|
|
if s:tex_fold_enabled && &fdm == "manual"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
setl fdm=syntax
|
|
|
|
|
endif
|
2016-05-03 12:00:18 -07:00
|
|
|
|
if s:tex_fold_enabled && has("folding")
|
2024-11-09 11:16:58 -07:00
|
|
|
|
com! -nargs=* TexFold <args> fold
|
2016-05-01 13:19:40 -07:00
|
|
|
|
else
|
2024-11-09 11:16:58 -07:00
|
|
|
|
com! -nargs=* TexFold <args>
|
2016-05-01 13:19:40 -07:00
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
|
|
" (La)TeX keywords: uses the characters 0-9,a-z,A-Z,192-255 only... {{{1
|
|
|
|
|
" but _ is the only one that causes problems.
|
|
|
|
|
" One may override this iskeyword setting by providing
|
|
|
|
|
" g:tex_isk
|
|
|
|
|
if exists("g:tex_isk")
|
2017-03-21 04:11:53 -07:00
|
|
|
|
if b:tex_stylish && g:tex_isk !~ '@'
|
|
|
|
|
let b:tex_isk= '@,'.g:tex_isk
|
|
|
|
|
else
|
|
|
|
|
let b:tex_isk= g:tex_isk
|
|
|
|
|
endif
|
|
|
|
|
elseif b:tex_stylish
|
|
|
|
|
let b:tex_isk="@,48-57,a-z,A-Z,192-255"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
else
|
2017-03-21 04:11:53 -07:00
|
|
|
|
let b:tex_isk="48-57,a-z,A-Z,192-255"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2019-08-01 13:48:52 -07:00
|
|
|
|
if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704
|
2017-03-21 04:11:53 -07:00
|
|
|
|
exe "syn iskeyword ".b:tex_isk
|
|
|
|
|
else
|
|
|
|
|
exe "setl isk=".b:tex_isk
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2016-05-03 12:00:18 -07:00
|
|
|
|
if exists("g:tex_no_error") && g:tex_no_error
|
|
|
|
|
let s:tex_no_error= 1
|
|
|
|
|
else
|
|
|
|
|
let s:tex_no_error= 0
|
|
|
|
|
endif
|
|
|
|
|
if exists("g:tex_comment_nospell") && g:tex_comment_nospell
|
|
|
|
|
let s:tex_comment_nospell= 1
|
|
|
|
|
else
|
|
|
|
|
let s:tex_comment_nospell= 0
|
|
|
|
|
endif
|
|
|
|
|
if exists("g:tex_nospell") && g:tex_nospell
|
|
|
|
|
let s:tex_nospell = 1
|
|
|
|
|
else
|
|
|
|
|
let s:tex_nospell = 0
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2020-08-16 15:23:28 -07:00
|
|
|
|
if exists("g:tex_matchcheck")
|
|
|
|
|
let s:tex_matchcheck= g:tex_matchcheck
|
|
|
|
|
else
|
|
|
|
|
let s:tex_matchcheck= '[({[]'
|
|
|
|
|
endif
|
2020-06-16 10:53:35 -07:00
|
|
|
|
if exists("g:tex_excludematcher")
|
|
|
|
|
let s:tex_excludematcher= g:tex_excludematcher
|
|
|
|
|
else
|
|
|
|
|
let s:tex_excludematcher= 0
|
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
|
|
" Clusters: {{{1
|
|
|
|
|
" --------
|
2024-11-11 01:05:05 -07:00
|
|
|
|
syn cluster texCmdGroup contains=texCmdBody,texComment,texDefParm,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texBeginEnd,texBeginEndName,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,@texMathZones
|
2016-05-01 13:19:40 -07:00
|
|
|
|
if !s:tex_no_error
|
2016-05-03 12:00:18 -07:00
|
|
|
|
syn cluster texCmdGroup add=texMathError
|
|
|
|
|
endif
|
|
|
|
|
syn cluster texEnvGroup contains=texMatcher,texMathDelim,texSpecialChar,texStatement
|
2019-08-01 13:48:52 -07:00
|
|
|
|
syn cluster texFoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texItalStyle,texEmphStyle,texNoSpell
|
2020-06-16 10:53:35 -07:00
|
|
|
|
syn cluster texBoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texBoldStyle,texBoldItalStyle,texNoSpell
|
|
|
|
|
syn cluster texItalGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texItalStyle,texEmphStyle,texItalBoldStyle,texNoSpell
|
|
|
|
|
if !s:tex_excludematcher
|
|
|
|
|
syn cluster texBoldGroup add=texMatcher
|
|
|
|
|
syn cluster texItalGroup add=texMatcher
|
|
|
|
|
endif
|
2016-05-03 12:00:18 -07:00
|
|
|
|
if !s:tex_nospell
|
2022-04-27 08:48:35 -07:00
|
|
|
|
if !s:tex_no_error
|
|
|
|
|
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texError,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texBoldStyle,texBoldItalStyle,texItalStyle,texItalBoldStyle,texZone,texInputFile,texOption,@Spell
|
|
|
|
|
syn cluster texMatchNMGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texError,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texBoldStyle,texBoldItalStyle,texItalStyle,texItalBoldStyle,texZone,texInputFile,texOption,@Spell
|
|
|
|
|
syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texError,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texBoldStyle,texBoldItalStyle,texItalStyle,texItalBoldStyle,texZone,texInputFile,texOption,texStyleStatement,texStyleMatcher,@Spell
|
|
|
|
|
else
|
|
|
|
|
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texBoldStyle,texBoldItalStyle,texItalStyle,texItalBoldStyle,texZone,texInputFile,texOption,@Spell
|
|
|
|
|
syn cluster texMatchNMGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texBoldStyle,texBoldItalStyle,texItalStyle,texItalBoldStyle,texZone,texInputFile,texOption,@Spell
|
|
|
|
|
syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texBoldStyle,texBoldItalStyle,texItalStyle,texItalBoldStyle,texZone,texInputFile,texOption,texStyleStatement,texStyleMatcher,@Spell
|
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
else
|
2022-04-27 08:48:35 -07:00
|
|
|
|
if !s:tex_no_error
|
|
|
|
|
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texError,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
|
|
|
|
|
syn cluster texMatchNMGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texError,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
|
|
|
|
|
syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texError,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,texStyleMatcher
|
|
|
|
|
else
|
|
|
|
|
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
|
|
|
|
|
syn cluster texMatchNMGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
|
|
|
|
|
syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,texStyleMatcher
|
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2017-04-28 16:47:52 -07:00
|
|
|
|
syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
|
2016-05-03 12:00:18 -07:00
|
|
|
|
syn cluster texRefGroup contains=texMatcher,texComment,texDelimiter
|
2016-01-10 04:42:45 -07:00
|
|
|
|
if !exists("g:tex_no_math")
|
2017-04-28 16:47:52 -07:00
|
|
|
|
syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
|
2016-05-03 12:00:18 -07:00
|
|
|
|
syn cluster texMathZones contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
|
|
|
|
|
syn cluster texMatchGroup add=@texMathZones
|
|
|
|
|
syn cluster texMathDelimGroup contains=texMathDelimBad,texMathDelimKey,texMathDelimSet1,texMathDelimSet2
|
2024-11-11 01:05:05 -07:00
|
|
|
|
syn cluster texMathMatchGroup contains=@texMathZones,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathMatcher,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone
|
|
|
|
|
syn cluster texMathZoneGroup contains=texBadPar,texComment,texDelimiter,texLength,texMathDelim,texMathMatcher,texMathOper,texMathSymbol,texMathText,texRefZone,texSpecialChar,texStatement,texTypeSize,texTypeStyle
|
2016-05-01 13:19:40 -07:00
|
|
|
|
if !s:tex_no_error
|
2016-05-03 12:00:18 -07:00
|
|
|
|
syn cluster texMathMatchGroup add=texMathError
|
|
|
|
|
syn cluster texMathZoneGroup add=texMathError
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2016-05-03 12:00:18 -07:00
|
|
|
|
syn cluster texMathZoneGroup add=@NoSpell
|
2014-07-10 21:05:51 -07:00
|
|
|
|
" following used in the \part \chapter \section \subsection \subsubsection
|
|
|
|
|
" \paragraph \subparagraph \author \title highlighting
|
|
|
|
|
syn cluster texDocGroup contains=texPartZone,@texPartGroup
|
|
|
|
|
syn cluster texPartGroup contains=texChapterZone,texSectionZone,texParaZone
|
|
|
|
|
syn cluster texChapterGroup contains=texSectionZone,texParaZone
|
|
|
|
|
syn cluster texSectionGroup contains=texSubSectionZone,texParaZone
|
|
|
|
|
syn cluster texSubSectionGroup contains=texSubSubSectionZone,texParaZone
|
|
|
|
|
syn cluster texSubSubSectionGroup contains=texParaZone
|
|
|
|
|
syn cluster texParaGroup contains=texSubParaZone
|
|
|
|
|
if has("conceal") && &enc == 'utf-8'
|
2016-05-03 12:00:18 -07:00
|
|
|
|
syn cluster texMathZoneGroup add=texGreek,texSuperscript,texSubscript,texMathSymbol
|
|
|
|
|
syn cluster texMathMatchGroup add=texGreek,texSuperscript,texSubscript,texMathSymbol
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
2020-08-16 15:23:28 -07:00
|
|
|
|
" Try to flag {}, [], and () mismatches: {{{1
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'm'
|
2016-05-01 13:19:40 -07:00
|
|
|
|
if !s:tex_no_error
|
2020-08-16 15:23:28 -07:00
|
|
|
|
if s:tex_matchcheck =~ '{'
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texMatcher matchgroup=texDelimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchGroup,texError
|
|
|
|
|
syn region texMatcherNM matchgroup=texDelimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchNMGroup,texError
|
2020-08-16 15:23:28 -07:00
|
|
|
|
endif
|
|
|
|
|
if s:tex_matchcheck =~ '\['
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texMatcher matchgroup=texDelimiter start="\[" end="]" transparent contains=@texMatchGroup,texError,@NoSpell
|
|
|
|
|
syn region texMatcherNM matchgroup=texDelimiter start="\[" end="]" transparent contains=@texMatchNMGroup,texError,@NoSpell
|
2020-08-16 15:23:28 -07:00
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
else
|
2020-08-16 15:23:28 -07:00
|
|
|
|
if s:tex_matchcheck =~ '{'
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texMatcher matchgroup=texDelimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchGroup
|
|
|
|
|
syn region texMatcherNM matchgroup=texDelimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchNMGroup
|
2020-08-16 15:23:28 -07:00
|
|
|
|
endif
|
|
|
|
|
if s:tex_matchcheck =~ '\['
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texMatcher matchgroup=texDelimiter start="\[" end="]" transparent contains=@texMatchGroup
|
|
|
|
|
syn region texMatcherNM matchgroup=texDelimiter start="\[" end="]" transparent contains=@texMatchNMGroup
|
2020-08-16 15:23:28 -07:00
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2020-08-16 15:23:28 -07:00
|
|
|
|
if s:tex_matchcheck =~ '('
|
|
|
|
|
if !s:tex_nospell
|
|
|
|
|
syn region texParen start="(" end=")" transparent contains=@texMatchGroup,@Spell
|
|
|
|
|
else
|
|
|
|
|
syn region texParen start="(" end=")" transparent contains=@texMatchGroup
|
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
endif
|
2016-05-01 13:19:40 -07:00
|
|
|
|
if !s:tex_no_error
|
2020-08-16 15:23:28 -07:00
|
|
|
|
if s:tex_matchcheck =~ '('
|
|
|
|
|
syn match texError "[}\]]"
|
|
|
|
|
else
|
|
|
|
|
syn match texError "[}\])]"
|
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'M'
|
2016-01-10 04:42:45 -07:00
|
|
|
|
if !exists("g:tex_no_math")
|
2016-05-01 13:19:40 -07:00
|
|
|
|
if !s:tex_no_error
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn match texMathError "}" contained
|
|
|
|
|
endif
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texMathMatcher matchgroup=texDelimiter start="{" skip="\%(\\\\\)*\\}" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" TeX/LaTeX keywords: {{{1
|
|
|
|
|
" Instead of trying to be All Knowing, I just match \..alphameric..
|
|
|
|
|
" Note that *.tex files may not have "@" in their \commands
|
|
|
|
|
if exists("g:tex_tex") || b:tex_stylish
|
|
|
|
|
syn match texStatement "\\[a-zA-Z@]\+"
|
|
|
|
|
else
|
|
|
|
|
syn match texStatement "\\\a\+"
|
2016-05-01 13:19:40 -07:00
|
|
|
|
if !s:tex_no_error
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn match texError "\\\a*@[a-zA-Z@]*"
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" TeX/LaTeX delimiters: {{{1
|
|
|
|
|
syn match texDelimiter "&"
|
|
|
|
|
syn match texDelimiter "\\\\"
|
|
|
|
|
|
|
|
|
|
" Tex/Latex Options: {{{1
|
|
|
|
|
syn match texOption "[^\\]\zs#\d\+\|^#\d\+"
|
|
|
|
|
|
|
|
|
|
" texAccent (tnx to Karim Belabas) avoids annoying highlighting for accents: {{{1
|
|
|
|
|
if b:tex_stylish
|
|
|
|
|
syn match texAccent "\\[bcdvuH][^a-zA-Z@]"me=e-1
|
|
|
|
|
syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1
|
|
|
|
|
else
|
|
|
|
|
syn match texAccent "\\[bcdvuH]\A"me=e-1
|
|
|
|
|
syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)\A"me=e-1
|
|
|
|
|
endif
|
|
|
|
|
syn match texAccent "\\[bcdvuH]$"
|
|
|
|
|
syn match texAccent +\\[=^.\~"`']+
|
|
|
|
|
syn match texAccent +\\['=t'.c^ud"vb~Hr]{\a}+
|
|
|
|
|
syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)$"
|
|
|
|
|
|
2017-11-07 12:51:49 -07:00
|
|
|
|
|
2014-07-10 21:05:51 -07:00
|
|
|
|
" \begin{}/\end{} section markers: {{{1
|
|
|
|
|
syn match texBeginEnd "\\begin\>\|\\end\>" nextgroup=texBeginEndName
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'm'
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texBeginEndName matchgroup=texDelimiter start="{" end="}" contained nextgroup=texBeginEndModifier contains=texComment
|
|
|
|
|
syn region texBeginEndModifier matchgroup=texDelimiter start="\[" end="]" contained contains=texComment,@texMathZones,@NoSpell
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" \documentclass, \documentstyle, \usepackage: {{{1
|
|
|
|
|
syn match texDocType "\\documentclass\>\|\\documentstyle\>\|\\usepackage\>" nextgroup=texBeginEndName,texDocTypeArgs
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'm'
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texDocTypeArgs matchgroup=texDelimiter start="\[" end="]" contained nextgroup=texBeginEndName contains=texComment,@NoSpell
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Preamble syntax-based folding support: {{{1
|
2016-05-03 12:00:18 -07:00
|
|
|
|
if s:tex_fold_enabled && has("folding")
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn region texPreamble transparent fold start='\zs\\documentclass\>' end='\ze\\begin{document}' contains=texStyle,@texPreambleMatchGroup
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" TeX input: {{{1
|
|
|
|
|
syn match texInput "\\input\s\+[a-zA-Z/.0-9_^]\+"hs=s+7 contains=texStatement
|
|
|
|
|
syn match texInputFile "\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
|
|
|
|
|
syn match texInputFile "\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
|
|
|
|
|
syn match texInputCurlies "[{}]" contained
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'm'
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texInputFileOpt matchgroup=texDelimiter start="\[" end="\]" contained contains=texComment
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Type Styles (LaTeX 2.09): {{{1
|
|
|
|
|
syn match texTypeStyle "\\rm\>"
|
|
|
|
|
syn match texTypeStyle "\\em\>"
|
|
|
|
|
syn match texTypeStyle "\\bf\>"
|
|
|
|
|
syn match texTypeStyle "\\it\>"
|
|
|
|
|
syn match texTypeStyle "\\sl\>"
|
|
|
|
|
syn match texTypeStyle "\\sf\>"
|
|
|
|
|
syn match texTypeStyle "\\sc\>"
|
|
|
|
|
syn match texTypeStyle "\\tt\>"
|
|
|
|
|
|
|
|
|
|
" Type Styles: attributes, commands, families, etc (LaTeX2E): {{{1
|
2016-07-07 20:02:08 -07:00
|
|
|
|
if s:tex_conceal !~# 'b'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn match texTypeStyle "\\textbf\>"
|
|
|
|
|
syn match texTypeStyle "\\textit\>"
|
2019-08-01 13:48:52 -07:00
|
|
|
|
syn match texTypeStyle "\\emph\>"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
syn match texTypeStyle "\\textmd\>"
|
|
|
|
|
syn match texTypeStyle "\\textrm\>"
|
|
|
|
|
|
|
|
|
|
syn match texTypeStyle "\\mathbf\>"
|
|
|
|
|
syn match texTypeStyle "\\mathcal\>"
|
|
|
|
|
syn match texTypeStyle "\\mathit\>"
|
|
|
|
|
syn match texTypeStyle "\\mathnormal\>"
|
|
|
|
|
syn match texTypeStyle "\\mathrm\>"
|
|
|
|
|
syn match texTypeStyle "\\mathsf\>"
|
|
|
|
|
syn match texTypeStyle "\\mathtt\>"
|
|
|
|
|
|
|
|
|
|
syn match texTypeStyle "\\rmfamily\>"
|
|
|
|
|
syn match texTypeStyle "\\sffamily\>"
|
|
|
|
|
syn match texTypeStyle "\\ttfamily\>"
|
|
|
|
|
|
|
|
|
|
syn match texTypeStyle "\\itshape\>"
|
|
|
|
|
syn match texTypeStyle "\\scshape\>"
|
|
|
|
|
syn match texTypeStyle "\\slshape\>"
|
|
|
|
|
syn match texTypeStyle "\\upshape\>"
|
|
|
|
|
|
|
|
|
|
syn match texTypeStyle "\\bfseries\>"
|
|
|
|
|
syn match texTypeStyle "\\mdseries\>"
|
|
|
|
|
|
|
|
|
|
" Some type sizes: {{{1
|
|
|
|
|
syn match texTypeSize "\\tiny\>"
|
|
|
|
|
syn match texTypeSize "\\scriptsize\>"
|
|
|
|
|
syn match texTypeSize "\\footnotesize\>"
|
|
|
|
|
syn match texTypeSize "\\small\>"
|
|
|
|
|
syn match texTypeSize "\\normalsize\>"
|
|
|
|
|
syn match texTypeSize "\\large\>"
|
|
|
|
|
syn match texTypeSize "\\Large\>"
|
|
|
|
|
syn match texTypeSize "\\LARGE\>"
|
|
|
|
|
syn match texTypeSize "\\huge\>"
|
|
|
|
|
syn match texTypeSize "\\Huge\>"
|
|
|
|
|
|
|
|
|
|
" Spacecodes (TeX'isms): {{{1
|
|
|
|
|
" \mathcode`\^^@="2201 \delcode`\(="028300 \sfcode`\)=0 \uccode`X=`X \lccode`x=`x
|
|
|
|
|
syn match texSpaceCode "\\\(math\|cat\|del\|lc\|sf\|uc\)code`"me=e-1 nextgroup=texSpaceCodeChar
|
|
|
|
|
syn match texSpaceCodeChar "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)" contained
|
|
|
|
|
|
|
|
|
|
" Sections, subsections, etc: {{{1
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'p'
|
2016-05-03 12:00:18 -07:00
|
|
|
|
if !s:tex_nospell
|
|
|
|
|
TexFold syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell
|
|
|
|
|
TexFold syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell
|
|
|
|
|
TexFold syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup,@Spell
|
|
|
|
|
TexFold syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup,@Spell
|
|
|
|
|
TexFold syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup,@Spell
|
|
|
|
|
TexFold syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
|
|
|
|
|
TexFold syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup,@Spell
|
|
|
|
|
TexFold syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@Spell
|
|
|
|
|
TexFold syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup,@Spell
|
|
|
|
|
TexFold syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup,@Spell
|
|
|
|
|
else
|
|
|
|
|
TexFold syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup
|
|
|
|
|
TexFold syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup
|
|
|
|
|
TexFold syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup
|
|
|
|
|
TexFold syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup
|
|
|
|
|
TexFold syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup
|
|
|
|
|
TexFold syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup
|
|
|
|
|
TexFold syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup
|
|
|
|
|
TexFold syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup
|
|
|
|
|
TexFold syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup
|
|
|
|
|
TexFold syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" particular support for bold and italic {{{1
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'b'
|
|
|
|
|
if s:tex_conceal =~# 'b'
|
2016-01-28 05:29:05 -07:00
|
|
|
|
if !exists("g:tex_nospell") || !g:tex_nospell
|
2016-02-03 00:03:53 -07:00
|
|
|
|
syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
|
|
|
|
|
syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup,@Spell
|
|
|
|
|
syn region texItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup,@Spell
|
|
|
|
|
syn region texItalBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
|
2019-08-01 13:48:52 -07:00
|
|
|
|
syn region texEmphStyle matchgroup=texTypeStyle start="\\emph\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup,@Spell
|
2020-06-16 10:53:35 -07:00
|
|
|
|
syn region texEmphStyle matchgroup=texTypeStyle start="\\texts[cfl]\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
|
|
|
|
|
syn region texEmphStyle matchgroup=texTypeStyle start="\\textup\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
|
|
|
|
|
syn region texEmphStyle matchgroup=texTypeStyle start="\\texttt\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup,@Spell
|
2024-11-09 11:16:58 -07:00
|
|
|
|
else
|
2016-02-03 00:03:53 -07:00
|
|
|
|
syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup
|
|
|
|
|
syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup
|
|
|
|
|
syn region texItalStyle matchgroup=texTypeStyle start="\\textit\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup
|
|
|
|
|
syn region texItalBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texBoldGroup
|
2019-08-01 13:48:52 -07:00
|
|
|
|
syn region texEmphStyle matchgroup=texTypeStyle start="\\emph\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texItalGroup
|
2020-06-16 10:53:35 -07:00
|
|
|
|
syn region texEmphStyle matchgroup=texTypeStyle start="\\texts[cfl]\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texEmphGroup
|
|
|
|
|
syn region texEmphStyle matchgroup=texTypeStyle start="\\textup\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texEmphGroup
|
|
|
|
|
syn region texEmphStyle matchgroup=texTypeStyle start="\\texttt\s*{" matchgroup=texTypeStyle end="}" concealends contains=@texEmphGroup
|
2016-01-28 05:29:05 -07:00
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Bad Math (mismatched): {{{1
|
2016-05-01 13:19:40 -07:00
|
|
|
|
if !exists("g:tex_no_math") && !s:tex_no_error
|
2018-10-28 22:51:05 -07:00
|
|
|
|
syn match texBadMath "\\end\s*{\s*\(array\|[bBpvV]matrix\|split\|smallmatrix\)\s*}"
|
2018-10-28 05:51:36 -07:00
|
|
|
|
syn match texBadMath "\\end\s*{\s*\(displaymath\|equation\|eqnarray\|math\)\*\=\s*}"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn match texBadMath "\\[\])]"
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn match texBadPar contained "\%(\\par\>\|^\s*\n.\)"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Math Zones: {{{1
|
2016-01-10 04:42:45 -07:00
|
|
|
|
if !exists("g:tex_no_math")
|
2014-07-10 21:05:51 -07:00
|
|
|
|
" TexNewMathZone: function creates a mathzone with the given suffix and mathzone name. {{{2
|
|
|
|
|
" Starred forms are created if starform is true. Starred
|
|
|
|
|
" forms have syntax group and synchronization groups with a
|
2017-04-28 16:47:52 -07:00
|
|
|
|
" "S" appended. Handles: cluster, syntax, sync, and highlighting.
|
2014-07-10 21:05:51 -07:00
|
|
|
|
fun! TexNewMathZone(sfx,mathzone,starform)
|
|
|
|
|
let grpname = "texMathZone".a:sfx
|
|
|
|
|
let syncname = "texSyncMathZone".a:sfx
|
2016-05-03 12:00:18 -07:00
|
|
|
|
if s:tex_fold_enabled
|
2014-07-10 21:05:51 -07:00
|
|
|
|
let foldcmd= " fold"
|
|
|
|
|
else
|
|
|
|
|
let foldcmd= ""
|
|
|
|
|
endif
|
|
|
|
|
exe "syn cluster texMathZones add=".grpname
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'M'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
|
|
|
|
|
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
|
|
|
|
|
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
|
|
|
|
|
endif
|
|
|
|
|
exe 'hi def link '.grpname.' texMath'
|
|
|
|
|
if a:starform
|
|
|
|
|
let grpname = "texMathZone".a:sfx.'S'
|
|
|
|
|
let syncname = "texSyncMathZone".a:sfx.'S'
|
|
|
|
|
exe "syn cluster texMathZones add=".grpname
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'M'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
|
|
|
|
|
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
|
|
|
|
|
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
|
|
|
|
|
endif
|
|
|
|
|
exe 'hi def link '.grpname.' texMath'
|
|
|
|
|
endif
|
|
|
|
|
endfun
|
|
|
|
|
|
|
|
|
|
" Standard Math Zones: {{{2
|
2018-10-28 05:51:36 -07:00
|
|
|
|
call TexNewMathZone("A","displaymath",1)
|
|
|
|
|
call TexNewMathZone("B","eqnarray",1)
|
|
|
|
|
call TexNewMathZone("C","equation",1)
|
|
|
|
|
call TexNewMathZone("D","math",1)
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
|
|
" Inline Math Zones: {{{2
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'M'
|
|
|
|
|
if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~# 'd'
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texMathZoneV matchgroup=texDelimiter start="\\(" matchgroup=texDelimiter end="\\)\|%stopzone\>" keepend concealends contains=@texMathZoneGroup
|
|
|
|
|
syn region texMathZoneW matchgroup=texDelimiter start="\\\[" matchgroup=texDelimiter end="\\]\|%stopzone\>" keepend concealends contains=@texMathZoneGroup
|
|
|
|
|
syn region texMathZoneX matchgroup=texDelimiter start="\$" skip="\\\\\|\\\$" matchgroup=texDelimiter end="\$" end="%stopzone\>" concealends contains=@texMathZoneGroup
|
|
|
|
|
syn region texMathZoneY matchgroup=texDelimiter start="\$\$" matchgroup=texDelimiter end="\$\$" end="%stopzone\>" keepend concealends contains=@texMathZoneGroup
|
2014-07-10 21:05:51 -07:00
|
|
|
|
else
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texMathZoneV matchgroup=texDelimiter start="\\(" matchgroup=texDelimiter end="\\)\|%stopzone\>" keepend contains=@texMathZoneGroup
|
|
|
|
|
syn region texMathZoneW matchgroup=texDelimiter start="\\\[" matchgroup=texDelimiter end="\\]\|%stopzone\>" keepend contains=@texMathZoneGroup
|
|
|
|
|
syn region texMathZoneX matchgroup=texDelimiter start="\$" skip="\%(\\\\\)*\\\$" matchgroup=texDelimiter end="\$" end="%stopzone\>" contains=@texMathZoneGroup
|
|
|
|
|
syn region texMathZoneY matchgroup=texDelimiter start="\$\$" matchgroup=texDelimiter end="\$\$" end="%stopzone\>" keepend contains=@texMathZoneGroup
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2016-02-03 00:03:53 -07:00
|
|
|
|
syn region texMathZoneZ matchgroup=texStatement start="\\ensuremath\s*{" matchgroup=texStatement end="}" end="%stopzone\>" contains=@texMathZoneGroup
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
syn match texMathOper "[_^=]" contained
|
|
|
|
|
|
|
|
|
|
" Text Inside Math Zones: {{{2
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'M'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
if !exists("g:tex_nospell") || !g:tex_nospell
|
|
|
|
|
syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup,@Spell
|
|
|
|
|
else
|
|
|
|
|
syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" \left..something.. and \right..something.. support: {{{2
|
|
|
|
|
syn match texMathDelimBad contained "\S"
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~# 'm'
|
2017-03-21 04:11:53 -07:00
|
|
|
|
syn match texMathDelim contained "\\left\["
|
|
|
|
|
syn match texMathDelim contained "\\left\\{" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar={
|
|
|
|
|
syn match texMathDelim contained "\\right\\}" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar=}
|
2014-07-10 21:05:51 -07:00
|
|
|
|
let s:texMathDelimList=[
|
|
|
|
|
\ ['<' , '<'] ,
|
|
|
|
|
\ ['>' , '>'] ,
|
|
|
|
|
\ ['(' , '('] ,
|
|
|
|
|
\ [')' , ')'] ,
|
|
|
|
|
\ ['\[' , '['] ,
|
|
|
|
|
\ [']' , ']'] ,
|
|
|
|
|
\ ['\\{' , '{'] ,
|
|
|
|
|
\ ['\\}' , '}'] ,
|
|
|
|
|
\ ['|' , '|'] ,
|
|
|
|
|
\ ['\\|' , '‖'] ,
|
|
|
|
|
\ ['\\backslash' , '\'] ,
|
|
|
|
|
\ ['\\downarrow' , '↓'] ,
|
|
|
|
|
\ ['\\Downarrow' , '⇓'] ,
|
|
|
|
|
\ ['\\lbrace' , '['] ,
|
|
|
|
|
\ ['\\lceil' , '⌈'] ,
|
|
|
|
|
\ ['\\lfloor' , '⌊'] ,
|
|
|
|
|
\ ['\\lgroup' , '⌊'] ,
|
|
|
|
|
\ ['\\lmoustache' , '⎛'] ,
|
|
|
|
|
\ ['\\rbrace' , ']'] ,
|
|
|
|
|
\ ['\\rceil' , '⌉'] ,
|
|
|
|
|
\ ['\\rfloor' , '⌋'] ,
|
|
|
|
|
\ ['\\rgroup' , '⌋'] ,
|
|
|
|
|
\ ['\\rmoustache' , '⎞'] ,
|
|
|
|
|
\ ['\\uparrow' , '↑'] ,
|
|
|
|
|
\ ['\\Uparrow' , '↑'] ,
|
|
|
|
|
\ ['\\updownarrow', '↕'] ,
|
|
|
|
|
\ ['\\Updownarrow', '⇕']]
|
2017-05-01 04:19:45 -07:00
|
|
|
|
if &ambw == "double" || exists("g:tex_usedblwidth")
|
|
|
|
|
let s:texMathDelimList= s:texMathDelimList + [
|
|
|
|
|
\ ['\\langle' , '〈'] ,
|
2017-11-09 17:38:08 -07:00
|
|
|
|
\ ['\\rangle' , '〉']]
|
2017-05-01 04:19:45 -07:00
|
|
|
|
else
|
|
|
|
|
let s:texMathDelimList= s:texMathDelimList + [
|
|
|
|
|
\ ['\\langle' , '<'] ,
|
|
|
|
|
\ ['\\rangle' , '>']]
|
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn match texMathDelim '\\[bB]igg\=[lr]' contained nextgroup=texMathDelimBad
|
|
|
|
|
for texmath in s:texMathDelimList
|
|
|
|
|
exe "syn match texMathDelim '\\\\[bB]igg\\=[lr]\\=".texmath[0]."' contained conceal cchar=".texmath[1]
|
|
|
|
|
endfor
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
syn match texMathDelim contained "\\\(left\|right\)\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad
|
|
|
|
|
syn match texMathDelim contained "\\[bB]igg\=[lr]\=\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad
|
|
|
|
|
syn match texMathDelimSet2 contained "\\" nextgroup=texMathDelimKey,texMathDelimBad
|
|
|
|
|
syn match texMathDelimSet1 contained "[<>()[\]|/.]\|\\[{}|]"
|
|
|
|
|
syn keyword texMathDelimKey contained backslash lceil lVert rgroup uparrow
|
|
|
|
|
syn keyword texMathDelimKey contained downarrow lfloor rangle rmoustache Uparrow
|
|
|
|
|
syn keyword texMathDelimKey contained Downarrow lgroup rbrace rvert updownarrow
|
|
|
|
|
syn keyword texMathDelimKey contained langle lmoustache rceil rVert Updownarrow
|
|
|
|
|
syn keyword texMathDelimKey contained lbrace lvert rfloor
|
|
|
|
|
endif
|
|
|
|
|
syn match texMathDelim contained "\\\(left\|right\)arrow\>\|\<\([aA]rrow\|brace\)\=vert\>"
|
|
|
|
|
syn match texMathDelim contained "\\lefteqn\>"
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Special TeX characters ( \$ \& \% \# \{ \} \_ \S \P ) : {{{1
|
|
|
|
|
syn match texSpecialChar "\\[$&%#{}_]"
|
|
|
|
|
if b:tex_stylish
|
|
|
|
|
syn match texSpecialChar "\\[SP@][^a-zA-Z@]"me=e-1
|
|
|
|
|
else
|
|
|
|
|
syn match texSpecialChar "\\[SP@]\A"me=e-1
|
|
|
|
|
endif
|
|
|
|
|
syn match texSpecialChar "\\\\"
|
2016-01-10 04:42:45 -07:00
|
|
|
|
if !exists("g:tex_no_math")
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn match texOnlyMath "[_^]"
|
|
|
|
|
endif
|
|
|
|
|
syn match texSpecialChar "\^\^[0-9a-f]\{2}\|\^\^\S"
|
2016-07-07 20:02:08 -07:00
|
|
|
|
if s:tex_conceal !~# 'S'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn match texSpecialChar '\\glq\>' contained conceal cchar=‚
|
|
|
|
|
syn match texSpecialChar '\\grq\>' contained conceal cchar=‘
|
|
|
|
|
syn match texSpecialChar '\\glqq\>' contained conceal cchar=„
|
|
|
|
|
syn match texSpecialChar '\\grqq\>' contained conceal cchar=“
|
|
|
|
|
syn match texSpecialChar '\\hyp\>' contained conceal cchar=-
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Comments: {{{1
|
|
|
|
|
" Normal TeX LaTeX : %....
|
|
|
|
|
" Documented TeX Format: ^^A... -and- leading %s (only)
|
2016-05-03 12:00:18 -07:00
|
|
|
|
if !s:tex_comment_nospell
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn cluster texCommentGroup contains=texTodo,@Spell
|
|
|
|
|
else
|
|
|
|
|
syn cluster texCommentGroup contains=texTodo,@NoSpell
|
|
|
|
|
endif
|
|
|
|
|
syn case ignore
|
|
|
|
|
syn keyword texTodo contained combak fixme todo xxx
|
|
|
|
|
syn case match
|
|
|
|
|
if s:extfname == "dtx"
|
2016-05-01 13:19:40 -07:00
|
|
|
|
syn match texComment "\^\^A.*$" contains=@texCommentGroup
|
|
|
|
|
syn match texComment "^%\+" contains=@texCommentGroup
|
2014-07-10 21:05:51 -07:00
|
|
|
|
else
|
2016-05-03 12:00:18 -07:00
|
|
|
|
if s:tex_fold_enabled
|
2016-05-01 13:19:40 -07:00
|
|
|
|
" allows syntax-folding of 2 or more contiguous comment lines
|
|
|
|
|
" single-line comments are not folded
|
2016-05-03 12:00:18 -07:00
|
|
|
|
syn match texComment "%.*$" contains=@texCommentGroup
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'c'
|
2016-05-03 12:00:18 -07:00
|
|
|
|
TexFold syn region texComment start="^\zs\s*%.*\_s*%" skip="^\s*%" end='^\ze\s*[^%]' contains=@texCommentGroup
|
|
|
|
|
TexFold syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2016-05-01 13:19:40 -07:00
|
|
|
|
else
|
|
|
|
|
syn match texComment "%.*$" contains=@texCommentGroup
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'c'
|
2016-05-03 12:00:18 -07:00
|
|
|
|
syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
|
2016-05-01 13:19:40 -07:00
|
|
|
|
endif
|
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
|
2017-11-07 12:51:49 -07:00
|
|
|
|
" %begin-include ... %end-include acts like a texDocZone for \include'd files. Permits spell checking, for example, in such files.
|
|
|
|
|
if !s:tex_nospell
|
|
|
|
|
TexFold syn region texDocZone matchgroup=texSection start='^\s*%begin-include\>' end='^\s*%end-include\>' contains=@texFoldGroup,@texDocGroup,@Spell
|
|
|
|
|
else
|
|
|
|
|
TexFold syn region texDocZone matchgroup=texSection start='^\s*%begin-include\>' end='^\s*%end-include\>' contains=@texFoldGroup,@texDocGroup
|
|
|
|
|
endif
|
|
|
|
|
|
2014-07-10 21:05:51 -07:00
|
|
|
|
" Separate lines used for verb` and verb# so that the end conditions {{{1
|
|
|
|
|
" will appropriately terminate.
|
|
|
|
|
" If g:tex_verbspell exists, then verbatim texZones will permit spellchecking there.
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'v'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
if exists("g:tex_verbspell") && g:tex_verbspell
|
|
|
|
|
syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>" contains=@Spell
|
2017-11-07 12:51:49 -07:00
|
|
|
|
" listings package:
|
2017-04-28 12:06:44 -07:00
|
|
|
|
if b:tex_stylish
|
|
|
|
|
syn region texZone start="\\verb\*\=\z([^\ta-zA-Z@]\)" end="\z1\|%stopzone\>" contains=@Spell
|
2014-07-10 21:05:51 -07:00
|
|
|
|
else
|
2017-04-28 12:06:44 -07:00
|
|
|
|
syn region texZone start="\\verb\*\=\z([^\ta-zA-Z]\)" end="\z1\|%stopzone\>" contains=@Spell
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
else
|
|
|
|
|
syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>"
|
2017-04-28 12:06:44 -07:00
|
|
|
|
if b:tex_stylish
|
|
|
|
|
syn region texZone start="\\verb\*\=\z([^\ta-zA-Z@]\)" end="\z1\|%stopzone\>"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
else
|
2017-04-28 12:06:44 -07:00
|
|
|
|
syn region texZone start="\\verb\*\=\z([^\ta-zA-Z]\)" end="\z1\|%stopzone\>"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Tex Reference Zones: {{{1
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'r'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn region texZone matchgroup=texStatement start="@samp{" end="}\|%stopzone\>" contains=@texRefGroup
|
|
|
|
|
syn region texRefZone matchgroup=texStatement start="\\nocite{" end="}\|%stopzone\>" contains=@texRefGroup
|
|
|
|
|
syn region texRefZone matchgroup=texStatement start="\\bibliography{" end="}\|%stopzone\>" contains=@texRefGroup
|
|
|
|
|
syn region texRefZone matchgroup=texStatement start="\\label{" end="}\|%stopzone\>" contains=@texRefGroup
|
|
|
|
|
syn region texRefZone matchgroup=texStatement start="\\\(page\|eq\)ref{" end="}\|%stopzone\>" contains=@texRefGroup
|
|
|
|
|
syn region texRefZone matchgroup=texStatement start="\\v\=ref{" end="}\|%stopzone\>" contains=@texRefGroup
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texRefOption contained matchgroup=texDelimiter start='\[' end=']' contains=@texRefGroup,texRefZone nextgroup=texRefOption,texCite
|
|
|
|
|
syn region texCite contained matchgroup=texDelimiter start='{' end='}' contains=@texRefGroup,texRefZone,texCite
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2020-06-16 10:53:35 -07:00
|
|
|
|
syn match texRefZone '\\cite\%([tp]\*\=\)\=\>' nextgroup=texRefOption,texCite
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
2022-04-27 08:48:35 -07:00
|
|
|
|
" Handle (re)newcommand, (re)newenvironment : {{{1
|
|
|
|
|
syn match texNewCmd "\\\%(re\)\=newcommand\>" nextgroup=texCmdName skipwhite skipnl
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'V'
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texCmdName contained matchgroup=texDelimiter start="{"rs=s+1 end="}" nextgroup=texCmdArgs,texCmdBody skipwhite skipnl
|
|
|
|
|
syn region texCmdArgs contained matchgroup=texDelimiter start="\["rs=s+1 end="]" nextgroup=texCmdBody skipwhite skipnl
|
|
|
|
|
syn region texCmdBody contained matchgroup=texDelimiter start="{"rs=s+1 skip="\\\\\|\\[{}]" matchgroup=texDelimiter end="}" contains=@texCmdGroup
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn match texNewEnv "\\\%(re\)\=newenvironment\>" nextgroup=texEnvName skipwhite skipnl
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'V'
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texEnvName contained matchgroup=texDelimiter start="{"rs=s+1 end="}" nextgroup=texEnvBgn skipwhite skipnl
|
|
|
|
|
syn region texEnvBgn contained matchgroup=texDelimiter start="{"rs=s+1 end="}" nextgroup=texEnvEnd skipwhite skipnl contains=@texEnvGroup
|
|
|
|
|
syn region texEnvEnd contained matchgroup=texDelimiter start="{"rs=s+1 end="}" skipwhite skipnl contains=@texEnvGroup
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Definitions/Commands: {{{1
|
|
|
|
|
syn match texDefCmd "\\def\>" nextgroup=texDefName skipwhite skipnl
|
|
|
|
|
if b:tex_stylish
|
|
|
|
|
syn match texDefName contained "\\[a-zA-Z@]\+" nextgroup=texDefParms,texCmdBody skipwhite skipnl
|
|
|
|
|
syn match texDefName contained "\\[^a-zA-Z@]" nextgroup=texDefParms,texCmdBody skipwhite skipnl
|
|
|
|
|
else
|
|
|
|
|
syn match texDefName contained "\\\a\+" nextgroup=texDefParms,texCmdBody skipwhite skipnl
|
|
|
|
|
syn match texDefName contained "\\\A" nextgroup=texDefParms,texCmdBody skipwhite skipnl
|
|
|
|
|
endif
|
|
|
|
|
syn match texDefParms contained "#[^{]*" contains=texDefParm nextgroup=texCmdBody skipwhite skipnl
|
|
|
|
|
syn match texDefParm contained "#\d\+"
|
|
|
|
|
|
|
|
|
|
" TeX Lengths: {{{1
|
|
|
|
|
syn match texLength "\<\d\+\([.,]\d\+\)\=\s*\(true\)\=\s*\(bp\|cc\|cm\|dd\|em\|ex\|in\|mm\|pc\|pt\|sp\)\>"
|
|
|
|
|
|
|
|
|
|
" TeX String Delimiters: {{{1
|
|
|
|
|
syn match texString "\(``\|''\|,,\)"
|
|
|
|
|
|
|
|
|
|
" makeatletter -- makeatother sections
|
2016-05-01 13:19:40 -07:00
|
|
|
|
if !s:tex_no_error
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'S'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn region texStyle matchgroup=texStatement start='\\makeatletter' end='\\makeatother' contains=@texStyleGroup contained
|
|
|
|
|
endif
|
|
|
|
|
syn match texStyleStatement "\\[a-zA-Z@]\+" contained
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_fast =~# 'S'
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texStyleMatcher matchgroup=texDelimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texStyleGroup,texError contained
|
|
|
|
|
syn region texStyleMatcher matchgroup=texDelimiter start="\[" end="]" contains=@texStyleGroup,texError contained
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Conceal mode support (supports set cole=2) {{{1
|
|
|
|
|
if has("conceal") && &enc == 'utf-8'
|
|
|
|
|
|
|
|
|
|
" Math Symbols {{{2
|
|
|
|
|
" (many of these symbols were contributed by Björn Winckler)
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_conceal =~# 'm'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
let s:texMathList=[
|
|
|
|
|
\ ['|' , '‖'],
|
|
|
|
|
\ ['aleph' , 'ℵ'],
|
|
|
|
|
\ ['amalg' , '∐'],
|
|
|
|
|
\ ['angle' , '∠'],
|
|
|
|
|
\ ['approx' , '≈'],
|
|
|
|
|
\ ['ast' , '∗'],
|
|
|
|
|
\ ['asymp' , '≍'],
|
|
|
|
|
\ ['backslash' , '∖'],
|
|
|
|
|
\ ['bigcap' , '∩'],
|
|
|
|
|
\ ['bigcirc' , '○'],
|
|
|
|
|
\ ['bigcup' , '∪'],
|
|
|
|
|
\ ['bigodot' , '⊙'],
|
|
|
|
|
\ ['bigoplus' , '⊕'],
|
|
|
|
|
\ ['bigotimes' , '⊗'],
|
|
|
|
|
\ ['bigsqcup' , '⊔'],
|
|
|
|
|
\ ['bigtriangledown', '∇'],
|
|
|
|
|
\ ['bigtriangleup' , '∆'],
|
|
|
|
|
\ ['bigvee' , '⋁'],
|
|
|
|
|
\ ['bigwedge' , '⋀'],
|
|
|
|
|
\ ['bot' , '⊥'],
|
|
|
|
|
\ ['bowtie' , '⋈'],
|
|
|
|
|
\ ['bullet' , '•'],
|
|
|
|
|
\ ['cap' , '∩'],
|
|
|
|
|
\ ['cdot' , '·'],
|
|
|
|
|
\ ['cdots' , '⋯'],
|
|
|
|
|
\ ['circ' , '∘'],
|
|
|
|
|
\ ['clubsuit' , '♣'],
|
|
|
|
|
\ ['cong' , '≅'],
|
|
|
|
|
\ ['coprod' , '∐'],
|
|
|
|
|
\ ['copyright' , '©'],
|
|
|
|
|
\ ['cup' , '∪'],
|
|
|
|
|
\ ['dagger' , '†'],
|
|
|
|
|
\ ['dashv' , '⊣'],
|
|
|
|
|
\ ['ddagger' , '‡'],
|
|
|
|
|
\ ['ddots' , '⋱'],
|
|
|
|
|
\ ['diamond' , '⋄'],
|
|
|
|
|
\ ['diamondsuit' , '♢'],
|
|
|
|
|
\ ['div' , '÷'],
|
|
|
|
|
\ ['doteq' , '≐'],
|
|
|
|
|
\ ['dots' , '…'],
|
|
|
|
|
\ ['downarrow' , '↓'],
|
|
|
|
|
\ ['Downarrow' , '⇓'],
|
|
|
|
|
\ ['ell' , 'ℓ'],
|
|
|
|
|
\ ['emptyset' , '∅'],
|
|
|
|
|
\ ['equiv' , '≡'],
|
|
|
|
|
\ ['exists' , '∃'],
|
|
|
|
|
\ ['flat' , '♭'],
|
|
|
|
|
\ ['forall' , '∀'],
|
|
|
|
|
\ ['frown' , '⁔'],
|
|
|
|
|
\ ['ge' , '≥'],
|
|
|
|
|
\ ['geq' , '≥'],
|
|
|
|
|
\ ['gets' , '←'],
|
|
|
|
|
\ ['gg' , '⟫'],
|
|
|
|
|
\ ['hbar' , 'ℏ'],
|
|
|
|
|
\ ['heartsuit' , '♡'],
|
|
|
|
|
\ ['hookleftarrow' , '↩'],
|
|
|
|
|
\ ['hookrightarrow' , '↪'],
|
2017-05-01 04:19:45 -07:00
|
|
|
|
\ ['iff' , '⇔'],
|
2014-07-10 21:05:51 -07:00
|
|
|
|
\ ['Im' , 'ℑ'],
|
|
|
|
|
\ ['imath' , 'ɩ'],
|
|
|
|
|
\ ['in' , '∈'],
|
|
|
|
|
\ ['infty' , '∞'],
|
|
|
|
|
\ ['int' , '∫'],
|
2017-05-01 04:19:45 -07:00
|
|
|
|
\ ['jmath' , '𝚥'],
|
|
|
|
|
\ ['land' , '∧'],
|
2014-07-10 21:05:51 -07:00
|
|
|
|
\ ['lceil' , '⌈'],
|
|
|
|
|
\ ['ldots' , '…'],
|
|
|
|
|
\ ['le' , '≤'],
|
2020-06-16 10:57:41 -07:00
|
|
|
|
\ ['left|' , '|'],
|
2020-08-16 15:23:28 -07:00
|
|
|
|
\ ['left\\|' , '‖'],
|
2014-07-10 21:05:51 -07:00
|
|
|
|
\ ['left(' , '('],
|
|
|
|
|
\ ['left\[' , '['],
|
|
|
|
|
\ ['left\\{' , '{'],
|
2016-01-10 04:42:45 -07:00
|
|
|
|
\ ['leftarrow' , '←'],
|
|
|
|
|
\ ['Leftarrow' , '⇐'],
|
2014-07-10 21:05:51 -07:00
|
|
|
|
\ ['leftharpoondown', '↽'],
|
|
|
|
|
\ ['leftharpoonup' , '↼'],
|
|
|
|
|
\ ['leftrightarrow' , '↔'],
|
|
|
|
|
\ ['Leftrightarrow' , '⇔'],
|
|
|
|
|
\ ['leq' , '≤'],
|
|
|
|
|
\ ['leq' , '≤'],
|
|
|
|
|
\ ['lfloor' , '⌊'],
|
|
|
|
|
\ ['ll' , '≪'],
|
|
|
|
|
\ ['lmoustache' , '╭'],
|
2017-05-01 04:19:45 -07:00
|
|
|
|
\ ['lor' , '∨'],
|
2014-07-10 21:05:51 -07:00
|
|
|
|
\ ['mapsto' , '↦'],
|
|
|
|
|
\ ['mid' , '∣'],
|
|
|
|
|
\ ['models' , '╞'],
|
|
|
|
|
\ ['mp' , '∓'],
|
|
|
|
|
\ ['nabla' , '∇'],
|
|
|
|
|
\ ['natural' , '♮'],
|
|
|
|
|
\ ['ne' , '≠'],
|
|
|
|
|
\ ['nearrow' , '↗'],
|
|
|
|
|
\ ['neg' , '¬'],
|
|
|
|
|
\ ['neq' , '≠'],
|
|
|
|
|
\ ['ni' , '∋'],
|
|
|
|
|
\ ['notin' , '∉'],
|
|
|
|
|
\ ['nwarrow' , '↖'],
|
|
|
|
|
\ ['odot' , '⊙'],
|
|
|
|
|
\ ['oint' , '∮'],
|
|
|
|
|
\ ['ominus' , '⊖'],
|
|
|
|
|
\ ['oplus' , '⊕'],
|
|
|
|
|
\ ['oslash' , '⊘'],
|
|
|
|
|
\ ['otimes' , '⊗'],
|
|
|
|
|
\ ['owns' , '∋'],
|
|
|
|
|
\ ['P' , '¶'],
|
|
|
|
|
\ ['parallel' , '║'],
|
|
|
|
|
\ ['partial' , '∂'],
|
|
|
|
|
\ ['perp' , '⊥'],
|
|
|
|
|
\ ['pm' , '±'],
|
|
|
|
|
\ ['prec' , '≺'],
|
|
|
|
|
\ ['preceq' , '⪯'],
|
|
|
|
|
\ ['prime' , '′'],
|
|
|
|
|
\ ['prod' , '∏'],
|
|
|
|
|
\ ['propto' , '∝'],
|
|
|
|
|
\ ['rceil' , '⌉'],
|
|
|
|
|
\ ['Re' , 'ℜ'],
|
2019-08-01 13:48:52 -07:00
|
|
|
|
\ ['quad' , ' '],
|
|
|
|
|
\ ['qquad' , ' '],
|
2014-07-10 21:05:51 -07:00
|
|
|
|
\ ['rfloor' , '⌋'],
|
2020-06-16 10:57:41 -07:00
|
|
|
|
\ ['right|' , '|'],
|
|
|
|
|
\ ['right\\|' , '‖'],
|
2014-07-10 21:05:51 -07:00
|
|
|
|
\ ['right)' , ')'],
|
|
|
|
|
\ ['right]' , ']'],
|
|
|
|
|
\ ['right\\}' , '}'],
|
2016-01-10 04:42:45 -07:00
|
|
|
|
\ ['rightarrow' , '→'],
|
|
|
|
|
\ ['Rightarrow' , '⇒'],
|
2014-07-10 21:05:51 -07:00
|
|
|
|
\ ['rightleftharpoons', '⇌'],
|
|
|
|
|
\ ['rmoustache' , '╮'],
|
|
|
|
|
\ ['S' , '§'],
|
|
|
|
|
\ ['searrow' , '↘'],
|
|
|
|
|
\ ['setminus' , '∖'],
|
|
|
|
|
\ ['sharp' , '♯'],
|
|
|
|
|
\ ['sim' , '∼'],
|
|
|
|
|
\ ['simeq' , '⋍'],
|
|
|
|
|
\ ['smile' , '‿'],
|
|
|
|
|
\ ['spadesuit' , '♠'],
|
|
|
|
|
\ ['sqcap' , '⊓'],
|
|
|
|
|
\ ['sqcup' , '⊔'],
|
|
|
|
|
\ ['sqsubset' , '⊏'],
|
|
|
|
|
\ ['sqsubseteq' , '⊑'],
|
|
|
|
|
\ ['sqsupset' , '⊐'],
|
|
|
|
|
\ ['sqsupseteq' , '⊒'],
|
|
|
|
|
\ ['star' , '✫'],
|
|
|
|
|
\ ['subset' , '⊂'],
|
|
|
|
|
\ ['subseteq' , '⊆'],
|
|
|
|
|
\ ['succ' , '≻'],
|
|
|
|
|
\ ['succeq' , '⪰'],
|
|
|
|
|
\ ['sum' , '∑'],
|
|
|
|
|
\ ['supset' , '⊃'],
|
|
|
|
|
\ ['supseteq' , '⊇'],
|
|
|
|
|
\ ['surd' , '√'],
|
|
|
|
|
\ ['swarrow' , '↙'],
|
|
|
|
|
\ ['times' , '×'],
|
|
|
|
|
\ ['to' , '→'],
|
|
|
|
|
\ ['top' , '⊤'],
|
|
|
|
|
\ ['triangle' , '∆'],
|
|
|
|
|
\ ['triangleleft' , '⊲'],
|
|
|
|
|
\ ['triangleright' , '⊳'],
|
|
|
|
|
\ ['uparrow' , '↑'],
|
|
|
|
|
\ ['Uparrow' , '⇑'],
|
|
|
|
|
\ ['updownarrow' , '↕'],
|
|
|
|
|
\ ['Updownarrow' , '⇕'],
|
|
|
|
|
\ ['vdash' , '⊢'],
|
|
|
|
|
\ ['vdots' , '⋮'],
|
|
|
|
|
\ ['vee' , '∨'],
|
|
|
|
|
\ ['wedge' , '∧'],
|
|
|
|
|
\ ['wp' , '℘'],
|
|
|
|
|
\ ['wr' , '≀']]
|
2017-05-01 04:19:45 -07:00
|
|
|
|
if &ambw == "double" || exists("g:tex_usedblwidth")
|
|
|
|
|
let s:texMathList= s:texMathList + [
|
|
|
|
|
\ ['right\\rangle' , '〉'],
|
|
|
|
|
\ ['left\\langle' , '〈']]
|
|
|
|
|
else
|
|
|
|
|
let s:texMathList= s:texMathList + [
|
|
|
|
|
\ ['right\\rangle' , '>'],
|
|
|
|
|
\ ['left\\langle' , '<']]
|
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
for texmath in s:texMathList
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if texmath[0] =~# '\w$'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
exe "syn match texMathSymbol '\\\\".texmath[0]."\\>' contained conceal cchar=".texmath[1]
|
|
|
|
|
else
|
|
|
|
|
exe "syn match texMathSymbol '\\\\".texmath[0]."' contained conceal cchar=".texmath[1]
|
|
|
|
|
endif
|
|
|
|
|
endfor
|
|
|
|
|
|
|
|
|
|
if &ambw == "double"
|
|
|
|
|
syn match texMathSymbol '\\gg\>' contained conceal cchar=≫
|
|
|
|
|
syn match texMathSymbol '\\ll\>' contained conceal cchar=≪
|
|
|
|
|
else
|
|
|
|
|
syn match texMathSymbol '\\gg\>' contained conceal cchar=⟫
|
|
|
|
|
syn match texMathSymbol '\\ll\>' contained conceal cchar=⟪
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
syn match texMathSymbol '\\hat{a}' contained conceal cchar=â
|
|
|
|
|
syn match texMathSymbol '\\hat{A}' contained conceal cchar=Â
|
|
|
|
|
syn match texMathSymbol '\\hat{c}' contained conceal cchar=ĉ
|
|
|
|
|
syn match texMathSymbol '\\hat{C}' contained conceal cchar=Ĉ
|
|
|
|
|
syn match texMathSymbol '\\hat{e}' contained conceal cchar=ê
|
|
|
|
|
syn match texMathSymbol '\\hat{E}' contained conceal cchar=Ê
|
|
|
|
|
syn match texMathSymbol '\\hat{g}' contained conceal cchar=ĝ
|
|
|
|
|
syn match texMathSymbol '\\hat{G}' contained conceal cchar=Ĝ
|
|
|
|
|
syn match texMathSymbol '\\hat{i}' contained conceal cchar=î
|
|
|
|
|
syn match texMathSymbol '\\hat{I}' contained conceal cchar=Î
|
|
|
|
|
syn match texMathSymbol '\\hat{o}' contained conceal cchar=ô
|
|
|
|
|
syn match texMathSymbol '\\hat{O}' contained conceal cchar=Ô
|
|
|
|
|
syn match texMathSymbol '\\hat{s}' contained conceal cchar=ŝ
|
|
|
|
|
syn match texMathSymbol '\\hat{S}' contained conceal cchar=Ŝ
|
|
|
|
|
syn match texMathSymbol '\\hat{u}' contained conceal cchar=û
|
|
|
|
|
syn match texMathSymbol '\\hat{U}' contained conceal cchar=Û
|
|
|
|
|
syn match texMathSymbol '\\hat{w}' contained conceal cchar=ŵ
|
|
|
|
|
syn match texMathSymbol '\\hat{W}' contained conceal cchar=Ŵ
|
|
|
|
|
syn match texMathSymbol '\\hat{y}' contained conceal cchar=ŷ
|
|
|
|
|
syn match texMathSymbol '\\hat{Y}' contained conceal cchar=Ŷ
|
2016-01-10 04:42:45 -07:00
|
|
|
|
" syn match texMathSymbol '\\bar{a}' contained conceal cchar=a̅
|
2018-10-28 22:51:05 -07:00
|
|
|
|
|
|
|
|
|
syn match texMathSymbol '\\dot{B}' contained conceal cchar=Ḃ
|
|
|
|
|
syn match texMathSymbol '\\dot{b}' contained conceal cchar=ḃ
|
|
|
|
|
syn match texMathSymbol '\\dot{D}' contained conceal cchar=Ḋ
|
|
|
|
|
syn match texMathSymbol '\\dot{d}' contained conceal cchar=ḋ
|
|
|
|
|
syn match texMathSymbol '\\dot{F}' contained conceal cchar=Ḟ
|
|
|
|
|
syn match texMathSymbol '\\dot{f}' contained conceal cchar=ḟ
|
|
|
|
|
syn match texMathSymbol '\\dot{H}' contained conceal cchar=Ḣ
|
|
|
|
|
syn match texMathSymbol '\\dot{h}' contained conceal cchar=ḣ
|
|
|
|
|
syn match texMathSymbol '\\dot{M}' contained conceal cchar=Ṁ
|
|
|
|
|
syn match texMathSymbol '\\dot{m}' contained conceal cchar=ṁ
|
|
|
|
|
syn match texMathSymbol '\\dot{N}' contained conceal cchar=Ṅ
|
|
|
|
|
syn match texMathSymbol '\\dot{n}' contained conceal cchar=ṅ
|
|
|
|
|
syn match texMathSymbol '\\dot{P}' contained conceal cchar=Ṗ
|
|
|
|
|
syn match texMathSymbol '\\dot{p}' contained conceal cchar=ṗ
|
|
|
|
|
syn match texMathSymbol '\\dot{R}' contained conceal cchar=Ṙ
|
|
|
|
|
syn match texMathSymbol '\\dot{r}' contained conceal cchar=ṙ
|
|
|
|
|
syn match texMathSymbol '\\dot{S}' contained conceal cchar=Ṡ
|
|
|
|
|
syn match texMathSymbol '\\dot{s}' contained conceal cchar=ṡ
|
|
|
|
|
syn match texMathSymbol '\\dot{T}' contained conceal cchar=Ṫ
|
|
|
|
|
syn match texMathSymbol '\\dot{t}' contained conceal cchar=ṫ
|
|
|
|
|
syn match texMathSymbol '\\dot{W}' contained conceal cchar=Ẇ
|
|
|
|
|
syn match texMathSymbol '\\dot{w}' contained conceal cchar=ẇ
|
|
|
|
|
syn match texMathSymbol '\\dot{X}' contained conceal cchar=Ẋ
|
|
|
|
|
syn match texMathSymbol '\\dot{x}' contained conceal cchar=ẋ
|
|
|
|
|
syn match texMathSymbol '\\dot{Y}' contained conceal cchar=Ẏ
|
|
|
|
|
syn match texMathSymbol '\\dot{y}' contained conceal cchar=ẏ
|
|
|
|
|
syn match texMathSymbol '\\dot{Z}' contained conceal cchar=Ż
|
|
|
|
|
syn match texMathSymbol '\\dot{z}' contained conceal cchar=ż
|
|
|
|
|
|
|
|
|
|
syn match texMathSymbol '\\dot{C}' contained conceal cchar=Ċ
|
|
|
|
|
syn match texMathSymbol '\\dot{c}' contained conceal cchar=ċ
|
|
|
|
|
syn match texMathSymbol '\\dot{E}' contained conceal cchar=Ė
|
|
|
|
|
syn match texMathSymbol '\\dot{e}' contained conceal cchar=ė
|
|
|
|
|
syn match texMathSymbol '\\dot{G}' contained conceal cchar=Ġ
|
|
|
|
|
syn match texMathSymbol '\\dot{g}' contained conceal cchar=ġ
|
|
|
|
|
syn match texMathSymbol '\\dot{I}' contained conceal cchar=İ
|
|
|
|
|
|
|
|
|
|
syn match texMathSymbol '\\dot{A}' contained conceal cchar=Ȧ
|
|
|
|
|
syn match texMathSymbol '\\dot{a}' contained conceal cchar=ȧ
|
|
|
|
|
syn match texMathSymbol '\\dot{O}' contained conceal cchar=Ȯ
|
|
|
|
|
syn match texMathSymbol '\\dot{o}' contained conceal cchar=ȯ
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Greek {{{2
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_conceal =~# 'g'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
fun! s:Greek(group,pat,cchar)
|
|
|
|
|
exe 'syn match '.a:group." '".a:pat."' contained conceal cchar=".a:cchar
|
|
|
|
|
endfun
|
|
|
|
|
call s:Greek('texGreek','\\alpha\>' ,'α')
|
|
|
|
|
call s:Greek('texGreek','\\beta\>' ,'β')
|
|
|
|
|
call s:Greek('texGreek','\\gamma\>' ,'γ')
|
|
|
|
|
call s:Greek('texGreek','\\delta\>' ,'δ')
|
|
|
|
|
call s:Greek('texGreek','\\epsilon\>' ,'ϵ')
|
|
|
|
|
call s:Greek('texGreek','\\varepsilon\>' ,'ε')
|
|
|
|
|
call s:Greek('texGreek','\\zeta\>' ,'ζ')
|
|
|
|
|
call s:Greek('texGreek','\\eta\>' ,'η')
|
|
|
|
|
call s:Greek('texGreek','\\theta\>' ,'θ')
|
2016-01-10 04:42:45 -07:00
|
|
|
|
call s:Greek('texGreek','\\vartheta\>' ,'ϑ')
|
2019-08-01 21:56:33 -07:00
|
|
|
|
call s:Greek('texGreek','\\iota\>' ,'ι')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:Greek('texGreek','\\kappa\>' ,'κ')
|
|
|
|
|
call s:Greek('texGreek','\\lambda\>' ,'λ')
|
|
|
|
|
call s:Greek('texGreek','\\mu\>' ,'μ')
|
|
|
|
|
call s:Greek('texGreek','\\nu\>' ,'ν')
|
|
|
|
|
call s:Greek('texGreek','\\xi\>' ,'ξ')
|
|
|
|
|
call s:Greek('texGreek','\\pi\>' ,'π')
|
|
|
|
|
call s:Greek('texGreek','\\varpi\>' ,'ϖ')
|
|
|
|
|
call s:Greek('texGreek','\\rho\>' ,'ρ')
|
|
|
|
|
call s:Greek('texGreek','\\varrho\>' ,'ϱ')
|
|
|
|
|
call s:Greek('texGreek','\\sigma\>' ,'σ')
|
2016-01-10 04:42:45 -07:00
|
|
|
|
call s:Greek('texGreek','\\varsigma\>' ,'ς')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:Greek('texGreek','\\tau\>' ,'τ')
|
|
|
|
|
call s:Greek('texGreek','\\upsilon\>' ,'υ')
|
2016-01-10 04:42:45 -07:00
|
|
|
|
call s:Greek('texGreek','\\phi\>' ,'ϕ')
|
|
|
|
|
call s:Greek('texGreek','\\varphi\>' ,'φ')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:Greek('texGreek','\\chi\>' ,'χ')
|
|
|
|
|
call s:Greek('texGreek','\\psi\>' ,'ψ')
|
|
|
|
|
call s:Greek('texGreek','\\omega\>' ,'ω')
|
|
|
|
|
call s:Greek('texGreek','\\Gamma\>' ,'Γ')
|
|
|
|
|
call s:Greek('texGreek','\\Delta\>' ,'Δ')
|
|
|
|
|
call s:Greek('texGreek','\\Theta\>' ,'Θ')
|
|
|
|
|
call s:Greek('texGreek','\\Lambda\>' ,'Λ')
|
2019-08-01 21:56:33 -07:00
|
|
|
|
call s:Greek('texGreek','\\Xi\>' ,'Ξ')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:Greek('texGreek','\\Pi\>' ,'Π')
|
|
|
|
|
call s:Greek('texGreek','\\Sigma\>' ,'Σ')
|
|
|
|
|
call s:Greek('texGreek','\\Upsilon\>' ,'Υ')
|
|
|
|
|
call s:Greek('texGreek','\\Phi\>' ,'Φ')
|
2019-08-01 21:56:33 -07:00
|
|
|
|
call s:Greek('texGreek','\\Chi\>' ,'Χ')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:Greek('texGreek','\\Psi\>' ,'Ψ')
|
|
|
|
|
call s:Greek('texGreek','\\Omega\>' ,'Ω')
|
|
|
|
|
delfun s:Greek
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Superscripts/Subscripts {{{2
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_conceal =~# 's'
|
|
|
|
|
if s:tex_fast =~# 's'
|
2022-04-27 08:48:35 -07:00
|
|
|
|
syn region texSuperscript matchgroup=texDelimiter start='\^{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSuperscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
|
|
|
|
|
syn region texSubscript matchgroup=texDelimiter start='_{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSubscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2016-02-03 00:03:53 -07:00
|
|
|
|
" s:SuperSub:
|
2014-07-10 21:05:51 -07:00
|
|
|
|
fun! s:SuperSub(group,leader,pat,cchar)
|
2016-07-07 20:26:00 -07:00
|
|
|
|
if a:pat =~# '^\\' || (a:leader == '\^' && a:pat =~# s:tex_superscripts) || (a:leader == '_' && a:pat =~# s:tex_subscripts)
|
2015-01-04 12:26:51 -07:00
|
|
|
|
" call Decho("SuperSub: group<".a:group."> leader<".a:leader."> pat<".a:pat."> cchar<".a:cchar.">")
|
|
|
|
|
exe 'syn match '.a:group." '".a:leader.a:pat."' contained conceal cchar=".a:cchar
|
2016-02-03 00:03:53 -07:00
|
|
|
|
exe 'syn match '.a:group."s '".a:pat ."' contained conceal cchar=".a:cchar.' nextgroup='.a:group.'s'
|
2015-01-04 12:26:51 -07:00
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endfun
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','0','⁰')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','1','¹')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','2','²')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','3','³')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','4','⁴')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','5','⁵')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','6','⁶')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','7','⁷')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','8','⁸')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','9','⁹')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','a','ᵃ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','b','ᵇ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','c','ᶜ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','d','ᵈ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','e','ᵉ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','f','ᶠ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','g','ᵍ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','h','ʰ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','i','ⁱ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','j','ʲ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','k','ᵏ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','l','ˡ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','m','ᵐ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','n','ⁿ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','o','ᵒ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','p','ᵖ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','r','ʳ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','s','ˢ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','t','ᵗ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','u','ᵘ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','v','ᵛ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','w','ʷ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','x','ˣ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','y','ʸ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','z','ᶻ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','A','ᴬ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','B','ᴮ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','D','ᴰ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','E','ᴱ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','G','ᴳ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','H','ᴴ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','I','ᴵ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','J','ᴶ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','K','ᴷ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','L','ᴸ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','M','ᴹ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','N','ᴺ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','O','ᴼ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','P','ᴾ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','R','ᴿ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','T','ᵀ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','U','ᵁ')
|
2020-06-16 10:56:14 -07:00
|
|
|
|
call s:SuperSub('texSuperscript','\^','V','ⱽ')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:SuperSub('texSuperscript','\^','W','ᵂ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^',',','︐')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^',':','︓')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^',';','︔')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','+','⁺')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','-','⁻')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','<','˂')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','>','˃')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','/','ˊ')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','(','⁽')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^',')','⁾')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','\.','˙')
|
|
|
|
|
call s:SuperSub('texSuperscript','\^','=','˭')
|
|
|
|
|
call s:SuperSub('texSubscript','_','0','₀')
|
|
|
|
|
call s:SuperSub('texSubscript','_','1','₁')
|
|
|
|
|
call s:SuperSub('texSubscript','_','2','₂')
|
|
|
|
|
call s:SuperSub('texSubscript','_','3','₃')
|
|
|
|
|
call s:SuperSub('texSubscript','_','4','₄')
|
|
|
|
|
call s:SuperSub('texSubscript','_','5','₅')
|
|
|
|
|
call s:SuperSub('texSubscript','_','6','₆')
|
|
|
|
|
call s:SuperSub('texSubscript','_','7','₇')
|
|
|
|
|
call s:SuperSub('texSubscript','_','8','₈')
|
|
|
|
|
call s:SuperSub('texSubscript','_','9','₉')
|
|
|
|
|
call s:SuperSub('texSubscript','_','a','ₐ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','e','ₑ')
|
2017-02-01 13:26:34 -07:00
|
|
|
|
call s:SuperSub('texSubscript','_','h','ₕ')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:SuperSub('texSubscript','_','i','ᵢ')
|
2017-02-01 13:26:34 -07:00
|
|
|
|
call s:SuperSub('texSubscript','_','j','ⱼ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','k','ₖ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','l','ₗ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','m','ₘ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','n','ₙ')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:SuperSub('texSubscript','_','o','ₒ')
|
2017-02-01 13:26:34 -07:00
|
|
|
|
call s:SuperSub('texSubscript','_','p','ₚ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','r','ᵣ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','s','ₛ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','t','ₜ')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:SuperSub('texSubscript','_','u','ᵤ')
|
2017-02-01 13:26:34 -07:00
|
|
|
|
call s:SuperSub('texSubscript','_','v','ᵥ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','x','ₓ')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:SuperSub('texSubscript','_',',','︐')
|
|
|
|
|
call s:SuperSub('texSubscript','_','+','₊')
|
|
|
|
|
call s:SuperSub('texSubscript','_','-','₋')
|
|
|
|
|
call s:SuperSub('texSubscript','_','/','ˏ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','(','₍')
|
|
|
|
|
call s:SuperSub('texSubscript','_',')','₎')
|
|
|
|
|
call s:SuperSub('texSubscript','_','\.','‸')
|
|
|
|
|
call s:SuperSub('texSubscript','_','r','ᵣ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','v','ᵥ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','x','ₓ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','\\beta\>' ,'ᵦ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','\\delta\>','ᵨ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','\\phi\>' ,'ᵩ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','\\gamma\>','ᵧ')
|
|
|
|
|
call s:SuperSub('texSubscript','_','\\chi\>' ,'ᵪ')
|
2017-02-01 13:26:34 -07:00
|
|
|
|
|
2014-07-10 21:05:51 -07:00
|
|
|
|
delfun s:SuperSub
|
|
|
|
|
endif
|
|
|
|
|
|
2017-11-07 12:51:49 -07:00
|
|
|
|
" Accented characters and Ligatures: {{{2
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if s:tex_conceal =~# 'a'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
if b:tex_stylish
|
|
|
|
|
syn match texAccent "\\[bcdvuH][^a-zA-Z@]"me=e-1
|
2017-11-07 12:51:49 -07:00
|
|
|
|
syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1
|
|
|
|
|
syn match texLigature '--'
|
|
|
|
|
syn match texLigature '---'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
else
|
|
|
|
|
fun! s:Accents(chr,...)
|
|
|
|
|
let i= 1
|
|
|
|
|
for accent in ["`","\\'","^",'"','\~','\.','=',"c","H","k","r","u","v"]
|
|
|
|
|
if i > a:0
|
|
|
|
|
break
|
|
|
|
|
endif
|
|
|
|
|
if strlen(a:{i}) == 0 || a:{i} == ' ' || a:{i} == '?'
|
|
|
|
|
let i= i + 1
|
|
|
|
|
continue
|
|
|
|
|
endif
|
2016-06-19 20:59:39 -07:00
|
|
|
|
if accent =~# '\a'
|
2014-07-10 21:05:51 -07:00
|
|
|
|
exe "syn match texAccent '".'\\'.accent.'\(\s*{'.a:chr.'}\|\s\+'.a:chr.'\)'."' conceal cchar=".a:{i}
|
|
|
|
|
else
|
|
|
|
|
exe "syn match texAccent '".'\\'.accent.'\s*\({'.a:chr.'}\|'.a:chr.'\)'."' conceal cchar=".a:{i}
|
|
|
|
|
endif
|
|
|
|
|
let i= i + 1
|
|
|
|
|
endfor
|
|
|
|
|
endfun
|
2015-01-04 12:26:51 -07:00
|
|
|
|
" \` \' \^ \" \~ \. \= \c \H \k \r \u \v
|
|
|
|
|
call s:Accents('a','à','á','â','ä','ã','ȧ','ā',' ',' ','ą','å','ă','ǎ')
|
|
|
|
|
call s:Accents('A','À','Á','Â','Ä','Ã','Ȧ','Ā',' ',' ','Ą','Å','Ă','Ǎ')
|
|
|
|
|
call s:Accents('c',' ','ć','ĉ',' ',' ','ċ',' ','ç',' ',' ',' ',' ','č')
|
|
|
|
|
call s:Accents('C',' ','Ć','Ĉ',' ',' ','Ċ',' ','Ç',' ',' ',' ',' ','Č')
|
|
|
|
|
call s:Accents('d',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','ď')
|
|
|
|
|
call s:Accents('D',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','Ď')
|
|
|
|
|
call s:Accents('e','è','é','ê','ë','ẽ','ė','ē','ȩ',' ','ę',' ','ĕ','ě')
|
|
|
|
|
call s:Accents('E','È','É','Ê','Ë','Ẽ','Ė','Ē','Ȩ',' ','Ę',' ','Ĕ','Ě')
|
|
|
|
|
call s:Accents('g',' ','ǵ','ĝ',' ',' ','ġ',' ','ģ',' ',' ',' ','ğ','ǧ')
|
|
|
|
|
call s:Accents('G',' ','Ǵ','Ĝ',' ',' ','Ġ',' ','Ģ',' ',' ',' ','Ğ','Ǧ')
|
|
|
|
|
call s:Accents('h',' ',' ','ĥ',' ',' ',' ',' ',' ',' ',' ',' ',' ','ȟ')
|
|
|
|
|
call s:Accents('H',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','Ȟ')
|
|
|
|
|
call s:Accents('i','ì','í','î','ï','ĩ','į','ī',' ',' ','į',' ','ĭ','ǐ')
|
|
|
|
|
call s:Accents('I','Ì','Í','Î','Ï','Ĩ','İ','Ī',' ',' ','Į',' ','Ĭ','Ǐ')
|
|
|
|
|
call s:Accents('J',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','ǰ')
|
|
|
|
|
call s:Accents('k',' ',' ',' ',' ',' ',' ',' ','ķ',' ',' ',' ',' ','ǩ')
|
|
|
|
|
call s:Accents('K',' ',' ',' ',' ',' ',' ',' ','Ķ',' ',' ',' ',' ','Ǩ')
|
|
|
|
|
call s:Accents('l',' ','ĺ','ľ',' ',' ',' ',' ','ļ',' ',' ',' ',' ','ľ')
|
|
|
|
|
call s:Accents('L',' ','Ĺ','Ľ',' ',' ',' ',' ','Ļ',' ',' ',' ',' ','Ľ')
|
|
|
|
|
call s:Accents('n',' ','ń',' ',' ','ñ',' ',' ','ņ',' ',' ',' ',' ','ň')
|
|
|
|
|
call s:Accents('N',' ','Ń',' ',' ','Ñ',' ',' ','Ņ',' ',' ',' ',' ','Ň')
|
|
|
|
|
call s:Accents('o','ò','ó','ô','ö','õ','ȯ','ō',' ','ő','ǫ',' ','ŏ','ǒ')
|
|
|
|
|
call s:Accents('O','Ò','Ó','Ô','Ö','Õ','Ȯ','Ō',' ','Ő','Ǫ',' ','Ŏ','Ǒ')
|
|
|
|
|
call s:Accents('r',' ','ŕ',' ',' ',' ',' ',' ','ŗ',' ',' ',' ',' ','ř')
|
|
|
|
|
call s:Accents('R',' ','Ŕ',' ',' ',' ',' ',' ','Ŗ',' ',' ',' ',' ','Ř')
|
|
|
|
|
call s:Accents('s',' ','ś','ŝ',' ',' ',' ',' ','ş',' ','ȿ',' ',' ','š')
|
|
|
|
|
call s:Accents('S',' ','Ś','Ŝ',' ',' ',' ',' ','Ş',' ',' ',' ',' ','Š')
|
|
|
|
|
call s:Accents('t',' ',' ',' ',' ',' ',' ',' ','ţ',' ',' ',' ',' ','ť')
|
|
|
|
|
call s:Accents('T',' ',' ',' ',' ',' ',' ',' ','Ţ',' ',' ',' ',' ','Ť')
|
|
|
|
|
call s:Accents('u','ù','ú','û','ü','ũ',' ','ū',' ','ű','ų','ů','ŭ','ǔ')
|
|
|
|
|
call s:Accents('U','Ù','Ú','Û','Ü','Ũ',' ','Ū',' ','Ű','Ų','Ů','Ŭ','Ǔ')
|
|
|
|
|
call s:Accents('w',' ',' ','ŵ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ')
|
|
|
|
|
call s:Accents('W',' ',' ','Ŵ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ')
|
|
|
|
|
call s:Accents('y','ỳ','ý','ŷ','ÿ','ỹ',' ',' ',' ',' ',' ',' ',' ',' ')
|
|
|
|
|
call s:Accents('Y','Ỳ','Ý','Ŷ','Ÿ','Ỹ',' ',' ',' ',' ',' ',' ',' ',' ')
|
|
|
|
|
call s:Accents('z',' ','ź',' ',' ',' ','ż',' ',' ',' ',' ',' ',' ','ž')
|
|
|
|
|
call s:Accents('Z',' ','Ź',' ',' ',' ','Ż',' ',' ',' ',' ',' ',' ','Ž')
|
2014-07-10 21:05:51 -07:00
|
|
|
|
call s:Accents('\\i','ì','í','î','ï','ĩ','į',' ',' ',' ',' ',' ','ĭ',' ')
|
|
|
|
|
" \` \' \^ \" \~ \. \= \c \H \k \r \u \v
|
|
|
|
|
delfun s:Accents
|
2017-11-07 12:51:49 -07:00
|
|
|
|
syn match texAccent '\\aa\>' conceal cchar=å
|
|
|
|
|
syn match texAccent '\\AA\>' conceal cchar=Å
|
|
|
|
|
syn match texAccent '\\o\>' conceal cchar=ø
|
|
|
|
|
syn match texAccent '\\O\>' conceal cchar=Ø
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn match texLigature '\\AE\>' conceal cchar=Æ
|
|
|
|
|
syn match texLigature '\\ae\>' conceal cchar=æ
|
|
|
|
|
syn match texLigature '\\oe\>' conceal cchar=œ
|
|
|
|
|
syn match texLigature '\\OE\>' conceal cchar=Œ
|
|
|
|
|
syn match texLigature '\\ss\>' conceal cchar=ß
|
2017-11-07 12:51:49 -07:00
|
|
|
|
syn match texLigature '--' conceal cchar=–
|
|
|
|
|
syn match texLigature '---' conceal cchar=—
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" ---------------------------------------------------------------------
|
|
|
|
|
" LaTeX synchronization: {{{1
|
|
|
|
|
syn sync maxlines=200
|
|
|
|
|
syn sync minlines=50
|
|
|
|
|
|
|
|
|
|
syn sync match texSyncStop groupthere NONE "%stopzone\>"
|
|
|
|
|
|
|
|
|
|
" Synchronization: {{{1
|
|
|
|
|
" The $..$ and $$..$$ make for impossible sync patterns
|
|
|
|
|
" (one can't tell if a "$$" starts or stops a math zone by itself)
|
|
|
|
|
" The following grouptheres coupled with minlines above
|
|
|
|
|
" help improve the odds of good syncing.
|
2016-01-10 04:42:45 -07:00
|
|
|
|
if !exists("g:tex_no_math")
|
2014-07-10 21:05:51 -07:00
|
|
|
|
syn sync match texSyncMathZoneA groupthere NONE "\\end{abstract}"
|
|
|
|
|
syn sync match texSyncMathZoneA groupthere NONE "\\end{center}"
|
|
|
|
|
syn sync match texSyncMathZoneA groupthere NONE "\\end{description}"
|
|
|
|
|
syn sync match texSyncMathZoneA groupthere NONE "\\end{enumerate}"
|
|
|
|
|
syn sync match texSyncMathZoneA groupthere NONE "\\end{itemize}"
|
|
|
|
|
syn sync match texSyncMathZoneA groupthere NONE "\\end{table}"
|
|
|
|
|
syn sync match texSyncMathZoneA groupthere NONE "\\end{tabular}"
|
|
|
|
|
syn sync match texSyncMathZoneA groupthere NONE "\\\(sub\)*section\>"
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" ---------------------------------------------------------------------
|
|
|
|
|
" Highlighting: {{{1
|
2017-04-28 12:14:34 -07:00
|
|
|
|
|
|
|
|
|
" Define the default highlighting. {{{1
|
|
|
|
|
if !exists("skip_tex_syntax_inits")
|
|
|
|
|
|
2014-07-10 21:05:51 -07:00
|
|
|
|
" TeX highlighting groups which should share similar highlighting
|
2015-01-04 12:26:51 -07:00
|
|
|
|
if !exists("g:tex_no_error")
|
2014-07-10 21:05:51 -07:00
|
|
|
|
if !exists("g:tex_no_math")
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texBadMath texError
|
2022-04-27 08:48:35 -07:00
|
|
|
|
hi def link texBadPar texBadMath
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texMathDelimBad texError
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texMathError texError
|
2014-07-10 21:05:51 -07:00
|
|
|
|
if !b:tex_stylish
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texOnlyMath texError
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
endif
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texError Error
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
hi texBoldStyle gui=bold cterm=bold
|
|
|
|
|
hi texItalStyle gui=italic cterm=italic
|
|
|
|
|
hi texBoldItalStyle gui=bold,italic cterm=bold,italic
|
|
|
|
|
hi texItalBoldStyle gui=bold,italic cterm=bold,italic
|
2019-08-01 13:48:52 -07:00
|
|
|
|
hi def link texEmphStyle texItalStyle
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texCite texRefZone
|
|
|
|
|
hi def link texDefCmd texDef
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texDefName texDef
|
|
|
|
|
hi def link texDocType texCmdName
|
|
|
|
|
hi def link texDocTypeArgs texCmdArgs
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texInputFileOpt texCmdArgs
|
|
|
|
|
hi def link texInputCurlies texDelimiter
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texLigature texSpecialChar
|
2016-01-10 04:42:45 -07:00
|
|
|
|
if !exists("g:tex_no_math")
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texMathDelimSet1 texMathDelim
|
|
|
|
|
hi def link texMathDelimSet2 texMathDelim
|
|
|
|
|
hi def link texMathDelimKey texMathDelim
|
|
|
|
|
hi def link texMathMatcher texMath
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texAccent texStatement
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texGreek texStatement
|
|
|
|
|
hi def link texSuperscript texStatement
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texSubscript texStatement
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texSuperscripts texSuperscript
|
|
|
|
|
hi def link texSubscripts texSubscript
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texMathSymbol texStatement
|
|
|
|
|
hi def link texMathZoneV texMath
|
|
|
|
|
hi def link texMathZoneW texMath
|
|
|
|
|
hi def link texMathZoneX texMath
|
|
|
|
|
hi def link texMathZoneY texMath
|
|
|
|
|
hi def link texMathZoneV texMath
|
|
|
|
|
hi def link texMathZoneZ texMath
|
2014-07-10 21:05:51 -07:00
|
|
|
|
endif
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texBeginEnd texCmdName
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texBeginEndName texSection
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texSpaceCode texStatement
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texStyleStatement texStatement
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texTypeSize texType
|
|
|
|
|
hi def link texTypeStyle texType
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
|
|
" Basic TeX highlighting groups
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texCmdArgs Number
|
|
|
|
|
hi def link texCmdName Statement
|
|
|
|
|
hi def link texComment Comment
|
|
|
|
|
hi def link texDef Statement
|
|
|
|
|
hi def link texDefParm Special
|
|
|
|
|
hi def link texDelimiter Delimiter
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texInput Special
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texInputFile Special
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texLength Number
|
|
|
|
|
hi def link texMath Special
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texMathDelim Statement
|
|
|
|
|
hi def link texMathOper Operator
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texNewCmd Statement
|
|
|
|
|
hi def link texNewEnv Statement
|
|
|
|
|
hi def link texOption Number
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texRefZone Special
|
|
|
|
|
hi def link texSection PreCondit
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texSpaceCodeChar Special
|
2017-04-28 16:47:52 -07:00
|
|
|
|
hi def link texSpecialChar SpecialChar
|
|
|
|
|
hi def link texStatement Statement
|
2017-04-28 12:14:34 -07:00
|
|
|
|
hi def link texString String
|
|
|
|
|
hi def link texTodo Todo
|
|
|
|
|
hi def link texType Type
|
|
|
|
|
hi def link texZone PreCondit
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Cleanup: {{{1
|
2016-05-01 13:19:40 -07:00
|
|
|
|
delc TexFold
|
2014-07-10 21:05:51 -07:00
|
|
|
|
unlet s:extfname
|
|
|
|
|
let b:current_syntax = "tex"
|
|
|
|
|
let &cpo = s:keepcpo
|
|
|
|
|
unlet s:keepcpo
|
|
|
|
|
" vim: ts=8 fdm=marker
|