Blame data/language-specs/latex.lang

Packit a7d494
Packit a7d494
Packit a7d494
Packit a7d494
 This file is part of GtkSourceView
Packit a7d494
Packit a7d494
 Copyright (C) 2005-2007 - Marco Barisione <barisione@gmail.com>
Packit a7d494
 Copyright (C) 2012-2013 - Tobias Marczewski <tmarczewski@ed-alumni.net>
Packit a7d494
 Copyright (C) 2013, 2016 - Sébastien Wilmet <swilmet@gnome.org>
Packit a7d494
Packit a7d494
 GtkSourceView is free software; you can redistribute it and/or
Packit a7d494
 modify it under the terms of the GNU Lesser General Public
Packit a7d494
 License as published by the Free Software Foundation; either
Packit a7d494
 version 2.1 of the License, or (at your option) any later version.
Packit a7d494
Packit a7d494
 GtkSourceView is distributed in the hope that it will be useful,
Packit a7d494
 but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit a7d494
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit a7d494
 Lesser General Public License for more details.
Packit a7d494
Packit a7d494
 You should have received a copy of the GNU Lesser General Public License
Packit a7d494
 along with this library; if not, see <http://www.gnu.org/licenses/>.
Packit a7d494
Packit a7d494
-->
Packit a7d494
<language id="latex" name="LaTeX" version="2.0" _section="Markup">
Packit a7d494
  <metadata>
Packit a7d494
    <property name="mimetypes">text/x-tex</property>
Packit a7d494
    <property name="globs">*.tex;*.ltx;*.sty;*.cls;*.dtx;*.ins;*.bbl</property>
Packit a7d494
    <property name="line-comment-start">%</property>
Packit a7d494
  </metadata>
Packit a7d494
Packit a7d494
  <styles>
Packit a7d494
    <style id="comment"            name="Comment"              map-to="def:comment"/>
Packit a7d494
    <style id="display-math"       name="Math Mode"            map-to="def:string"/>
Packit a7d494
    <style id="inline-math"        name="Inline Math Mode"     map-to="latex:display-math"/>
Packit a7d494
    <style id="math"               name="Math Mode"            map-to="latex:display-math"/>
Packit a7d494
    <style id="math-boundary"      name="Math Boundary"        map-to="latex:display-math"/>
Packit a7d494
    <style id="include"            name="Include"              map-to="def:keyword"/>
Packit a7d494
    <style id="common-commands"    name="Command"              map-to="def:keyword"/>
Packit a7d494
    <style id="command"            name="Command"              map-to="def:keyword"/>
Packit a7d494
    <style id="verbatim"           name="Verbatim"             map-to="def:comment"/>
Packit a7d494
    <style id="special-char"       name="Special Character"    map-to="def:special-char"/>
Packit a7d494
    <style id="part"               name="Part Heading"          map-to="def:heading0"/>
Packit a7d494
    <style id="chapter"            name="Chapter Heading"       map-to="def:heading1"/>
Packit a7d494
    <style id="section"            name="Section Heading"       map-to="def:heading2"/>
Packit a7d494
    <style id="subsection"         name="SubSection Heading"    map-to="def:heading3"/>
Packit a7d494
    <style id="subsubsection"      name="SubSubSection Heading" map-to="def:heading4"/>
Packit a7d494
    <style id="paragraph"          name="Paragraph Heading"     map-to="def:heading5"/>
Packit a7d494
    <style id="subparagraph"       name="SubParagraph Heading"  map-to="def:heading6"/>
Packit a7d494
  </styles>
Packit a7d494
Packit a7d494
  <definitions>
Packit a7d494
Packit a7d494
    
Packit a7d494
Packit a7d494
    <context id="comment">
Packit a7d494
      <include>
Packit a7d494
        <context id="end-line-comment" style-ref="comment">
Packit a7d494
          <start>%</start>
Packit a7d494
          <end>$</end>
