blob: adb77bbc18e8037382649397074e9da53638eae5 [file] [log] [blame]
" Vim syntax file
" Language: TeX (core definition)
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-03-26
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" This follows the grouping (sort of) found at
" http://www.tug.org/utilities/plain/cseq.html#top-fam
syn keyword coretexTodo TODO FIXME XXX NOTE
syn match coretexComment display contains=coretexTodo
\ '\\\@<!\%(\\\\\)*\zs%.*$'
syn match coretexDimension display contains=@NoSpell
\ '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|m[mu]\|dd\|sp\|e[mx]\)\>'
syn cluster coretexBox
\ contains=coretexBoxCommand,coretexBoxInternalQuantity,
\ coretexBoxParameterDimen,coretexBoxParameterInteger,
\ coretexBoxParameterToken
syn cluster coretexCharacter
\ contains=coretexCharacterCommand,coretexCharacterInternalQuantity,
\ coretexCharacterParameterInteger
syn cluster coretexDebugging
\ contains=coretexDebuggingCommand,coretexDebuggingParameterInteger,
\ coretexDebuggingParameterToken
syn cluster coretexFileIO
\ contains=coretexFileIOCommand,coretexFileIOInternalQuantity,
\ coretexFileIOParameterToken
syn cluster coretexFonts
\ contains=coretexFontsCommand,coretexFontsInternalQuantity
syn cluster coretexGlue
\ contains=coretexGlueCommand,coretexGlueDerivedCommand
syn cluster coretexHyphenation
\ contains=coretexHyphenationCommand,coretexHyphenationDerivedCommand,
\ coretexHyphenationInternalQuantity,coretexHyphenationParameterInteger
syn cluster coretexInserts
\ contains=coretexInsertsCommand,coretexInsertsParameterDimen,
\ coretexInsertsParameterGlue,coretexInsertsParameterInteger
syn cluster coretexJob
\ contains=coretexJobCommand,coretexJobInternalQuantity,
\ coretexJobParameterInteger
syn cluster coretexKern
\ contains=coretexKernCommand,coretexKernInternalQuantity
syn cluster coretexLogic
\ contains=coretexLogicCommand
syn cluster coretexMacro
\ contains=coretexMacroCommand,coretexMacroDerivedCommand,
\ coretexMacroParameterInteger
syn cluster coretexMarks
\ contains=coretexMarksCommand
syn cluster coretexMath
\ contains=coretexMathCommand,coretexMathDerivedCommand,
\ coretexMathInternalQuantity,coretexMathParameterDimen,
\ coretexMathParameterGlue,coretexMathParameterInteger,
\ coretexMathParameterMuglue,coretexMathParameterToken
syn cluster coretexPage
\ contains=coretexPageInternalQuantity,coretexPageParameterDimen,
\ coretexPageParameterGlue
syn cluster coretexParagraph
\ contains=coretexParagraphCommand,coretexParagraphInternalQuantity,
\ coretexParagraphParameterDimen,coretexParagraphParameterGlue,
\ coretexParagraphParameterInteger,coretexParagraphParameterToken
syn cluster coretexPenalties
\ contains=coretexPenaltiesCommand,coretexPenaltiesInternalQuantity,
\ coretexPenaltiesParameterInteger
syn cluster coretexRegisters
\ contains=coretexRegistersCommand,coretexRegistersInternalQuantity
syn cluster coretexTables
\ contains=coretexTablesCommand,coretexTablesParameterGlue,
\ coretexTablesParameterToken
syn cluster coretexCommand
\ contains=coretexBoxCommand,coretexCharacterCommand,
\ coretexDebuggingCommand,coretexFileIOCommand,
\ coretexFontsCommand,coretexGlueCommand,
\ coretexHyphenationCommand,coretexInsertsCommand,
\ coretexJobCommand,coretexKernCommand,coretexLogicCommand,
\ coretexMacroCommand,coretexMarksCommand,coretexMathCommand,
\ coretexParagraphCommand,coretexPenaltiesCommand,coretexRegistersCommand,
\ coretexTablesCommand
syn match coretexBoxCommand display contains=@NoSpell
\ '\\\%([hv]\=box\|[cx]\=leaders\|copy\|[hv]rule\|lastbox\|setbox\|un[hv]\%(box\|copy\)\|vtop\)\>'
syn match coretexCharacterCommand display contains=@NoSpell
\ '\\\%([] ]\|\%(^^M\|accent\|char\|\%(lower\|upper\)case\|number\|romannumeral\|string\)\>\)'
syn match coretexDebuggingCommand display contains=@NoSpell
\ '\\\%(\%(batch\|\%(non\|error\)stop\|scroll\)mode\|\%(err\)\=message\|meaning\|show\%(box\%(breadth\|depth\)\=\|lists\|the\)\)\>'
syn match coretexFileIOCommand display contains=@NoSpell
\ '\\\%(\%(close\|open\)\%(in\|out\)\|endinput\|immediate\|input\|read\|shipout\|special\|write\)\>'
syn match coretexFontsCommand display contains=@NoSpell
\ '\\\%(/\|fontname\)\>'
syn match coretexGlueCommand display contains=@NoSpell
\ '\\\%([hv]\|un\)skip\>'
syn match coretexHyphenationCommand display contains=@NoSpell
\ '\\\%(discretionary\|hyphenation\|patterns\|setlanguage\)\>'
syn match coretexInsertsCommand display contains=@NoSpell
\ '\\\%(insert\|split\%(bot\|first\)mark\|vsplit\)\>'
syn match coretexJobCommand display contains=@NoSpell
\ '\\\%(dump\|end\|jobname\)\>'
syn match coretexKernCommand display contains=@NoSpell
\ '\\\%(kern\|lower\|move\%(left\|right\)\|raise\|unkern\)\>'
syn match coretexLogicCommand display contains=@NoSpell
\ '\\\%(else\|fi\|if[a-zA-Z@]\+\|or\)\>'
" \ '\\\%(else\|fi\|if\%(case\|cat\|dim\|eof\|false\|[hv]box\|[hmv]mode\|inner\|num\|odd\|true\|void\|x\)\=\|or\)\>'
syn match coretexMacroCommand display contains=@NoSpell
\ '\\\%(after\%(assignment\|group\)\|\%(begin\|end\)group\|\%(end\)\=csname\|e\=def\|expandafter\|futurelet\|global\|let\|long\|noexpand\|outer\|relax\|the\)\>'
syn match coretexMarksCommand display contains=@NoSpell
\ '\\\%(bot\|first\|top\)\=mark\>'
syn match coretexMathCommand display contains=@NoSpell
\ '\\\%(abovewithdelims\|delimiter\|display\%(limits\|style\)\|l\=eqno\|left\|\%(no\)\=limits\|math\%(accent\|bin\|char\|choice\|close\|code\|inner\|op\|open\|ord\|punct\|rel\)\|mkern\|mskip\|muskipdef\|nonscript\|\%(over\|under\)line\|radical\|right\|\%(\%(script\)\{1,2}\|text\)style\|vcenter\)\>'
syn match coretexParagraphCommand display contains=@NoSpell
\ '\\\%(ignorespaces\|indent\|no\%(boundary\|indent\)\|par\|vadjust\)\>'
syn match coretexPenaltiesCommand display contains=@NoSpell
\ '\\\%(un\)\=penalty\>'
syn match coretexRegistersCommand display contains=@NoSpell
\ '\\\%(advance\|\%(count\|dimen\|skip\|toks\)def\|divide\|multiply\)\>'
syn match coretexTablesCommand display contains=@NoSpell
\ '\\\%(cr\|crcr\|[hv]align\|noalign\|omit\|span\)\>'
syn cluster coretexDerivedCommand
\ contains=coretexGlueDerivedCommand,coretexHyphenationDerivedCommand,
\ coretexMacroDerivedCommand,coretexMathDerivedCommand
syn match coretexGlueDerivedCommand display contains=@NoSpell
\ '\\\%([hv]fil\%(l\|neg\)\=\|[hv]ss\)\>'
syn match coretexHyphenationDerivedCommand display contains=@NoSpell
\ '\\-'
syn match coretexMacroDerivedCommand display contains=@NoSpell
\ '\\[gx]def\>'
syn match coretexMathDerivedCommand display contains=@NoSpell
\ '\\\%(above\|atop\%(withdelims\)\=\|mathchardef\|over\|overwithdelims\)\>'
syn cluster coretexInternalQuantity
\ contains=coretexBoxInternalQuantity,coretexCharacterInternalQuantity,
\ coretexFileIOInternalQuantity,coretexFontsInternalQuantity,
\ coretexHyphenationInternalQuantity,coretexJobInternalQuantity,
\ coretexKernInternalQuantity,coretexMathInternalQuantity,
\ coretexPageInternalQuantity,coretexParagraphInternalQuantity,
\ coretexPenaltiesInternalQuantity,coretexRegistersInternalQuantity
syn match coretexBoxInternalQuantity display contains=@NoSpell
\ '\\\%(badness\|dp\|ht\|prevdepth\|wd\)\>'
syn match coretexCharacterInternalQuantity display contains=@NoSpell
\ '\\\%(catcode\|chardef\|\%([ul]c\|sf\)code\)\>'
syn match coretexFileIOInternalQuantity display contains=@NoSpell
\ '\\inputlineno\>'
syn match coretexFontsInternalQuantity display contains=@NoSpell
\ '\\\%(font\%(dimen\)\=\|nullfont\)\>'
syn match coretexHyphenationInternalQuantity display contains=@NoSpell
\ '\\hyphenchar\>'
syn match coretexJobInternalQuantity display contains=@NoSpell
\ '\\deadcycles\>'
syn match coretexKernInternalQuantity display contains=@NoSpell
\ '\\lastkern\>'
syn match coretexMathInternalQuantity display contains=@NoSpell
\ '\\\%(delcode\|mathcode\|muskip\|\%(\%(script\)\{1,2}\|text\)font\|skewchar\)\>'
syn match coretexPageInternalQuantity display contains=@NoSpell
\ '\\page\%(depth\|fil\{1,3}stretch\|goal\|shrink\|stretch\|total\)\>'
syn match coretexParagraphInternalQuantity display contains=@NoSpell
\ '\\\%(prevgraf\|spacefactor\)\>'
syn match coretexPenaltiesInternalQuantity display contains=@NoSpell
\ '\\lastpenalty\>'
syn match coretexRegistersInternalQuantity display contains=@NoSpell
\ '\\\%(count\|dimen\|skip\|toks\)\d\+\>'
syn cluster coretexParameterDimen
\ contains=coretexBoxParameterDimen,coretexInsertsParameterDimen,
\ coretexMathParameterDimen,coretexPageParameterDimen,
\ coretexParagraphParameterDimen
syn match coretexBoxParameterDimen display contains=@NoSpell
\ '\\\%(boxmaxdepth\|[hv]fuzz\|overfullrule\)\>'
syn match coretexInsertsParameterDimen display contains=@NoSpell
\ '\\splitmaxdepth\>'
syn match coretexMathParameterDimen display contains=@NoSpell
\ '\\\%(delimitershortfall\|display\%(indent\|width\)\|mathsurround\|nulldelimiterspace\|predisplaysize\|scriptspace\)\>'
syn match coretexPageParameterDimen display contains=@NoSpell
\ '\\\%([hv]offset\|maxdepth\|vsize\)\>'
syn match coretexParagraphParameterDimen display contains=@NoSpell
\ '\\\%(emergencystretch\|\%(hang\|par\)indent\|hsize\|lineskiplimit\)\>'
syn cluster coretexParameterGlue
\ contains=coretexInsertsParameterGlue,coretexMathParameterGlue,
\ coretexPageParameterGlue,coretexParagraphParameterGlue,
\ coretexTablesParameterGlue
syn match coretexInsertsParameterGlue display contains=@NoSpell
\ '\\splittopskip\>'
syn match coretexMathParameterGlue display contains=@NoSpell
\ '\\\%(above\|below\)display\%(short\)\=skip\>'
syn match coretexPageParameterGlue display contains=@NoSpell
\ '\\topskip\>'
syn match coretexParagraphParameterGlue display contains=@NoSpell
\ '\\\%(baseline\|left\|line\|par\%(fill\)\=\|right\|x\=space\)skip\>'
syn match coretexTablesParameterGlue display contains=@NoSpell
\ '\\tabskip\>'
syn cluster coretexParameterInteger
\ contains=coretexBoxParameterInteger,coretexCharacterParameterInteger,
\ coretexDebuggingParameterInteger,coretexHyphenationParameterInteger,
\ coretexInsertsParameterInteger,coretexJobParameterInteger,
\ coretexMacroParameterInteger,coretexMathParameterInteger,
\ coretexParagraphParameterInteger,coretexPenaltiesParameterInteger,
syn match coretexBoxParameterInteger display contains=@NoSpell
\ '\\[hv]badness\>'
syn match coretexCharacterParameterInteger display contains=@NoSpell
\ '\\\%(\%(endline\|escape\|newline\)char\)\>'
syn match coretexDebuggingParameterInteger display contains=@NoSpell
\ '\\\%(errorcontextlines\|pausing\|tracing\%(commands\|lostchars\|macros\|online\|output\|pages\|paragraphs\|restores|stats\)\)\>'
syn match coretexHyphenationParameterInteger display contains=@NoSpell
\ '\\\%(defaulthyphenchar\|language\|\%(left\|right\)hyphenmin\|uchyph\)\>'
syn match coretexInsertsParameterInteger display contains=@NoSpell
\ '\\\%(holdinginserts\)\>'
syn match coretexJobParameterInteger display contains=@NoSpell
\ '\\\%(day\|mag\|maxdeadcycles\|month\|time\|year\)\>'
syn match coretexMacroParameterInteger display contains=@NoSpell
\ '\\globaldefs\>'
syn match coretexMathParameterInteger display contains=@NoSpell
\ '\\\%(binoppenalty\|defaultskewchar\|delimiterfactor\|displaywidowpenalty\|fam\|\%(post\|pre\)displaypenalty\|relpenalty\)\>'
syn match coretexParagraphParameterInteger display contains=@NoSpell
\ '\\\%(\%(adj\|\%(double\|final\)hyphen\)demerits\|looseness\|\%(pre\)\=tolerance\)\>'
syn match coretexPenaltiesParameterInteger display contains=@NoSpell
\ '\\\%(broken\|club\|exhyphen\|floating\|hyphen\|interline\|line\|output\|widow\)penalty\>'
syn cluster coretexParameterMuglue
\ contains=coretexMathParameterMuglue
syn match coretexMathParameterMuglue display contains=@NoSpell
\ '\\\%(med\|thick\|thin\)muskip\>'
syn cluster coretexParameterDimen
\ contains=coretexBoxParameterToken,coretexDebuggingParameterToken,
\ coretexFileIOParameterToken,coretexMathParameterToken,
\ coretexParagraphParameterToken,coretexTablesParameterToken
syn match coretexBoxParameterToken display contains=@NoSpell
\ '\\every[hv]box\>'
syn match coretexDebuggingParameterToken display contains=@NoSpell
\ '\\errhelp\>'
syn match coretexFileIOParameterToken display contains=@NoSpell
\ '\\output\>'
syn match coretexMathParameterToken display contains=@NoSpell
\ '\\every\%(display\|math\)\>'
syn match coretexParagraphParameterToken display contains=@NoSpell
\ '\\everypar\>'
syn match coretexTablesParameterToken display contains=@NoSpell
\ '\\everycr\>'
hi def link coretexCharacter Character
hi def link coretexNumber Number
hi def link coretexIdentifier Identifier
hi def link coretexStatement Statement
hi def link coretexConditional Conditional
hi def link coretexPreProc PreProc
hi def link coretexMacro Macro
hi def link coretexType Type
hi def link coretexDebug Debug
hi def link coretexTodo Todo
hi def link coretexComment Comment
hi def link coretexDimension coretexNumber
hi def link coretexCommand coretexStatement
hi def link coretexBoxCommand coretexCommand
hi def link coretexCharacterCommand coretexCharacter
hi def link coretexDebuggingCommand coretexDebug
hi def link coretexFileIOCommand coretexCommand
hi def link coretexFontsCommand coretexType
hi def link coretexGlueCommand coretexCommand
hi def link coretexHyphenationCommand coretexCommand
hi def link coretexInsertsCommand coretexCommand
hi def link coretexJobCommand coretexPreProc
hi def link coretexKernCommand coretexCommand
hi def link coretexLogicCommand coretexConditional
hi def link coretexMacroCommand coretexMacro
hi def link coretexMarksCommand coretexCommand
hi def link coretexMathCommand coretexCommand
hi def link coretexParagraphCommand coretexCommand
hi def link coretexPenaltiesCommand coretexCommand
hi def link coretexRegistersCommand coretexCommand
hi def link coretexTablesCommand coretexCommand
hi def link coretexDerivedCommand coretexStatement
hi def link coretexGlueDerivedCommand coretexDerivedCommand
hi def link coretexHyphenationDerivedCommand coretexDerivedCommand
hi def link coretexMacroDerivedCommand coretexDerivedCommand
hi def link coretexMathDerivedCommand coretexDerivedCommand
hi def link coretexInternalQuantity coretexIdentifier
hi def link coretexBoxInternalQuantity coretexInternalQuantity
hi def link coretexCharacterInternalQuantity coretexInternalQuantity
hi def link coretexFileIOInternalQuantity coretexInternalQuantity
hi def link coretexFontsInternalQuantity coretexInternalQuantity
hi def link coretexHyphenationInternalQuantity coretexInternalQuantity
hi def link coretexJobInternalQuantity coretexInternalQuantity
hi def link coretexKernInternalQuantity coretexInternalQuantity
hi def link coretexMathInternalQuantity coretexInternalQuantity
hi def link coretexPageInternalQuantity coretexInternalQuantity
hi def link coretexParagraphInternalQuantity coretexInternalQuantity
hi def link coretexPenaltiesInternalQuantity coretexInternalQuantity
hi def link coretexRegistersInternalQuantity coretexInternalQuantity
hi def link coretexParameterDimen coretexNumber
hi def link coretexBoxParameterDimen coretexParameterDimen
hi def link coretexInsertsParameterDimen coretexParameterDimen
hi def link coretexMathParameterDimen coretexParameterDimen
hi def link coretexPageParameterDimen coretexParameterDimen
hi def link coretexParagraphParameterDimen coretexParameterDimen
hi def link coretexParameterGlue coretexNumber
hi def link coretexInsertsParameterGlue coretexParameterGlue
hi def link coretexMathParameterGlue coretexParameterGlue
hi def link coretexPageParameterGlue coretexParameterGlue
hi def link coretexParagraphParameterGlue coretexParameterGlue
hi def link coretexTablesParameterGlue coretexParameterGlue
hi def link coretexParameterInteger coretexNumber
hi def link coretexBoxParameterInteger coretexParameterInteger
hi def link coretexCharacterParameterInteger coretexParameterInteger
hi def link coretexDebuggingParameterInteger coretexParameterInteger
hi def link coretexHyphenationParameterInteger coretexParameterInteger
hi def link coretexInsertsParameterInteger coretexParameterInteger
hi def link coretexJobParameterInteger coretexParameterInteger
hi def link coretexMacroParameterInteger coretexParameterInteger
hi def link coretexMathParameterInteger coretexParameterInteger
hi def link coretexParagraphParameterInteger coretexParameterInteger
hi def link coretexPenaltiesParameterInteger coretexParameterInteger
hi def link coretexParameterMuglue coretexNumber
hi def link coretexMathParameterMuglue coretexParameterMuglue
hi def link coretexParameterToken coretexIdentifier
hi def link coretexBoxParameterToken coretexParameterToken
hi def link coretexDebuggingParameterToken coretexParameterToken
hi def link coretexFileIOParameterToken coretexParameterToken
hi def link coretexMathParameterToken coretexParameterToken
hi def link coretexParagraphParameterToken coretexParameterToken
hi def link coretexTablesParameterToken coretexParameterToken
let b:current_syntax = "coretex"
let &cpo = s:cpo_save
unlet s:cpo_save