1<?xml version="1.0"?> 2<!-- 3 4 This file is part of GtkSourceView 5 6 Copyright (C) 2005-2007 - Marco Barisione <barisione@gmail.com> 7 Copyright (C) 2012-2013 - Tobias Marczewski <tmarczewski@ed-alumni.net> 8 Copyright (C) 2013, 2016 - Sébastien Wilmet <swilmet@gnome.org> 9 10 GtkSourceView is free software; you can redistribute it and/or 11 modify it under the terms of the GNU Lesser General Public 12 License as published by the Free Software Foundation; either 13 version 2.1 of the License, or (at your option) any later version. 14 15 GtkSourceView is distributed in the hope that it will be useful, 16 but WITHOUT ANY WARRANTY; without even the implied warranty of 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 Lesser General Public License for more details. 19 20 You should have received a copy of the GNU Lesser General Public License 21 along with this library; if not, see <http://www.gnu.org/licenses/>. 22 23--> 24<language id="latex" name="LaTeX" version="2.0" _section="Markup"> 25 <metadata> 26 <property name="mimetypes">text/x-tex</property> 27 <property name="globs">*.tex;*.ltx;*.sty;*.cls;*.dtx;*.ins;*.bbl</property> 28 <property name="line-comment-start">%</property> 29 </metadata> 30 31 <styles> 32 <style id="comment" name="Comment" map-to="def:comment"/> 33 <style id="display-math" name="Math Mode" map-to="def:string"/> 34 <style id="inline-math" name="Inline Math Mode" map-to="latex:display-math"/> 35 <style id="math" name="Math Mode" map-to="latex:display-math"/> 36 <style id="math-boundary" name="Math Boundary" map-to="latex:display-math"/> 37 <style id="include" name="Include" map-to="def:keyword"/> 38 <style id="common-commands" name="Command" map-to="def:keyword"/> 39 <style id="command" name="Command" map-to="def:keyword"/> 40 <style id="verbatim" name="Verbatim" map-to="def:comment"/> 41 <style id="special-char" name="Special Character" map-to="def:special-char"/> 42 <style id="part" name="Part Heading" map-to="def:heading0"/> 43 <style id="chapter" name="Chapter Heading" map-to="def:heading1"/> 44 <style id="section" name="Section Heading" map-to="def:heading2"/> 45 <style id="subsection" name="SubSection Heading" map-to="def:heading3"/> 46 <style id="subsubsection" name="SubSubSection Heading" map-to="def:heading4"/> 47 <style id="paragraph" name="Paragraph Heading" map-to="def:heading5"/> 48 <style id="subparagraph" name="SubParagraph Heading" map-to="def:heading6"/> 49 </styles> 50 51 <definitions> 52 53 <!-- comment --> 54 55 <context id="comment"> 56 <include> 57 <context id="end-line-comment" style-ref="comment"> 58 <start>%</start> 59 <end>$</end> 60 <include> 61 <context ref="def:in-comment"/> 62 </include> 63 </context> 64 65 <context id="comment-env" style-ref="comment" class="no-spell-check"> 66 <start>\\begin\{comment\}</start> 67 <end>\\end\{comment\}</end> 68 <include> 69 <context ref="def:in-comment"/> 70 </include> 71 </context> 72 </include> 73 </context> 74 75 <!-- verbatim --> 76 77 <context id="verbatim-env" style-inside="true" style-ref="verbatim" class-disabled="no-spell-check"> 78 <start>(\\begin)\{(verbatim\*?|alltt)\}</start> 79 <end>(\\end)\{(\%{2@start})\}</end> 80 <include> 81 <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/> 82 <context sub-pattern="1" where="end" style-ref="common-commands" class="no-spell-check"/> 83 <context sub-pattern="2" where="start" class="no-spell-check"/> 84 <context sub-pattern="2" where="end" class="no-spell-check"/> 85 </include> 86 </context> 87 88 <context id="lstlisting-env" style-inside="true" style-ref="verbatim" class="no-spell-check"> 89 <start>(\\begin)\{lstlisting\}</start> 90 <end>(\\end)\{lstlisting\}</end> 91 <include> 92 <context sub-pattern="1" where="start" style-ref="common-commands"/> 93 <context sub-pattern="1" where="end" style-ref="common-commands"/> 94 </include> 95 </context> 96 97 <!-- Embedded R Code (Sweave package) --> 98 99 <context id="R-block" class="no-spell-check"> 100 <start>(\\begin)\{(Scode|Sinput|Soutput)\}</start> 101 <end>(\\end)\{\%{2@start}\}</end> 102 <include> 103 <context sub-pattern="1" where="start" style-ref="common-commands"/> 104 <context sub-pattern="1" where="end" style-ref="common-commands"/> 105 <context ref="r:r"/> 106 </include> 107 </context> 108 109 <!-- 110 Examples: \url{http://google.de}, \href{http://google.de}{Google} 111 112 Supports also urls with math symbols: \url{https://example.com/$test} 113 --> 114 <context id="urls"> 115 <include> 116 <context ref="url-command"/> 117 <context ref="href-command"/> 118 </include> 119 </context> 120 121 <context id="url-command" class="no-spell-check"> 122 <match extended="true"> 123 (\\url) # url command. 124 \{ # Literal opening braces. 125 [ \t]* # Optional spaces or tabs after the opening braces. 126 .*? # URL 127 [ \t]* # Optional spaces or tabs before the closing braces. 128 \} # closing url command. 129 </match> 130 131 <include> 132 <context sub-pattern="1" style-ref="command"/> 133 </include> 134 </context> 135 136 <context id="href-command"> 137 <match extended="true"> 138 (\\href) # url command. 139 \{( # Literal opening braces. 140 [ \t]* # Optional spaces or tabs after the opening braces. 141 .*? # URL 142 [ \t]* # Optional spaces or tabs before the closing braces. 143 )\} # closing url command. 144 \{(.*?)\} # link text 145 </match> 146 147 <include> 148 <context sub-pattern="1" class="no-spell-check" style-ref="command"/> 149 <context sub-pattern="2" class="no-spell-check"/> 150 </include> 151 </context> 152 153 <!--using brackets is an experimental feature from the listings package. The 154 following must support these cases: 155 156 \lstinline[]{code in here} 157 \lstinline[key=val, key=val]{code in here} 158 \lstinline[key=val, key=val]!code in here! 159 \lstinline[]!code in here! 160 \lstinline[][code in here[ 161 \lstinline[NOT code in here, must specify empty optional argument to use square brackets[ 162 \lstinline{code in here} 163 \lstinline{code in {here} but NOT in here} % brackets do not nest 164 \lstinline!code in here! 165 \lstinline=code in here= 166 \lstinline{this needs to fail{ 167 168 If using \verb instead of \lstinline, the brackets cannot be used 169 --> 170 <context id="lstinline-curly-brackets" style-inside="true" style-ref="verbatim" class="no-spell-check"> 171 <start>(\\lstinline)(\[.*?\])?{</start> 172 <end>}</end> 173 <include> 174 <context sub-pattern="1" where="start" style-ref="command"/> 175 </include> 176 </context> 177 178 <context id="lstinline-square-brackets" style-inside="true" style-ref="verbatim" class="no-spell-check"> 179 <!-- square brackets don't match with the pair, and they require an 180 optional argument, even if empty --> 181 <start>(\\lstinline)(\[.*?\])\[</start> 182 <end>\[</end> 183 <include> 184 <context sub-pattern="1" where="start" style-ref="command"/> 185 </include> 186 </context> 187 188 <context id="lstinline" style-inside="true" style-ref="verbatim" class="no-spell-check"> 189 <start>(\\lstinline)(\[.*?\])?((?!\[)\S)</start> <!-- ignore when starting with [ --> 190 <end>\%{3@start}</end> 191 <include> 192 <context sub-pattern="1" where="start" style-ref="command"/> 193 </include> 194 </context> 195 196 <!-- If using \verb instead of \lstinline, the brackets cannot be used --> 197 <context id="verbatim-inline" style-inside="true" style-ref="verbatim" class-disabled="no-spell-check"> 198 <start>(\\verb)\*?(\S)</start> 199 <end>\%{2@start}</end> 200 <include> 201 <context sub-pattern="1" where="start" style-ref="command" class="no-spell-check"/> 202 </include> 203 </context> 204 205 <context id="verbatim"> 206 <include> 207 <context ref="verbatim-env"/> 208 <context ref="lstlisting-env"/> 209 <context ref="verbatim-inline"/> 210 <context ref="lstinline-curly-brackets"/> 211 <context ref="lstinline-square-brackets"/> 212 <context ref="lstinline"/> 213 </include> 214 </context> 215 216 <!-- commands --> 217 218 <context id="common-commands" style-ref="common-commands" class="no-spell-check"> 219 <prefix>\\</prefix> 220 <!-- We need to special case "_" since it is not considered a 221 boundary but it is allowed in latex --> 222 <suffix>(\b|(?=_))</suffix> 223 <keyword>Alpha</keyword> 224 <keyword>Beta</keyword> 225 <keyword>Chi</keyword> 226 <keyword>Delta</keyword> 227 <keyword>Epsilon</keyword> 228 <keyword>Eta</keyword> 229 <keyword>Gamma</keyword> 230 <keyword>Iota</keyword> 231 <keyword>Kappa</keyword> 232 <keyword>Lambda</keyword> 233 <keyword>Leftarrow</keyword> 234 <keyword>Leftrightarrow</keyword> 235 <keyword>Mu</keyword> 236 <keyword>Nu</keyword> 237 <keyword>Omega</keyword> 238 <keyword>Phi</keyword> 239 <keyword>Pi</keyword> 240 <keyword>Psi</keyword> 241 <keyword>Rho</keyword> 242 <keyword>Rightarrow</keyword> 243 <keyword>Sigma</keyword> 244 <keyword>Tau</keyword> 245 <keyword>Zeta</keyword> 246 <keyword>alpha</keyword> 247 <keyword>appendix</keyword> 248 <keyword>begin</keyword> 249 <keyword>beta</keyword> 250 <keyword>bigcap</keyword> 251 <keyword>bigcup</keyword> 252 <keyword>cap</keyword> 253 <keyword>cdot</keyword> 254 <keyword>chapter</keyword> 255 <keyword>chi</keyword> 256 <keyword>cite</keyword> 257 <keyword>cup</keyword> 258 <keyword>delta</keyword> 259 <keyword>documentclass</keyword> 260 <keyword>end</keyword> 261 <keyword>enumi</keyword> 262 <keyword>enumii</keyword> 263 <keyword>enumiii</keyword> 264 <keyword>enumiv</keyword> 265 <keyword>epsilon</keyword> 266 <keyword>equation</keyword> 267 <keyword>eta</keyword> 268 <keyword>exists</keyword> 269 <keyword>figure</keyword> 270 <keyword>footnote</keyword> 271 <keyword>footnotemark</keyword> 272 <keyword>footnotetext</keyword> 273 <keyword>forall</keyword> 274 <keyword>gamma</keyword> 275 <keyword>geq</keyword> 276 <keyword>in</keyword> 277 <keyword>int</keyword> 278 <keyword>iota</keyword> 279 <keyword>kappa</keyword> 280 <keyword>label</keyword> 281 <keyword>lambda</keyword> 282 <keyword>ldots</keyword> 283 <keyword>leftarrow</keyword> 284 <keyword>leq</keyword> 285 <keyword>mpfootnote</keyword> 286 <keyword>mu</keyword> 287 <keyword>neq</keyword> 288 <keyword>newcommand</keyword> 289 <keyword>newenvironment</keyword> 290 <keyword>newfont</keyword> 291 <keyword>newtheorem</keyword> 292 <keyword>not</keyword> 293 <keyword>notin</keyword> 294 <keyword>nu</keyword> 295 <keyword>omega</keyword> 296 <keyword>onecolumn</keyword> 297 <keyword>page</keyword> 298 <keyword>pageref</keyword> 299 <keyword>paragraph</keyword> 300 <keyword>part</keyword> 301 <keyword>phi</keyword> 302 <keyword>pi</keyword> 303 <keyword>prod</keyword> 304 <keyword>psi</keyword> 305 <keyword>qquad</keyword> 306 <keyword>quad</keyword> 307 <keyword>ref</keyword> 308 <keyword>rho</keyword> 309 <keyword>rightarrow</keyword> 310 <keyword>section</keyword> 311 <keyword>setminus</keyword> 312 <keyword>sigma</keyword> 313 <keyword>subparagraph</keyword> 314 <keyword>subsection</keyword> 315 <keyword>subset</keyword> 316 <keyword>subseteq</keyword> 317 <keyword>subsetneq</keyword> 318 <keyword>subsubsection</keyword> 319 <keyword>subsubsubsection</keyword> 320 <keyword>sum</keyword> 321 <keyword>supset</keyword> 322 <keyword>supseteq</keyword> 323 <keyword>supsetneq</keyword> 324 <keyword>table</keyword> 325 <keyword>tau</keyword> 326 <keyword>times</keyword> 327 <keyword>twocolumn</keyword> 328 <keyword>varepsilon</keyword> 329 <keyword>varphi</keyword> 330 <keyword>zeta</keyword> 331 </context> 332 333 <context id="generic-command" style-ref="command" class="no-spell-check" extend-parent="false"> 334 <match>\\\@?[[:alnum:]]+\*?</match> 335 </context> 336 337 <context id="specific-commands"> 338 <include> 339 <context id="documentclass" class="no-spell-check"> 340 <match>(\\documentclass)(\[.*\])?(\{.*\})?</match> 341 <include> 342 <context sub-pattern="1" style-ref="common-commands"/> 343 </include> 344 </context> 345 346 <context id="include" class="no-spell-check"> 347 <match>(\\(input|include|includeonly|usepackage))\b(\[.*\])?(\{.*\})?</match> 348 <include> 349 <context sub-pattern="1" style-ref="include"/> 350 </include> 351 </context> 352 353 <context id="begin-end-command" class="no-spell-check"> 354 <match>(\\(begin|end))\{.*\}</match> 355 <include> 356 <context sub-pattern="1" style-ref="common-commands"/> 357 </include> 358 </context> 359 </include> 360 </context> 361 362 <!-- special characters --> 363 364 <define-regex id="accents" extended="true"> 365 (\\( #leading backslash 366 ( #1-Accents- 367 [bcdHruv\.\^'`~"=] # accent symbol 368 \s*\{([a-zA-Z] | \\i | \\j)\} | # letter (\i \j for i,j without dot) 369 [\.\^'`~"=]\s*([a-zA-Z] | \\i | \\j) |# non-letter accents without braces 370 t\s*\{([a-zA-Z] | \\i | \\j){2}\} # special accent over two letters 371 ) | ( #2-Special letters- 372 (aa|AA | ae|AE | oe|OE | ss|SS | # letters followed by a non-word 373 [oO] | [lL])(?![a-zA-Z_@]) # character or e.g. \l causes 374 ) # unwanted behaviour (i.e. \label) 375 )) | (!` | \?`) #3-Spanish punctuation 376 </define-regex> 377 378 <context id="special-char"> 379 <include> 380 <!-- Include accents here before the escaped command symbols because for 381 example the hat (^) can be used as an accent and will be placed over 382 the following letter (e.g. \^o will NOT produce ^o) --> 383 <context id="accents" style-ref="special-char" class="no-spell-check"> 384 <match>\%{accents}</match> 385 </context> 386 387 <context id="special-symbols" style-ref="special-char" class="no-spell-check"> 388 <prefix>\\</prefix> 389 <suffix></suffix> 390 391 <keyword>\$</keyword> 392 <keyword>&</keyword> 393 <keyword>%</keyword> 394 <keyword>#</keyword> 395 <keyword>_</keyword> 396 <keyword>\{</keyword> 397 <keyword>\}</keyword> 398 <keyword>~</keyword> 399 <keyword>\^</keyword> 400 <keyword>\\</keyword> 401 </context> 402 </include> 403 </context> 404 405 <!-- headings --> 406 407 <context id="curly-braces-pair"> 408 <start>\{</start> 409 <end>\}</end> 410 <include> 411 <context ref="curly-braces-pair"/> 412 <context ref="latex"/> 413 </include> 414 </context> 415 416 <context id="headings"> 417 <include> 418 <context id="part" style-inside="true" style-ref="part" end-at-line-end="true" class-disabled="no-spell-check"> 419 <start>(\\part\*?)\{</start> 420 <end>\}</end> 421 <include> 422 <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/> 423 <context ref="curly-braces-pair"/> 424 <context ref="latex"/> 425 </include> 426 </context> 427 428 <context id="chapter" style-inside="true" style-ref="chapter" end-at-line-end="true" class-disabled="no-spell-check"> 429 <start>(\\chapter\*?)\{</start> 430 <end>\}</end> 431 <include> 432 <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/> 433 <context ref="curly-braces-pair"/> 434 <context ref="latex"/> 435 </include> 436 </context> 437 438 <context id="section" style-inside="true" style-ref="section" end-at-line-end="true" class-disabled="no-spell-check"> 439 <start>(\\section\*?)\{</start> 440 <end>\}</end> 441 <include> 442 <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/> 443 <context ref="curly-braces-pair"/> 444 <context ref="latex"/> 445 </include> 446 </context> 447 448 <context id="subsection" style-inside="true" style-ref="subsection" end-at-line-end="true" class-disabled="no-spell-check"> 449 <start>(\\subsection\*?)\{</start> 450 <end>\}</end> 451 <include> 452 <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/> 453 <context ref="curly-braces-pair"/> 454 <context ref="latex"/> 455 </include> 456 </context> 457 458 <context id="subsubsection" style-inside="true" style-ref="subsubsection" end-at-line-end="true" class-disabled="no-spell-check"> 459 <start>(\\subsubsection\*?)\{</start> 460 <end>\}</end> 461 <include> 462 <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/> 463 <context ref="curly-braces-pair"/> 464 <context ref="latex"/> 465 </include> 466 </context> 467 468 <context id="paragraph" style-inside="true" style-ref="paragraph" end-at-line-end="true" class-disabled="no-spell-check"> 469 <start>(\\paragraph\*?)\{</start> 470 <end>\}</end> 471 <include> 472 <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/> 473 <context ref="curly-braces-pair"/> 474 <context ref="latex"/> 475 </include> 476 </context> 477 478 <context id="subparagraph" style-inside="true" style-ref="subparagraph" end-at-line-end="true" class-disabled="no-spell-check"> 479 <start>(\\subparagraph\*?)\{</start> 480 <end>\}</end> 481 <include> 482 <context sub-pattern="1" where="start" style-ref="common-commands" class="no-spell-check"/> 483 <context ref="curly-braces-pair"/> 484 <context ref="latex"/> 485 </include> 486 </context> 487 </include> 488 </context> 489 490 <!-- math --> 491 492 <!-- Commands exclusive to math mode --> 493 <context id="math-command" class="no-spell-check" style-ref="common-commands"> 494 <match extended="true"> 495 \\( 496 frac | sqrt | sum | (co)?prod | o?int | #-Functions 497 infty | (c|d|v)dots | nonumber | #-special in math mode 498 mathnormal | math(rm|sf|tt|it|bf|cal) | #-Math font commands 499 (display|text|script(script)?)style | #-Math size commands 500 alpha | beta | (g|G)amma | (d|D)elta | #-Greek letters 501 (var)?epsilon | zeta | eta | ((vart)|t|T)heta | ## 502 iota | kappa | (l|L)ambda | mu | nu | (x|X)i | ## 503 ((varp)|p|P)i | (var)?rho | ((vars)|s|S)igma | ## 504 tau | (u|U)psilon | ((varp)|p|P)hi | chi | ## 505 (p|P)si | (o|O)mega | ## 506 pm | mp | times | div | cdot | ast | star | #-Binary operators 507 dd?agger | amalg | (sq)?c(a|u)p | uplus | vee | ## 508 wedge | o(plus|minus|times) | (big)?circ | ## 509 bullet | (d|D)iamond | (un)?(l|r)hd | ## 510 o(slash|dot) | Box | bigtriangle(up|down) | ## 511 triangle(left|right) | setminus | wr | ## 512 gets | to | ((u|U)p(down)? | (d|D)own)arrow | #-Arrows and pointers 513 ((l|L)eft(right)?|(r|R)ight)arrow | (long)mapsto |## 514 hook(left|right)arrow | (ne|se|sw|nw)arrow | ## 515 (left|right)harpoon(up|down) | rightleftharpoons |## 516 (l|L)ong(left(right)?|right)arrow | ## 517 (wide)hat | check | dd?ot | breve | acute | #-Accents in math mode 518 grave | bar | vec | (wide)tilde | mathring | ## 519 (over|under)(line|brace) | (i|j)math | ##i, j dots removed 520 (arc)?(cosh?|sinh?|tanh?) | arg | coth? | csc | #-Function names 521 deg | det | dim | exp | gcd | hom | inf | ker | ## 522 lg | lim(inf|sup)? | ln | log | max | min | Pr | ## 523 sec | sup ## 524 )(?=\b) 525 </match> 526 </context> 527 528 <context id="math-spacing" style-ref="special-char"> 529 <match>\\[;:!]</match> 530 </context> 531 532 <context id="math-brackets" style-ref="common-commands"> 533 <match extended="true"> 534 \\(left | right | [bB]igg?[lr]) ( # bracket size specifier 535 \(|\) | \[|\] | \\\{|\\\} | # normal brackets (curly escaped) 536 \| | \\\| | / | \\backslash | # pipe and slashes 537 \\( #-symbol commands 538 [lr]floor | [lr]ceil | [lr]angle | ## 539 ([uU]p(down)?|[dD]own)arrow ## 540 ) ## 541 ) 542 </match> 543 </context> 544 545 <context id="math-super-sub-script" style-ref="common-commands"> 546 <match>\^|_</match> 547 </context> 548 549 <context id="in-math" class="no-spell-check"> 550 <include> 551 <context ref="comment"/> 552 <context ref="math-command"/> 553 <context ref="math-spacing"/> 554 <context ref="math-brackets"/> 555 <context ref="special-char"/> 556 <context ref="math-super-sub-script"/> 557 <context ref="generic-command"/> 558 </include> 559 </context> 560 561 <context id="math-1" style-ref="math" class="no-spell-check"> 562 <start>\$\$</start> 563 <end>\$\$</end> 564 <include> 565 <context sub-pattern="0" where="start" style-ref="math-boundary"/> 566 <context sub-pattern="0" where="end" style-ref="math-boundary"/> 567 <context ref="in-math"/> 568 </include> 569 </context> 570 571 <context id="math-2" style-ref="math" class="no-spell-check"> 572 <start>\\\[</start> 573 <end>\\\]</end> 574 <include> 575 <context sub-pattern="0" where="start" style-ref="math-boundary"/> 576 <context sub-pattern="0" where="end" style-ref="math-boundary"/> 577 <context ref="in-math"/> 578 </include> 579 </context> 580 581 <context id="math-env" style-ref="math" style-inside="true" class="no-spell-check"> 582 <start>(\\begin)\{(math|displaymath|equation\*?|align\*?|eqnarray\*?)\}</start> 583 <end>(\\end)\{\%{2@start}\}</end> 584 <include> 585 <context sub-pattern="1" where="start" style-ref="common-commands"/> 586 <context sub-pattern="1" where="end" style-ref="common-commands"/> 587 <context ref="in-math"/> 588 </include> 589 </context> 590 591 <context id="inline-math-1" style-ref="inline-math" class="no-spell-check"> 592 <start>\$</start> 593 <end>\$</end> 594 <include> 595 <context sub-pattern="0" where="start" style-ref="math-boundary"/> 596 <context sub-pattern="0" where="end" style-ref="math-boundary"/> 597 <context ref="in-math"/> 598 </include> 599 </context> 600 601 <context id="inline-math-2" style-ref="inline-math" class="no-spell-check"> 602 <start>\\\(</start> 603 <end>\\\)</end> 604 <include> 605 <context sub-pattern="0" where="start" style-ref="math-boundary"/> 606 <context sub-pattern="0" where="end" style-ref="math-boundary"/> 607 <context ref="in-math"/> 608 </include> 609 </context> 610 611 <context id="math"> 612 <include> 613 <context ref="math-1"/> 614 <context ref="math-2"/> 615 <context ref="math-env"/> 616 <context ref="inline-math-1"/> 617 <context ref="inline-math-2"/> 618 </include> 619 </context> 620 621 <context id="latex"> 622 <include> 623 <context ref="comment"/> 624 <context ref="verbatim"/> 625 <context ref="R-block"/> 626 <context ref="headings"/> 627 <context ref="math"/> 628 <context ref="urls"/> 629 <context ref="specific-commands"/> 630 <context ref="common-commands"/> 631 <context ref="special-char"/> 632 <context ref="generic-command"/> 633 </include> 634 </context> 635 </definitions> 636</language> 637