Packit a7d494
          <include>
Packit a7d494
            <context ref="def:in-comment"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
Packit a7d494
        <context id="comment-env" style-ref="comment" class="no-spell-check">
Packit a7d494
          <start>\\begin\{comment\}</start>
Packit a7d494
          <end>\\end\{comment\}</end>
Packit a7d494
          <include>
Packit a7d494
            <context ref="def:in-comment"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    
Packit a7d494
Packit a7d494
    <context id="verbatim-env" style-inside="true" style-ref="verbatim" class-disabled="no-spell-check">
Packit a7d494
      <start>(\\begin)\{(verbatim\*?|alltt)\}</start>
Packit a7d494
      <end>(\\end)\{(\%{2@start})\}</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/>
Packit a7d494
        <context sub-pattern="1" where="end" style-ref="common-commands" class="no-spell-check"/>
Packit a7d494
        <context sub-pattern="2" where="start" class="no-spell-check"/>
Packit a7d494
        <context sub-pattern="2" where="end" class="no-spell-check"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="lstlisting-env" style-inside="true" style-ref="verbatim" class="no-spell-check">
Packit a7d494
      <start>(\\begin)\{lstlisting\}</start>
Packit a7d494
      <end>(\\end)\{lstlisting\}</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="1" where="start" style-ref="common-commands"/>
Packit a7d494
        <context sub-pattern="1" where="end" style-ref="common-commands"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    
Packit a7d494
Packit a7d494
    <context id="R-block" class="no-spell-check">
Packit a7d494
      <start>(\\begin)\{(Scode|Sinput|Soutput)\}</start>
Packit a7d494
      <end>(\\end)\{\%{2@start}\}</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="1" where="start" style-ref="common-commands"/>
Packit a7d494
        <context sub-pattern="1" where="end" style-ref="common-commands"/>
Packit a7d494
        <context ref="r:r"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    
Packit a7d494
        Examples: \url{http://google.de}, \href{http://google.de}{Google}
Packit a7d494
Packit a7d494
        Supports also urls with math symbols: \url{https://example.com/$test}
Packit a7d494
    -->
Packit a7d494
    <context id="urls">
Packit a7d494
      <include>
Packit a7d494
        <context ref="url-command"/>
Packit a7d494
        <context ref="href-command"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="url-command" class="no-spell-check">
Packit a7d494
      <match extended="true">
Packit a7d494
        (\\url)            # url command.
Packit a7d494
        \{                 # Literal opening braces.
Packit a7d494
          [ \t]*           # Optional spaces or tabs after the opening braces.
Packit a7d494
          .*?              # URL
Packit a7d494
          [ \t]*           # Optional spaces or tabs before the closing braces.
Packit a7d494
        \}                 # closing url command.
Packit a7d494
      </match>
Packit a7d494
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="1" style-ref="command"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="href-command">
Packit a7d494
      <match extended="true">
Packit a7d494
        (\\href)           # url command.
Packit a7d494
        \{(                # Literal opening braces.
Packit a7d494
          [ \t]*           # Optional spaces or tabs after the opening braces.
Packit a7d494
          .*?              # URL
Packit a7d494
          [ \t]*           # Optional spaces or tabs before the closing braces.
Packit a7d494
        )\}                # closing url command.
Packit a7d494
        \{(.*?)\}          # link text
Packit a7d494
      </match>
Packit a7d494
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="1" class="no-spell-check" style-ref="command"/>
Packit a7d494
        <context sub-pattern="2" class="no-spell-check"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    
Packit a7d494
        following must support these cases:
Packit a7d494
Packit a7d494
          \lstinline[]{code in here}
Packit a7d494
          \lstinline[key=val, key=val]{code in here}
Packit a7d494
          \lstinline[key=val, key=val]!code in here!
Packit a7d494
          \lstinline[]!code in here!
Packit a7d494
          \lstinline[][code in here[
Packit a7d494
          \lstinline[NOT code in here, must specify empty optional argument to use square brackets[
Packit a7d494
          \lstinline{code in here}
Packit a7d494
          \lstinline{code in {here} but NOT in here}  % brackets do not nest
Packit a7d494
          \lstinline!code in here!
Packit a7d494
          \lstinline=code in here=
Packit a7d494
          \lstinline{this needs to fail{
Packit a7d494
Packit a7d494
          If using \verb instead of \lstinline, the brackets cannot be used
Packit a7d494
        -->
Packit a7d494
    <context id="lstinline-curly-brackets" style-inside="true" style-ref="verbatim" class="no-spell-check">
Packit a7d494
      <start>(\\lstinline)(\[.*?\])?{</start>
Packit a7d494
      <end>}</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="1" where="start" style-ref="command"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="lstinline-square-brackets" style-inside="true" style-ref="verbatim" class="no-spell-check">
Packit a7d494
      
Packit a7d494
           optional argument, even if empty -->
Packit a7d494
      <start>(\\lstinline)(\[.*?\])\[</start>
Packit a7d494
      <end>\[</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="1" where="start" style-ref="command"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="lstinline" style-inside="true" style-ref="verbatim" class="no-spell-check">
Packit a7d494
      <start>(\\lstinline)(\[.*?\])?((?!\[)\S)</start>  
Packit a7d494
      <end>\%{3@start}</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="1" where="start" style-ref="command"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    
Packit a7d494
    <context id="verbatim-inline" style-inside="true" style-ref="verbatim" class-disabled="no-spell-check">
Packit a7d494
      <start>(\\verb)\*?(\S)</start>
Packit a7d494
      <end>\%{2@start}</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="1" where="start" style-ref="command" class="no-spell-check"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="verbatim">
Packit a7d494
      <include>
Packit a7d494
        <context ref="verbatim-env"/>
Packit a7d494
        <context ref="lstlisting-env"/>
Packit a7d494
        <context ref="verbatim-inline"/>
Packit a7d494
        <context ref="lstinline-curly-brackets"/>
Packit a7d494
        <context ref="lstinline-square-brackets"/>
Packit a7d494
        <context ref="lstinline"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    
Packit a7d494
Packit a7d494
    <context id="common-commands" style-ref="common-commands" class="no-spell-check">
Packit a7d494
      <prefix>\\</prefix>
Packit a7d494
      
Packit a7d494
        boundary but it is allowed in latex -->
Packit a7d494
      <suffix>(\b|(?=_))</suffix>
Packit a7d494
      <keyword>Alpha</keyword>
Packit a7d494
      <keyword>Beta</keyword>
Packit a7d494
      <keyword>Chi</keyword>
Packit a7d494
      <keyword>Delta</keyword>
Packit a7d494
      <keyword>Epsilon</keyword>
Packit a7d494
      <keyword>Eta</keyword>
Packit a7d494
      <keyword>Gamma</keyword>
Packit a7d494
      <keyword>Iota</keyword>
Packit a7d494
      <keyword>Kappa</keyword>
Packit a7d494
      <keyword>Lambda</keyword>
Packit a7d494
      <keyword>Leftarrow</keyword>
Packit a7d494
      <keyword>Leftrightarrow</keyword>
Packit a7d494
      <keyword>Mu</keyword>
Packit a7d494
      <keyword>Nu</keyword>
Packit a7d494
      <keyword>Omega</keyword>
Packit a7d494
      <keyword>Phi</keyword>
Packit a7d494
      <keyword>Pi</keyword>
Packit a7d494
      <keyword>Psi</keyword>
Packit a7d494
      <keyword>Rho</keyword>
Packit a7d494
      <keyword>Rightarrow</keyword>
Packit a7d494
      <keyword>Sigma</keyword>
Packit a7d494
      <keyword>Tau</keyword>
Packit a7d494
      <keyword>Zeta</keyword>
Packit a7d494
      <keyword>alpha</keyword>
Packit a7d494
      <keyword>appendix</keyword>
Packit a7d494
      <keyword>begin</keyword>
Packit a7d494
      <keyword>beta</keyword>
Packit a7d494
      <keyword>bigcap</keyword>
Packit a7d494
      <keyword>bigcup</keyword>
Packit a7d494
      <keyword>cap</keyword>
Packit a7d494
      <keyword>cdot</keyword>
Packit a7d494
      <keyword>chapter</keyword>
Packit a7d494
      <keyword>chi</keyword>
Packit a7d494
      <keyword>cite</keyword>
Packit a7d494
      <keyword>cup</keyword>
Packit a7d494
      <keyword>delta</keyword>
Packit a7d494
      <keyword>documentclass</keyword>
Packit a7d494
      <keyword>end</keyword>
Packit a7d494
      <keyword>enumi</keyword>
Packit a7d494
      <keyword>enumii</keyword>
Packit a7d494
      <keyword>enumiii</keyword>
Packit a7d494
      <keyword>enumiv</keyword>
Packit a7d494
      <keyword>epsilon</keyword>
Packit a7d494
      <keyword>equation</keyword>
Packit a7d494
      <keyword>eta</keyword>
Packit a7d494
      <keyword>exists</keyword>
Packit a7d494
      <keyword>figure</keyword>
Packit a7d494
      <keyword>footnote</keyword>
Packit a7d494
      <keyword>footnotemark</keyword>
Packit a7d494
      <keyword>footnotetext</keyword>
Packit a7d494
      <keyword>forall</keyword>
Packit a7d494
      <keyword>gamma</keyword>
Packit a7d494
      <keyword>geq</keyword>
Packit a7d494
      <keyword>in</keyword>
Packit a7d494
      <keyword>int</keyword>
Packit a7d494
      <keyword>iota</keyword>
Packit a7d494
      <keyword>kappa</keyword>
Packit a7d494
      <keyword>label</keyword>
Packit a7d494
      <keyword>lambda</keyword>
Packit a7d494
      <keyword>ldots</keyword>
Packit a7d494
      <keyword>leftarrow</keyword>
Packit a7d494
      <keyword>leq</keyword>
Packit a7d494
      <keyword>mpfootnote</keyword>
Packit a7d494
      <keyword>mu</keyword>
Packit a7d494
      <keyword>neq</keyword>
Packit a7d494
      <keyword>newcommand</keyword>
Packit a7d494
      <keyword>newenvironment</keyword>
Packit a7d494
      <keyword>newfont</keyword>
Packit a7d494
      <keyword>newtheorem</keyword>
Packit a7d494
      <keyword>not</keyword>
Packit a7d494
      <keyword>notin</keyword>
Packit a7d494
      <keyword>nu</keyword>
Packit a7d494
      <keyword>omega</keyword>
Packit a7d494
      <keyword>onecolumn</keyword>
Packit a7d494
      <keyword>page</keyword>
Packit a7d494
      <keyword>pageref</keyword>
Packit a7d494
      <keyword>paragraph</keyword>
Packit a7d494
      <keyword>part</keyword>
Packit a7d494
      <keyword>phi</keyword>
Packit a7d494
      <keyword>pi</keyword>
Packit a7d494
      <keyword>prod</keyword>
Packit a7d494
      <keyword>psi</keyword>
Packit a7d494
      <keyword>qquad</keyword>
Packit a7d494
      <keyword>quad</keyword>
Packit a7d494
      <keyword>ref</keyword>
Packit a7d494
      <keyword>rho</keyword>
Packit a7d494
      <keyword>rightarrow</keyword>
Packit a7d494
      <keyword>section</keyword>
Packit a7d494
      <keyword>setminus</keyword>
Packit a7d494
      <keyword>sigma</keyword>
Packit a7d494
      <keyword>subparagraph</keyword>
Packit a7d494
      <keyword>subsection</keyword>
Packit a7d494
      <keyword>subset</keyword>
Packit a7d494
      <keyword>subseteq</keyword>
Packit a7d494
      <keyword>subsetneq</keyword>
Packit a7d494
      <keyword>subsubsection</keyword>
Packit a7d494
      <keyword>subsubsubsection</keyword>
Packit a7d494
      <keyword>sum</keyword>
Packit a7d494
      <keyword>supset</keyword>
Packit a7d494
      <keyword>supseteq</keyword>
Packit a7d494
      <keyword>supsetneq</keyword>
Packit a7d494
      <keyword>table</keyword>
Packit a7d494
      <keyword>tau</keyword>
Packit a7d494
      <keyword>times</keyword>
Packit a7d494
      <keyword>twocolumn</keyword>
Packit a7d494
      <keyword>varepsilon</keyword>
Packit a7d494
      <keyword>varphi</keyword>
Packit a7d494
      <keyword>zeta</keyword>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="generic-command" style-ref="command" class="no-spell-check" extend-parent="false">
Packit a7d494
      <match>\\\@?[[:alnum:]]+\*?</match>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="specific-commands">
Packit a7d494
      <include>
Packit a7d494
        <context id="documentclass" class="no-spell-check">
Packit a7d494
          <match>(\\documentclass)(\[.*\])?(\{.*\})?</match>
Packit a7d494
          <include>
Packit a7d494
            <context sub-pattern="1" style-ref="common-commands"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
Packit a7d494
        <context id="include" class="no-spell-check">
Packit a7d494
          <match>(\\(input|include|includeonly|usepackage))\b(\[.*\])?(\{.*\})?</match>
Packit a7d494
          <include>
Packit a7d494
            <context sub-pattern="1" style-ref="include"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
Packit a7d494
        <context id="begin-end-command" class="no-spell-check">
Packit a7d494
          <match>(\\(begin|end))\{.*\}</match>
Packit a7d494
          <include>
Packit a7d494
            <context sub-pattern="1" style-ref="common-commands"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    
Packit a7d494
Packit a7d494
    <define-regex id="accents" extended="true">
Packit a7d494
      (\\(                                      #leading backslash
Packit a7d494
         (                                      #1-Accents-
Packit a7d494
          [bcdHruv\.\^'`~"=]                    #  accent symbol
Packit a7d494
          \s*\{([a-zA-Z] | \\i | \\j)\} |       #  letter (\i \j for i,j without dot)
Packit a7d494
          [\.\^'`~"=]\s*([a-zA-Z] | \\i | \\j) |#  non-letter accents without braces
Packit a7d494
          t\s*\{([a-zA-Z] | \\i | \\j){2}\}     #  special accent over two letters
Packit a7d494
         ) | (                                  #2-Special letters-
Packit a7d494
          (aa|AA | ae|AE | oe|OE | ss|SS |      #  letters followed by a non-word
Packit a7d494
          [oO] | [lL])(?![a-zA-Z_@])            #  character or e.g. \l causes
Packit a7d494
         )                                      #  unwanted behaviour (i.e. \label)
Packit a7d494
        )) | (!` | \?`)                         #3-Spanish punctuation
Packit a7d494
    </define-regex>
Packit a7d494
Packit a7d494
    <context id="special-char">
Packit a7d494
      <include>
Packit a7d494
        
Packit a7d494
             example the hat (^) can be used as an accent and will be placed over
Packit a7d494
             the following letter (e.g. \^o will NOT produce ^o) -->
Packit a7d494
        <context id="accents" style-ref="special-char" class="no-spell-check">
Packit a7d494
          <match>\%{accents}</match>
Packit a7d494
        </context>
Packit a7d494
Packit a7d494
        <context id="special-symbols" style-ref="special-char" class="no-spell-check">
Packit a7d494
          <prefix>\\</prefix>
Packit a7d494
          <suffix></suffix>
Packit a7d494
Packit a7d494
          <keyword>\$</keyword>
Packit a7d494
          <keyword>&</keyword>
Packit a7d494
          <keyword>%</keyword>
Packit a7d494
          <keyword>#</keyword>
Packit a7d494
          <keyword>_</keyword>
Packit a7d494
          <keyword>\{</keyword>
Packit a7d494
          <keyword>\}</keyword>
Packit a7d494
          <keyword>~</keyword>
Packit a7d494
          <keyword>\^</keyword>
Packit a7d494
          <keyword>\\</keyword>
Packit a7d494
        </context>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    
Packit a7d494
Packit a7d494
    <context id="curly-braces-pair">
Packit a7d494
      <start>\{</start>
Packit a7d494
      <end>\}</end>
Packit a7d494
      <include>
Packit a7d494
        <context ref="curly-braces-pair"/>
Packit a7d494
        <context ref="latex"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="headings">
Packit a7d494
      <include>
Packit a7d494
        <context id="part" style-inside="true" style-ref="part" end-at-line-end="true" class-disabled="no-spell-check">
Packit a7d494
          <start>(\\part\*?)\{</start>
Packit a7d494
          <end>\}</end>
Packit a7d494
          <include>
Packit a7d494
            <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/>
Packit a7d494
            <context ref="curly-braces-pair"/>
Packit a7d494
            <context ref="latex"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
Packit a7d494
        <context id="chapter" style-inside="true" style-ref="chapter" end-at-line-end="true" class-disabled="no-spell-check">
Packit a7d494
          <start>(\\chapter\*?)\{</start>
Packit a7d494
          <end>\}</end>
Packit a7d494
          <include>
Packit a7d494
            <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/>
Packit a7d494
            <context ref="curly-braces-pair"/>
Packit a7d494
            <context ref="latex"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
Packit a7d494
        <context id="section" style-inside="true" style-ref="section" end-at-line-end="true" class-disabled="no-spell-check">
Packit a7d494
          <start>(\\section\*?)\{</start>
Packit a7d494
          <end>\}</end>
Packit a7d494
          <include>
Packit a7d494
            <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/>
Packit a7d494
            <context ref="curly-braces-pair"/>
Packit a7d494
            <context ref="latex"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
Packit a7d494
        <context id="subsection" style-inside="true" style-ref="subsection" end-at-line-end="true" class-disabled="no-spell-check">
Packit a7d494
          <start>(\\subsection\*?)\{</start>
Packit a7d494
          <end>\}</end>
Packit a7d494
          <include>
Packit a7d494
            <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/>
Packit a7d494
            <context ref="curly-braces-pair"/>
Packit a7d494
            <context ref="latex"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
Packit a7d494
        <context id="subsubsection" style-inside="true" style-ref="subsubsection" end-at-line-end="true" class-disabled="no-spell-check">
Packit a7d494
          <start>(\\subsubsection\*?)\{</start>
Packit a7d494
          <end>\}</end>
Packit a7d494
          <include>
Packit a7d494
            <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/>
Packit a7d494
            <context ref="curly-braces-pair"/>
Packit a7d494
            <context ref="latex"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
Packit a7d494
        <context id="paragraph" style-inside="true" style-ref="paragraph" end-at-line-end="true" class-disabled="no-spell-check">
Packit a7d494
          <start>(\\paragraph\*?)\{</start>
Packit a7d494
          <end>\}</end>
Packit a7d494
          <include>
Packit a7d494
            <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/>
Packit a7d494
            <context ref="curly-braces-pair"/>
Packit a7d494
            <context ref="latex"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
Packit a7d494
        <context id="subparagraph" style-inside="true" style-ref="subparagraph" end-at-line-end="true" class-disabled="no-spell-check">
Packit a7d494
          <start>(\\subparagraph\*?)\{</start>
Packit a7d494
          <end>\}</end>
Packit a7d494
          <include>
Packit a7d494
            <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/>
Packit a7d494
            <context ref="curly-braces-pair"/>
Packit a7d494
            <context ref="latex"/>
Packit a7d494
          </include>
Packit a7d494
        </context>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    
Packit a7d494
Packit a7d494
    
Packit a7d494
    <context id="math-command" class="no-spell-check" style-ref="common-commands">
Packit a7d494
      <match extended="true">
Packit a7d494
        \\(
Packit a7d494
          frac | sqrt | sum | (co)?prod | o?int |           #-Functions
Packit a7d494
          infty | (c|d|v)dots | nonumber |                  #-special in math mode
Packit a7d494
          mathnormal | math(rm|sf|tt|it|bf|cal) |           #-Math font commands
Packit a7d494
          (display|text|script(script)?)style |             #-Math size commands
Packit a7d494
          alpha | beta | (g|G)amma | (d|D)elta |            #-Greek letters
Packit a7d494
          (var)?epsilon | zeta | eta | ((vart)|t|T)heta |   ##
Packit a7d494
          iota | kappa | (l|L)ambda | mu | nu | (x|X)i |    ##
Packit a7d494
          ((varp)|p|P)i | (var)?rho | ((vars)|s|S)igma |    ##
Packit a7d494
          tau | (u|U)psilon | ((varp)|p|P)hi | chi |        ##
Packit a7d494
          (p|P)si | (o|O)mega |                             ##
Packit a7d494
          pm | mp | times | div | cdot | ast | star |       #-Binary operators
Packit a7d494
          dd?agger | amalg | (sq)?c(a|u)p | uplus | vee |   ##
Packit a7d494
          wedge | o(plus|minus|times) | (big)?circ |        ##
Packit a7d494
          bullet | (d|D)iamond | (un)?(l|r)hd |             ##
Packit a7d494
          o(slash|dot) | Box | bigtriangle(up|down) |       ##
Packit a7d494
          triangle(left|right) | setminus | wr |            ##
Packit a7d494
          gets | to | ((u|U)p(down)? | (d|D)own)arrow |     #-Arrows and pointers
Packit a7d494
          ((l|L)eft(right)?|(r|R)ight)arrow | (long)mapsto |##
Packit a7d494
          hook(left|right)arrow | (ne|se|sw|nw)arrow |      ##
Packit a7d494
          (left|right)harpoon(up|down) | rightleftharpoons |##
Packit a7d494
          (l|L)ong(left(right)?|right)arrow |               ##
Packit a7d494
          (wide)hat | check | dd?ot | breve | acute |       #-Accents in math mode
Packit a7d494
          grave | bar | vec | (wide)tilde | mathring |      ##
Packit a7d494
          (over|under)(line|brace) | (i|j)math |            ##i, j  dots removed
Packit a7d494
          (arc)?(cosh?|sinh?|tanh?) | arg | coth? | csc |   #-Function names
Packit a7d494
          deg | det | dim | exp | gcd | hom | inf | ker |   ##
Packit a7d494
          lg | lim(inf|sup)? | ln | log | max | min | Pr |  ##
Packit a7d494
          sec | sup                                         ##
Packit a7d494
        )(?=\b)
Packit a7d494
      </match>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="math-spacing" style-ref="special-char">
Packit a7d494
      <match>\\[;:!]</match>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="math-brackets" style-ref="common-commands">
Packit a7d494
      <match extended="true">
Packit a7d494
        \\(left | right | [bB]igg?[lr])  (      # bracket size specifier
Packit a7d494
          \(|\) | \[|\] | \\\{|\\\}   |         # normal brackets (curly escaped)
Packit a7d494
          \|  |  \\\|  |  /  |  \\backslash |   # pipe and slashes
Packit a7d494
          \\(                                   #-symbol commands
Packit a7d494
            [lr]floor | [lr]ceil | [lr]angle |  ##
Packit a7d494
            ([uU]p(down)?|[dD]own)arrow         ##
Packit a7d494
          )                                     ##
Packit a7d494
        )
Packit a7d494
      </match>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="math-super-sub-script" style-ref="common-commands">
Packit a7d494
      <match>\^|_</match>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="in-math" class="no-spell-check">
Packit a7d494
      <include>
Packit a7d494
        <context ref="comment"/>
Packit a7d494
        <context ref="math-command"/>
Packit a7d494
        <context ref="math-spacing"/>
Packit a7d494
        <context ref="math-brackets"/>
Packit a7d494
        <context ref="special-char"/>
Packit a7d494
        <context ref="math-super-sub-script"/>
Packit a7d494
        <context ref="generic-command"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="math-1" style-ref="math" class="no-spell-check">
Packit a7d494
      <start>\$\$</start>
Packit a7d494
      <end>\$\$</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="0" where="start" style-ref="math-boundary"/>
Packit a7d494
        <context sub-pattern="0" where="end" style-ref="math-boundary"/>
Packit a7d494
        <context ref="in-math"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="math-2" style-ref="math" class="no-spell-check">
Packit a7d494
      <start>\\\[</start>
Packit a7d494
      <end>\\\]</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="0" where="start" style-ref="math-boundary"/>
Packit a7d494
        <context sub-pattern="0" where="end" style-ref="math-boundary"/>
Packit a7d494
        <context ref="in-math"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="math-env" style-ref="math" style-inside="true" class="no-spell-check">
Packit a7d494
      <start>(\\begin)\{(math|displaymath|equation\*?|align\*?|eqnarray\*?)\}</start>
Packit a7d494
      <end>(\\end)\{\%{2@start}\}</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="1" where="start" style-ref="common-commands"/>
Packit a7d494
        <context sub-pattern="1" where="end" style-ref="common-commands"/>
Packit a7d494
        <context ref="in-math"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="inline-math-1" style-ref="inline-math" class="no-spell-check">
Packit a7d494
      <start>\$</start>
Packit a7d494
      <end>\$</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="0" where="start" style-ref="math-boundary"/>
Packit a7d494
        <context sub-pattern="0" where="end" style-ref="math-boundary"/>
Packit a7d494
        <context ref="in-math"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="inline-math-2" style-ref="inline-math" class="no-spell-check">
Packit a7d494
      <start>\\\(</start>
Packit a7d494
      <end>\\\)</end>
Packit a7d494
      <include>
Packit a7d494
        <context sub-pattern="0" where="start" style-ref="math-boundary"/>
Packit a7d494
        <context sub-pattern="0" where="end" style-ref="math-boundary"/>
Packit a7d494
        <context ref="in-math"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="math">
Packit a7d494
      <include>
Packit a7d494
        <context ref="math-1"/>
Packit a7d494
        <context ref="math-2"/>
Packit a7d494
        <context ref="math-env"/>
Packit a7d494
        <context ref="inline-math-1"/>
Packit a7d494
        <context ref="inline-math-2"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
Packit a7d494
    <context id="latex">
Packit a7d494
      <include>
Packit a7d494
        <context ref="comment"/>
Packit a7d494
        <context ref="verbatim"/>
Packit a7d494
        <context ref="R-block"/>
Packit a7d494
        <context ref="headings"/>
Packit a7d494
        <context ref="math"/>
Packit a7d494
        <context ref="urls"/>
Packit a7d494
        <context ref="specific-commands"/>
Packit a7d494
        <context ref="common-commands"/>
Packit a7d494
        <context ref="special-char"/>
Packit a7d494
        <context ref="generic-command"/>
Packit a7d494
      </include>
Packit a7d494
    </context>
Packit a7d494
  </definitions>
Packit a7d494
</language>