From d2d1b3a1db32b5c4425c6965967ef95879301145 Mon Sep 17 00:00:00 2001 From: Daniel Kapla Date: Tue, 5 Dec 2017 09:54:17 +0100 Subject: [PATCH] initial commit --- .gitignore | 3 + .vscode/launch.json | 19 + .vscode/settings.json | 25 + .vscode/tasks.json | 22 + CHANGELOG.md | 0 LICENSE.md | 11 + README.md | 14 + dictionary/environment_symbols.ts | 50 + dictionary/math_symbols.ts | 572 ++ dictionary/package_symbols.ts | 16 + dictionary/parameter_dictionary.ts | 32 + dictionary/symbol_types.ts | 10 + dictionary/text_symbols.ts | 54 + dictionary/tikz_symbols.ts | 12 + grammars/BibTeX.json | 252 + grammars/LaTeX.json | 2623 +++++++ grammars/TeX.json | 268 + package.json | 95 + settings/BibTeX-configuaration.json | 29 + settings/LaTeX-configuration.json | 33 + settings/TeX-configuaration.json | 29 + snippets/LaTeX.json | 38 + snippets/SYMLIST.txt | 10533 ++++++++++++++++++++++++++ src/completionItemProvider.ts | 290 + src/extension.ts | 15 + tsconfig.json | 15 + 26 files changed, 15060 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 CHANGELOG.md create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 dictionary/environment_symbols.ts create mode 100644 dictionary/math_symbols.ts create mode 100644 dictionary/package_symbols.ts create mode 100644 dictionary/parameter_dictionary.ts create mode 100644 dictionary/symbol_types.ts create mode 100644 dictionary/text_symbols.ts create mode 100644 dictionary/tikz_symbols.ts create mode 100644 grammars/BibTeX.json create mode 100644 grammars/LaTeX.json create mode 100644 grammars/TeX.json create mode 100644 package.json create mode 100644 settings/BibTeX-configuaration.json create mode 100644 settings/LaTeX-configuration.json create mode 100644 settings/TeX-configuaration.json create mode 100644 snippets/LaTeX.json create mode 100644 snippets/SYMLIST.txt create mode 100644 src/completionItemProvider.ts create mode 100644 src/extension.ts create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c40de5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ + +out/ +node_modules/ diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..9ed0eeb --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + // Use IntelliSense to learn about possible Node.js debug attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Launch Extension", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": ["--extensionDevelopmentPath=${workspaceRoot}" ], + "stopOnEntry": false, + "sourceMaps": true, + "outFiles": [ "${workspaceRoot}/out/**/*" ], + "preLaunchTask": "compile" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1988cbb --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,25 @@ +{ + "cSpell.ignorePaths": [ + "**/node_modules/**", + "**/vscode-extension/**", + "**/.git/**", + ".vscode", + "typings", + "./dictionary/**", + + "**/**" + ], + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "**/bower_components": true, + "**/node_modules": true + }, + "search.exclude": { + "**/node_modules": true, + "**/bower_components": true + } +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..764ee83 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,22 @@ +// Available variables which can be used inside of strings. +// ${workspaceRoot}: the root folder of the team +// ${file}: the current opened file +// ${fileBasename}: the current opened file's basename +// ${fileDirname}: the current opened file's dirname +// ${fileExtname}: the current opened file's extension +// ${cwd}: the current working directory of the spawned process + +{ + "version": "0.1.0", + "tasks": [ + { // Task that calls a custom npm script that compiles the extension. + "taskName": "compile", + "command": "npm", // we want to run npm + "isShellCommand": true, // the command is a shell script + "isBuildCommand": true, // to execute with [ Strg+Shift+B ] + "showOutput": "silent", // show the output window only if unrecognized errors occur. + "args": ["run", "compile", "--loglevel", "silent"], // we run the custom script "compile" as defined in package.json + "isBackground": false // Whether the executed task is kept alive and is running in the background + } + ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..5715afc --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,11 @@ +Copyright (c) Long Nhat Nguyen + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +This package was derived from a TextMate bundle located at https://github.com/textmate/latex.tmbundle and distributed under the following license, located in README.mdown: + +Permission to copy, use, modify, sell and distribute this software is granted. This software is provided "as is" without express or implied warranty, and with no claim as to its suitability for any purpose. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..b3ef40e --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# LaTeX language support for Visual Studio Code + +[![VS Marketplace Version](https://vsmarketplacebadge.apphb.com/version/torn4dom4n.latex-support.svg)](https://marketplace.visualstudio.com/items?itemName=torn4dom4n.latex-support) +[![VS Code Installs](https://vsmarketplacebadge.apphb.com/installs/torn4dom4n.latex-support.svg)](https://marketplace.visualstudio.com/items?itemName=torn4dom4n.latex-support) +[![Dependencies Status](https://david-dm.org/ProAdd-ons/vscode-LaTeX-support/status.svg)](https://david-dm.org/ProAdd-ons/vscode-LaTeX-support) + +Adds syntax highlighting and snippets for LaTeX. + +![LaTeX Preview](https://github.com/ProAdd-ons/vscode-LaTeX-support/raw/master/./images/preview.png) + +Originally converted from the [LaTeX TextMate bundle](https://github.com/textmate/latex.tmbundle). + +Contributions are greatly appreciated. Please fork this repository and open a +pull request to add snippets, make grammar tweaks, etc. diff --git a/dictionary/environment_symbols.ts b/dictionary/environment_symbols.ts new file mode 100644 index 0000000..7306df8 --- /dev/null +++ b/dictionary/environment_symbols.ts @@ -0,0 +1,50 @@ +import { latex_types } from "./symbol_types"; + +export default { + "displaymath": { insertText: "displaymath", details: "math environment", documentation: "displaymath", kind: latex_types.environment }, + "align": { insertText: "align", details: "math environment", documentation: "align", kind: latex_types.environment }, + "align*": { insertText: "align*", details: "math environment", documentation: "align*", kind: latex_types.environment }, + "flalign": { insertText: "flalign", details: "math environment", documentation: "flalign", kind: latex_types.environment }, + "flalign*": { insertText: "flalign*", details: "math environment", documentation: "flalign*", kind: latex_types.environment }, + "gather": { insertText: "gather", details: "math environment", documentation: "gather", kind: latex_types.environment }, + "gather*": { insertText: "gather*", details: "math environment", documentation: "gather*", kind: latex_types.environment }, + "equation": { insertText: "equation", details: "math environment", documentation: "equation", kind: latex_types.environment }, + "multline": { insertText: "multline", details: "math environment", documentation: "multline", kind: latex_types.environment }, + "split": { insertText: "split", details: "math environment", documentation: "split", kind: latex_types.environment }, + + "itemize": { insertText: "itemize", detail: "Use \\item for list entrie", documentation: "Creates a simple List.", kind: latex_types.environment }, + "enumerate": { insertText: "enumerate", detail: "Use \\item for list entrie", documentation: "Creates a numbered List.", kind: latex_types.environment }, + "description": { insertText: "description", detail: "Use \\item[element] for a discription entrie", documentation: "Creates a List of \"element\" discriptions.", kind: latex_types.environment }, + + "flushleft": { insertText: "flushleft", documentation: "Alignes Text left.", kind: latex_types.environment }, + "flusright": { insertText: "flusright", documentation: "Alignes Text right.", kind: latex_types.environment }, + "center": { insertText: "center", documentation: "Alignes Text centered.", kind: latex_types.environment }, + + "quotation": { insertText: "quotation", documentation: "The quotation environment is useful for longer quotes going over several paragraphs, because it indents the first line of each paragraph.", kind: latex_types.environment }, + "verse": { insertText: "verse", documentation: "The verse environment is useful for poems where the line breaks are important. The lines are separated by issuing a \\\\ at the end of a line and an empty line after each verse.", kind: latex_types.environment }, + "abstract": { insertText: "abstract", documentation: "An environment for an abstract.", kind: latex_types.environment }, + + "tikzpicture": { insertText: "tikzpicture", documentation: "The \"TeX Ist Kein Zeichnprogram\" environment\nNeeds \\usepackage{tikz}", kind: latex_types.environment }, + + "verbatim": { insertText: "verbatim", detail: "Do not use verbatim environment and the \\verb command within parameters of other commands.", documentation: "Environment content will be directly printed, as if typed on a typewriter, with all line breaks and spaces, without any LaTeX command being executed.", kind: latex_types.environment }, + "verbatim*": { insertText: "verbatim*", detail: "Do not use verbatim environment and the \\verb command within parameters of other commands.", documentation: "Environment content will be directly printed, as if typed on a typewriter, with all line breaks and spaces, without any LaTeX command being executed. The additional * lets spaces be printed visible.", kind: latex_types.environment }, + + "tabular": { insertText: "tabular", detail: "Use \"&\" for jump to the next column, \"\\\\\" for a line break and \"\\hline\" for inserts a horizontal line", documentation: "The table spec argument of the \\begin{tabular}[pos]{table spec} command defines the format of the table. Use an \"l\" for a column of left-aligned text, \"r\" for right-aligned text, and \"c\" for centred text; p{width} for a column containing justified text with line breaks, and \"|\" for a vertical line. The pos argument specifies the vertical position of the table relative to the baseline of the surrounding text. Use either of the letters \"t\", \"b\" or \"c\" to specify table alignment at the top, bottom or center. The column separator can be specified with the @{...} construct. This command kills the inter-column space and replaces it with whatever is between the curly braces.", kind: latex_types.environment }, + + "figure": { insertText: "figure", documentation: "Any material enclosed in a \"figure\" or \"table\" environment will be treated as floating matter. Both float environments support an optional parameter called the placement specifier. The placement specifier is a combination of \"h\" \(hier\), \"b\" \(bottom\), \"p\" \(page\), \"!\" \(without considering most of the internal parameters\)].", kind: latex_types.environment }, + + "cases": { insertText: "cases", documentation: "cases", kind: latex_types.environment }, + + "array": { insertText: "array", documentation: "The \\\\begin{array}{line-positioning} command with \"line-positioning\" is \"l\" \(left\), \"c\" \(richt\) or \"r\" \(right\) for each column. Use \"&\" to for next column and \"\\\\\" for linebreaks.", kind: latex_types.environment }, + "matrix": { insertText: "matrix", detail: "max 10 column", documentation: "Matrix without delimiters.", kind: latex_types.environment }, + "pmatrix": { insertText: "pmatrix", detail: "max 10 column", documentation: "Matrix with \( as delimiters.", kind: latex_types.environment }, + "bmatrix": { insertText: "bmatrix", detail: "max 10 column", documentation: "Matrix with [ as delimiters.", kind: latex_types.environment }, + "Bmatrix": { insertText: "Bmatrix", detail: "max 10 column", documentation: "Matrix with { as delimiters.", kind: latex_types.environment }, + "vmatrix": { insertText: "vmatrix", detail: "max 10 column", documentation: "Matrix with | as delimiters.", kind: latex_types.environment }, + "Vmatrix": { insertText: "Vmatrix", detail: "max 10 column", documentation: "Matrix with || as delimiters.", kind: latex_types.environment }, + + "tizkpicture": { insertText: "tizkpicture", detail: "Requires Package \"tikz\"", documentation: "", kind: latex_types.environment }, + + "lstlisting": { insertText: "lstlisting", detail: "Requires Package \"listings\"", documentation: "", kind: latex_types.environment }, + +}; diff --git a/dictionary/math_symbols.ts b/dictionary/math_symbols.ts new file mode 100644 index 0000000..e485a7e --- /dev/null +++ b/dictionary/math_symbols.ts @@ -0,0 +1,572 @@ +import { latex_types } from "./symbol_types"; + +var required_latexsym = "Required package \"latexsym\""; +var required_amsmath = "Required package \"amsmath\""; + +export default { + "operatorname": { insertText: "operatorname{$1}$0", documentation: "displays content as operator", kind: latex_types.function }, + + "label": { insertText: "label{$1}$0", documentation: "Creates a reference with a number to refere it by the \"ref\" command.", kind: latex_types.keyword }, + "tag": { insertText: "tag{$1}$0", documentation: "Creates a reference with name to refere it by the \"ref\" command by the taged name.", kind: latex_types.keyword }, + "ref": { insertText: "ref{$1}$0", documentation: "Reference", kind: latex_types.keyword }, + "eqref": { insertText: "eqref{$1}$0", documentation: "Equation reference", kind: latex_types.keyword }, + "pageref": { insertText: "pageref{$1}$0", documentation: "Page reference", kind: latex_types.keyword }, + "nonumber": { insertText: "nonumber", documentation: "Removes line number in numberd math environments like \"align\".", kind: latex_types.keyword }, + + "left(": { insertText: "left( $1 \\right)$0", documentation: "Left - Right Braces", kind: latex_types.snippet }, + "left[": { insertText: "left[ $1 \\right]$0", documentation: "Left - Right [ Braces", kind: latex_types.snippet }, + "left\\{": { insertText: "left\\{ $1 \\right\\{$0", documentation: "Left - Right \\{ Braces", kind: latex_types.snippet }, + "left|": { insertText: "left| $1 \\right|$0", documentation: "Left - Right Absolutes", kind: latex_types.snippet }, + + "bmod": { insertText: "bmod{$1}$0", documentation: "\(binary\) modulo", kind: latex_types.symbol }, + "pmod": { insertText: "pmod{$1}$0", documentation: "modulo", kind: latex_types.symbol }, + + "binom": { insertText: "binom{$1}{$2}$0", documentation: "Binomial Coefficient", kind: latex_types.function }, + "frac": { insertText: "frac{$1}{$2}$0", documentation: "Fraction", kind: latex_types.function }, + "cfrac": { insertText: "cfrac{$1}{$2}$0", documentation: "Continued Fraction", kind: latex_types.function }, + "tfrac": { insertText: "tfrac{$1}{$2}$0", documentation: "Text style Fraction", kind: latex_types.function }, + "dfrac": { insertText: "dfrac{$1}{$2}$0", documentation: "Display style Fraction", kind: latex_types.function }, + "sqrt": { insertText: "sqrt[]{$1}$0", documentation: "Root (Square Root)", kind: latex_types.function }, + + "lim": { insertText: "lim_{$1}$0", documentation: "Limes", kind: latex_types.function }, + "sup": { insertText: "sup_{$1}$0", documentation: "sup", kind: latex_types.function }, + "inf": { insertText: "inf_{$1}$0", documentation: "infimum", kind: latex_types.function }, + "liminf": { insertText: "liminf_{$1}$0", documentation: "liminf", kind: latex_types.function }, + "limsup": { insertText: "limsup_{$1}$0", documentation: "limsup", kind: latex_types.function }, + "max": { insertText: "max_{$1}$0", documentation: "max", kind: latex_types.function }, + "min": { insertText: "min_{$1}$0", documentation: "min", kind: latex_types.function }, + "arg": { insertText: "arg", documentation: "argument", kind: latex_types.symbol }, + "deg": { insertText: "deg", documentation: "degrie", kind: latex_types.symbol }, + "det": { insertText: "det", documentation: "determinant", kind: latex_types.symbol }, + "dim": { insertText: "dim", documentation: "dimention", kind: latex_types.symbol }, + "exp": { insertText: "exp", documentation: "exponential", kind: latex_types.symbol }, + "gcd": { insertText: "gcd", documentation: "Gradest Comon Devider", kind: latex_types.symbol }, + "hom": { insertText: "hom", documentation: "hom", kind: latex_types.symbol }, + "ker": { insertText: "ker", documentation: "kern", kind: latex_types.symbol }, + "lg": { insertText: "lg", documentation: "lg", kind: latex_types.symbol }, + "Pr": { insertText: "Pr", documentation: "Pr", kind: latex_types.symbol }, + + "text": { insertText: "text{$1}$0", documentation: "Text Mode in math environment", kind: latex_types.function }, + "intertext": { insertText: "intertext{$1}$0", documentation: "Inserts text lines inside math environments", kind: latex_types.function }, + + "phantom": { insertText: "phantom{$1}$0", documentation: "Occupies space used by expression without displaying the expression.", kind: latex_types.function }, + + "mathrm": { insertText: "mathrm{$1}$0", documentation: "Roman Font", kind: latex_types.function }, + "mathbf": { insertText: "mathbf{$1}$0", documentation: "Boldface Font", kind: latex_types.function, detail: "Required package \"amsbsy\" or \"amsmath\". Use \\boldsymbol{} instead." }, + "mathsf": { insertText: "mathsf{$1}$0", documentation: "Sans Serif Font", kind: latex_types.function }, + "mathtt": { insertText: "mathtt{$1}$0", documentation: "Typewriter Font", kind: latex_types.function }, + "mathit": { insertText: "mathit{$1}$0", documentation: "Italic Font", kind: latex_types.function }, + "mathbb": { insertText: "mathbb{$1}$0", documentation: "Blackbord Font", kind: latex_types.function, detail: "Required package \"amsfonts\" or \"amssymb\"" }, + "mathnormal": { insertText: "mathnormal{$1}$0", documentation: "Normal Font", kind: latex_types.function }, + "boldsymbol": { insertText: "boldsymbol{$1}$0", detail: "Required package \"amsbsy\" or \"amsmath\".", documentation: "Bold Symbols in math mode", kind: latex_types.function }, + "mathcal": { insertText: "mathcal{$1}$0", documentation: "Calligraphic Font", kind: latex_types.function }, + "mathscr": { insertText: "mathscr{$1}$0", detail: "Required package \"mathrsfs\"", documentation: "Calegraphic math font", kind: latex_types.function }, + "mathfrac": { insertText: "mathfrac{$1}$0", detail: "Required package \"amsfonts\" or \"amssymb\"", documentation: "Fractal Math Symbols", kind: latex_types.function }, + + "displaystyle": { insertText: "displaystyle{$1}$0", documentation: "Sets style to display mode", kind: latex_types.function }, + "textstyle": { insertText: "textstyle{$1}$0", documentation: "Sets style to text mode", kind: latex_types.function }, + "scriptstyle": { insertText: "scriptstyle{$1}$0", documentation: "Sets style to script mode", kind: latex_types.function }, + "scriptscriptstyle": { insertText: "scriptscriptstyle{$1}$0", documentation: "Sets style to 'double' script mode", kind: latex_types.function }, + + "overline": { insertText: "overline{$1}$0", documentation: "horizontal line over the expression.", kind: latex_types.function }, + "underline": { insertText: "underline{$1}$0", documentation: "horizontal line under the expression.", kind: latex_types.function }, + "underbrace": { insertText: "underbrace{$1}_{$2}$0", documentation: "long horizontal braces under an expression", kind: latex_types.snippet }, + "overbrace": { insertText: "overbrace{$1}^{$2}$0", documentation: "long horizontal braces over an expression", kind: latex_types.snippet }, + + "bar": { insertText: "bar{$1}$0", documentation: "Math Mode Accent: bar", kind: latex_types.function }, + "hat": { insertText: "hat{$1}$0", documentation: "Math Mode Accent: hat", kind: latex_types.function }, + "widehat": { insertText: "widehat{$1}$0", documentation: "Math Mode Accent: widehat", kind: latex_types.function }, + "tilde": { insertText: "tilde{$1}$0", documentation: "Math Mode Accent: tilde", kind: latex_types.function }, + "widetilde": { insertText: "widetilde{$1}$0", documentation: "Math Mode Accent: widetilde", kind: latex_types.function }, + "vec": { insertText: "vec{$1}$0", documentation: "Math Mode Accent: Vector", kind: latex_types.function }, + "grave": { insertText: "grave{$1}$0", documentation: "Math Mode Accent: grave", kind: latex_types.function }, + "acute": { insertText: "acute{$1}$0", documentation: "Math Mode Accent: acute", kind: latex_types.function }, + "mathring": { insertText: "mathring{$1}$0", documentation: "Math Mode Accent: mathring", kind: latex_types.function }, + "check": { insertText: "check{$1}$0", documentation: "Math Mode Accent: check", kind: latex_types.function }, + "dot": { insertText: "dot{$1}$0", documentation: "Math Mode Accent: dot", kind: latex_types.function }, + "breve": { insertText: "breve{$1}$0", documentation: "Math Mode Accent: breve", kind: latex_types.function }, + "ddot": { insertText: "ddot{$1}$0", documentation: "Math Mode Accent: double dot", kind: latex_types.function }, + "overrightarrow": { insertText: "overrightarrow{$1}$0", documentation: "Math Mode Accent: overrightarrow", kind: latex_types.function }, + "overleftarrow": { insertText: "overleftarrow{$1}$0", documentation: "Math Mode Accent: overleftarrow", kind: latex_types.function }, + "overleftrightarrow": { insertText: "overleftrightarrow{$1}$0", documentation: "Math Mode Accent: overleftrightarrow", kind: latex_types.function }, + "underrightarrow": { insertText: "underrightarrow{$1}$0", documentation: "Math Mode Accent: underrightarrow", kind: latex_types.function }, + "underleftarrow": { insertText: "underleftarrow{$1}$0", documentation: "Math Mode Accent: underleftarrow", kind: latex_types.function }, + "underleftrightarrow": { insertText: "underleftrightarrow{$1}$0", documentation: "Math Mode Accent: underleftrightarrow", kind: latex_types.function }, + + "alpha": { insertText: "alpha", documentation: "alpha", kind: latex_types.symbol }, + "beta": { insertText: "beta", documentation: "beta", kind: latex_types.symbol }, + "gamma": { insertText: "gamma", documentation: "gamma", kind: latex_types.symbol }, + "Gamma": { insertText: "Gamma", documentation: "Gamma", kind: latex_types.symbol }, + "delta": { insertText: "delta", documentation: "delta", kind: latex_types.symbol }, + "Delta": { insertText: "Delta", documentation: "Delta", kind: latex_types.symbol }, + "epsilon": { insertText: "epsilon", documentation: "epsilon", kind: latex_types.symbol }, + "varepsilon": { insertText: "varepsilon", documentation: "varepsilon", kind: latex_types.symbol }, + "zeta": { insertText: "zeta", documentation: "zeta", kind: latex_types.symbol }, + "eta": { insertText: "eta", documentation: "eta", kind: latex_types.symbol }, + "theta": { insertText: "theta", documentation: "theta", kind: latex_types.symbol }, + "Theta": { insertText: "Theta", documentation: "Theta", kind: latex_types.symbol }, + "vartheta": { insertText: "vartheta", documentation: "vartheta", kind: latex_types.symbol }, + "iota": { insertText: "iota", documentation: "iota", kind: latex_types.symbol }, + "kappa": { insertText: "kappa", documentation: "kappa", kind: latex_types.symbol }, + "varkappa": { insertText: "varkappa", documentation: "varkappa", kind: latex_types.symbol }, + "lambda": { insertText: "lambda", documentation: "lambda", kind: latex_types.symbol }, + "Lambda": { insertText: "Lambda", documentation: "Lambda", kind: latex_types.symbol }, + "mu": { insertText: "mu", documentation: "mu", kind: latex_types.symbol }, + "nu": { insertText: "nu", documentation: "nu", kind: latex_types.symbol }, + "xi": { insertText: "xi", documentation: "xi", kind: latex_types.symbol }, + "Xi": { insertText: "Xi", documentation: "Xi", kind: latex_types.symbol }, + "pi": { insertText: "pi", documentation: "pi", kind: latex_types.symbol }, + "Pi": { insertText: "Pi", documentation: "Pi", kind: latex_types.symbol }, + "varpi": { insertText: "varpi", documentation: "varpi", kind: latex_types.symbol }, + "rho": { insertText: "rho", documentation: "rho", kind: latex_types.symbol }, + "varrho": { insertText: "varrho", documentation: "varrho", kind: latex_types.symbol }, + "sigma": { insertText: "sigma", documentation: "sigma", kind: latex_types.symbol }, + "Sigma": { insertText: "Sigma", documentation: "Sigma", kind: latex_types.symbol }, + "varsigma": { insertText: "varsigma", documentation: "varsigma", kind: latex_types.symbol }, + "tau": { insertText: "tau", documentation: "tau", kind: latex_types.symbol }, + "upsilon": { insertText: "upsilon", documentation: "upsilon", kind: latex_types.symbol }, + "Upsilon": { insertText: "Upsilon", documentation: "Upsilon", kind: latex_types.symbol }, + "phi": { insertText: "phi", documentation: "phi", kind: latex_types.symbol }, + "Phi": { insertText: "Phi", documentation: "Phi", kind: latex_types.symbol }, + "varphi": { insertText: "varphi", documentation: "varphi", kind: latex_types.symbol }, + "chi": { insertText: "chi", documentation: "chi", kind: latex_types.symbol }, + "psi": { insertText: "psi", documentation: "psi", kind: latex_types.symbol }, + "Psi": { insertText: "Psi", documentation: "Psi", kind: latex_types.symbol }, + "omega": { insertText: "omega", documentation: "omega", kind: latex_types.symbol }, + "Omega": { insertText: "Omega", documentation: "Omega", kind: latex_types.symbol }, + + "sin": { insertText: "sin{$1}", documentation: "Sinus", kind: latex_types.function }, + "cos": { insertText: "cos{$1}", documentation: "Cosinus", kind: latex_types.function }, + "tan": { insertText: "tan{$1}", documentation: "Tangens", kind: latex_types.function }, + "arcsin": { insertText: "arcsin{$1}", documentation: "Arcus Sinus", kind: latex_types.function }, + "arccos": { insertText: "arccos{$1}", documentation: "Arcus Cosinus", kind: latex_types.function }, + "sinh": { insertText: "sinh{$1}", documentation: "Sinus Hyperbolicus", kind: latex_types.function }, + "cosh": { insertText: "cosh{$1}", documentation: "Cosinus Hyperbolicus", kind: latex_types.function }, + "tanh": { insertText: "tanh{$1}", documentation: "Tangens Hyperbolicus", kind: latex_types.function }, + "sec": { insertText: "sec{$1}", documentation: "sec", kind: latex_types.function }, + "csc": { insertText: "csc{$1}", documentation: "csc", kind: latex_types.function }, + "arctan": { insertText: "arctan{$1}", documentation: "arctan", kind: latex_types.function }, + "cot": { insertText: "cot{$1}", documentation: "cot", kind: latex_types.function }, + "arccot": { insertText: "arccot{$1}", documentation: "arccot", kind: latex_types.function }, + "coth": { insertText: "coth{$1}", documentation: "coth", kind: latex_types.function }, + + "xrightarrow": { insertText: "xrightarrow[]{$1}$0", documentation: "right arrow with documentation", kind: latex_types.function }, + "xRightarrow": { insertText: "xRightarrow[]{$1}$0", documentation: "right double arrow with documentation", kind: latex_types.function }, + "xleftarrow": { insertText: "xleftarrow[]{$1}$0", documentation: "left arrow with documentation", kind: latex_types.function }, + "xLeftarrow": { insertText: "xReftarrow[]{$1}$0", documentation: "left double arrow with documentation", kind: latex_types.function }, + + "stackrel": { insertText: "stackrel{$1}{$2}$0", documentation: "\\stackrel{#1}{#2} puts the symbol given in #1 in superscript-like size over #2 which is set in its usual position.", kind: latex_types.function }, + "substack": { insertText: "substack{$1\\\\$2}$0", documentation: "\\substack{#1}{#2} stacks #1 over #2 in superscript's. For more lines add \"\\\\\".", kind: latex_types.function }, + + // "cdot": { insertText: "cdot", documentation: "A centered dot. For example used for a * b.", kind: latex_types.symbol }, + "vdots": { insertText: "vdots", documentation: "3 vertical Dots", kind: latex_types.symbol }, + "ldots": { insertText: "ldots", documentation: "3 lower dots", kind: latex_types.symbol }, + "dots": { insertText: "dots", documentation: "3 Dots", kind: latex_types.symbol }, + "ddots": { insertText: "ddots", documentation: "Diagonal Dots", kind: latex_types.symbol }, + "cdots": { insertText: "cdots", documentation: "3 Centered Dots", kind: latex_types.symbol }, + "iddot": { insertText: "iddot", documentation: "iddot", kind: latex_types.symbol }, + + "infty": { insertText: "infty", documentation: "Infinity", kind: latex_types.symbol }, + "triangl": { insertText: "triangl", documentation: "Triangl", kind: latex_types.symbol }, + "aleph": { insertText: "aleph", documentation: "aleph", kind: latex_types.symbol }, + "imath": { insertText: "imath", documentation: "imath", kind: latex_types.symbol }, + "jmath": { insertText: "jmath", documentation: "jmath", kind: latex_types.symbol }, + "ell": { insertText: "ell", documentation: "ell", kind: latex_types.symbol }, + "w": { insertText: "w", documentation: "w", kind: latex_types.symbol }, + "Re": { insertText: "Re", documentation: "Re", kind: latex_types.symbol }, + "Im": { insertText: "Im", documentation: "Im", kind: latex_types.symbol }, + "mh": { insertText: "mh", documentation: "mh", kind: latex_types.symbol }, + "prime": { insertText: "prime", documentation: "prime", kind: latex_types.symbol }, + "emptyset": { insertText: "emptyset", documentation: "emptyset", kind: latex_types.symbol }, + "nabla": { insertText: "nabla", documentation: "nabla", kind: latex_types.symbol }, + "surd": { insertText: "surd", documentation: "surd", kind: latex_types.symbol }, + "partial": { insertText: "partial", documentation: "partial", kind: latex_types.symbol }, + "bot": { insertText: "bot", documentation: "bot", kind: latex_types.symbol }, + "dash": { insertText: "dash", documentation: "dash", kind: latex_types.symbol }, + "forall": { insertText: "forall", documentation: "forall", kind: latex_types.symbol }, + "exists": { insertText: "exists", documentation: "exists", kind: latex_types.symbol }, + "flat": { insertText: "flat", documentation: "flat", kind: latex_types.symbol }, + "natural": { insertText: "natural", documentation: "natural", kind: latex_types.symbol }, + "shar": { insertText: "shar", documentation: "shar", kind: latex_types.symbol }, + "backslash": { insertText: "backslash", documentation: "backslash", kind: latex_types.symbol }, + "Box": { insertText: "Box", documentation: "Box", kind: latex_types.symbol }, + "Diamon": { insertText: "Diamon", documentation: "Diamon", kind: latex_types.symbol }, + "clubsuit": { insertText: "clubsuit", documentation: "clubsuit", kind: latex_types.symbol }, + "diamondsuit": { insertText: "diamondsuit", documentation: "diamondsuit", kind: latex_types.symbol }, + "heartsuit": { insertText: "heartsuit", documentation: "heartsuit", kind: latex_types.symbol }, + "spadesuit": { insertText: "spadesuit", documentation: "spadesuit", kind: latex_types.symbol }, + "blacksquar": { insertText: "blacksquar", documentation: "blacksquar", kind: latex_types.symbol }, + "S": { insertText: "S", documentation: "S", kind: latex_types.symbol }, + "P": { insertText: "P", documentation: "P", kind: latex_types.symbol }, + "copyright": { insertText: "copyright", documentation: "copyright", kind: latex_types.symbol }, + "pounds": { insertText: "pounds", documentation: "pounds", kind: latex_types.symbol }, + "smiley": { insertText: "smiley", documentation: "smiley", kind: latex_types.symbol }, + "checkmark": { insertText: "checkmark", documentation: "checkmark", kind: latex_types.symbol }, + + "quad": { insertText: "quad", documentation: "A big Space", kind: latex_types.symbol }, + "qquad": { insertText: "qquad", documentation: "A bigger Space", kind: latex_types.symbol }, + + + "not": { insertText: "not", documentation: "Use \"\\not\" as prefix of some Binary Relation's to negate them.", kind: latex_types.symbol }, + "leq": { insertText: "leq", documentation: "Binary Relation: leq", kind: latex_types.symbol }, + "ll": { insertText: "ll", documentation: "Binary Relation: ll", kind: latex_types.symbol }, + "prec": { insertText: "prec", documentation: "Binary Relation: prec", kind: latex_types.symbol }, + "preceq": { insertText: "preceq", documentation: "Binary Relation: preceq", kind: latex_types.symbol }, + "subset": { insertText: "subset", documentation: "Binary Relation: subset", kind: latex_types.symbol }, + "subseteq": { insertText: "subseteq", documentation: "Binary Relation: subseteq", kind: latex_types.symbol }, + "sqsubseteq": { insertText: "sqsubseteq", documentation: "Binary Relation: sqsubseteq", kind: latex_types.symbol }, + "in": { insertText: "in", documentation: "Binary Relation: in", kind: latex_types.symbol }, + "vdash": { insertText: "vdash", documentation: "Binary Relation: vdash", kind: latex_types.symbol }, + "mid": { insertText: "mid", documentation: "Binary Relation: mid", kind: latex_types.symbol }, + "smile": { insertText: "smile", documentation: "Binary Relation: smile", kind: latex_types.symbol }, + "geq": { insertText: "geq", detail: "Synonym for \"\\ge\"", documentation: "Binary Relation: geq", kind: latex_types.symbol }, + "gg": { insertText: "gg", documentation: "Binary Relation: gg", kind: latex_types.symbol }, + "succ": { insertText: "succ", documentation: "Binary Relation: succ", kind: latex_types.symbol }, + "succeq": { insertText: "succeq", documentation: "Binary Relation: succeq", kind: latex_types.symbol }, + "supset": { insertText: "supset", documentation: "Binary Relation: supset", kind: latex_types.symbol }, + "supseteq": { insertText: "supseteq", documentation: "Binary Relation: supseteq", kind: latex_types.symbol }, + "sqsupseteq": { insertText: "sqsupseteq", documentation: "Binary Relation: sqsupseteq", kind: latex_types.symbol }, + "ni": { insertText: "ni", detail: "Synonym for \"\\owns\"", documentation: "Binary Relation: ni", kind: latex_types.symbol }, + "dashv": { insertText: "dashv", documentation: "Binary Relation: dashv", kind: latex_types.symbol }, + "parallel": { insertText: "parallel", documentation: "Binary Relation: parallel", kind: latex_types.symbol }, + "frown": { insertText: "frown", documentation: "Binary Relation: frown", kind: latex_types.symbol }, + "notin": { insertText: "notin", documentation: "Binary Relation: notin", kind: latex_types.symbol }, + "equiv": { insertText: "equiv", documentation: "Binary Relation: equiv", kind: latex_types.symbol }, + "doteq": { insertText: "doteq", documentation: "Binary Relation: doteq", kind: latex_types.symbol }, + "sim": { insertText: "sim", documentation: "Binary Relation: sim", kind: latex_types.symbol }, + "simeq": { insertText: "simeq", documentation: "Binary Relation: simeq", kind: latex_types.symbol }, + "approx": { insertText: "approx", documentation: "Binary Relation: approx", kind: latex_types.symbol }, + "cong": { insertText: "cong", documentation: "Binary Relation: cong", kind: latex_types.symbol }, + "Join": { insertText: "Join", documentation: "Binary Relation: Join", kind: latex_types.symbol, detail: required_latexsym }, + "bowtie": { insertText: "bowtie", documentation: "Binary Relation: bowtie", kind: latex_types.symbol }, + "propto": { insertText: "propto", documentation: "Binary Relation: propto", kind: latex_types.symbol }, + "models": { insertText: "models", documentation: "Binary Relation: models", kind: latex_types.symbol }, + "perp": { insertText: "perp", documentation: "Binary Relation: perp", kind: latex_types.symbol }, + "asymp": { insertText: "asymp", documentation: "Binary Relation: asymp", kind: latex_types.symbol }, + "neq": { insertText: "neq", documentation: "Binary Relation: not equal", kind: latex_types.symbol }, + + "pm": { insertText: "pm", documentation: "Binary Relation: pm", kind: latex_types.symbol }, + "cdot": { insertText: "cdot", documentation: "Binary Relation: cdot", kind: latex_types.symbol }, + "times": { insertText: "times", documentation: "Binary Relation: times", kind: latex_types.symbol }, + "cup": { insertText: "cup", documentation: "Binary Relation: cup", kind: latex_types.symbol }, + "sqcup": { insertText: "sqcup", documentation: "Binary Relation: sqcup", kind: latex_types.symbol }, + "vee": { insertText: "vee", documentation: "Binary Relation: vee", kind: latex_types.symbol, detail: "Synonym for \"\\lor\"" }, + "lor": { insertText: "lor", documentation: "Binary Relation: lor", kind: latex_types.symbol, detail: "Synonym for \"\\vee\"" }, + "oplus": { insertText: "oplus", documentation: "Binary Relation: oplus", kind: latex_types.symbol }, + "odot": { insertText: "odot", documentation: "Binary Relation: odot", kind: latex_types.symbol }, + "otimes": { insertText: "otimes", documentation: "Binary Relation: otimes", kind: latex_types.symbol }, + "bigtriangleup": { insertText: "bigtriangleup", documentation: "Binary Relation: bigtriangleup", kind: latex_types.symbol }, + "lhd": { insertText: "lhd", documentation: "Binary Relation: lhd", kind: latex_types.symbol, detail: required_latexsym }, + "unlhd": { insertText: "unlhd", documentation: "Binary Relation: unlhd", kind: latex_types.symbol, detail: required_latexsym }, + "mp": { insertText: "mp", documentation: "Binary Relation: mp", kind: latex_types.symbol }, + "div": { insertText: "div", documentation: "Binary Relation: div", kind: latex_types.symbol }, + "setminus": { insertText: "setminus", documentation: "Binary Relation: setminus", kind: latex_types.symbol }, + "cap": { insertText: "cap", documentation: "Binary Relation: cap", kind: latex_types.symbol }, + "sqcap": { insertText: "sqcap", documentation: "Binary Relation: sqcap", kind: latex_types.symbol }, + "wedge": { insertText: "wedge", documentation: "Binary Relation: wedge", kind: latex_types.symbol, detail: "Synonym for \"\\land\"" }, + "land": { insertText: "land", documentation: "Binary Relation: land", kind: latex_types.symbol, detail: "Synonym for \"\\wedge\"" }, + "ominus": { insertText: "ominus", documentation: "Binary Relation: ominus", kind: latex_types.symbol }, + "oslash": { insertText: "oslash", documentation: "Binary Relation: oslash", kind: latex_types.symbol }, + "bigcirc": { insertText: "bigcirc", documentation: "Binary Relation: bigcirc", kind: latex_types.symbol }, + "bigtriangledown": { insertText: "bigtriangledown", documentation: "Binary Relation: bigtriangledown", kind: latex_types.symbol }, + "rhd": { insertText: "rhd", documentation: "Binary Relation: rhd", kind: latex_types.symbol, detail: required_latexsym }, + "unrhd": { insertText: "unrhd", documentation: "Binary Relation: unrhd", kind: latex_types.symbol, detail: required_latexsym }, + "triangleleft": { insertText: "triangleleft", documentation: "Binary Relation: triangleleft", kind: latex_types.symbol }, + "triangleright": { insertText: "triangleright", documentation: "Binary Relation: triangleright", kind: latex_types.symbol }, + "star": { insertText: "star", documentation: "Binary Relation: star", kind: latex_types.symbol }, + "ast": { insertText: "ast", documentation: "Binary Relation: ast", kind: latex_types.symbol }, + "circ": { insertText: "circ", documentation: "Binary Relation: circ", kind: latex_types.symbol }, + "bullet": { insertText: "bullet", documentation: "Binary Relation: bullet", kind: latex_types.symbol }, + "diamond": { insertText: "diamond", documentation: "Binary Relation: diamond", kind: latex_types.symbol }, + "uplus": { insertText: "uplus", documentation: "Binary Relation: uplus", kind: latex_types.symbol }, + "amalg": { insertText: "amalg", documentation: "Binary Relation: amalg", kind: latex_types.symbol }, + "dagger": { insertText: "dagger", documentation: "Binary Relation: dagger", kind: latex_types.symbol }, + "ddagger": { insertText: "ddagger", documentation: "Binary Relation: ddagger", kind: latex_types.symbol }, + "wr": { insertText: "wr", documentation: "Binary Relation: wr", kind: latex_types.symbol }, + + "sum": { insertText: "sum_{$1}^{$2} $0", documentation: "Operator: Sum", kind: latex_types.snippet }, + "prod": { insertText: "prod_{$1}^{$2} $0", documentation: "Operator: Product", kind: latex_types.snippet }, + "coprod": { insertText: "coprod_{$1}^{$2} $0", documentation: "Operator: Coproduct", kind: latex_types.snippet }, + "int": { insertText: "int_{$1}^{$2} $0", documentation: "Operator: Integral", kind: latex_types.snippet }, + "iint": { insertText: "iint_{$1}^{$2} $0", documentation: "Operator: double Integral", kind: latex_types.snippet }, + "iiint": { insertText: "iiint_{$1}^{$2} $0", documentation: "Operator: trible Integral", kind: latex_types.snippet }, + "bigoplus": { insertText: "bigoplus_{$1}^{$2} $0", documentation: "Operator: bigoplus", kind: latex_types.snippet }, + "bigcup": { insertText: "bigcup_{$1}^{$2} $0", documentation: "Operator: bigcup", kind: latex_types.snippet }, + "bigcap": { insertText: "bigcap_{$1}^{$2} $0", documentation: "Operator: bigcap", kind: latex_types.snippet }, + "bigsqcup": { insertText: "bigsqcup_{$1}^{$2} $0", documentation: "Operator: bigsqcup", kind: latex_types.snippet }, + "oint": { insertText: "oint_{$1}^{$2} $0", documentation: "Operator: cloused courve Integral", kind: latex_types.snippet }, + "bigotimes": { insertText: "bigotimes_{$1}^{$2} $0", documentation: "Operator: bigotimes", kind: latex_types.snippet }, + "bigvee": { insertText: "bigvee_{$1}^{$2} $0", documentation: "Operator: bigvee", kind: latex_types.snippet }, + "bigwedge": { insertText: "bigwedge_{$1}^{$2} $0", documentation: "Operator: bigwedge", kind: latex_types.snippet }, + "biguplus": { insertText: "biguplus_{$1}^{$2} $0", documentation: "Operator: biguplus", kind: latex_types.snippet }, + "bigodot": { insertText: "bigodot_{$1}^{$2} $0", documentation: "Operator: bigodot", kind: latex_types.snippet }, + + "leftarrow": { insertText: "leftarrow", documentation: "Arrow: leftarrow", kind: latex_types.symbol, detail: "Synonym for \"\\gets\"" }, + "gets": { insertText: "gets", documentation: "Arrow: leftarrow", kind: latex_types.symbol, detail: "Synonym for \"\\leftarrow\"" }, + "rightarrow": { insertText: "rightarrow", documentation: "Arrow: rightarrow", kind: latex_types.symbol, detail: "Synonym for \"\\to\"" }, + "to": { insertText: "to", documentation: "Arrow: to", kind: latex_types.symbol, detail: "Synonym for \"\\rightarrow\"" }, + "leftrightarrow": { insertText: "leftrightarrow", documentation: "Arrow: leftrightarrow", kind: latex_types.symbol }, + "Leftarrow": { insertText: "Leftarrow", documentation: "Arrow: Leftarrow", kind: latex_types.symbol }, + "Rightarrow": { insertText: "Rightarrow", documentation: "Arrow: Rightarrow", kind: latex_types.symbol }, + "Leftrightarrow": { insertText: "Leftrightarrow", documentation: "Arrow: Leftrightarrow", kind: latex_types.symbol }, + "mapsto": { insertText: "mapsto", documentation: "Arrow: mapsto", kind: latex_types.symbol }, + "hookleftarrow": { insertText: "hookleftarrow", documentation: "Arrow: hookleftarrow", kind: latex_types.symbol }, + "leftharpoonup": { insertText: "leftharpoonup", documentation: "Arrow: leftharpoonup", kind: latex_types.symbol }, + "leftharpoondown": { insertText: "leftharpoondown", documentation: "Arrow: leftharpoondown", kind: latex_types.symbol }, + "rightleftharpoons": { insertText: "rightleftharpoons", documentation: "Arrow: rightleftharpoons", kind: latex_types.symbol }, + "uparrow": { insertText: "uparrow", documentation: "Arrow: uparrow", kind: latex_types.symbol }, + "updownarrow": { insertText: "updownarrow", documentation: "Arrow: updownarrow", kind: latex_types.symbol }, + "Downarrow": { insertText: "Downarrow", documentation: "Arrow: Downarrow", kind: latex_types.symbol }, + "nearrow": { insertText: "nearrow", documentation: "Arrow: nearrow", kind: latex_types.symbol }, + "swarrow": { insertText: "swarrow", documentation: "Arrow: swarrow", kind: latex_types.symbol }, + "leadsto": { insertText: "leadsto", documentation: "Arrow: leadsto", kind: latex_types.symbol, detail: required_latexsym }, + "longleftarrow": { insertText: "longleftarrow", documentation: "Arrow: longleftarrow", kind: latex_types.symbol }, + "longrightarrow": { insertText: "longrightarrow", documentation: "Arrow: longrightarrow", kind: latex_types.symbol }, + "longleftrightarrow": { insertText: "longleftrightarrow", documentation: "Arrow: longleftrightarrow", kind: latex_types.symbol }, + "Longleftarrow": { insertText: "Longleftarrow", documentation: "Arrow: Longleftarrow", kind: latex_types.symbol }, + "Longrightarrow": { insertText: "Longrightarrow", documentation: "Arrow: Longrightarrow", kind: latex_types.symbol }, + "Longleftrightarrow": { insertText: "Longleftrightarrow", documentation: "Arrow: Longleftrightarrow", kind: latex_types.symbol }, + "longmapsto": { insertText: "longmapsto", documentation: "Arrow: longmapsto", kind: latex_types.symbol }, + "hookrightarrow": { insertText: "hookrightarrow", documentation: "Arrow: hookrightarrow", kind: latex_types.symbol }, + "rightharpoonup": { insertText: "rightharpoonup", documentation: "Arrow: rightharpoonup", kind: latex_types.symbol }, + "rightharpoondown": { insertText: "rightharpoondown", documentation: "Arrow: rightharpoondown", kind: latex_types.symbol }, + "iff": { insertText: "iff", documentation: "Arrow: if", kind: latex_types.symbol, detail: "bigger spaces" }, + "downarrow": { insertText: "downarrow", documentation: "Arrow: downarrow", kind: latex_types.symbol }, + "Uparrow": { insertText: "Uparrow", documentation: "Arrow: Uparrow", kind: latex_types.symbol }, + "Updownarrow": { insertText: "Updownarrow", documentation: "Arrow: Updownarrow", kind: latex_types.symbol }, + "searrow": { insertText: "searrow", documentation: "Arrow: searrow", kind: latex_types.symbol }, + "nwarrow": { insertText: "nwarrow", documentation: "Arrow: nwarrow", kind: latex_types.symbol }, + + "lfloor": { insertText: "lfloor", documentation: "Delimiter: lfloor", kind: latex_types.symbol }, + "rceil": { insertText: "rceil", documentation: "Delimiter: rceil", kind: latex_types.symbol }, + "rangle": { insertText: "rangle", documentation: "Delimiter: rangle", kind: latex_types.symbol }, + "Vert": { insertText: "Vert", documentation: "Delimiter: Vert", kind: latex_types.symbol }, + "rfloor": { insertText: "rfloor", documentation: "Delimiter: rfloor", kind: latex_types.symbol }, + "lceil": { insertText: "lceil", documentation: "Delimiter: lceil", kind: latex_types.symbol }, + + "neg": { insertText: "neg", documentation: "Symbol: neg", kind: latex_types.symbol, detail: "Synonym for \"\\\\lnot\"" }, + "lnot": { insertText: "lnot", documentation: "Symbol: lnot", kind: latex_types.symbol, detail: "Synonym for \"\\\\neg\"" }, + "top": { insertText: "top", documentation: "Symbol: top", kind: latex_types.symbol }, + "wp": { insertText: "wp", documentation: "Symbol: wp", kind: latex_types.symbol }, + "Diamond": { insertText: "Diamond", documentation: "Symbol: Diamond", kind: latex_types.symbol, detail: required_latexsym }, + "sharp": { insertText: "sharp", documentation: "Symbol: sharp", kind: latex_types.symbol }, + "digamma": { insertText: "digamma", documentation: "Symbol: digamma", kind: latex_types.symbol, detail: required_amsmath }, + "beth": { insertText: "beth", documentation: "Symbol: beth", kind: latex_types.symbol, detail: required_amsmath }, + "gimel": { insertText: "gimel", documentation: "Symbol: gimel", kind: latex_types.symbol, detail: required_amsmath }, + "daleth": { insertText: "daleth", documentation: "Symbol: daleth", kind: latex_types.symbol, detail: required_amsmath }, + + // AMS Binary Relations. + "dotplus": { insertText: "dotplus", documentation: "Binary Relation: dotplus", kind: latex_types.symbol, detail: required_amsmath }, + "ltimes": { insertText: "ltimes", documentation: "Binary Relation: ltimes", kind: latex_types.symbol, detail: required_amsmath }, + "doublecup": { insertText: "doublecup", documentation: "Binary Relation: doublecup", kind: latex_types.symbol, detail: required_amsmath }, + "veebar": { insertText: "veebar", documentation: "Binary Relation: veebar", kind: latex_types.symbol, detail: required_amsmath }, + "boxplus": { insertText: "boxplus", documentation: "Binary Relation: boxplus", kind: latex_types.symbol, detail: required_amsmath }, + "boxtimes": { insertText: "boxtimes", documentation: "Binary Relation: boxtimes", kind: latex_types.symbol, detail: required_amsmath }, + "intercal": { insertText: "intercal", documentation: "Binary Relation: intercal", kind: latex_types.symbol, detail: required_amsmath }, + "curlyvee": { insertText: "curlyvee", documentation: "Binary Relation: curlyvee", kind: latex_types.symbol, detail: required_amsmath }, + "centerdot": { insertText: "centerdot", documentation: "Binary Relation: centerdot", kind: latex_types.symbol, detail: required_amsmath }, + "rtimes": { insertText: "rtimes", documentation: "Binary Relation: rtimes", kind: latex_types.symbol, detail: required_amsmath }, + "doublecap": { insertText: "doublecap", documentation: "Binary Relation: doublecap", kind: latex_types.symbol, detail: required_amsmath }, + "barwedge": { insertText: "barwedge", documentation: "Binary Relation: barwedge", kind: latex_types.symbol, detail: required_amsmath }, + "boxminus": { insertText: "boxminus", documentation: "Binary Relation: boxminus", kind: latex_types.symbol, detail: required_amsmath }, + "boxdot": { insertText: "boxdot", documentation: "Binary Relation: boxdot", kind: latex_types.symbol, detail: required_amsmath }, + "circledast": { insertText: "circledast", documentation: "Binary Relation: circledast", kind: latex_types.symbol, detail: required_amsmath }, + "curlywedge": { insertText: "curlywedge", documentation: "Binary Relation: curlywedge", kind: latex_types.symbol, detail: required_amsmath }, + "divideontimes": { insertText: "divideontimes", documentation: "Binary Relation: divideontimes", kind: latex_types.symbol, detail: required_amsmath }, + "smallsetminus": { insertText: "smallsetminus", documentation: "Binary Relation: smallsetminus", kind: latex_types.symbol, detail: required_amsmath }, + "doublebarwedge": { insertText: "doublebarwedge", documentation: "Binary Relation: doublebarwedge", kind: latex_types.symbol, detail: required_amsmath }, + "circleddash": { insertText: "circleddash", documentation: "Binary Relation: circleddash", kind: latex_types.symbol, detail: required_amsmath }, + "circledcirc": { insertText: "circledcirc", documentation: "Binary Relation: circledcirc", kind: latex_types.symbol, detail: required_amsmath }, + "rightthreetimes": { insertText: "rightthreetimes", documentation: "Binary Relation: rightthreetimes", kind: latex_types.symbol, detail: required_amsmath }, + "leftthreetimes": { insertText: "leftthreetimes", documentation: "Binary Relation: leftthreetimes", kind: latex_types.symbol, detail: required_amsmath }, + "lessdot": { insertText: "lessdot", documentation: "Binary Relation: lessdot", kind: latex_types.symbol, detail: required_amsmath }, + "leqslant": { insertText: "leqslant", documentation: "Binary Relation: leqslant", kind: latex_types.symbol, detail: required_amsmath }, + "eqslantless": { insertText: "eqslantless", documentation: "Binary Relation: eqslantless", kind: latex_types.symbol, detail: required_amsmath }, + "leqq": { insertText: "leqq", documentation: "Binary Relation: leqq", kind: latex_types.symbol, detail: required_amsmath }, + "llless": { insertText: "llless", documentation: "Binary Relation: llless", kind: latex_types.symbol, detail: "Synonym for \"\\lll\". Required package \"amsmath\"" }, + "lll": { insertText: "lll", documentation: "Binary Relation: lll", kind: latex_types.symbol, detail: "Synonym for \"\\llless\". Required package \"amsmath\"" }, + "lesssim": { insertText: "lesssim", documentation: "Binary Relation: lesssim", kind: latex_types.symbol, detail: required_amsmath }, + "lessapprox": { insertText: "lessapprox", documentation: "Binary Relation: lessapprox", kind: latex_types.symbol, detail: required_amsmath }, + "lessgtr": { insertText: "lessgtr", documentation: "Binary Relation: lessgtr", kind: latex_types.symbol, detail: required_amsmath }, + "lesseqgtr": { insertText: "lesseqgtr", documentation: "Binary Relation: lesseqgtr", kind: latex_types.symbol, detail: required_amsmath }, + "lesseqqgtr": { insertText: "lesseqqgtr", documentation: "Binary Relation: lesseqqgtr", kind: latex_types.symbol, detail: required_amsmath }, + "preccurlyeq": { insertText: "preccurlyeq", documentation: "Binary Relation: preccurlyeq", kind: latex_types.symbol, detail: required_amsmath }, + "curlyeqprec": { insertText: "curlyeqprec", documentation: "Binary Relation: curlyeqprec", kind: latex_types.symbol, detail: required_amsmath }, + "precsim": { insertText: "precsim", documentation: "Binary Relation: precsim", kind: latex_types.symbol, detail: required_amsmath }, + "precapprox": { insertText: "precapprox", documentation: "Binary Relation: precapprox", kind: latex_types.symbol, detail: required_amsmath }, + "subseteqq": { insertText: "subseteqq", documentation: "Binary Relation: subseteqq", kind: latex_types.symbol, detail: required_amsmath }, + "shortparallel": { insertText: "shortparallel", documentation: "Binary Relation: shortparallel", kind: latex_types.symbol, detail: required_amsmath }, + "blacktriangleleft": { insertText: "blacktriangleleft", documentation: "Binary Relation: blacktriangleleft", kind: latex_types.symbol, detail: required_amsmath }, + "vartriangleright": { insertText: "vartriangleright", documentation: "Binary Relation: vartriangleright", kind: latex_types.symbol, detail: required_amsmath }, + "blacktriangleright": { insertText: "blacktriangleright", documentation: "Binary Relation: blacktriangleright", kind: latex_types.symbol, detail: required_amsmath }, + "trianglerighteq": { insertText: "trianglerighteq", documentation: "Binary Relation: trianglerighteq", kind: latex_types.symbol, detail: required_amsmath }, + "vartriangleleft": { insertText: "vartriangleleft", documentation: "Binary Relation: vartriangleleft", kind: latex_types.symbol, detail: required_amsmath }, + "trianglelefteq": { insertText: "trianglelefteq", documentation: "Binary Relation: trianglelefteq", kind: latex_types.symbol, detail: required_amsmath }, + "gtrdot": { insertText: "gtrdot", documentation: "Binary Relation: gtrdot", kind: latex_types.symbol, detail: required_amsmath }, + "geqslant": { insertText: "geqslant", documentation: "Binary Relation: geqslant", kind: latex_types.symbol, detail: required_amsmath }, + "eqslantgtr": { insertText: "eqslantgtr", documentation: "Binary Relation: eqslantgtr", kind: latex_types.symbol, detail: required_amsmath }, + "geqq": { insertText: "geqq", documentation: "Binary Relation: geqq", kind: latex_types.symbol, detail: required_amsmath }, + "ggg": { insertText: "ggg", documentation: "Binary Relation: ggg", kind: latex_types.symbol, detail: required_amsmath }, + "gtrsim": { insertText: "gtrsim", documentation: "Binary Relation: gtrsim", kind: latex_types.symbol, detail: required_amsmath }, + "gtrapprox": { insertText: "gtrapprox", documentation: "Binary Relation: gtrapprox", kind: latex_types.symbol, detail: required_amsmath }, + "gtrless": { insertText: "gtrless", documentation: "Binary Relation: gtrless", kind: latex_types.symbol, detail: required_amsmath }, + "gtreqless": { insertText: "gtreqless", documentation: "Binary Relation: gtreqless", kind: latex_types.symbol, detail: required_amsmath }, + "gtreqqless": { insertText: "gtreqqless", documentation: "Binary Relation: gtreqqless", kind: latex_types.symbol, detail: required_amsmath }, + "succcurlyeq": { insertText: "succcurlyeq", documentation: "Binary Relation: succcurlyeq", kind: latex_types.symbol, detail: required_amsmath }, + "curlyeqsucc": { insertText: "curlyeqsucc", documentation: "Binary Relation: curlyeqsucc", kind: latex_types.symbol, detail: required_amsmath }, + "succsim": { insertText: "succsim", documentation: "Binary Relation: succsim", kind: latex_types.symbol, detail: required_amsmath }, + "succapprox": { insertText: "succapprox", documentation: "Binary Relation: succapprox", kind: latex_types.symbol, detail: required_amsmath }, + "supseteqq": { insertText: "supseteqq", documentation: "Binary Relation: supseteqq", kind: latex_types.symbol, detail: required_amsmath }, + "Supset": { insertText: "Supset", documentation: "Binary Relation: Supset", kind: latex_types.symbol, detail: required_amsmath }, + "sqsupset": { insertText: "sqsupset", documentation: "Binary Relation: sqsupset", kind: latex_types.symbol, detail: required_amsmath }, + "because": { insertText: "because", documentation: "Binary Relation: because", kind: latex_types.symbol, detail: required_amsmath }, + "Subset": { insertText: "Subset", documentation: "Binary Relation: Subset", kind: latex_types.symbol, detail: required_amsmath }, + "smallfrown": { insertText: "smallfrown", documentation: "Binary Relation: smallfrown", kind: latex_types.symbol, detail: required_amsmath }, + "shortmid": { insertText: "shortmid", documentation: "Binary Relation: shortmid", kind: latex_types.symbol, detail: required_amsmath }, + "therefore": { insertText: "therefore", documentation: "Binary Relation: therefore", kind: latex_types.symbol, detail: required_amsmath }, + "doteqdot": { insertText: "doteqdot", documentation: "Binary Relation: doteqdot", kind: latex_types.symbol, detail: required_amsmath }, + "risingdotseq": { insertText: "risingdotseq", documentation: "Binary Relation: risingdotseq", kind: latex_types.symbol, detail: required_amsmath }, + "fallingdotseq": { insertText: "fallingdotseq", documentation: "Binary Relation: fallingdotseq", kind: latex_types.symbol, detail: required_amsmath }, + "eqcirc": { insertText: "eqcirc", documentation: "Binary Relation: eqcirc", kind: latex_types.symbol, detail: required_amsmath }, + "circeq": { insertText: "circeq", documentation: "Binary Relation: circeq", kind: latex_types.symbol, detail: required_amsmath }, + "triangleq": { insertText: "triangleq", documentation: "Binary Relation: triangleq", kind: latex_types.symbol, detail: required_amsmath }, + "bumpeq": { insertText: "bumpeq", documentation: "Binary Relation: bumpeq", kind: latex_types.symbol, detail: required_amsmath }, + "Bumpeq": { insertText: "Bumpeq", documentation: "Binary Relation: Bumpeq", kind: latex_types.symbol, detail: required_amsmath }, + "thicksim": { insertText: "thicksim", documentation: "Binary Relation: thicksim", kind: latex_types.symbol, detail: required_amsmath }, + "thickapprox": { insertText: "thickapprox", documentation: "Binary Relation: thickapprox", kind: latex_types.symbol, detail: required_amsmath }, + "approxeq": { insertText: "approxeq", documentation: "Binary Relation: approxeq", kind: latex_types.symbol, detail: required_amsmath }, + "backsim": { insertText: "backsim", documentation: "Binary Relation: backsim", kind: latex_types.symbol, detail: required_amsmath }, + "backsimeq": { insertText: "backsimeq", documentation: "Binary Relation: backsimeq", kind: latex_types.symbol, detail: required_amsmath }, + "vDash": { insertText: "vDash", documentation: "Binary Relation: vDash", kind: latex_types.symbol, detail: required_amsmath }, + "Vdash": { insertText: "Vdash", documentation: "Binary Relation: Vdash", kind: latex_types.symbol, detail: required_amsmath }, + "Vvdash": { insertText: "Vvdash", documentation: "Binary Relation: Vvdash", kind: latex_types.symbol, detail: required_amsmath }, + "backepsilon": { insertText: "backepsilon", documentation: "Binary Relation: backepsilon", kind: latex_types.symbol, detail: required_amsmath }, + "varpropto": { insertText: "varpropto", documentation: "Binary Relation: varpropto", kind: latex_types.symbol, detail: required_amsmath }, + "between": { insertText: "between", documentation: "Binary Relation: between", kind: latex_types.symbol, detail: required_amsmath }, + "pitchfork": { insertText: "pitchfork", documentation: "Binary Relation: pitchfork", kind: latex_types.symbol, detail: required_amsmath }, + "smallsmile": { insertText: "smallsmile", documentation: "Binary Relation: smallsmile", kind: latex_types.symbol, detail: required_amsmath }, + "sqsubset": { insertText: "sqsubset", documentation: "Binary Relation: sqsubset", kind: latex_types.symbol, detail: required_amsmath }, + + // AMS Arrows. + "dashleftarrow": { insertText: "dashleftarrow", documentation: "Arrow: dashleftarrow", kind: latex_types.symbol, detail: required_amsmath }, + "leftleftarrows": { insertText: "leftleftarrows", documentation: "Arrow: leftleftarrows", kind: latex_types.symbol, detail: required_amsmath }, + "leftrightarrows": { insertText: "leftrightarrows", documentation: "Arrow: leftrightarrows", kind: latex_types.symbol, detail: required_amsmath }, + "Lleftarrow": { insertText: "Lleftarrow", documentation: "Arrow: Lleftarrow", kind: latex_types.symbol, detail: required_amsmath }, + "twoheadleftarrow": { insertText: "twoheadleftarrow", documentation: "Arrow: twoheadleftarrow", kind: latex_types.symbol, detail: required_amsmath }, + "leftarrowtail": { insertText: "leftarrowtail", documentation: "Arrow: leftarrowtail", kind: latex_types.symbol, detail: required_amsmath }, + "leftrightharpoons": { insertText: "leftrightharpoons", documentation: "Arrow: leftrightharpoons", kind: latex_types.symbol, detail: required_amsmath }, + "Lsh": { insertText: "Lsh", documentation: "Arrow: Lsh", kind: latex_types.symbol, detail: required_amsmath }, + "looparrowleft": { insertText: "looparrowleft", documentation: "Arrow: looparrowleft", kind: latex_types.symbol, detail: required_amsmath }, + "curvearrowleft": { insertText: "curvearrowleft", documentation: "Arrow: curvearrowleft", kind: latex_types.symbol, detail: required_amsmath }, + "circlearrowleft": { insertText: "circlearrowleft", documentation: "Arrow: circlearrowleft", kind: latex_types.symbol, detail: required_amsmath }, + "multimap": { insertText: "multimap", documentation: "Arrow: multimap", kind: latex_types.symbol, detail: required_amsmath }, + "downdownarrows": { insertText: "downdownarrows", documentation: "Arrow: downdownarrows", kind: latex_types.symbol, detail: required_amsmath }, + "upharpoonright": { insertText: "upharpoonright", documentation: "Arrow: upharpoonright", kind: latex_types.symbol, detail: required_amsmath }, + "rightsquigarrow": { insertText: "rightsquigarrow", documentation: "Arrow: rightsquigarrow", kind: latex_types.symbol, detail: required_amsmath }, + "dashrightarrow": { insertText: "dashrightarrow", documentation: "Arrow: dashrightarrow", kind: latex_types.symbol, detail: required_amsmath }, + "rightrightarrows": { insertText: "rightrightarrows", documentation: "Arrow: rightrightarrows", kind: latex_types.symbol, detail: required_amsmath }, + "rightleftarrows": { insertText: "rightleftarrows", documentation: "Arrow: rightleftarrows", kind: latex_types.symbol, detail: required_amsmath }, + "Rrightarrow": { insertText: "Rrightarrow", documentation: "Arrow: Rrightarrow", kind: latex_types.symbol, detail: required_amsmath }, + "twoheadrightarrow": { insertText: "twoheadrightarrow", documentation: "Arrow: twoheadrightarrow", kind: latex_types.symbol, detail: required_amsmath }, + "rightarrowtail": { insertText: "rightarrowtail", documentation: "Arrow: rightarrowtail", kind: latex_types.symbol, detail: required_amsmath }, + "Rsh": { insertText: "Rsh", documentation: "Arrow: Rsh", kind: latex_types.symbol, detail: required_amsmath }, + "looparrowright": { insertText: "looparrowright", documentation: "Arrow: looparrowright", kind: latex_types.symbol, detail: required_amsmath }, + "curvearrowright": { insertText: "curvearrowright", documentation: "Arrow: curvearrowright", kind: latex_types.symbol, detail: required_amsmath }, + "circlearrowright": { insertText: "circlearrowright", documentation: "Arrow: circlearrowright", kind: latex_types.symbol, detail: required_amsmath }, + "upuparrows": { insertText: "upuparrows", documentation: "Arrow: upuparrows", kind: latex_types.symbol, detail: required_amsmath }, + "upharpoonleft": { insertText: "upharpoonleft", documentation: "Arrow: upharpoonleft", kind: latex_types.symbol, detail: required_amsmath }, + "downharpoonright": { insertText: "downharpoonright", documentation: "Arrow: downharpoonright", kind: latex_types.symbol, detail: required_amsmath }, + "leftrightsquigarrow": { insertText: "leftrightsquigarrow", documentation: "Arrow: leftrightsquigarrow", kind: latex_types.symbol, detail: required_amsmath }, + + // AMS Negated Binary Relations and Arrows. + "nless": { insertText: "nless", documentation: "Negated Binary Relation: nless", kind: latex_types.symbol, detail: required_amsmath }, + "lneq": { insertText: "lneq", documentation: "Negated Binary Relation: lneq", kind: latex_types.symbol, detail: required_amsmath }, + "nleq": { insertText: "nleq", documentation: "Negated Binary Relation: nleq", kind: latex_types.symbol, detail: required_amsmath }, + "nleqslant": { insertText: "nleqslant", documentation: "Negated Binary Relation: nleqslant", kind: latex_types.symbol, detail: required_amsmath }, + "lneqq": { insertText: "lneqq", documentation: "Negated Binary Relation: lneqq", kind: latex_types.symbol, detail: required_amsmath }, + "lvertneqq": { insertText: "lvertneqq", documentation: "Negated Binary Relation: lvertneqq", kind: latex_types.symbol, detail: required_amsmath }, + "nleqq": { insertText: "nleqq", documentation: "Negated Binary Relation: nleqq", kind: latex_types.symbol, detail: required_amsmath }, + "lnsim": { insertText: "lnsim", documentation: "Negated Binary Relation: lnsim", kind: latex_types.symbol, detail: required_amsmath }, + "lnapprox": { insertText: "lnapprox", documentation: "Negated Binary Relation: lnapprox", kind: latex_types.symbol, detail: required_amsmath }, + "nprec": { insertText: "nprec", documentation: "Negated Binary Relation: nprec", kind: latex_types.symbol, detail: required_amsmath }, + "npreceq": { insertText: "npreceq", documentation: "Negated Binary Relation: npreceq", kind: latex_types.symbol, detail: required_amsmath }, + "precneqq": { insertText: "precneqq", documentation: "Negated Binary Relation: precneqq", kind: latex_types.symbol, detail: required_amsmath }, + "precnsim": { insertText: "precnsim", documentation: "Negated Binary Relation: precnsim", kind: latex_types.symbol, detail: required_amsmath }, + "precnapprox": { insertText: "precnapprox", documentation: "Negated Binary Relation: precnapprox", kind: latex_types.symbol, detail: required_amsmath }, + "subsetneq": { insertText: "subsetneq", documentation: "Negated Binary Relation: subsetneq", kind: latex_types.symbol, detail: required_amsmath }, + "varsubsetneq": { insertText: "varsubsetneq", documentation: "Negated Binary Relation: varsubsetneq", kind: latex_types.symbol, detail: required_amsmath }, + "nsubseteq": { insertText: "nsubseteq", documentation: "Negated Binary Relation: nsubseteq", kind: latex_types.symbol, detail: required_amsmath }, + "subsetneqq": { insertText: "subsetneqq", documentation: "Negated Binary Relation: subsetneqq", kind: latex_types.symbol, detail: required_amsmath }, + "ngtr": { insertText: "ngtr", documentation: "Negated Binary Relation: ngtr", kind: latex_types.symbol, detail: required_amsmath }, + "gneq": { insertText: "gneq", documentation: "Negated Binary Relation: gneq", kind: latex_types.symbol, detail: required_amsmath }, + "ngeq": { insertText: "ngeq", documentation: "Negated Binary Relation: ngeq", kind: latex_types.symbol, detail: required_amsmath }, + "ngeqslant": { insertText: "ngeqslant", documentation: "Negated Binary Relation: ngeqslant", kind: latex_types.symbol, detail: required_amsmath }, + "gneqq": { insertText: "gneqq", documentation: "Negated Binary Relation: gneqq", kind: latex_types.symbol, detail: required_amsmath }, + "gvertneqq": { insertText: "gvertneqq", documentation: "Negated Binary Relation: gvertneqq", kind: latex_types.symbol, detail: required_amsmath }, + "ngeqq": { insertText: "ngeqq", documentation: "Negated Binary Relation: ngeqq", kind: latex_types.symbol, detail: required_amsmath }, + "gnsim": { insertText: "gnsim", documentation: "Negated Binary Relation: gnsim", kind: latex_types.symbol, detail: required_amsmath }, + "gnapprox": { insertText: "gnapprox", documentation: "Negated Binary Relation: gnapprox", kind: latex_types.symbol, detail: required_amsmath }, + "nsucc": { insertText: "nsucc", documentation: "Negated Binary Relation: nsucc", kind: latex_types.symbol, detail: required_amsmath }, + "nsucceq": { insertText: "nsucceq", documentation: "Negated Binary Relation: nsucceq", kind: latex_types.symbol, detail: required_amsmath }, + "succneqq": { insertText: "succneqq", documentation: "Negated Binary Relation: succneqq", kind: latex_types.symbol, detail: required_amsmath }, + "succnsim": { insertText: "succnsim", documentation: "Negated Binary Relation: succnsim", kind: latex_types.symbol, detail: required_amsmath }, + "succnapprox": { insertText: "succnapprox", documentation: "Negated Binary Relation: succnapprox", kind: latex_types.symbol, detail: required_amsmath }, + "supsetneq": { insertText: "supsetneq", documentation: "Negated Binary Relation: supsetneq", kind: latex_types.symbol, detail: required_amsmath }, + "varsupsetneq": { insertText: "varsupsetneq", documentation: "Negated Binary Relation: varsupsetneq", kind: latex_types.symbol, detail: required_amsmath }, + "nsupseteq": { insertText: "nsupseteq", documentation: "Negated Binary Relation: nsupseteq", kind: latex_types.symbol, detail: required_amsmath }, + "supsetneqq": { insertText: "supsetneqq", documentation: "Negated Binary Relation: supsetneqq", kind: latex_types.symbol, detail: required_amsmath }, + "varsubsetneqq": { insertText: "varsubsetneqq", documentation: "Negated Binary Relation: varsubsetneqq", kind: latex_types.symbol, detail: required_amsmath }, + "varsupsetneqq": { insertText: "varsupsetneqq", documentation: "Negated Binary Relation: varsupsetneqq", kind: latex_types.symbol, detail: required_amsmath }, + "nsubseteqq": { insertText: "nsubseteqq", documentation: "Negated Binary Relation: nsubseteqq", kind: latex_types.symbol, detail: required_amsmath }, + "nsupseteqq": { insertText: "nsupseteqq", documentation: "Negated Binary Relation: nsupseteqq", kind: latex_types.symbol, detail: required_amsmath }, + "nmid": { insertText: "nmid", documentation: "Negated Binary Relation: nmid", kind: latex_types.symbol, detail: required_amsmath }, + "nparallel": { insertText: "nparallel", documentation: "Negated Binary Relation: nparallel", kind: latex_types.symbol, detail: required_amsmath }, + "nshortmid": { insertText: "nshortmid", documentation: "Negated Binary Relation: nshortmid", kind: latex_types.symbol, detail: required_amsmath }, + "nshortparallel": { insertText: "nshortparallel", documentation: "Negated Binary Relation: nshortparallel", kind: latex_types.symbol, detail: required_amsmath }, + "nsim": { insertText: "nsim", documentation: "Negated Binary Relation: nsim", kind: latex_types.symbol, detail: required_amsmath }, + "ncong": { insertText: "ncong", documentation: "Negated Binary Relation: ncong", kind: latex_types.symbol, detail: required_amsmath }, + "nvdash": { insertText: "nvdash", documentation: "Negated Binary Relation: nvdash", kind: latex_types.symbol, detail: required_amsmath }, + "nvDash": { insertText: "nvDash", documentation: "Negated Binary Relation: nvDash", kind: latex_types.symbol, detail: required_amsmath }, + "nVdash": { insertText: "nVdash", documentation: "Negated Binary Relation: nVdash", kind: latex_types.symbol, detail: required_amsmath }, + "nVDash": { insertText: "nVDash", documentation: "Negated Binary Relation: nVDash", kind: latex_types.symbol, detail: required_amsmath }, + "ntriangleleft": { insertText: "ntriangleleft", documentation: "Negated Binary Relation: ntriangleleft", kind: latex_types.symbol, detail: required_amsmath }, + "ntriangleright": { insertText: "ntriangleright", documentation: "Negated Binary Relation: ntriangleright", kind: latex_types.symbol, detail: required_amsmath }, + "ntrianglelefteq": { insertText: "ntrianglelefteq", documentation: "Negated Binary Relation: ntrianglelefteq", kind: latex_types.symbol, detail: required_amsmath }, + "ntrianglerighteq": { insertText: "ntrianglerighteq", documentation: "Negated Binary Relation: ntrianglerighteq", kind: latex_types.symbol, detail: required_amsmath }, + + // AMS negated Arrows. + "nleftarrow": { insertText: "nleftarrow", documentation: "Negated Arrow: nleftarrow", kind: latex_types.symbol, detail: required_amsmath }, + "nLeftarrow": { insertText: "nLeftarrow", documentation: "Negated Arrow: nLeftarrow", kind: latex_types.symbol, detail: required_amsmath }, + "nrightarrow": { insertText: "nrightarrow", documentation: "Negated Arrow: nrightarrow", kind: latex_types.symbol, detail: required_amsmath }, + "nRightarrow": { insertText: "nRightarrow", documentation: "Negated Arrow: nRightarrow", kind: latex_types.symbol, detail: required_amsmath }, + "nleftrightarrow": { insertText: "nleftrightarrow", documentation: "Negated Arrow: nleftrightarrow", kind: latex_types.symbol, detail: required_amsmath }, + "nLeftrightarrow": { insertText: "nLeftrightarrow", documentation: "Negated Arrow: nLeftrightarrow", kind: latex_types.symbol, detail: required_amsmath }, + + // AMS Miscellaneous. + "hbar": { insertText: "hbar", documentation: "Symbol: hbar", kind: latex_types.symbol, detail: required_amsmath }, + "square": { insertText: "square", documentation: "Symbol: square", kind: latex_types.symbol, detail: required_amsmath }, + "vartriangle": { insertText: "vartriangle", documentation: "Symbol: vartriangle", kind: latex_types.symbol, detail: required_amsmath }, + "triangledown": { insertText: "triangledown", documentation: "Symbol: triangledown", kind: latex_types.symbol, detail: required_amsmath }, + "lozenge": { insertText: "lozenge", documentation: "Symbol: lozenge", kind: latex_types.symbol, detail: required_amsmath }, + "angle": { insertText: "angle", documentation: "Symbol: angle", kind: latex_types.symbol, detail: required_amsmath }, + "diagup": { insertText: "diagup", documentation: "Symbol: diagup", kind: latex_types.symbol, detail: required_amsmath }, + "nexists": { insertText: "nexists", documentation: "Symbol: nexists", kind: latex_types.symbol, detail: required_amsmath }, + "eth": { insertText: "eth", documentation: "Symbol: eth", kind: latex_types.symbol, detail: required_amsmath }, + "hslash": { insertText: "hslash", documentation: "Symbol: hslash", kind: latex_types.symbol, detail: required_amsmath }, + "blacksquare": { insertText: "blacksquare", documentation: "Symbol: blacksquare", kind: latex_types.symbol, detail: required_amsmath }, + "blacktriangle": { insertText: "blacktriangle", documentation: "Symbol: blacktriangle", kind: latex_types.symbol, detail: required_amsmath }, + "blacktriangledown": { insertText: "blacktriangledown", documentation: "Symbol: blacktriangledown", kind: latex_types.symbol, detail: required_amsmath }, + "blacklozenge": { insertText: "blacklozenge", documentation: "Symbol: blacklozenge", kind: latex_types.symbol, detail: required_amsmath }, + "measuredangle": { insertText: "measuredangle", documentation: "Symbol: measuredangle", kind: latex_types.symbol, detail: required_amsmath }, + "diagdown": { insertText: "diagdown", documentation: "Symbol: diagdown", kind: latex_types.symbol, detail: required_amsmath }, + "Finv": { insertText: "Finv", documentation: "Symbol: Finv", kind: latex_types.symbol, detail: required_amsmath }, + "sphericalangle": { insertText: "sphericalangle", documentation: "Symbol: sphericalangle", kind: latex_types.symbol, detail: required_amsmath }, + "Bbbk": { insertText: "Bbbk", documentation: "Symbol: Bbbk", kind: latex_types.symbol, detail: required_amsmath }, + "circledS": { insertText: "circledS", documentation: "Symbol: circledS", kind: latex_types.symbol, detail: required_amsmath }, + "complement": { insertText: "complement", documentation: "Symbol: complement", kind: latex_types.symbol, detail: required_amsmath }, + "Game": { insertText: "Game", documentation: "Symbol: Game", kind: latex_types.symbol, detail: required_amsmath }, + "bigstar": { insertText: "bigstar", documentation: "Symbol: bigstar", kind: latex_types.symbol, detail: required_amsmath }, + "backprime": { insertText: "backprime", documentation: "Symbol: backprime", kind: latex_types.symbol, detail: required_amsmath }, + "varnothing": { insertText: "varnothing", documentation: "Symbol: varnothing", kind: latex_types.symbol, detail: required_amsmath }, + "mho": { insertText: "mho", documentation: "Symbol: mho", kind: latex_types.symbol, detail: required_amsmath }, +}; diff --git a/dictionary/package_symbols.ts b/dictionary/package_symbols.ts new file mode 100644 index 0000000..4abd4b4 --- /dev/null +++ b/dictionary/package_symbols.ts @@ -0,0 +1,16 @@ +import { latex_types } from "./symbol_types"; + +export default { + "fullpage": { insertText: "fullpage", kind: "package", documentation: "fullpage" }, + "inputenc": { insertText: "inputenc", kind: "package", documentation: "Ermöglich verwendung vollen Zeichensatzes UTF-8", + detail: "Empfohlener Zusatsparameter [utf8]" }, + "babel": { insertText: "babel", kind: "package", documentation: "Macht richtige Umbrüche, ...", + detail: "Mögliche Parameter [ngerman|english]" }, + "fontenc": { insertText: "fontenc", kind: "package", documentation: "setzt font im erzeugten pdf sodass bsp. ä ein ä ist und nicht a~", + detail: "Empfohlener Zusatsparameter [T1]" }, + "amssymb": { insertText: "amssymb", kind: "package", documentation: "amssymb" }, + "amsmath": { insertText: "amsmath", kind: "package", documentation: "amsmath" }, + "amstext": { insertText: "amstext", kind: "package", documentation: "amstext" }, + "listings": { insertText: "listings", kind: "package", documentation: "listings" }, + "diagrams": { insertText: "diagrams", kind: "package", documentation: "diagrams", detail: "Needs 'diagrams.sty'" } +}; diff --git a/dictionary/parameter_dictionary.ts b/dictionary/parameter_dictionary.ts new file mode 100644 index 0000000..aab3a35 --- /dev/null +++ b/dictionary/parameter_dictionary.ts @@ -0,0 +1,32 @@ +export default { + + "\\path": { + "draw": { documentation: "draw" }, + "fill": { documentation: "fill" }, + "clip": { documentation: "clip" }, + "shade": { documentation: "shade" }, + "shadedraw": { documentation: "shadedraw" }, + }, + "\\draw": { + "fill": { insertText: "fill", documentation: "fills the drawn path" }, + "line width": { insertText: "line width=$1pt%0", documentation: "Specifies the line width." }, + "color": { insertText: "color=$0", documentation: "Specifies the line width." }, + "style": { insertText: "style=$0", documentation: "Sets the path style." }, + }, + "\\node": { + "anchor": { insertText: "anchor=$0", documentation: "Sets the node positioning anchor" }, + }, + "anchor=": { + "north": { documentation: "north" }, + "east": { documentation: "east" }, + "south": { documentation: "south" }, + "west": { documentation: "west" }, + }, + "\\begin{figure}": { + "!": { detail: "", documentation: "overwrite" }, + "h": { detail: "", documentation: "hier" }, + "l": { detail: "", documentation: "low" }, + "p": { detail: "", documentation: "page" }, + }, + +}; diff --git a/dictionary/symbol_types.ts b/dictionary/symbol_types.ts new file mode 100644 index 0000000..2e2c598 --- /dev/null +++ b/dictionary/symbol_types.ts @@ -0,0 +1,10 @@ + +export enum latex_types { + symbol, + function, + environment, + package, + keyword, + parameter, + snippet +}; diff --git a/dictionary/text_symbols.ts b/dictionary/text_symbols.ts new file mode 100644 index 0000000..3e22711 --- /dev/null +++ b/dictionary/text_symbols.ts @@ -0,0 +1,54 @@ +import { latex_types } from "./symbol_types"; + +export default { + "usepackage": { insertText: "usepackage{$1}", documentation: "usepackage", kind: latex_types.keyword }, + "newenvironment": { insertText: "newenvironment{${1:name}}[$2]{$3}{$0}", documentation: "newenvironment", kind: latex_types.keyword }, + "newcommand": { insertText: "newcommand{${1:name}}[$2]{$3}", documentation: "newcommand", kind: latex_types.keyword }, + "renewcommand": { insertText: "renewcommand{${1:name}}[$2]{$3}", documentation: "renewcommand", kind: latex_types.keyword }, + + "DeclareMathOperator": { insertText: "DeclareMathOperator{${1:operatorcommand}}{${2:operatorname}}$0", detail: "Define in preamble!", documentation: "Defines a new math operator. Use the stared version for operators with limits.", kind: latex_types.keyword }, + "DeclareMathOperator*": { insertText: "DeclareMathOperator*{${1:operatorcommand}}{${2:operatorname}}$0", detail: "Define in preamble!", documentation: "Defines a new math operator with limits.", kind: latex_types.keyword }, + + "today": { insertText: "today", documentation: "The current Date", kind: latex_types.symbol }, + "TeX": { insertText: "TeX", documentation: "The TeX symbol", kind: latex_types.symbol }, + "LaTeX": { insertText: "LaTeX", documentation: "The LaTeX symbol", kind: latex_types.symbol }, + "LaTeXe": { insertText: "LaTeXe", documentation: "The current LaTeX symbol", kind: latex_types.symbol }, + + "newline": { insertText: "newline", documentation: "Starts a new line", kind: latex_types.keyword }, + "newpage": { insertText: "newpage", documentation: "Starts a new page", kind: latex_types.keyword }, + "linebreak": { insertText: "newpage[]", detail: "Optional Param: int 0-4.", documentation: "Suggests a line break to the LaTeX compiler. Optional parameter: int from 0 to 4, a value lower 4 may be ignored if it would look bad.", kind: latex_types.keyword }, + "nolinebreak": { insertText: "nolinebreak[]", detail: "Optional Param: int 0-4.", documentation: "Suggests no line break to the LaTeX compiler. Optional parameter: int from 0 to 4, a value lower 4 may be ignored if it would look bad.", kind: latex_types.keyword }, + "pagebreak": { insertText: "nolinebreak[]", detail: "Optional Param: int 0-4.", documentation: "Suggests a page break to the LaTeX compiler. Optional parameter: int from 0 to 4, a value lower 4 may be ignored if it would look bad.", kind: latex_types.keyword }, + "nopagebreak": { insertText: "nolinebreak[]", detail: "Optional Param: int 0-4.", documentation: "Suggests no page break to the LaTeX compiler. Optional parameter: int from 0 to 4, a value lower 4 may be ignored if it would look bad.", kind: latex_types.keyword }, + + "section": { insertText: "section{$1}", documentation: "Section", kind: latex_types.keyword }, + "section*": { insertText: "section*{$1}", documentation: "Section", kind: latex_types.keyword }, + "subsection": { insertText: "subsection{$1}", documentation: "Sub Section", kind: latex_types.keyword }, + "subsection*": { insertText: "subsection*{$1}", documentation: "Sub Section", kind: latex_types.keyword }, + "subsubsection": { insertText: "subsubsection{$1}", documentation: "Sub Sub Section", kind: latex_types.keyword }, + "subsubsection*": { insertText: "subsubsection*{$1}", documentation: "Sub Sub Section", kind: latex_types.keyword }, + "paragraph": { insertText: "paragraph{$1}", documentation: "paragraph", kind: latex_types.keyword }, + "paragraph*": { insertText: "paragraph*{$1}", documentation: "paragraph", kind: latex_types.keyword }, + + "label": { insertText: "label{$1}$0", documentation: "Label", kind: latex_types.keyword }, + "ref": { insertText: "ref{$1}$0", documentation: "Reference", kind: latex_types.keyword }, + "eqref": { insertText: "eqref{$1}$0", documentation: "Equation reference", kind: latex_types.keyword }, + "pageref": { insertText: "pageref{$1}$0", documentation: "Page reference", kind: latex_types.keyword }, + "index": { insertText: "index{$1}$0", documentation: "Creates a index Entrie", kind: latex_types.keyword }, + + "emph": { insertText: "emph{$1}$0", documentation: "Emphasize Text", kind: latex_types.function }, + "texttt": { insertText: "texttt{$1}$0", documentation: "Typeset Text", kind: latex_types.function }, + "textit": { insertText: "textit{$1}$0", documentation: "Italic Text", kind: latex_types.function }, + "textbf": { insertText: "textbf{$1}$0", documentation: "Bold Text", kind: latex_types.function }, + "underline": { insertText: "underline{$1}$0", documentation: "Bold Text", kind: latex_types.function }, + + // TODO: need a specific type in different environments!!! + "centering": { insertText: "centering", documentation: "Centers the content of figure or minipage content", kind: latex_types.keyword }, + "caption": { insertText: "caption{$1}$0", documentation: "Figure description", kind: latex_types.function }, + + "verb": { insertText: "verb{$1}$0", detail: "Do not use verbatim environment and the \\verb command within parameters of other commands.", documentation: "Environment content will be directly printed, as if typed on a typewriter, with all line breaks and spaces, without any LaTeX command being executed.", kind: latex_types.environment }, + "verb*": { insertText: "verb*{$1}$0", detail: "Do not use verbatim environment and the \\verb command within parameters of other commands.", documentation: "Environment content will be directly printed, as if typed on a typewriter, with all line breaks and spaces, without any LaTeX command being executed. The additional * lets spaces be printed visible.", kind: latex_types.environment }, + + "ldots": { insertText: "ldots", documentation: "3 lower dots", kind: latex_types.symbol }, + +}; diff --git a/dictionary/tikz_symbols.ts b/dictionary/tikz_symbols.ts new file mode 100644 index 0000000..53ac31a --- /dev/null +++ b/dictionary/tikz_symbols.ts @@ -0,0 +1,12 @@ +import { latex_types } from "./symbol_types"; + +export default { + "draw": { insertText: "draw[$1] ($2)$0;", documentation: "draw", kind: latex_types.snippet }, + "node": { insertText: "node[$1] {$2}$0;", documentation: "node", kind: latex_types.snippet }, + "fill": { insertText: "fill[$1] $0;", documentation: "fill", kind: latex_types.snippet }, + "filldraw": { insertText: "fill[$1] $0;", documentation: "fill", kind: latex_types.snippet }, + "path": { insertText: "path[$1] $0;", documentation: "path", kind: latex_types.snippet }, + + "foreach": { insertText: "foreach ${1:\\x} in { $2 } $3;", documentation: "for loop", kind: latex_types.snippet }, + "begin\{scope\}": { insertText: "begin{scope}\n\t$0\n\\end{scope}", documentation: "scope environment", kind: latex_types.snippet }, +}; diff --git a/grammars/BibTeX.json b/grammars/BibTeX.json new file mode 100644 index 0000000..a96430e --- /dev/null +++ b/grammars/BibTeX.json @@ -0,0 +1,252 @@ +{ + "information_for_contributors": [ + "Grammar based on description from http://artis.imag.fr/~Xavier.Decoret/resources/xdkbibtex/bibtex_summary.html#comment" + ], + "name": "BibTeX", + "scopeName": "text.bibtex", + "fileTypes": [ + "bib" + ], + "patterns": [ + { + "begin": "@Comment", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.bibtex" + } + }, + "end": "$\\n?", + "name": "comment.line.at-sign.bibtex" + }, + { + "begin": "((@)String)\\s*(\\{)\\s*([a-zA-Z]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.string-constant.bibtex" + }, + "2": { + "name": "punctuation.definition.keyword.bibtex" + }, + "3": { + "name": "punctuation.section.string-constant.begin.bibtex" + }, + "4": { + "name": "variable.other.bibtex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.string-constant.end.bibtex" + } + }, + "name": "meta.string-constant.braces.bibtex", + "patterns": [ + { + "include": "#string_content" + } + ] + }, + { + "begin": "((@)String)\\s*(\\()\\s*([a-zA-Z]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.string-constant.bibtex" + }, + "2": { + "name": "punctuation.definition.keyword.bibtex" + }, + "3": { + "name": "punctuation.section.string-constant.begin.bibtex" + }, + "4": { + "name": "variable.other.bibtex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.string-constant.end.bibtex" + } + }, + "name": "meta.string-constant.parenthesis.bibtex", + "patterns": [ + { + "include": "#string_content" + } + ] + }, + { + "begin": "((@)[a-zA-Z]+)\\s*(\\{)\\s*([^\\s,]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.entry-type.bibtex" + }, + "2": { + "name": "punctuation.definition.keyword.bibtex" + }, + "3": { + "name": "punctuation.section.entry.begin.bibtex" + }, + "4": { + "name": "entity.name.type.entry-key.bibtex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.entry.end.bibtex" + } + }, + "name": "meta.entry.braces.bibtex", + "patterns": [ + { + "begin": "([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)", + "beginCaptures": { + "1": { + "name": "string.unquoted.key.bibtex" + }, + "2": { + "name": "punctuation.separator.key-value.bibtex" + } + }, + "end": "(?=[,}])", + "name": "meta.key-assignment.bibtex", + "patterns": [ + { + "include": "#string_content" + }, + { + "include": "#integer" + } + ] + } + ] + }, + { + "begin": "((@)[a-zA-Z]+)\\s*(\\()\\s*([^\\s,]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.entry-type.bibtex" + }, + "2": { + "name": "punctuation.definition.keyword.bibtex" + }, + "3": { + "name": "punctuation.section.entry.begin.bibtex" + }, + "4": { + "name": "entity.name.type.entry-key.bibtex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.entry.end.bibtex" + } + }, + "name": "meta.entry.parenthesis.bibtex", + "patterns": [ + { + "begin": "([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)", + "beginCaptures": { + "1": { + "name": "string.unquoted.key.bibtex" + }, + "2": { + "name": "punctuation.separator.key-value.bibtex" + } + }, + "end": "(?=[,)])", + "name": "meta.key-assignment.bibtex", + "patterns": [ + { + "include": "#string_content" + }, + { + "include": "#integer" + } + ] + } + ] + }, + { + "begin": "[^@\\n]", + "end": "(?=@)", + "name": "comment.block.bibtex" + } + ], + "repository": { + "integer": { + "match": "\\d+", + "name": "constant.numeric.bibtex" + }, + "nested_braces": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.begin.bibtex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.end.bibtex" + } + }, + "patterns": [ + { + "include": "#nested_braces" + } + ] + }, + "string_content": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.bibtex" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.bibtex" + } + }, + "name": "string.quoted.double.bibtex", + "patterns": [ + { + "include": "#nested_braces" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.bibtex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.bibtex" + } + }, + "name": "string.quoted.other.braces.bibtex", + "patterns": [ + { + "match": "@", + "name": "invalid.illegal.at-sign.bibtex" + }, + { + "include": "#nested_braces" + } + ] + } + ] + } + } +} diff --git a/grammars/LaTeX.json b/grammars/LaTeX.json new file mode 100644 index 0000000..bb2cabe --- /dev/null +++ b/grammars/LaTeX.json @@ -0,0 +1,2623 @@ +{ + "name": "LaTeX", + "scopeName": "text.tex.latex", + "fileTypes": [ + "bbx", + "cbx", + "cls", + "ltx", + "lco", + "sty", + "tex", + "tikz" + ], + "firstLineMatch": "^\\\\documentclass(?!.*\\{beamer\\})", + "patterns": [ + { + "comment": "This scope identifies partially typed commands such as `\\tab`. We use this to trigger “Command Completion” only when it makes sense.", + "match": "(?<=\\\\[\\w@]|\\\\[\\w@]{2}|\\\\[\\w@]{3}|\\\\[\\w@]{4}|\\\\[\\w@]{5}|\\\\[\\w@]{6})\\s", + "name": "meta.space-after-command.latex" + }, + { + "begin": "((\\\\)(?:usepackage|documentclass))(?:(\\[)([^\\]]*)(\\]))?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.preamble.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + }, + "6": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "contentName": "support.class.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.preamble.latex", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "((\\\\)(?:include|input))(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.include.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "contentName": "support.class.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.include.latex", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?x)\n((\\\\)((?:sub){0,2}section|(?:sub)?paragraph|chapter|part|addpart|addchap|addsec|minisec))(?:\\*)?\n(?:(\\[)([^\\[]*?)(\\]))??\n(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.section.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "5": { + "name": "entity.name.section.latex" + }, + "6": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "comment": "this works OK with all kinds of crazy stuff as long as section is one line", + "contentName": "entity.name.section.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.function.section.$3.latex", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\\\ExplSyntaxOn", + "beginCaptures": { + "0": { + "name": "support.function.expl3.latex" + } + }, + "end": "\\\\ExplSyntaxOff", + "endCaptures": { + "0": { + "name": "support.function.expl3.latex" + } + }, + "patterns": [ + { + "match": "(\\\\(?:__)?[a-zA-Z]+_[a-zA-Z_]+)(:)([nNpTFDwcVvxof]*)", + "captures": { + "1": { + "name": "support.function.expl3.latex" + }, + "2": { + "name": "punctuation.function.colon.expl3.latex" + }, + "3": { + "name": "support.function.type.expl3.latex" + } + } + }, + { + "match": "(\\\\[lgc](?:_){1,2}(?:[a-zA-Z]+_)?[a-zA-Z_]+_[a-zA-Z]+)", + "name": "support.variable.expl3.latex" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "\\\\ProvidesExplPackage", + "beginCaptures": { + "0": { + "name": "support.function.expl3.latex" + } + }, + "patterns": [ + { + "match": "(\\\\(?:__)?[a-zA-Z]+_[a-zA-Z_]+)(:)([nNpTFDwcVvxof]*)", + "captures": { + "1": { + "name": "support.function.expl3.latex" + }, + "2": { + "name": "punctuation.function.colon.expl3.latex" + }, + "3": { + "name": "support.function.type.expl3.latex" + } + } + }, + { + "match": "(\\\\[lgc](?:_){1,2}(?:[a-zA-Z]+_)?[a-zA-Z_]+_[a-zA-Z]+)", + "name": "support.variable.expl3.latex" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)(\\\\begin)(\\{)(gnuplot)(\\})((\\[)(.*)(\\]))?", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "3": { + "name": "variable.parameter.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.end.latex" + }, + "5": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "6": { + "name": "variable.parameter.function.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.end.latex" + } + }, + "end": "(?:\\s*)(\\\\end)(\\{)(gnuplot)(\\})", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.gnuplot", + "patterns": [ + { + "include": "source.gnuplot" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(coffee(?:-?script)?)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.coffee", + "patterns": [ + { + "include": "source.coffee" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(css)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.css", + "patterns": [ + { + "include": "source.css" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(less)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.css.less", + "patterns": [ + { + "include": "source.css.less" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(xml)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.xml", + "patterns": [ + { + "include": "source.xml" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(ruby|rb)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.ruby", + "patterns": [ + { + "include": "source.ruby" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(rust)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.rust", + "patterns": [ + { + "include": "source.rust" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(java)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.java", + "patterns": [ + { + "include": "source.java" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(scala)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.scala", + "patterns": [ + { + "include": "source.scala" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(erlang)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.erlang", + "patterns": [ + { + "include": "source.erlang" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(go)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.go", + "patterns": [ + { + "include": "source.go" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(csharp)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.cs", + "patterns": [ + { + "include": "source.cs" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(php[345]?)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.php", + "patterns": [ + { + "include": "source.php" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(shell|bash|sh|ksh)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.shell", + "patterns": [ + { + "include": "source.shell" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(python3?|py3?)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.python", + "patterns": [ + { + "include": "source.python" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(c)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.c", + "patterns": [ + { + "include": "source.c" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(cpp|c\\+\\+)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.cpp", + "patterns": [ + { + "include": "source.cpp" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(objective-?c|obj-?c)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.objc", + "patterns": [ + { + "include": "source.objc" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(swift)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.swift", + "patterns": [ + { + "include": "source.swift" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(html)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "text.embedded.html.basic", + "patterns": [ + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(yaml)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.yaml", + "patterns": [ + { + "include": "source.yaml" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(elixir|ex|exs)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.elixir", + "patterns": [ + { + "include": "source.elixir" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(diff|udiff)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.diff", + "patterns": [ + { + "include": "source.diff" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(julia|jl)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.julia", + "patterns": [ + { + "include": "source.julia" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(haskell|hs)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.haskell", + "patterns": [ + { + "include": "source.haskell" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(clojure|clj)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.clojure", + "patterns": [ + { + "include": "source.clojure" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(sql)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.sql", + "patterns": [ + { + "include": "source.sql" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(elm)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.elm", + "patterns": [ + { + "include": "source.elm" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(js)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.js", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(json)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.json", + "patterns": [ + { + "include": "source.json" + } + ] + }, + { + "begin": "(?:\\s*)(((\\\\)begin)(\\{)(minted)(\\})(?:(\\[).*(\\]))?(\\{)(.*)(\\})(\\s*%.*\\n?)?)", + "captures": { + "1": { + "name": "meta.function.embedded.latex" + }, + "2": { + "name": "support.function.be.latex" + }, + "3": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "variable.parameter.function.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + }, + "12": { + "name": "comment.line.percentage.latex" + } + }, + "contentName": "meta.function.embedded.latex", + "end": "(?:\\s*)(((\\\\)end)(\\{)(minted)(\\}))", + "name": "meta.embedded.block.source" + }, + { + "begin": "(?:\\s*)(\\\\begin)(\\{)(lstlisting)(\\})(?:(\\[).*?(\\]))?", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "3": { + "name": "variable.parameter.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.end.latex" + }, + "5": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "6": { + "name": "punctuation.definition.arguments.optional.end.latex" + } + }, + "end": "(?:\\s*)(\\\\end)(\\{)(lstlisting)(\\})", + "name": "meta.embedded.block.source", + "contentName": "markup.raw.verbatim.latex" + }, + { + "begin": "(?:\\s*)(\\\\begin)(\\{)(lstlisting)(\\})(\\[)(?:.*\\blanguage\\s*=\\s*Java\\b.*)(\\])", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "3": { + "name": "variable.parameter.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.end.latex" + }, + "5": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "6": { + "name": "variable.parameter.function.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.end.latex" + } + }, + "end": "(?:\\s*)(\\\\end)(\\{)(lstlisting)(\\})", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.java", + "patterns": [ + { + "include": "source.java" + } + ] + }, + { + "begin": "(?:\\s*)(\\\\begin)(\\{)(lstlisting)(\\})(\\[)(?:.*\\blanguage\\s*=\\s*Python\\b.*)(\\])", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "3": { + "name": "variable.parameter.function.latex" + }, + "4": { + "name": "punctuation.definition.arguments.end.latex" + }, + "5": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "6": { + "name": "variable.parameter.function.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.end.latex" + } + }, + "end": "(?:\\s*)(\\\\end)(\\{)(lstlisting)(\\})", + "name": "meta.embedded.block.source", + "contentName": "source.embedded.python", + "patterns": [ + { + "include": "source.python" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(luacode(?:\\*?))(\\})(?:\\s*%.*\\n?)?", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "comment": "it should treat difference between luacode* and luacode better", + "contentName": "meta.function.embedded.latex", + "end": "((\\\\)end)(\\{)(luacode(?:\\*?))(\\})", + "name": "meta.embedded.block.lua", + "patterns": [ + { + "begin": "^(?!\\\\end\\{luacode(?:\\*?)\\})", + "end": "(?=\\\\end\\{luacode(?:\\*?)\\})", + "name": "source.lua", + "patterns": [ + { + "include": "source.lua" + } + ] + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:V|v)erbatim|alltt)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "markup.raw.verbatim.latex", + "end": "((\\\\)end)(\\{)(\\4)(\\})", + "name": "meta.function.verbatim.latex" + }, + { + "captures": { + "1": { + "name": "support.function.url.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "markup.underline.link.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "match": "(?:\\s*)((\\\\)(?:url|href))(\\{)([^}]*)(\\})", + "name": "meta.function.link.url.latex" + }, + { + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "comment": "These two patterns match the \\begin{document} and \\end{document} commands, so that the environment matching pattern following them will ignore those commands.", + "match": "(?:\\s*)((\\\\)begin)(\\{)(document)(\\})", + "name": "meta.function.begin-document.latex" + }, + { + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "match": "(?:\\s*)((\\\\)end)(\\{)(document)(\\})", + "name": "meta.function.end-document.latex" + }, + { + "begin": "(?x)\n(?:\\s*)\n((\\\\)begin)\n(\\{)\n((?:align|equation|displaymath|multline|split|gather)(?:\\*)?)\n(\\})\n(\\s*)?", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "string.other.math.block.environment.latex", + "end": "(?x)\n(?:\\s*)\n((\\\\)end)\n(\\{)\n(\\4)\n(\\})\n(?:\\s*)?", + "name": "meta.function.environment.math.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:alignat)(?:\\*)?)(\\})(\\{)(\\d+)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + }, + "6": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "7": { + "name": "variable.parameter.function.latex" + }, + "8": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "string.other.math.block.environment.latex", + "end": "(?:\\s*)((\\\\)end)(\\{)(\\4)(\\})", + "name": "meta.function.environment.math.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:aligned|gathered)(?:\\*)?)(\\})(\\[)([tcb])(?=\\])", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + }, + "6": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "7": { + "name": "variable.parameter.latex" + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + } + }, + "contentName": "string.other.math.block.environment.latex", + "end": "(?:\\s*)((\\\\)end)(\\{)(\\4)(\\})", + "name": "meta.function.environment.math.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:eqnarray)(?:\\*)?)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "invalid.deprecated.environment.eqnarray.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "string.other.math.block.environment.latex", + "end": "(?:\\s*)((\\\\)end)(\\{)(\\4)(\\})", + "name": "meta.function.environment.math.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?x)\n(?:\\s*)\n((\\\\)begin)\n(\\{)\n(array|tabular[xy*]?)\n(\\})\n(\\s*)?", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "meta.data.environment.tabular.latex", + "end": "(?x)\n(?:\\s*)\n((\\\\)end)\n(\\{)\n(\\4)\n(\\})\n(?:\\s*)?", + "name": "meta.function.environment.tabular.latex", + "patterns": [ + { + "match": "\\\\\\\\", + "name": "punctuation.definition.table.row2.latex" + }, + { + "begin": "(?:^|(?<=\\\\\\\\))(?!\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))", + "end": "(?=\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))", + "name": "meta.row2.environment.tabular.latex", + "patterns": [ + { + "match": "&", + "name": "punctuation.definition.table.cell.latex" + }, + { + "begin": "(?:^|(?<=&))((?!&|\\\\\\\\|$))", + "end": "(?=&|\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))", + "name": "meta.cell.environment.tabular.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(itemize|enumerate|description|list)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.latex" + } + }, + "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?", + "name": "meta.function.environment.list.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(tikzpicture)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.latex" + } + }, + "end": "((\\\\)end)(\\{)(tikzpicture)(\\})(?:\\s*\\n)?", + "name": "meta.function.environment.latex.tikz", + "patterns": [ + { + "include": "text.tex.latex.tikz" + }, + { + "include": "text.tex.latex" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(\\w+[*]?)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.latex" + } + }, + "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?", + "name": "meta.function.environment.general.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.function.latex" + } + }, + "match": "(\\\\)((re)?new|provide)command\\b", + "name": "storage.type.function.latex" + }, + { + "match": "\\\\Declare(?!OptionX?\\b)([A-Z][a-zA-Z]*)\\b", + "name": "support.type.function.other.latex" + }, + { + "match": "\\\\(Declare(Expandable)?|New|Renew|Provide)DocumentCommand\\b", + "name": "support.type.function.xparse.latex" + }, + { + "match": "(\\\\(bf|it|rm|sc|sf|sl|tt))\\b", + "name": "invalid.deprecated.font.latex" + }, + { + "begin": "((\\\\)marginpar)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.marginpar.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.marginpar.begin.latex" + } + }, + "contentName": "meta.paragraph.margin.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.marginpar.end.latex" + } + }, + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)footnote)((?:\\[[^\\[]*?\\])*)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.footnote.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "match": "(\\[)([^\\[]*?)(\\])" + } + ] + }, + "4": { + "name": "punctuation.definition.footnote.begin.latex" + } + }, + "contentName": "meta.footnote.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.footnote.end.latex" + } + }, + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)emph)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.emph.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.emph.begin.latex" + } + }, + "contentName": "markup.italic.emph.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.emph.end.latex" + } + }, + "name": "meta.function.emph.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)textit)(\\{)", + "captures": { + "1": { + "name": "support.function.textit.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.textit.begin.latex" + } + }, + "comment": "We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won't be inherited by the argument to \\textit{...}.\n\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions", + "contentName": "markup.italic.textit.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.textit.end.latex" + } + }, + "name": "meta.function.textit.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)textbf)(\\{)", + "captures": { + "1": { + "name": "support.function.textbf.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.textbf.begin.latex" + } + }, + "contentName": "markup.bold.textbf.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.textbf.end.latex" + } + }, + "name": "meta.function.textbf.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)texttt)(\\{)", + "captures": { + "1": { + "name": "support.function.texttt.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.texttt.begin.latex" + } + }, + "contentName": "markup.raw.texttt.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.texttt.end.latex" + } + }, + "name": "meta.function.texttt.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "captures": { + "0": { + "name": "keyword.other.item.latex" + }, + "1": { + "name": "punctuation.definition.keyword.latex" + } + }, + "match": "(\\\\)item\\b", + "name": "meta.scope.item.latex" + }, + { + "begin": "(?x)\n((\\\\)(?:text)?(?:paren)?(?:auto)?(?:foot)?(?:full)?(?:no)?(?:short)?[cC]ites?(?:al)?(?:t|p|author|year(?:par)?|title)?[ANP]*\\*?)\n(?:(\\[)[^\\]]*(\\]))?\n(?:(\\[)[^\\]]*(\\]))?\n(\\{)", + "captures": { + "1": { + "name": "keyword.control.cite.latex" + }, + "2": { + "name": "punctuation.definition.keyword.latex" + }, + "3": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "4": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "5": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "6": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.latex" + } + }, + "name": "meta.citation.latex", + "patterns": [ + { + "match": "[!(-z¡-ſ、-ヿΑ-ώА-я一-鿿,.]", + "name": "constant.other.reference.citation.latex" + } + ] + }, + { + "begin": "(\\\\bibitem)(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.bibitem.latex" + }, + "2": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "patterns": [ + { + "match": "[!(-z¡-ſ、-ヿΑ-ώА-я一-鿿,.]", + "name": "constant.other.reference.bibitem.latex" + } + ] + }, + { + "begin": "((\\\\)(?:\\w*[rR]ef\\*?))(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.ref.latex" + }, + "2": { + "name": "punctuation.definition.keyword.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "name": "meta.reference.latex", + "patterns": [ + { + "match": "[!(-z¡-ſ、-ヿΑ-ώА-я一-鿿,.]", + "name": "constant.other.reference.latex" + } + ] + }, + { + "begin": "((\\\\)label)(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.label.latex" + }, + "2": { + "name": "punctuation.definition.keyword.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.definition.latex", + "patterns": [ + { + "match": "[!(-z¡-ſ、-ヿΑ-ώА-я一-鿿,.]", + "name": "constant.other.reference.latex" + } + ] + }, + { + "begin": "((\\\\)verb[\\*]?)\\s*((\\\\)scantokens)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "support.function.verb.latex" + }, + "4": { + "name": "punctuation.definition.verb.latex" + }, + "5": { + "name": "punctuation.definition.begin.latex" + } + }, + "contentName": "markup.raw.verb.latex", + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.end.latex" + } + }, + "name": "meta.function.verb.latex", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "captures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.verb.latex" + }, + "4": { + "name": "markup.raw.verb.latex" + }, + "5": { + "name": "punctuation.definition.verb.latex" + } + }, + "match": "((\\\\)verb[\\*]?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)", + "name": "meta.function.verb.latex" + }, + { + "begin": "\\\\\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.latex" + } + }, + "end": "\\\\\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.latex" + } + }, + "name": "string.other.math.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "\\\\\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.latex" + } + }, + "end": "\\\\\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.latex" + } + }, + "name": "string.other.math.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.latex" + } + }, + "match": "(\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\b", + "name": "constant.character.latex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.column-specials.begin.latex" + }, + "2": { + "name": "punctuation.definition.column-specials.end.latex" + } + }, + "match": "(?:<|>)(\\{)\\$(\\})", + "name": "meta.column-specials.latex" + }, + { + "include": "text.tex" + } + ] + } + \ No newline at end of file diff --git a/grammars/TeX.json b/grammars/TeX.json new file mode 100644 index 0000000..8923c15 --- /dev/null +++ b/grammars/TeX.json @@ -0,0 +1,268 @@ +{ + "name": "TeX", + "scopeName": "text.tex", + "fileTypes": [ + "dtx", + "ins" + ], + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.keyword.tex" + } + }, + "match": "(\\\\)(backmatter|else|fi|frontmatter|mainmatter|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?|unless)\\b", + "name": "keyword.control.tex" + }, + { + "captures": { + "1": { + "name": "keyword.control.catcode.tex" + }, + "2": { + "name": "punctuation.definition.keyword.tex" + }, + "3": { + "name": "punctuation.separator.key-value.tex" + }, + "4": { + "name": "constant.numeric.category.tex" + } + }, + "match": "((\\\\)k?catcode)`(?:\\\\)?.(=)(\\d+)", + "name": "meta.catcode.tex" + }, + { + "begin": "(^[ \\t]+)?(?=%)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.tex" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "%:", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.tex" + } + }, + "end": "$\\n?", + "name": "comment.line.percentage.semicolon.texshop.tex" + }, + { + "begin": "^(%!TEX) (\\S*) =", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.tex" + } + }, + "end": "$\\n?", + "name": "comment.line.percentage.magic.dicy.tex" + }, + { + "begin": "%", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.tex" + } + }, + "end": "$\\n?", + "name": "comment.line.percentage.tex" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.group.begin.tex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.group.end.tex" + } + }, + "name": "meta.group.braces.tex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "match": "[\\[\\]]", + "name": "punctuation.definition.brackets.tex" + }, + { + "begin": "\\$\\$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.tex" + } + }, + "end": "\\$\\$", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.tex" + } + }, + "name": "string.other.math.block.tex", + "patterns": [ + { + "include": "#math" + }, + { + "include": "$self" + } + ] + }, + { + "match": "\\\\\\\\", + "name": "constant.character.newline.tex" + }, + { + "begin": "\\$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.tex" + } + }, + "end": "\\$", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.tex" + } + }, + "name": "string.other.math.tex", + "patterns": [ + { + "match": "\\\\\\$", + "name": "constant.character.escape.tex" + }, + { + "include": "#math" + }, + { + "include": "$self" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.function.tex" + } + }, + "match": "(\\\\)[A-Za-z@]+", + "name": "support.function.general.tex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.keyword.tex" + } + }, + "match": "(\\\\)[^a-zA-Z@]", + "name": "constant.character.escape.tex" + }, + { + "match": "«press a-z and space for greek letter»[a-zA-Z]*", + "name": "meta.placeholder.greek.tex" + } + ], + "repository": { + "math": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.constant.math.tex" + } + }, + "match": "(\\\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|Arrownot)\\b", + "name": "constant.character.math.tex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.math.tex" + } + }, + "match": "(\\\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\\b", + "name": "constant.character.math.tex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.math.tex" + } + }, + "match": "(\\\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\\b", + "name": "constant.other.math.tex" + }, + { + "begin": "((\\\\)Sexpr(\\{))", + "beginCaptures": { + "1": { + "name": "support.function.sexpr.math.tex" + }, + "2": { + "name": "punctuation.definition.function.math.tex" + }, + "3": { + "name": "punctuation.section.embedded.begin.math.tex" + } + }, + "contentName": "support.function.sexpr.math.tex", + "end": "(((\\})))", + "endCaptures": { + "1": { + "name": "support.function.sexpr.math.tex" + }, + "2": { + "name": "punctuation.section.embedded.end.math.tex" + }, + "3": { + "name": "source.r" + } + }, + "name": "meta.embedded.line.r", + "patterns": [ + { + "begin": "\\G(?!\\})", + "end": "(?=\\})", + "name": "source.r", + "patterns": [ + { + "include": "source.r" + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.math.tex" + } + }, + "match": "(\\\\)([^a-zA-Z]|[A-Za-z]+)(?=\\b|\\}|\\]|\\^|\\_)", + "name": "constant.other.general.math.tex" + }, + { + "match": "(([0-9]*[\\.][0-9]+)|[0-9]+)", + "name": "constant.numeric.math.tex" + }, + { + "match": "«press a-z and space for greek letter»[a-zA-Z]*", + "name": "meta.placeholder.greek.math.tex" + } + ] + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..791805a --- /dev/null +++ b/package.json @@ -0,0 +1,95 @@ +{ + "name": "latex", + "version": "1.0.0", + "displayName": "LaTeX language support", + "description": "LaTeX language support for Visual Studio Code", + "main": "./out/src/extension", + "activationEvents": [ + "onLanguage:latex" + ], + "dependencies": { + "typescript": "^2.0.3", + "vscode": "^1.0.0", + "@types/node": "^6.0.45" + }, + "devDependencies": { + "typescript": "^2.0.3", + "vscode": "^1.0.0", + "@types/node": "^6.0.45" + }, + "compilerOptions": { + "types": [ + "node" + ] + }, + "scripts": { + "vscode:prepublish": "tsc -p ./", + "compile": "tsc -p ./", + "postinstall": "node ./node_modules/vscode/bin/install" + }, + "license": "MIT", + "publisher": "Loki", + "categories": [ + "Languages", + "Snippets", + "Other" + ], + "engines": { + "vscode": "^1.8.0" + }, + "keywords": [ + "BibTeX", + "LaTeX", + "TeX" + ], + "contributes": { + "languages": [ + { + "id": "bibtex", + "aliases": [ "BibTeX" ], + "extensions": [ ".bib" ], + "configuration": "./settings/BibTeX-configuration.json" + }, + { + "id": "latex", + "aliases": [ "LaTeX" ], + "extensions": [ "bbx", "cbx", "cls", "ltx", "lco", "sty", "tex", "tikz" ], + "configuration": "./settings/LaTeX-configuration.json" + }, + { + "id": "tex", + "aliases": [ "TeX" ], + "extensions": [ "dtx", "ins" ], + "configuration": "./settings/TeX-configuration.json" + } + ], + "grammars": [ + { + "language": "bibtex", + "scopeName": "text.bibtex", + "path": "./grammars/BibTeX.json" + }, + { + "language": "latex", + "scopeName": "text.tex.latex", + "path": "./grammars/LaTeX.json" + }, + { + "language": "tex", + "scopeName": "text.tex", + "path": "./grammars/TeX.json" + } + ], + "snippets": [ + { + "language": "latex", + "path": "./snippets/LaTeX.json" + } + ] + }, + "__metadata": { + "id": "LaTeX", + "publisherId": "Loki", + "publisherDisplayName": "Loki" + } +} diff --git a/settings/BibTeX-configuaration.json b/settings/BibTeX-configuaration.json new file mode 100644 index 0000000..36d3d8f --- /dev/null +++ b/settings/BibTeX-configuaration.json @@ -0,0 +1,29 @@ +{ + "comments": { + "lineComment": "%" + }, + "brackets": [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + "autoClosingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["$", "$"], + ["`", "'"] + ], + "surroundingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"], + ["`", "'"], + ["$", "$"] + ], + "folding": { + "offSide": "true" + } +} \ No newline at end of file diff --git a/settings/LaTeX-configuration.json b/settings/LaTeX-configuration.json new file mode 100644 index 0000000..727d3c6 --- /dev/null +++ b/settings/LaTeX-configuration.json @@ -0,0 +1,33 @@ +{ + "comments": { + "lineComment": "%" + }, + "brackets": [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + "autoClosingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["$", "$"], + ["`", "'"] + ], + "surroundingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"], + ["`", "'"], + ["$", "$"] + ], + "folding": { + "offSide": "true", + "markers": { + "start": "^\\s*%Region\\b", + "end": "^\\s*%Endregion\\b" + } + } +} \ No newline at end of file diff --git a/settings/TeX-configuaration.json b/settings/TeX-configuaration.json new file mode 100644 index 0000000..36d3d8f --- /dev/null +++ b/settings/TeX-configuaration.json @@ -0,0 +1,29 @@ +{ + "comments": { + "lineComment": "%" + }, + "brackets": [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + "autoClosingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["$", "$"], + ["`", "'"] + ], + "surroundingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"], + ["`", "'"], + ["$", "$"] + ], + "folding": { + "offSide": "true" + } +} \ No newline at end of file diff --git a/snippets/LaTeX.json b/snippets/LaTeX.json new file mode 100644 index 0000000..d9a2191 --- /dev/null +++ b/snippets/LaTeX.json @@ -0,0 +1,38 @@ +{ + "begin-end": { + "prefix": "\\begin", + "body": [ + "\\begin{${1:displaymath}}", + "\t$0", + "\\end{$1}" + ], + "description": "A Begin/End Block" + }, + "environment_tikz": { + "prefix": "environment_tikz", + "body": [ + "\\begin{figure}[h!]", + "\t\\begin{center}", + "\t\t\\begin{tikzpicture}[scale=1]", + "\t\t\t$0", + "\t\t\\end{tikzpicture}", + "\t\\caption{$1}", + "\t\\end{center}", + "\t\\label{fig:$2}", + "\\end{figure}" + ], + "description": "The \"TeX Ist Kein Zeichnprogram\" environment\nNeeds \\usepackage{tikz}" + }, + "environment_figure": { + "prefix": "environment_figure", + "body": [ + "\\begin{figure}[]", + "\t\\centering", + "\t\\includegraphics{$1}", + "\t\\label{fig:$2}", + "\t\\caption{$0}", + "\\end{figure}" + ], + "description": "The figure environment" + } +} diff --git a/snippets/SYMLIST.txt b/snippets/SYMLIST.txt new file mode 100644 index 0000000..411f4e3 --- /dev/null +++ b/snippets/SYMLIST.txt @@ -0,0 +1,10533 @@ +< +/ +( +) +[ +] +{} +} +* +\` +\^ +\^{} +\~ +\~{} +\_ +\- +\, +\; +\: +\? +\. +\' +\" +\{ +\} +\$ +\\ +\& +\# +\% +a +\a +A +\A +\aa +\AA +\AAaleph +\AAayin +\AAbeth +\AAcht +\AAdaleth +\AAhe +\AAhelmet +\AAheth +\AAkaph +\AAlamed +\Aaleph +\AApe +\AAqoph +\AAresh +\AAsade +\Aayin +\AAyod +\AB +\Abeth +\ac +\AC +\acarc +\acbar +\accentset +\accordionBayanBass +\accordionDiscant +\accordionFreeBass +\accordionOldEE +\accordionPull +\accordionPush +\accordionStdBass +\accurrent +\Acht +\AchtBL +\AchtBR +\acidfree +\ACK +\acontraction +\AcPa +\actuarial +\actuarialangle +\acute +\acutus +\acwcirclearrow +\acwcirclearrowdown +\acwcirclearrowleft +\acwcirclearrowright +\acwcirclearrowup +\acwgapcirclearrow +\acwleftarcarrow +\acwnearcarrow +\acwnwarcarrow +\acwopencirclearrow +\acwoverarcarrow +\acwrightarcarrow +\acwsearcarrow +\acwswarcarrow +\acwunderarcarrow +\Adaleth +\adfarrow +\adfarrowe1 +\adfarrowe2 +\adfarrowe3 +\adfarrowe4 +\adfarrowe5 +\adfarrowe6 +\adfarrown1 +\adfarrown2 +\adfarrown3 +\adfarrown4 +\adfarrown5 +\adfarrown6 +\adfarrowne1 +\adfarrowne2 +\adfarrowne3 +\adfarrowne4 +\adfarrowne5 +\adfarrowne6 +\adfarrownw1 +\adfarrownw2 +\adfarrownw3 +\adfarrownw4 +\adfarrownw5 +\adfarrownw6 +\adfarrows1 +\adfarrows2 +\adfarrows3 +\adfarrows4 +\adfarrows5 +\adfarrows6 +\adfarrowse1 +\adfarrowse2 +\adfarrowse3 +\adfarrowse4 +\adfarrowse5 +\adfarrowse6 +\adfarrowsw1 +\adfarrowsw2 +\adfarrowsw3 +\adfarrowsw4 +\adfarrowsw5 +\adfarrowsw6 +\adfarroww1 +\adfarroww2 +\adfarroww3 +\adfarroww4 +\adfarroww5 +\adfarroww6 +\adfast{1} +\adfast{10} +\adfast{2} +\adfast{3} +\adfast{4} +\adfast{5} +\adfast{6} +\adfast{7} +\adfast{8} +\adfast{9} +\adfbullet +\adfbullet{1} +\adfbullet{10} +\adfbullet{11} +\adfbullet{12} +\adfbullet{13} +\adfbullet{14} +\adfbullet{15} +\adfbullet{16} +\adfbullet{17} +\adfbullet{18} +\adfbullet{19} +\adfbullet{2} +\adfbullet{20} +\adfbullet{21} +\adfbullet{22} +\adfbullet{23} +\adfbullet{24} +\adfbullet{25} +\adfbullet{26} +\adfbullet{27} +\adfbullet{28} +\adfbullet{29} +\adfbullet{3} +\adfbullet{30} +\adfbullet{31} +\adfbullet{32} +\adfbullet{33} +\adfbullet{34} +\adfbullet{4} +\adfbullet{41} +\adfbullet{42} +\adfbullet{43} +\adfbullet{44} +\adfbullet{45} +\adfbullet{46} +\adfbullet{47} +\adfbullet{48} +\adfbullet{49} +\adfbullet{5} +\adfbullet{50} +\adfbullet{51} +\adfbullet{52} +\adfbullet{6} +\adfbullet{7} +\adfbullet{8} +\adfbullet{9} +\adfclosedflourishleft +\adfclosedflourishright +\adfdiamond +\adfdoubleflourishleft +\adfdoubleflourishright +\adfdoublesharpflourishleft +\adfdoublesharpflourishright +\adfdownhalfleafleft +\adfdownhalfleafright +\adfdownleafleft +\adfdownleafright +\adfflatdownhalfleafleft +\adfflatdownhalfleafright +\adfflatdownoutlineleafleft +\adfflatdownoutlineleafright +\adfflatleafleft +\adfflatleafoutlineleft +\adfflatleafoutlineright +\adfflatleafright +\adfflatleafsolidleft +\adfflatleafsolidright +\adfflourishleft +\adfflourishleftdouble +\adfflourishright +\adfflourishrightdouble +\adfflowerleft +\adfflowerright +\adfgee +\adfhalfarrowleft +\adfhalfarrowleftsolid +\adfhalfarrowright +\adfhalfarrowrightsolid +\adfhalfleafleft +\adfhalfleafright +\adfhalfleftarrow +\adfhalfleftarrowhead +\adfhalfrightarrow +\adfhalfrightarrowhead +\adfhangingflatleafleft +\adfhangingflatleafright +\adfhangingleafleft +\adfhangingleafright +\adfleafleft +\adfleafright +\adfleftarrowhead +\adfopenflourishleft +\adfopenflourishright +\adfoutlineleafleft +\adfoutlineleafright +\adfrightarrowhead +\adfS +\adfsharpflourishleft +\adfsharpflourishright +\adfsickleflourishleft +\adfsickleflourishright +\adfsingleflourishleft +\adfsingleflourishright +\adfsmallhangingleafleft +\adfsmallhangingleafright +\adfsmallleafleft +\adfsmallleafright +\adfsolidleafleft +\adfsolidleafright +\adfsquare +\adftripleflourishleft +\adftripleflourishright +\adfwavesleft +\adfwavesright +\Admetos +\adots +\adsorbate +\adsorbent +\ae +\AE +\aeolicbii +\aeolicbiii +\aeolicbiv +\agemO +\Agimel +\Ahe +\Ahelmet +\Aheth +\ain +\Air +\Akaph +\alad +\Alad +\Alamed +\alas +\Alas +\Albania +\aldine +\aldineleft +\aldineright +\aldinesmall +\aleph +\Alif +\allabreve +\alpha +\Alpha +\alphaup +\Alt +\AltGr +\altoclef +\AM +\amalg +\Amem +\Amor +\anaclasis +\Anaclasis +\anceps +\ancepsdbrevis +\anchor +\ANDd +\ANDl +\Andorra +\ANDr +\ANDu +\angdnr +\angl +\angle +\angles +\AngleSign +\angleubar +\angln +\anglr +\Angstrom +\angud +\Angud +\angus +\Angus +\Ankh +\Annoey +\annuity +\antidiple +\antidiple* +\Antidiple +\Antidiple* +\antilabe +\antimuon +\antineutrino +\antineutron +\antiproton +\antiquark +\antiquarkb +\antiquarkc +\antiquarkd +\antiquarks +\antiquarkt +\antiquarku +\antisigma +\Antisigma +\Anun +\anyon +\aoverbrace +\Ape +\APLbox +\APLboxquestion +\APLboxupcaret +\APLcirc +\APLcomment +\APLdown +\APLdownarrowbox +\APLinput +\APLinv +\APLleftarrowbox +\APLlog +\APLminus +\APLnot +\APLnotbackslash +\APLnotslash +\APLrightarrowbox +\APLstar +\APLup +\APLuparrowbox +\APLvert +\Apollon +\apprge +\apprle +\approx +\approxcolon +\approxcoloncolon +\approxeq +\approxeqq +\approxident +\Aqoph +\aquarius +\Aquarius +\AR +\arafamily +\arccos +\arceq +\arcfamily +\arcsin +\arctan +\Aresh +\arg +\aries +\Aries +\arlfamily +\armfamily +\arnfamily +\ArrowBoldDownRight +\ArrowBoldRightCircled +\ArrowBoldRightShort +\ArrowBoldRightStrobe +\ArrowBoldUpRight +\arrowbullet +\arrownot +\Arrownot +\arrowOver +\ArrowOver +\arrowvert +\Arrowvert +\artfamily +\Asade +\Asamekh +\ASC +\ascnode +\Ashin +\assert +\Assert +\assumption +\ast +\asteq +\asteraccent +\asteriscus +\Asteriscus +\asterisk +\Asterisk +\AsteriskBold +\AsteriskCenterOpen +\AsteriskRoundedEnds +\AsteriskThin +\AsteriskThinCenterOpen +\asterism +\astrosun +\asymp +\atan +\ataribox +\Atav +\Ateth +\AtForty +\AtNinetyFive +\atom +\AtSixty +\aunderbrace +\Austria +\autoleftarrow +\autoleftrightharpoons +\autorightarrow +\autorightleftharpoons +\Autumntree +\Avav +\awint +\awintsl +\awintup +\Ayn +\Ayod +\Azayin +b +\b +B +\B +\Ba +\babygamma +\backapprox +\backapproxeq +\Backblech +\backcong +\backdprime +\backepsilon +\backeqsim +\backneg +\backprime +\backpropto +\backsim +\backsimeq +\backsimneqq +\backslash +\backslashdiv +\backtriplesim +\backtrprime +\backturn +\bagmember +\Baii +\Baiii +\bakingplate +\ballotcheck +\ballotx +\banceps +\bar +\barb +\barbbrevis +\barbrevis +\barcap +\barcirc +\barcup +\bard +\bardownharpoonleft +\bardownharpoonright +\bari +\barin +\barj +\barl +\barlambda +\barleftarrow +\barleftarrowrightarrowbar +\barleftharpoon +\barleftharpoondown +\barleftharpoonup +\baro +\barOver +\BarOver +\barovernorthwestarrow +\barp +\barrightarrowdiamond +\barrightharpoon +\barrightharpoondown +\barrightharpoonup +\barsci +\barscu +\Bart +\baru +\baruparrow +\barupharpoonleft +\barupharpoonright +\barV +\Barv +\barvee +\barwedge +\BasicTree +\bassclef +\Bat +\Bau +\baucircle +\bauforms +\bauhead +\bausquare +\bautriangle +\bb +\bB +\Bb +\BB +\bba +\bbalpha +\bbar +\bbb +\bbbeta +\Bbbk +\Bbbsum +\bbdollar +\bbetter +\bbeuro +\bbfinalnun +\bbgamma +\bbm +\bBm +\Bbm +\BBm +\bbmb +\bbmx +\bbnabla +\bbpe +\bbqof +\bbrevis +\bbrktbrk +\bbslash +\bbyod +\bcattention +\bcbombe +\bcbook +\bccalendrier +\bccle +\bcclefa +\bcclesol +\bccoeur +\bccrayon +\bccube +\bcdallemagne +\bcdanger +\bcdautriche +\bcdbelgique +\bcdbulgarie +\bcdfrance +\bcditalie +\bcdluxembourg +\bcdodecaedre +\bcdpaysbas +\bcdz +\bceclaircie +\bcetoile +\bcfemme +\bcfeujaune +\bcfeurouge +\bcfeutricolore +\bcfeuvert +\bcfleur +\bchomme +\bchorloge +\bcicosaedre +\bcinfo +\bcinterdit +\bclampe +\bcloupe +\bcneige +\bcnote +\bcnucleaire +\bcoctaedre +\bcoeil +\bcontraction +\bcorne +\bcours +\bcoutil +\bcpanchant +\bcpeaceandlove +\bcpluie +\bcplume +\bcpoisson +\bcquestion +\bcrecyclage +\bcrosevents +\bcsmbh +\bcsmmh +\bcsoleil +\bcspadesuit +\bcstop +\bctakecare +\bctetraedre +\bctrefle +\bctrombone +\bcvaletcoeur +\bcvelo +\bcyin +\Bda +\Bde +\bdecisive +\Bdi +\bdleftarcarrow +\bdnearcarrow +\bdnwarcarrow +\Bdo +\bdoverarcarrow +\bdrightarcarrow +\bdsearcarrow +\bdswarcarrow +\Bdu +\bdunderarcarrow +\Bdwe +\Bdwo +\Be +\Beam +\Bearing +\because +\Bed +\BEL +\Belarus +\Belgium +\bell +\benzenr +\beta +\Beta +\betaup +\beth +\betteris +\between +\BGassert +\BGconditional +\BGcontent +\BGnot +\BGquant +\Bi +\bibridge +\Bicycle +\big +\Big +\bigassumption +\Bigassumption +\bigast +\bigblacktriangledown +\bigblacktriangleup +\bigbosonloop +\bigbosonloopA +\bigbosonloopV +\bigbot +\bigbox +\bigboxasterisk +\bigboxbackslash +\bigboxbot +\bigboxcirc +\bigboxcoasterisk +\bigboxdiv +\bigboxdot +\bigboxleft +\bigboxminus +\bigboxplus +\bigboxright +\bigboxslash +\bigboxtimes +\bigboxtop +\bigboxtriangleup +\bigboxvoid +\bigcap +\bigcapdot +\bigcapplus +\bigcirc +\bigcircle +\BigCircle +\bigcoast +\bigcomplementop +\BigCross +\bigcup +\bigcupdot +\bigcupplus +\bigcurlyvee +\bigcurlyveedot +\bigcurlywedge +\bigcurlywedgedot +\BigDiamondshape +\bigdoublecurlyvee +\bigdoublecurlywedge +\bigdoublevee +\bigdoublewedge +\bigg +\Bigg +\biggassumption +\BigHBar +\bigint +\biginterleave +\bigints +\bigintss +\bigintsss +\bigintssss +\biginvamp +\BigLowerDiamond +\bignplus +\bigoast +\bigoasterisk +\bigobackslash +\bigobot +\bigocirc +\bigocoasterisk +\bigodiv +\bigodot +\bigoint +\bigoints +\bigointss +\bigointsss +\bigointssss +\bigoleft +\bigominus +\bigoplus +\bigoright +\bigoslash +\bigostar +\bigotimes +\bigotop +\bigotriangle +\bigotriangleup +\bigovert +\bigovoid +\bigparallel +\bigparr +\bigplus +\bigpumpkin +\BigRightDiamond +\bigslopedvee +\bigslopedwedge +\bigsqcap +\bigsqcapdot +\bigsqcapplus +\bigsqcup +\bigsqcupdot +\bigsqcupplus +\BigSquare +\bigsquplus +\bigstar +\bigtalloblong +\bigtimes +\bigtop +\bigtriangledown +\BigTriangleDown +\bigtriangleleft +\BigTriangleLeft +\BigTriangleRight +\bigtriangleup +\BigTriangleUp +\biguplus +\bigvarstar +\BigVBar +\bigvee +\bigveedot +\bigwedge +\bigwedgedot +\bigwhitestar +\bigwith +\binampersand +\bindnasrepma +\biohazard +\Biohazard +\bishoppair +\Bja +\Bje +\Bjo +\Bju +\Bka +\Bke +\Bki +\Bko +\Bku +\BL +\black +\BlackBishopOnBlack +\BlackBishopOnWhite +\blackbowtie +\blackcircledownarrow +\blackcircledrightdot +\blackcircledtwodots +\blackcircleulquadwhite +\blackdiamond +\blackdiamonddownarrow +\BlackEmptySquare +\blackhourglass +\blackinwhitediamond +\blackinwhitesquare +\BlackKingOnBlack +\BlackKingOnWhite +\BlackKnightOnBlack +\BlackKnightOnWhite +\blacklefthalfcircle +\blacklozenge +\BlackPawnOnBlack +\BlackPawnOnWhite +\blackpointerleft +\blackpointerright +\BlackQueenOnBlack +\BlackQueenOnWhite +\blackrighthalfcircle +\BlackRookOnBlack +\BlackRookOnWhite +\blacksmiley +\blacksquare +\blackstone +\blacktriangle +\blacktriangledown +\blacktriangleleft +\blacktriangleright +\blacktriangleup +\blackwhitespoon +\Bleech +\blender +\blitza +\blitzb +\blitzc +\blitzd +\blitze +\blkhorzoval +\blkvertoval +\bm +\Bm +\Bma +\Bme +\Bmesonminus +\Bmesonnull +\Bmesonplus +\Bmi +\Bmo +\bmod +\Bmu +\Bna +\BNc +\BNcc +\BNccc +\BNcd +\BNcm +\BNd +\BNdc +\BNdcc +\BNdccc +\Bne +\Bni +\BNi +\BNii +\BNiii +\BNiv +\BNix +\BNl +\BNlx +\BNlxx +\BNlxxx +\BNm +\Bno +\bNot +\Bnu +\BNv +\BNvi +\BNvii +\BNviii +\Bnwa +\BNx +\BNxc +\BNxl +\BNxx +\BNxxx +\Bo +\boldmath +\boldsymbol +\BOLogo +\BOLogoL +\BOLogoP +\bomb +\bond +\boseDistrib +\Bosnia +\boson +\bot +\Bot +\botborder +\botdoteq +\botsemicircle +\bottle +\Bottomheat +\Bouquet +\bowl +\bowtie +\Bowtie +\Box +\boxast +\boxasterisk +\boxbackslash +\boxbar +\boxbot +\boxbox +\boxbslash +\boxcirc +\boxcircle +\boxcoasterisk +\boxdiag +\boxdiv +\boxdivision +\boxdot +\boxdotleft +\boxdotLeft +\boxdotright +\boxdotRight +\boxempty +\boxleft +\boxLeft +\boxminus +\boxonbox +\boxplus +\boxright +\boxRight +\boxslash +\boxtimes +\boxtop +\boxtriangle +\boxtriangleup +\boxvert +\boxvoid +\boy +\Bpa +\Bpaiii +\BPamphora +\BParrow +\BPbarley +\BPbilly +\BPboar +\BPbronze +\BPbull +\BPcauldroni +\BPcauldronii +\BPchariot +\BPchassis +\BPcloth +\BPcow +\BPcup +\Bpe +\BPewe +\BPfoal +\BPgoat +\BPgoblet +\BPgold +\BPhorse +\Bpi +\BPman +\BPnanny +\Bpo +\BPolive +\BPox +\BPpig +\BPram +\BPsheep +\BPsow +\BPspear +\BPsword +\BPtalent +\Bpte +\Bpu +\Bpuii +\BPvola +\BPvolb +\BPvolcd +\BPvolcf +\BPwheat +\BPwheel +\BPwine +\BPwineiih +\BPwineiiih +\BPwineivh +\BPwoman +\BPwool +\BPwta +\BPwtb +\BPwtc +\BPwtd +\Bqa +\Bqe +\Bqi +\Bqo +\Bra +\braceld +\bracerd +\bracevert +\Braii +\Braiii +\Bratpfanne +\Bre +\Break +\breve +\brevis +\Bri +\Bro +\Broii +\brokenvert +\Bru +\BS +\Bsa +\Bse +\BSEfree +\Bsi +\bsimilarleftarrow +\bsimilarrightarrow +\Bso +\bsolhsub +\BSpace +\Bsu +\Bswa +\Bswi +\Bta +\Btaii +\Bte +\Bti +\btimes +\Bto +\Btu +\Btwe +\Btwo +\Bu +\BUFd +\BUFl +\BUFr +\BUFu +\BUi +\BUii +\BUiii +\BUiv +\BUix +\Bulgaria +bullenum +\bullet +\bullseye +\bumpedeq +\Bumpedeq +\bumpeq +\Bumpeq +\bumpeqq +\bupperhand +\Burns +\BusWidth +\BUv +\BUvi +\BUvii +\BUviii +\BUx +\BUxi +\BUxii +\Bwa +\Bwe +\Bwi +\Bwo +\BX +\Bza +\Bze +\Bzo +\c +\C +\Ca +\caesura +\CAN +\cancer +\Cancer +\Candle +\candra +\cap +\Cap +\capbarcup +\capdot +\capovercup +\capplus +\Capricorn +\capricornus +\capturesymbol +\capwedge +\caretinsert +\carriagereturn +\castlingchar +\castlinghyphen +\Cat +\catal +\catalexis +\Catalexis +\cb +\CB +\cc +\Cc +\ccAttribution +\ccby +\ccbyncnd +\Ccc +\ccCopy +\ccLogo +\ccnc +\ccnd +\ccNoDerivatives +\ccNonCommercial +\ccNonCommercialEU +\ccNonCommercialJP +\ccPublicDomain +\ccRemix +\ccsa +\ccSampling +\ccShare +\ccShareAlike +\ccwundercurvearrow +\ccZero +\cdot +\cdotp +\cdots +\Ce +\CE +\celsius +\Celtcross +\cent +\centerdot +\centernot +\centre +\Ceres +\CEsign +\Cga +\Chair +\changenotsign +\char +\check +\checked +\Checkedbox +\CheckedBox +\checkmark +\Checkmark +\CheckmarkBold +\checksymbol +\chemarrow +\chesscomment +\chessetc +\chesssee +\chi +\Chi +\Chiron +\chiup +\Ci +\cirbot +\circ +\circeq +\Circle +\CIRCLE +\circlearrowleft +\circlearrowright +\circlebottomhalfblack +\CircledA +\circledast +\circledbar +\circledbslash +\circledbullet +\circledcirc +\circleddash +\circleddotleft +\circleddotright +\CircledEq +\circledequal +\circledgtr +\circledless +\circledownarrow +\circledparallel +\circledR +\circledrightdot +\circledS +\circledstar +\circledtwodots +\circledvee +\circledvert +\circledwedge +\circledwhitebullet +\circlehbar +\circleleft +\circlelefthalfblack +\circlellquad +\circlelrquad +\circleonleftarrow +\circleonrightarrow +\circleright +\circlerighthalfblack +\CircleShadow +\CircleSolid +\circletophalfblack +\circleulquad +\circleurquad +\circleurquadblack +\circlevertfill +\Circpipe +\circplus +\Circsteel +\circumflexus +\cirE +\cirfnint +\cirfnintsl +\cirfnintup +\cirmid +\cirscir +\Cja +\Cjo +\Cka +\Cke +\Cki +\Cko +\Cku +\Cla +\Cle +\CleaningA +\CleaningF +\CleaningFF +\CleaningP +\CleaningPP +\clefC +\clefCInline +\clefF +\clefFInline +\clefG +\clefGInline +\Cli +\clickb +\clickc +\clickt +\Clo +\clock +\ClockFramefalse +\ClockFrametrue +\ClockLogo +\ClockStyle +\clocktime +\closedcurlyvee +\closedcurlywedge +\closedequal +\closedniomega +\closedprec +\closedrevepsilon +\closedsucc +\closedvarcap +\closedvarcup +\closedvarcupsmashprod +\closure +\Cloud +\Clu +\clubsuit +\Cma +\Cme +\Cmi +\Cmo +\Cmu +\Cna +\Cne +\Cni +\Cno +\Cnu +\Co +\CO +\coasterisk +\coAsterisk +\coda +\Coda +\Coffeecup +\coh +\colon +\Colon +\colonapprox +\Colonapprox +\coloncolon +\coloncolonapprox +\coloncolonequals +\coloncolonminus +\coloncolonsim +\coloneq +\Coloneq +\coloneqq +\Coloneqq +\colonequals +\colonminus +\colonsim +\Colonsim +\commaminus +\compensation +\complement +\Complex +\COMPLEX +\ComputerMouse +\concavediamond +\concavediamondtickleft +\concavediamondtickright +\Conclusion +\conductivity +\cong +\congdot +\Congruent +\conictaper +\conjquant +\conjunction +\Conjunction +\convolution +\cooker +\Cooley +\coppa +\Coppa +\coprod +\copyright +\corner +\corona +\coronainv +\corresponds +\Corresponds +\cos +\cosh +\cot +\coth +\counterplay +\CountriesOfEuropeFamily +\covbond +\Cpa +\Cpe +\Cpi +\Cpo +\Cpu +\cr +\CR +\Cra +\Cre +\crescHairpin +\Cri +\Cro +\Croatia +\cross +\Cross +\crossb +\CrossBoldOutline +\CrossClowerTips +\crossd +\Crossedbox +\CrossedBox +\crossh +\crossing +\CrossMaltese +\crossnilambda +\CrossOpenShadow +\CrossOutline +\crotchet +\crotchetDotted +\crotchetDottedDouble +\crotchetDottedDoubleDown +\crotchetDottedDown +\crotchetDown +\crotchetRest +\crotchetRestDotted +\crtilde +\Cru +\crux +\Crux +\CS +\Csa +\csc +\Cse +\cshuffle +\Csi +\Cso +\Csu +\csub +\csube +\csup +\csupe +\Cta +\Cte +\Cti +\Cto +\Ctrl +\Ctu +\Cu +\Cube +\cup +\Cup +\cupbarcap +\cupdot +\Cupido +\cupleftarrow +\cupovercap +\cupplus +\cupvee +\curlyc +\curlyeqprec +\curlyeqsucc +\curlyesh +\curlyvee +\curlyveedot +\curlyveedownarrow +\curlyveeuparrow +\curlywedge +\curlywedgedot +\curlywedgedownarrow +\curlywedgeuparrow +\curlyyogh +\curlyz +\currency +\curvearrowbotleft +\curvearrowbotleftright +\curvearrowbotright +\curvearrowdownup +\curvearrowleft +\curvearrowleftplus +\curvearrowleftright +\curvearrownesw +\curvearrownwse +\curvearrowright +\curvearrowrightleft +\curvearrowrightminus +\curvearrowsenw +\curvearrowswne +\curvearrowupdown +\CutLeft +\CutRight +\CuttingLine +\Cwa +\cwcirclearrow +\cwcirclearrowdown +\cwcirclearrowleft +\cwcirclearrowright +\cwcirclearrowup +\Cwe +\cwgapcirclearrow +\Cwi +\cwleftarcarrow +\cwnearcarrow +\cwnwarcarrow +\Cwo +\cwopencirclearrow +\cwoverarcarrow +\cwrightarcarrow +\cwsearcarrow +\cwswarcarrow +\cwunderarcarrow +\cwundercurvearrow +\Cxa +\Cxe +\Cya +\Cyo +\cyprfamily +\CYRSH +\Cza +\Czechia +\Czo +d +\d +D +\D +\DA +\dag +\dagger +\dalambert +\daleth +\danger +\dAnnoey +\DArrow +\dasharrow +\dashcolon +\dasheddownarrow +\dashedleftarrow +\dashednearrow +\dashednwarrow +\dashedrightarrow +\dashedsearrow +\dashedswarrow +\dasheduparrow +\dashint +\dashleftarrow +\dashleftharpoondown +\dashleftrightarrow +\dashrightarrow +\dashrightharpoondown +\dashv +\dashV +\Dashv +\DashV +\dashVdash +\DashVDash +\dashVv +\davidsstar +\DavidStar +\DavidStarSolid +\dbar +\dBar +\dbend +\dbkarow +\dblcolon +\DCa +\DCb +\DCc +\DCd +\dCooley +\DD +\ddag +\ddagger +\ddashint +\Ddashv +\ddddot +\dddot +\dddtstile +\ddigamma +\DDohne +\ddot +\ddotdot +\ddots +\ddotseq +\Ddownarrow +\DDownarrow +\ddststile +\ddtstile +\ddttstile +\DE +\DeclareFontFamily +\DeclareFontShape +\DeclareMathOperator +\DeclareMathOperator* +\declareslashed +\DeclareUnicodeCharacter +\decofourleft +\decofourright +\decoone +\decosix +\decothreeleft +\decothreeright +\decotwo +\decrescHairpin +\deg +\degree +\Del +\DEL +\delta +\Delta +\deltaup +\demisemiquaver +\demisemiquaverDotted +\demisemiquaverDottedDouble +\demisemiquaverDottedDoubleDown +\demisemiquaverDottedDown +\demisemiquaverDown +\denarius +\Denarius +\Denmark +\dental +\Dep +\descnode +\det +\devadvantage +\dfourier +\Dfourier +\dft +\DFT +\dh +\DH +\diaeresis +\diagdown +\diagonal +\diagup +\diameter +\diamond +\Diamond +\diamondbackslash +\diamondbar +\Diamondblack +\diamondbotblack +\diamondbslash +\diamondcdot +\diamondcircle +\diamonddiamond +\diamonddot +\Diamonddot +\Diamonddotleft +\DiamonddotLeft +\Diamonddotright +\DiamonddotRight +\diamonddots +\Diamondleft +\DiamondLeft +\diamondleftarrow +\diamondleftarrowbar +\diamondleftblack +\diamondminus +\diamondop +\diamondplus +\Diamondright +\DiamondRight +\diamondrightblack +\DiamondShadowA +\DiamondShadowB +\DiamondShadowC +\Diamondshape +\diamondslash +\DiamondSolid +\diamondsuit +\diamondtimes +\diamondtopblack +\diamondtriangle +\diamondvert +\diatop +\diaunder +\dicei +\diceii +\diceiii +\diceiv +\dicev +\dicevi +\digamma +\Digamma +\dim +\ding +\ding{100} +\ding{101} +\ding{102} +\ding{103} +\ding{104} +\ding{105} +\ding{106} +\ding{107} +\ding{108} +\ding{109} +\ding{110} +\ding{111} +\ding{112} +\ding{113} +\ding{114} +\ding{115} +\ding{116} +\ding{117} +\ding{118} +\ding{119} +\ding{120} +\ding{121} +\ding{122} +\ding{123} +\ding{124} +\ding{125} +\ding{126} +\ding{161} +\ding{162} +\ding{163} +\ding{164} +\ding{165} +\ding{166} +\ding{167} +\ding{168} +\ding{169} +\ding{170} +\ding{171} +\ding{172} +\ding{173} +\ding{174} +\ding{175} +\ding{176} +\ding{177} +\ding{178} +\ding{179} +\ding{180} +\ding{181} +\ding{182} +\ding{183} +\ding{184} +\ding{185} +\ding{186} +\ding{187} +\ding{188} +\ding{189} +\ding{190} +\ding{191} +\ding{192} +\ding{193} +\ding{194} +\ding{195} +\ding{196} +\ding{197} +\ding{198} +\ding{199} +\ding{200} +\ding{201} +\ding{202} +\ding{203} +\ding{204} +\ding{205} +\ding{206} +\ding{207} +\ding{208} +\ding{209} +\ding{210} +\ding{211} +\ding{212} +\ding{213} +\ding{214} +\ding{215} +\ding{216} +\ding{217} +\ding{218} +\ding{219} +\ding{220} +\ding{221} +\ding{222} +\ding{223} +\ding{224} +\ding{225} +\ding{226} +\ding{227} +\ding{228} +\ding{229} +\ding{230} +\ding{231} +\ding{232} +\ding{233} +\ding{234} +\ding{235} +\ding{236} +\ding{237} +\ding{238} +\ding{239} +\ding{241} +\ding{242} +\ding{243} +\ding{244} +\ding{245} +\ding{246} +\ding{247} +\ding{248} +\ding{249} +\ding{250} +\ding{251} +\ding{252} +\ding{253} +\ding{254} +\ding{33} +\ding{34} +\ding{35} +\ding{36} +\ding{37} +\ding{38} +\ding{39} +\ding{40} +\ding{41} +\ding{42} +\ding{43} +\ding{44} +\ding{45} +\ding{46} +\ding{47} +\ding{48} +\ding{49} +\ding{50} +\ding{51} +\ding{52} +\ding{53} +\ding{54} +\ding{55} +\ding{56} +\ding{57} +\ding{58} +\ding{59} +\ding{60} +\ding{61} +\ding{62} +\ding{63} +\ding{64} +\ding{65} +\ding{66} +\ding{67} +\ding{68} +\ding{69} +\ding{70} +\ding{71} +\ding{72} +\ding{73} +\ding{74} +\ding{75} +\ding{76} +\ding{77} +\ding{78} +\ding{79} +\ding{80} +\ding{81} +\ding{82} +\ding{83} +\ding{84} +\ding{85} +\ding{86} +\ding{87} +\ding{88} +\ding{89} +\ding{90} +\ding{91} +\ding{92} +\ding{93} +\ding{94} +\ding{95} +\ding{96} +\ding{97} +\ding{98} +\ding{99} +\dingasterisk +dingautolist +\dInnocey +\diple +\diple* +\Diple +\Diple* +\dipole +\Direct +\Dish +\disin +\disjquant +\displaystyle +\div +\divdot +\divideontimes +\divides +\Divides +\DividesNot +\divslash +\dj +\DJ +\DL +\dLaughey +\dlbari +\DLE +\dlsh +\DM +\Dmesonminus +\Dmesonnull +\Dmesonplus +\dndtstile +\dNeutrey +\dNinja +\dnststile +\dntstile +\dnttstile +\dNursey +\Dohne +\Dontwash +\dot +\dotarrow +\dotcong +\dotcup +\dotdiv +\doteq +\Doteq +\doteqdot +\dotequiv +\dotmedvert +\dotminus +\dotplus +\dots +\dotsb +\dotsc +\dotseq +\dotsi +\dotsim +\dotsint +\dotsm +\dotsminusdots +\dotso +\dottedcircle +\dottedsquare +\dottedtilde +\dottimes +\double +\doublebar +\doublebarvee +\doublebarwedge +\doublecap +\doublecovbond +\doublecross +\doublecup +\doublecurlyvee +\doublecurlywedge +\doubledot +\doubleeye +\doublefrown +\doublefrowneq +\doublepawns +\doubleplus +\doublesharp +\doublesmile +\doublesmileeq +\doublesqcap +\doublesqcup +\doublestar +\doublethumb +\doubletilde +\doublevee +\doublewedge +\downarrow +\Downarrow +\DOWNarrow +\downarrowbar +\downarrowbarred +\downarrowtail +\downassert +\downAssert +\downbkarrow +\downblackarrow +\downblackspoon +\downbow +\downbracketfill +\downdasharrow +\downdownarrows +\downdownharpoons +\downfilledspoon +\downfishtail +\downfootline +\downfree +\downharpoonccw +\downharpooncw +\downharpoonleft +\downharpoonleftbar +\downharpoonright +\downharpoonrightbar +\downharpoonsleftright +\downlcurvearrow +\downleftcurvedarrow +\downlsquigarrow +\downmapsto +\Downmapsto +\downmodels +\downModels +\downp +\downparenthfill +\downpitchfork +\downpropto +\downrcurvearrow +\downrightcurvedarrow +\downrsquigarrow +\downslice +\downspoon +\downt +\downtherefore +\downtouparrow +\downtriangleleftblack +\downtrianglerightblack +\downuparrows +\downupcurvearrow +\downupharpoons +\downupharpoonsleftright +\downupsquigarrow +\downvdash +\downvDash +\downVdash +\downVDash +\downwavearrow +\downwhitearrow +\downY +\downzigzagarrow +\dprime +\DQ +\dracma +\draftingarrow +\drbkarow +\Dreizack +\droang +\drsh +\drumclef +\drWalley +\ds +\Ds +\DS +\dSadey +\dsaeronautical +\dsagricultural +\dsarchitectural +\dsbiological +\DSC +\dschemical +\dscommercial +\dsdtstile +\dSey +\dsheraldical +\dsjuridical +\dsliterary +\dsmathematical +\dsmedical +\dSmiley +\dsmilitary +\dsol +\dsrailways +\dsststile +\dstechnical +\dststile +\dsttstile +\dsub +\dtdtstile +\dtimes +\dTongey +\dtststile +\dttstile +\dtttstile +\DU +\dualmap +\duevolte +\dVomey +\dWalley +\dWinkey +\dXey +\dz +e +\e +E +\earth +\Earth +\eastcross +\EastPoint +\Ecommerce +\eggbeater +\egsdot +\EightAsterisk +\EightFlowerPetal +\EightFlowerPetalRemoved +\eighthnote +\eighthNote +\eighthNoteDotted +\eighthNoteDottedDouble +\eighthNoteDottedDoubleDown +\eighthNoteDottedDown +\eighthNoteDown +\EightStar +\EightStarBold +\EightStarConvex +\EightStarTaper +\ejective +\electron +\elinters +\ell +\Ellipse +\EllipseShadow +\EllipseSolid +\elsdot +\EM +\Email +\EmailCT +\emf +\emgma +\empty +\emptyset +\emptysetoarr +\emptysetoarrl +\emptysetobar +\emptysetocirc +\EN +\enclosecircle +\enclosediamond +\enclosesquare +\enclosetriangle +\End +\ending +\eng +\engma +\enleadertwodots +\ENQ +\Enter +enumerate +\Envelope +\enya +\EOafter +\EOandThen +\EOAppear +\EOBeardMask +\EOBedeck +\EOBlood +\EObrace +\EObuilding +\EOBundle +\EOChop +\EOChronI +\EOCloth +\EODealWith +\EODeer +\EOeat +\EOflint +\EOflower +\EOFold +\EOGod +\EOGoUp +\EOgovernor +\EOGuise +\EOHallow +\EOi +\EOii +\EOiii +\EOiv +\EOix +\EOja +\EOjaguar +\EOje +\EOji +\EOJI +\EOjo +\EOju +\EOkak +\EOke +\EOki +\EOkij +\EOKing +\EOknottedCloth +\EOknottedClothStraps +\EOko +\EOku +\EOkuu +\EOLetBlood +\EOloinCloth +\EOlongLipII +\EOLord +\EOLose +\EOma +\EOmacaw +\EOmacawI +\EOme +\EOmexNew +\EOmi +\EOMiddle +\EOmonster +\EOMountain +\EOmuu +\EOna +\EOne +\EOni +\EOnow +\EOnu +\EOnuu +\EOofficerI +\EOofficerII +\EOofficerIII +\EOofficerIV +\EOpa +\EOpak +\EOPatron +\EOPatronII +\EOpe +\EOpenis +\EOpi +\EOPierce +\EOPlant +\EOPlay +\EOpo +\EOpriest +\EOPrince +\EOpu +\EOpuu +\EOpuuk +\EORain +\EOsa +\EOSa +\EOsacrifice +\EOSaw +\EOScorpius +\EOset +\EOsi +\EOSi +\EOsing +\EOSini +\EOskin +\EOSky +\EOskyAnimal +\EOskyPillar +\EOsnake +\EOSo +\EOSpan +\EOSprinkle +\EOstar +\EOstarWarrior +\EOStarWarrior +\EOstep +\EOsu +\EOSu +\EOsun +\EOsuu +\EOSuu +\EOT +\EOta +\EOte +\EOthrone +\EOti +\EOtime +\EOTime +\EOTitle +\EOTitleII +\EOTitleIV +\EOto +\EOtu +\EOtuki +\EOtukpa +\EOturtle +\EOtuu +\EOtza +\EOtze +\EOtzetze +\EOtzi +\EOtzu +\EOtzuu +\EOundef +\EOv +\EOvarBeardMask +\EOvarja +\EOvarji +\EOvarki +\EOvarkuu +\EOvarni +\EOvarpa +\EOvarsi +\EOvarSi +\EOvartza +\EOvarwuu +\EOvarYear +\EOvi +\EOvii +\EOviii +\EOwa +\EOwe +\EOwi +\EOwo +\EOwuu +\EOx +\EOxi +\EOxii +\EOxiii +\EOxiv +\EOxix +\EOxv +\EOxvi +\EOxvii +\EOxviii +\EOxx +\EOya +\EOyaj +\EOye +\EOYear +\EOyuu +\EOzero +\EP +\eparsl +\epsdice +\epsi +\epsilon +\Epsilon +\epsilonup +\eqbump +\eqbumped +\eqcirc +\eqcolon +\Eqcolon +\eqdef +\eqdot +\eqeq +\eqeqeq +\eqfrown +\eqgtr +\eqleftrightarrow +\eqless +\eqqcolon +\Eqqcolon +\eqqgtr +\eqqless +\eqqplus +\eqqsim +\eqqslantgtr +\eqqslantless +\eqsim +\eqslantgtr +\eqslantless +\eqsmile +\equal +\equalclosed +\equalleftarrow +\equalparallel +\equalrightarrow +\equalscolon +\equalscoloncolon +\equalsfill +\equiv +\Equiv +\Equivalence +\equivclosed +\equivDD +\equivVert +\equivVvert +\eqvparsl +\er +\Eros +\errbarblackcircle +\errbarblackdiamond +\errbarblacksquare +\errbarcircle +\errbardiamond +\errbarsquare +\errorsym +\Esc +\ESC +\esh +\Estatically +\Estonia +\eta +\Eta +\etameson +\etamesonprime +\etaup +\ETB +\eth +\ETX +\Eulerconst +\EUR +\EURcr +\EURdig +\EURhv +\euro +\Euro +\eurologo +\EURtm +\exciton +\Exclam +\exists +\exp +\experimentalsym +\Explosionsafe +\externalsym +\eye +\EyesDollar +f +\f +F +\fa +\faAdjust +\faAdn +\faAlignCenter +\faAlignJustify +\faAlignLeft +\faAlignRight +\faAmazon +\faAmbulance +\faAnchor +\faAndroid +\faAngellist +\faAngleDoubleDown +\faAngleDoubleLeft +\faAngleDoubleRight +\faAngleDoubleUp +\faAngleDown +\faAngleLeft +\faAngleRight +\faAngleUp +\faApple +\faArchive +\faAreaChart +\faArrowCircleDown +\faArrowCircleLeft +\faArrowCircleODown +\faArrowCircleOLeft +\faArrowCircleORight +\faArrowCircleOUp +\faArrowCircleRight +\faArrowCircleUp +\faArrowDown +\faArrowLeft +\faArrowRight +\faArrows +\faArrowsAlt +\faArrowsH +\faArrowsV +\faArrowUp +\faAsterisk +\faAt +\faAutomobile +\faBackward +\faBalanceScale +\faBan +\faBank +\faBarChart +\faBarChartO +\faBarcode +\faBars +\faBattery0 +\faBattery1 +\faBattery2 +\faBattery3 +\faBattery4 +\faBatteryEmpty +\faBatteryFull +\faBatteryHalf +\faBatteryQuarter +\faBatteryThreeQuarters +\faBed +\faBeer +\faBehance +\faBehanceSquare +\faBell +\faBellO +\faBellSlash +\faBellSlashO +\faBicycle +\faBinoculars +\faBirthdayCake +\faBitbucket +\faBitbucketSquare +\faBitcoin +\faBlackTie +\faBold +\faBolt +\faBomb +\faBook +\faBookmark +\faBookmarkO +\faBriefcase +\faBtc +\faBug +\faBuilding +\faBuildingO +\faBullhorn +\faBullseye +\faBus +\faBuysellads +\faCab +\faCalculator +\faCalendar +\faCalendarCheckO +\faCalendarMinusO +\faCalendarO +\faCalendarPlusO +\faCalendarTimesO +\faCamera +\faCameraRetro +\faCar +\faCaretDown +\faCaretLeft +\faCaretRight +\faCaretSquareODown +\faCaretSquareOLeft +\faCaretSquareORight +\faCaretSquareOUp +\faCaretUp +\faCartArrowDown +\faCartPlus +\faCc +\faCcAmex +\faCcDinersClub +\faCcDiscover +\faCcJcb +\faCcMastercard +\faCcPaypal +\faCcStripe +\faCcVisa +\faCertificate +\faChain +\faChainBroken +\faCheck +\faCheckCircle +\faCheckCircleO +\faCheckSquare +\faCheckSquareO +\faChevronCircleDown +\faChevronCircleLeft +\faChevronCircleRight +\faChevronCircleUp +\faChevronDown +\faChevronLeft +\faChevronRight +\faChevronUp +\faChild +\faChrome +\faCircle +\faCircleO +\faCircleONotch +\faCircleThin +\faClipboard +\faClockO +\faClone +\faClose +\faCloud +\faCloudDownload +\faCloudUpload +\faCny +\faCode +\faCodeFork +\faCodepen +\faCoffee +\faCog +\faCogs +\faColumns +\faComment +\faCommenting +\faCommentingO +\faCommentO +\faComments +\faCommentsO +\faCompass +\faCompress +\faConnectdevelop +\faContao +\Facontent +\faCopy +\faCopyright +\faCreativeCommons +\faCreditCard +\faCrop +\faCrosshairs +\faCss3 +\faCube +\faCubes +\faCut +\faCutlery +\faDashboard +\faDashcube +\faDatabase +\faDedent +\faDelicious +\faDesktop +\faDeviantart +\faDiamond +\faDigg +\faDollar +\faDotCircleO +\faDownload +\faDribbble +\faDropbox +\faDrupal +\faEdit +\faEject +\faEllipsisH +\faEllipsisV +\faEmpire +\faEnvelope +\faEnvelopeO +\faEnvelopeSquare +\faEraser +\faEur +\faEuro +\faExchange +\faExclamation +\faExclamationCircle +\faExclamationTriangle +\faExpand +\faExpeditedssl +\faExternalLink +\faExternalLinkSquare +\faEye +\faEyedropper +\faEyeSlash +\faFacebook +\faFacebookF +\faFacebookOfficial +\faFacebookSquare +\faFastBackward +\faFastForward +\faFax +\faFeed +\faFemale +\faFighterJet +\faFile +\faFileArchiveO +\faFileAudioO +\faFileCodeO +\faFileExcelO +\faFileImageO +\faFileMovieO +\faFileO +\faFilePdfO +\faFilePhotoO +\faFilePictureO +\faFilePowerpointO +\faFilesO +\faFileSoundO +\faFileText +\faFileTextO +\faFileVideoO +\faFileWordO +\faFileZipO +\faFilm +\faFilter +\faFire +\faFireExtinguisher +\faFirefox +\faFlag +\faFlagCheckered +\faFlagO +\faFlash +\faFlask +\faFlickr +\faFloppyO +\faFolder +\faFolderO +\faFolderOpen +\faFolderOpenO +\faFont +\faFonticons +\faForumbee +\faForward +\faFoursquare +\faFrownO +\faFutbolO +\faGamepad +\faGavel +\faGbp +\faGe +\faGear +\faGears +\faGenderless +\faGetPocket +\faGg +\faGgCircle +\faGift +\faGit +\faGithub +\faGithubAlt +\faGithubSquare +\faGitSquare +\faGittip +\faGlass +\faGlobe +\faGoogle +\faGooglePlus +\faGooglePlusSquare +\faGoogleWallet +\faGraduationCap +\faGratipay +\faGroup +\faHackerNews +\faHandGrabO +\faHandLizardO +\faHandODown +\faHandOLeft +\faHandORight +\faHandOUp +\faHandPaperO +\faHandPeaceO +\faHandPointerO +\faHandRockO +\faHandScissorsO +\faHandSpockO +\faHandStopO +\faHddO +\faHeader +\faHeadphones +\faHeart +\faHeartbeat +\faHeartO +\faHistory +\faHome +\faHospitalO +\faHotel +\faHourglass +\faHourglassEnd +\faHourglassHalf +\faHourglassO +\faHourglassStart +\faHouzz +\faHSquare +\faHtml5 +\faICursor +\faIls +\faImage +\faInbox +\faIndent +\faIndustry +\faInfo +\faInfoCircle +\faInr +\faInstagram +\faInstitution +\faInternetExplorer +\faIntersex +\faIoxhost +\faItalic +\faJoomla +\faJpy +\faJsfiddle +\faKey +\faKeyboardO +\faKrw +\faLanguage +\faLaptop +\faLastfm +\faLastfmSquare +\faLeaf +\faLeanpub +\faLegal +\faLemonO +\faLevelDown +\faLevelUp +\faLifeBouy +\faLifeRing +\faLifeSaver +\faLightbulbO +\faLineChart +\faLink +\faLinkedin +\faLinkedinSquare +\faLinux +\faList +\faListAlt +\faListOl +\faListUl +\fallingdotseq +\FallingEdge +\faLocationArrow +\faLock +\faLongArrowDown +\faLongArrowLeft +\faLongArrowRight +\faLongArrowUp +\faMagic +\faMagnet +\faMailForward +\faMailReply +\faMailReplyAll +\faMale +\faMap +\faMapMarker +\faMapO +\faMapPin +\faMapSigns +\faMars +\faMarsDouble +\faMarsStroke +\faMarsStrokeH +\faMarsStrokeV +\faMaxcdn +\faMeanpath +\faMedium +\faMedkit +\faMehO +\faMercury +\faMicrophone +\faMicrophoneSlash +\faMinus +\faMinusCircle +\faMinusSquare +\faMinusSquareO +\faMobile +\faMobilePhone +\faMoney +\faMoonO +\faMortarBoard +\faMotorcycle +\faMousePointer +\faMusic +\faNavicon +\Fancontent +\faNeuter +\faNewspaperO +\Fanncontent +\Fannquant +\Fannquantn +\Fannquantnn +\Fanoven +\Fanquant +\Fanquantn +\Fanquantnn +\faObjectGroup +\faObjectUngroup +\faOdnoklassniki +\faOdnoklassnikiSquare +\faOpencart +\faOpenid +\faOpera +\faOptinMonster +\faOutdent +\faPagelines +\faPaintBrush +\faPaperclip +\faPaperPlane +\faPaperPlaneO +\faParagraph +\faPaste +\faPause +\faPaw +\faPaypal +\faPencil +\faPencilSquare +\faPencilSquareO +\faPhone +\faPhoneSquare +\faPhoto +\faPictureO +\faPieChart +\faPiedPiper +\faPiedPiperAlt +\faPinterest +\faPinterestP +\faPinterestSquare +\faPlane +\faPlay +\faPlayCircle +\faPlayCircleO +\faPlug +\faPlus +\faPlusCircle +\faPlusSquare +\faPlusSquareO +\faPowerOff +\faPrint +\faPuzzlePiece +\faQq +\faQrcode +\Faquant +\Faquantn +\Faquantnn +\faQuestion +\faQuestionCircle +\faQuoteLeft +\faQuoteRight +\faRa +\faRandom +\faRebel +\faRecycle +\faReddit +\faRedditSquare +\faRefresh +\faRegistered +\faRemove +\faRenren +\faReorder +\faRepeat +\faReply +\faReplyAll +\faRetweet +\faRmb +\faRoad +\faRocket +\faRotateLeft +\faRotateRight +\faRouble +\faRss +\faRssSquare +\faRub +\faRuble +\faRupee +\faSafari +\faSave +\faScissors +\faSearch +\faSearchMinus +\faSearchPlus +\faSellsy +\faSend +\faSendO +\faServer +\faShare +\faShareAlt +\faShareAltSquare +\faShareSquare +\faShareSquareO +\faShekel +\faSheqel +\faShield +\faShip +\faShirtsinbulk +\faShoppingCart +\faSignal +\faSignIn +\faSignOut +\faSimplybuilt +\faSitemap +\faSkyatlas +\faSkype +\faSlack +\faSliders +\faSlideshare +\faSmileO +\faSoccerBallO +\faSort +\faSortAlphaAsc +\faSortAlphaDesc +\faSortAmountAsc +\faSortAmountDesc +\faSortAsc +\faSortDesc +\faSortDown +\faSortNumericAsc +\faSortNumericDesc +\faSortUp +\faSoundcloud +\faSpaceShuttle +\faSpinner +\faSpoon +\faSpotify +\faSquare +\faSquareO +\faStackExchange +\faStackOverflow +\faStar +\faStarHalf +\faStarHalfEmpty +\faStarHalfFull +\faStarHalfO +\faStarO +\faSteam +\faSteamSquare +\faStepBackward +\faStepForward +\faStethoscope +\faStickyNote +\faStickyNoteO +\faStop +\faStreetView +\faStrikethrough +\faStumbleupon +\faStumbleuponCircle +\faSubscript +\faSubway +\faSuitcase +\faSunO +\faSuperscript +\faSupport +\faTable +\faTablet +\faTachometer +\faTag +\faTags +\faTasks +\faTaxi +\fatbslash +\faTelevision +\faTencentWeibo +\faTerminal +\faTextHeight +\faTextWidth +\faTh +\faThLarge +\faThList +\faThumbsDown +\faThumbsODown +\faThumbsOUp +\faThumbsUp +\faThumbTack +\faTicket +\faTimes +\faTimesCircle +\faTimesCircleO +\faTint +\faToggleDown +\faToggleLeft +\faToggleOff +\faToggleOn +\faToggleRight +\faToggleUp +\faTrademark +\faTrain +\faTransgender +\faTransgenderAlt +\faTrash +\faTrashO +\faTree +\faTrello +\faTripadvisor +\faTrophy +\faTruck +\faTry +\fatsemi +\fatslash +\faTty +\faTumblr +\faTumblrSquare +\faTurkishLira +\faTv +\faTwitch +\faTwitter +\faTwitterSquare +\faUmbrella +\faUnderline +\faUndo +\faUniversity +\faUnlink +\faUnlock +\faUnlockAlt +\faUnsorted +\faUpload +\faUsd +\faUser +\faUserMd +\faUserPlus +\faUsers +\faUserSecret +\faUserTimes +\faVenus +\faVenusDouble +\faVenusMars +\faViacoin +\faVideoCamera +\faVimeo +\faVimeoSquare +\faVine +\faVk +\faVolumeDown +\faVolumeOff +\faVolumeUp +\faWarning +\faWechat +\faWeibo +\faWeixin +\faWhatsapp +\faWheelchair +\faWifi +\faWikipediaW +\faWindows +\faWon +\faWordpress +\faWrench +\fax +\FAX +\faXing +\faXingSquare +\Faxmachine +\faYahoo +\faYc +\faYCombinator +\faYCombinatorSquare +\faYcSquare +\faYelp +\faYen +\faYoutube +\faYoutubePlay +\faYoutubeSquare +\fbowtie +\fcdice +\fcmp +\Fcontent +\fcscore +\fdiagovnearrow +\fdiagovrdiag +\female +\Female +\FEMALE +\FemaleFemale +\FemaleMale +\Ferli +\fermata +\fermatadown +\fermataup +\Fermi +\fermiDistrib +\fermion +\feyn{a} +\feyn{c} +\feyn{f} +\feyn{fd} +\feyn{fl} +\feyn{flS} +\feyn{fs} +\feyn{fu} +\feyn{fv} +\feyn{g} +\feyn{g1} +\feyn{gd} +\feyn{gl} +\feyn{glB} +\feyn{glS} +\feyn{glu} +\feyn{gu} +\feyn{gv} +\feyn{gvs} +\feyn{h} +\feyn{hd} +\feyn{hs} +\feyn{hu} +\feyn{m} +\feyn{ms} +\feyn{p} +\feyn{P} +\feyn{x} +\FF +\fgeA +\fgebackslash +\fgebaracute +\fgebarcap +\fgec +\fgecap +\fgecapbar +\fgecup +\fgecupacute +\fgecupbar +\fged +\fgee +\fgeeszett +\fgeeta +\fgef +\fgeF +\fgeinfty +\fgelangle +\fgelb +\fgeleftB +\fgeleftC +\fgeN +\fgeoverU +\fgerightarrow +\fgerightB +\fges +\fgestruckone +\fgestruckzero +\fgeU +\fgeuparrow +\fgeupbracket +\file +\FilledBigCircle +\FilledBigDiamondshape +\FilledBigSquare +\FilledBigTriangleDown +\FilledBigTriangleLeft +\FilledBigTriangleRight +\FilledBigTriangleUp +\FilledCircle +\FilledCloud +\filleddiamond +\FilledDiamondShadowA +\FilledDiamondShadowC +\FilledDiamondshape +\FilledHut +\filledlargestar +\filledlozenge +\filledmedlozenge +\filledmedsquare +\filledmedtriangledown +\filledmedtriangleleft +\filledmedtriangleright +\filledmedtriangleup +\FilledRainCloud +\FilledSectioningDiamond +\FilledSmallCircle +\FilledSmallDiamondshape +\FilledSmallSquare +\FilledSmallTriangleDown +\FilledSmallTriangleLeft +\FilledSmallTriangleRight +\FilledSmallTriangleUp +\FilledSnowCloud +\filledsquare +\FilledSquare +\FilledSquareShadowA +\FilledSquareShadowC +\filledsquarewithdots +\filledstar +\FilledSunCloud +\filledtriangledown +\FilledTriangleDown +\filledtriangleleft +\FilledTriangleLeft +\filledtriangleright +\FilledTriangleRight +\filledtriangleup +\FilledTriangleUp +\FilledWeakRainCloud +\Finland +\finpartvoice +\finpartvoiceless +\fint +\fintsl +\fintup +\Finv +\Fire +\fisheye +\fivedots +\FiveFlowerOpen +\FiveFlowerPetal +\FiveStar +\FiveStarCenterOpen +\FiveStarConvex +\FiveStarLines +\FiveStarOpen +\FiveStarOpenCircled +\FiveStarOpenDotted +\FiveStarOutline +\FiveStarOutlineHeavy +\FiveStarShadow +\Fixedbearing +\fixedddots +\fixedvdots +\fj +\FL +\Flag +\flageolett +\flap +\flapr +\Flasche +\flat +\flatflat +\Flatsteel +\Florin +\floweroneleft +\floweroneright +\fltns +\FM +\Fncontent +\Fnncontent +\Fnnquant +\Fnnquantn +\Fnnquantnn +\Fnquant +\Fnquantn +\Fnquantnn +\fnsymbol +\Fog +\fontencoding +\fontsize +\Football +\forall +\Force +\Fork +\forks +\forksnot +\forkv +\Fortune +\Forward +\ForwardToEnd +\ForwardToIndex +\FourAsterisk +\FourClowerOpen +\FourClowerSolid +\fourier +\Fourier +\FourStar +\FourStarOpen +\fourth +\fourvdots +\Fquantn +\Fquantnn +\fracslash +\France +\frown +\frowneq +\frowneqsmile +\frownie +\frownsmile +\frownsmileeq +\Frowny +\fryingpan +\FS +\fullmoon +\fullnote +\fullouterjoin +g +\G +\Game +\gamma +\Gamma +\gammaup +\Ganz +\GaPa +\Gasstove +\gcd +\GD +\ge +\GE +\gemini +\Gemini +\geneuro +\geneuronarrow +\geneurowide +\Gentsroom +\geq +\geqclosed +\geqdot +\geqq +\geqqslant +\geqslant +\geqslantdot +\geqslcc +\Germany +\gescc +\gesdot +\gesdoto +\gesdotol +\gesl +\gesles +\gets +\gg +\ggcurly +\ggg +\gggnest +\gggtr +\gimel +\girl +\gla +\glE +\gleichstark +\glj +\glotstop +\glottal +\Gloves +\gluon +\Gluon +\gnapprox +\gneq +\gneqq +\gnsim +\GO +\Goofy +\graphene +\grater +\grave +\gravis +\graviton +\GreatBritain +\greatpumpkin +\Greece +\Greenpoint +\gregorianCclef +\gregorianFclef +\grimace +\GS +\gsime +\gsiml +\Gt +\gtcc +\gtcir +\gtlpar +\gtquest +\gtr +\gtrapprox +\gtrarr +\gtrcc +\gtrclosed +\gtrdot +\gtreqless +\gtreqlessslant +\gtreqqless +\gtreqslantless +\gtrless +\gtrneqqless +\gtrsim +\GU +\guillemotleft +\guillemotright +\guilsinglleft +\guilsinglright +\gvcropped +\gvertneqq +h +\h +H +\H +\Ha +\HA +\Hades +\Hail +\Halb +\HalfCircleLeft +\HalfCircleRight +\HalfFilledHut +\halflength +\halfnote +\halfNote +\halfNoteDotted +\halfNoteDottedDouble +\halfNoteDottedDoubleDown +\halfNoteDottedDown +\halfNoteDown +\halfNoteRest +\halfNoteRestDotted +\HalfSun +\HandCuffLeft +\HandCuffLeftUp +\HandCuffRight +\HandCuffRightUp +\HandLeft +\HandLeftUp +\HandPencilLeft +\HandRight +\HandRightUp +\Handwash +\HaPa +\hash +\hat +\hatapprox +\hateq +\hausab +\hausaB +\hausad +\hausaD +\hausak +\hausaK +\Hb +\HB +\hbar +\HBar +\hbipropto +\hbond +\Hc +\HC +\hcrossing +\HCthousand +\Hd +\HD +\hdotdot +\hdots +\Hdual +\He +\HE +\Heart +\heartctrbull +\heartsuit +\heavyqtleft +\heavyqtright +\hemiobelion +\Herd +\Hermaphrodite +\HERMAPHRODITE +\hermitmatrix +\heta +\Heta +\hexagon +\hexagonblack +\Hexasteel +\hexstar +\Hf +\HF +\hfermion +\hfil +\Hg +\HG +\Hh +\HH +\Hhundred +\Hi +\HI +\hiatus +\Hibl +\Hibp +\Hibs +\Hibw +\Hidalgo +\Higgsboson +\hill +\Hj +\HJ +\Hk +\HK +\hknearrow +\hknwarrow +\hksearow +\hksearrow +\hksqrt +\hkswarow +\hkswarrow +\Hl +\HL +\Hm +\HM +\Hman +\Hmillion +\Hms +\Hn +\HN +\Ho +\HO +\hole +\HollowBox +\holter +\hom +\Home +\Homer +\Hone +\hookb +\hookd +\hookdownarrow +\hookdownminus +\hookg +\hookh +\hookheng +\hookleftarrow +\hooknearrow +\hooknwarrow +\hookrevepsilon +\hookrightarrow +\hooksearrow +\hookswarrow +\hookuparrow +\hookupminus +\hoshi +\hourglass +\house +\Hp +\HP +\hpause +\Hplural +\Hplus +\Hq +\HQ +\Hquery +\Hr +\HR +\hrectangle +\hrectangleblack +\hs +\Hs +\HS +\Hscribe +\hslash +\Hslash +\Hsv +\Ht +\HT +\Hten +\Hthousand +\Htongue +\Hu +\HU +\Hungary +\Hut +\hv +\Hv +\HV +\Hvbar +\Hw +\HW +\Hx +\HX +\HXthousand +\Hy +\HY +\Hygiea +\hyphenbullet +\Hz +\HZ +\hzigzag +i +\i +I +\ialign +\IB +\ibar +\IC +\Iceland +\IceMountain +\iddots +\idotsint +\igocircle +\igocross +\igonone +\igosquare +\igotriangle +\iiiint +\iiiintsl +\iiiintup +\iiint +\iiintsl +\iiintup +\iinfin +\iint +\iintsl +\iintup +\ij +\IJ +\im +\Im +\imageof +\imath +\in +\incoh +\increment +\independent +\Industry +\inf +\Info +\infty +\ing +\Ing +\ING +\inipartvoice +\inipartvoiceless +\injlim +\Innocey +\inplus +\Ins +\int +\intbar +\intBar +\intbarsl +\intBarsl +\intbarup +\intBarup +\intcap +\intcapsl +\intcapup +\intclockwise +\intclockwisesl +\intclockwiseup +\intctrclockwise +\intcup +\intcupsl +\intcupup +\Integer +\INTEGER +\interaction +\intercal +\interleave +\internalsym +\Interval +\intlarhk +\intlarhksl +\intlarhkup +\intprod +\intprodr +\intsl +\intup +\intx +\intxsl +\intxup +\inva +\invamp +\invbackneg +\INVd +\invdiameter +\inve +\inversebullet +\inversewhitecircle +\InversTransformHoriz +\InversTransformVert +\invf +\invglotstop +\invh +\INVl +\invlazys +\invlegr +\invm +\invneg +\invnot +\invr +\INVr +\invscr +\invscripta +\invsmileface +\INVu +\invv +\invw +\invwhitelowerhalfcircle +\invwhiteupperhalfcircle +\invy +\IO +\ion +\ionicbond +\iota +\Iota +\iotaup +\ipagamma +\ipercatal +\Ireland +\IroningI +\IroningII +\IroningIII +\Irritant +\isindot +\isinE +\isinobar +\isins +\isinvb +\ismodeledby +\Italy +j +\j +J +\JackStar +\JackStarBold +\jmath +\Joch +\Join +\joinrel +\Jpsimeson +\Juno +\jupiter +\Jupiter +k +\k +\K +\Kaonminus +\Kaonnull +\Kaonplus +\kappa +\Kappa +\kappaup +\ker +\kernelcontraction +\Keyboard +\keystroke +\Knife +\Kochtopf +\koppa +\Koppa +\Kr +\kreuz +\Kronos +\kside +l +\l +\L +\labdentalnas +\labvel +\Ladiesroom +\lambda +\Lambda +\lambdabar +\lambdaslash +\lambdaup +\land +\landdownint +\landupint +\langle +\lAngle +\Langle +\langlebar +\langledot +\laplac +\laplace +\Laplace +\largeblackcircle +\largeblacksquare +\largeblackstar +\largecircle +\largectrbull +\largediamond +\largelozenge +\largepencil +\largepentagram +\LargerOrEqual +\largesquare +\largestar +\largestarofdavid +\largetriangledown +\largetriangleleft +\largetriangleright +\largetriangleup +\largewhitestar +\LArrow +\larrowfill +\Laserbeam +\lat +\late +\latfric +\Latvia +\Laughey +\LB +\lbag +\Lbag +\lblackbowtie +\lblkbrbrak +\lbrace +\lBrace +\lbrack +\lBrack +\Lbrack +\lbracklltick +\lbrackubar +\lbrackultick +\lbrbrak +\Lbrbrak +\lceil +\lCeil +\lcirclearrowdown +\lcirclearrowleft +\lcirclearrowright +\lcirclearrowup +\lcircleleftint +\lcirclerightint +\lcm +\lcorners +\lcurvearrowdown +\lcurvearrowleft +\lcurvearrowne +\lcurvearrownw +\lcurvearrowright +\lcurvearrowse +\lcurvearrowsw +\lcurvearrowup +\lcurvyangle +\LD +\ldbrack +\ldotp +\ldots +\Ldsh +\le +\LE +\leadsto +\leafleft +\leafNE +\leafright +\left +\Left +\leftarrow +\Leftarrow +\LEFTarrow +\leftarrowaccent +\leftarrowapprox +\leftarrowbackapprox +\leftarrowbsimilar +\leftarrowless +\leftarrowonoplus +\leftarrowplus +\leftarrowshortrightarrow +\leftarrowsimilar +\leftarrowsubset +\leftarrowtail +\leftarrowtriangle +\leftarrowTriangle +\leftarrowx +\leftassert +\leftAssert +\leftbarharpoon +\leftbkarrow +\leftblackarrow +\leftblackspoon +\Leftcircle +\LEFTcircle +\LEFTCIRCLE +\leftcurvedarrow +\leftdasharrow +\leftdbkarrow +\leftdbltail +\leftdotarrow +\leftdowncurvedarrow +\leftevaw +\leftfilledspoon +\leftfishtail +\leftfootline +\leftfree +\lefthalfcap +\lefthalfcup +\lefthand +\leftharpoonaccent +\leftharpoonccw +\leftharpooncw +\leftharpoondown +\leftharpoondownbar +\leftharpoonsupdown +\leftharpoonup +\leftharpoonupbar +\leftharpoonupdash +\leftlcurvearrow +\leftleftarrows +\leftleftharpoons +\leftlsquigarrow +\leftmapsto +\Leftmapsto +\leftmodels +\leftModels +\leftmoon +\leftouterjoin +\leftp +\leftpitchfork +\leftpointright +\leftpropto +\leftrcurvearrow +\leftrightarrow +\Leftrightarrow +\leftrightarrowaccent +\leftrightarrowcircle +\leftrightarroweq +\leftrightarrows +\leftrightarrowtriangle +\leftrightarrowTriangle +\leftrightblackarrow +\leftrightblackspoon +\leftrightcurvearrow +\leftrightharpoon +\leftrightharpoondowndown +\leftrightharpoondownup +\leftrightharpoons +\leftrightharpoonsdown +\leftrightharpoonsfill +\leftrightharpoonsup +\leftrightharpoonupdown +\leftrightharpoonupup +\leftrightline +\Leftrightline +\leftrightspoon +\leftrightsquigarrow +\leftrightwavearrow +\leftrsquigarrow +\LeftScissors +\leftslice +\leftspoon +\leftsquigarrow +\leftt +\lefttail +\lefttherefore +\leftthreearrows +\leftthreetimes +\leftthumbsdown +\leftthumbsup +\lefttorightarrow +\Lefttorque +\leftturn +\leftupcurvedarrow +\leftvdash +\leftvDash +\leftVdash +\leftVDash +\leftwave +\leftwavearrow +\leftwhitearrow +\leftwhiteroundarrow +\leftY +\leftzigzagarrow +\legm +\legr +\length +\leo +\Leo +\leq +\leqclosed +\leqdot +\leqq +\leqqslant +\leqslant +\leqslantdot +\leqslcc +\lescc +\lesdot +\lesdoto +\lesdotor +\lesg +\lesges +\less +\lessapprox +\lesscc +\lessclosed +\lessdot +\lesseqgtr +\lesseqgtrslant +\lesseqqgtr +\lesseqslantgtr +\lessgtr +\lessneqqgtr +\LessOrEqual +\lesssim +\Letter +\levaw +\LF +\lfbowtie +\lfilet +\lfloor +\lFloor +\lftborder +\lftbotcorner +\lftimes +\lfttopcorner +\lg +\LG +\lgblkcircle +\lgblksquare +\lgE +\lgroup +\lgwhtcircle +\lgwhtsquare +\lhd +\LHD +\lhdbend +\lhook +\lhookdownarrow +\lhookleftarrow +\lhooknearrow +\lhooknwarrow +\lhookrightarrow +\lhooksearrow +\lhookswarrow +\lhookuparrow +\libra +\Libra +\Liechtenstein +\lightbulb +\lightning +\Lightning +\Lilith +\lilyAccent +\lilyDynamics{f} +\lilyDynamics{m} +\lilyDynamics{p} +\lilyDynamics{r} +\lilyDynamics{s} +\lilyDynamics{z} +\lilyEspressivo +\lilyPrintMoreDots +\lilyRF +\lilyRFZ +\lilyStaccato +\lilyText +\lilyThumb +\lilyTimeC +\lilyTimeCHalf +\lilyTimeSignature +\lim +\liminf +\limsup +\linbfamily +\LinearAC +\LinearACC +\LinearACCC +\LinearACCCI +\LinearACCCII +\LinearACCCIII +\LinearACCCIV +\LinearACCCIX +\LinearACCCL +\LinearACCCLI +\LinearACCCLII +\LinearACCCLIII +\LinearACCCLIV +\LinearACCCLIX +\LinearACCCLV +\LinearACCCLVI +\LinearACCCLVII +\LinearACCCLVIII +\LinearACCCLX +\LinearACCCLXI +\LinearACCCLXII +\LinearACCCLXIII +\LinearACCCLXIV +\LinearACCCLXIX +\LinearACCCLXV +\LinearACCCLXVI +\LinearACCCLXVII +\LinearACCCLXVIII +\LinearACCCLXX +\LinearACCCLXXI +\LinearACCCLXXII +\LinearACCCLXXIII +\LinearACCCLXXIV +\LinearACCCLXXIX +\LinearACCCLXXV +\LinearACCCLXXVI +\LinearACCCLXXVII +\LinearACCCLXXVIII +\LinearACCCLXXX +\LinearACCCLXXXI +\LinearACCCLXXXII +\LinearACCCLXXXIII +\LinearACCCLXXXIV +\LinearACCCLXXXIX +\LinearACCCLXXXV +\LinearACCCLXXXVI +\LinearACCCLXXXVII +\LinearACCCLXXXVIII +\LinearACCCV +\LinearACCCVI +\LinearACCCVII +\LinearACCCVIII +\LinearACCCX +\LinearACCCXI +\LinearACCCXII +\LinearACCCXIII +\LinearACCCXIV +\LinearACCCXIX +\LinearACCCXL +\LinearACCCXLI +\LinearACCCXLII +\LinearACCCXLIII +\LinearACCCXLIV +\LinearACCCXLIX +\LinearACCCXLV +\LinearACCCXLVI +\LinearACCCXLVII +\LinearACCCXLVIII +\LinearACCCXV +\LinearACCCXVI +\LinearACCCXVII +\LinearACCCXVIII +\LinearACCCXX +\LinearACCCXXI +\LinearACCCXXII +\LinearACCCXXIII +\LinearACCCXXIV +\LinearACCCXXIX +\LinearACCCXXV +\LinearACCCXXVI +\LinearACCCXXVII +\LinearACCCXXVIII +\LinearACCCXXX +\LinearACCCXXXI +\LinearACCCXXXII +\LinearACCCXXXIII +\LinearACCCXXXIV +\LinearACCCXXXIX +\LinearACCCXXXV +\LinearACCCXXXVI +\LinearACCCXXXVII +\LinearACCCXXXVIII +\LinearACCI +\LinearACCII +\LinearACCIII +\LinearACCIV +\LinearACCIX +\LinearACCL +\LinearACCLI +\LinearACCLII +\LinearACCLIII +\LinearACCLIV +\LinearACCLIX +\LinearACCLV +\LinearACCLVI +\LinearACCLVII +\LinearACCLVIII +\LinearACCLX +\LinearACCLXI +\LinearACCLXII +\LinearACCLXIII +\LinearACCLXIV +\LinearACCLXIX +\LinearACCLXV +\LinearACCLXVI +\LinearACCLXVII +\LinearACCLXVIII +\LinearACCLXX +\LinearACCLXXI +\LinearACCLXXII +\LinearACCLXXIII +\LinearACCLXXIV +\LinearACCLXXIX +\LinearACCLXXV +\LinearACCLXXVI +\LinearACCLXXVII +\LinearACCLXXVIII +\LinearACCLXXX +\LinearACCLXXXI +\LinearACCLXXXII +\LinearACCLXXXIII +\LinearACCLXXXIV +\LinearACCLXXXIX +\LinearACCLXXXV +\LinearACCLXXXVI +\LinearACCLXXXVII +\LinearACCLXXXVIII +\LinearACCLXXXX +\LinearACCV +\LinearACCVI +\LinearACCVII +\LinearACCVIII +\LinearACCX +\LinearACCXCI +\LinearACCXCII +\LinearACCXCIII +\LinearACCXCIV +\LinearACCXCIX +\LinearACCXCV +\LinearACCXCVI +\LinearACCXCVII +\LinearACCXCVIII +\LinearACCXI +\LinearACCXII +\LinearACCXIII +\LinearACCXIV +\LinearACCXIX +\LinearACCXL +\LinearACCXLI +\LinearACCXLII +\LinearACCXLIII +\LinearACCXLIV +\LinearACCXLIX +\LinearACCXLV +\LinearACCXLVI +\LinearACCXLVII +\LinearACCXLVIII +\LinearACCXV +\LinearACCXVI +\LinearACCXVII +\LinearACCXVIII +\LinearACCXX +\LinearACCXXI +\LinearACCXXII +\LinearACCXXIII +\LinearACCXXIV +\LinearACCXXIX +\LinearACCXXV +\LinearACCXXVI +\LinearACCXXVII +\LinearACCXXVIII +\LinearACCXXX +\LinearACCXXXI +\LinearACCXXXII +\LinearACCXXXIII +\LinearACCXXXIV +\LinearACCXXXIX +\LinearACCXXXV +\LinearACCXXXVI +\LinearACCXXXVII +\LinearACCXXXVIII +\LinearACI +\LinearACII +\LinearACIII +\LinearACIV +\LinearACIX +\LinearACL +\LinearACLI +\LinearACLII +\LinearACLIII +\LinearACLIV +\LinearACLIX +\LinearACLV +\LinearACLVI +\LinearACLVII +\LinearACLVIII +\LinearACLX +\LinearACLXI +\LinearACLXII +\LinearACLXIII +\LinearACLXIV +\LinearACLXIX +\LinearACLXV +\LinearACLXVI +\LinearACLXVII +\LinearACLXVIII +\LinearACLXX +\LinearACLXXI +\LinearACLXXII +\LinearACLXXIII +\LinearACLXXIV +\LinearACLXXIX +\LinearACLXXV +\LinearACLXXVI +\LinearACLXXVII +\LinearACLXXVIII +\LinearACLXXX +\LinearACLXXXI +\LinearACLXXXII +\LinearACLXXXIII +\LinearACLXXXIV +\LinearACLXXXIX +\LinearACLXXXV +\LinearACLXXXVI +\LinearACLXXXVII +\LinearACLXXXVIII +\LinearACLXXXX +\LinearACV +\LinearACVI +\LinearACVII +\LinearACVIII +\LinearACX +\LinearACXCI +\LinearACXCII +\LinearACXCIII +\LinearACXCIV +\LinearACXCIX +\LinearACXCV +\LinearACXCVI +\LinearACXCVII +\LinearACXCVIII +\LinearACXI +\LinearACXII +\LinearACXIII +\LinearACXIV +\LinearACXIX +\LinearACXL +\LinearACXLI +\LinearACXLII +\LinearACXLIII +\LinearACXLIV +\LinearACXLIX +\LinearACXLV +\LinearACXLVI +\LinearACXLVII +\LinearACXLVIII +\LinearACXV +\LinearACXVI +\LinearACXVII +\LinearACXVIII +\LinearACXX +\LinearACXXI +\LinearACXXII +\LinearACXXIII +\LinearACXXIV +\LinearACXXIX +\LinearACXXV +\LinearACXXVI +\LinearACXXVII +\LinearACXXVIII +\LinearACXXX +\LinearACXXXI +\LinearACXXXII +\LinearACXXXIII +\LinearACXXXIV +\LinearACXXXIX +\LinearACXXXV +\LinearACXXXVI +\LinearACXXXVII +\LinearACXXXVIII +\LinearAI +\LinearAII +\LinearAIII +\LinearAIV +\LinearAIX +\LinearAL +\LinearALI +\LinearALII +\LinearALIII +\LinearALIV +\LinearALIX +\LinearALV +\LinearALVI +\LinearALVII +\LinearALVIII +\LinearALX +\LinearALXI +\LinearALXII +\LinearALXIII +\LinearALXIV +\LinearALXIX +\LinearALXV +\LinearALXVI +\LinearALXVII +\LinearALXVIII +\LinearALXX +\LinearALXXI +\LinearALXXII +\LinearALXXIII +\LinearALXXIV +\LinearALXXIX +\LinearALXXV +\LinearALXXVI +\LinearALXXVII +\LinearALXXVIII +\LinearALXXX +\LinearALXXXI +\LinearALXXXII +\LinearALXXXIII +\LinearALXXXIV +\LinearALXXXIX +\LinearALXXXV +\LinearALXXXVI +\LinearALXXXVII +\LinearALXXXVIII +\LinearALXXXX +\LinearAV +\LinearAVI +\LinearAVII +\LinearAVIII +\LinearAX +\LinearAXCI +\LinearAXCII +\LinearAXCIII +\LinearAXCIV +\LinearAXCIX +\LinearAXCV +\LinearAXCVI +\LinearAXCVII +\LinearAXCVIII +\LinearAXI +\LinearAXII +\LinearAXIII +\LinearAXIV +\LinearAXIX +\LinearAXL +\LinearAXLI +\LinearAXLII +\LinearAXLIII +\LinearAXLIV +\LinearAXLIX +\LinearAXLV +\LinearAXLVI +\LinearAXLVII +\LinearAXLVIII +\LinearAXV +\LinearAXVI +\LinearAXVII +\LinearAXVIII +\LinearAXX +\LinearAXXI +\LinearAXXII +\LinearAXXIII +\LinearAXXIV +\LinearAXXIX +\LinearAXXV +\LinearAXXVI +\LinearAXXVII +\LinearAXXVIII +\LinearAXXX +\LinearAXXXI +\LinearAXXXII +\LinearAXXXIII +\LinearAXXXIV +\LinearAXXXIX +\LinearAXXXV +\LinearAXXXVI +\LinearAXXXVII +\LinearAXXXVIII +\linefeed +\Lineload +\Lisa +\Lithuania +\lJoin +\LK +\ll +\llangle +\llap +\llarc +\llblacktriangle +\llbracket +\llceil +\llcorner +\llcurly +\Lleftarrow +\LLeftarrow +\llfloor +\lll +\llless +\lllnest +\llparenthesis +\lltriangle +\lmoustache +\ln +\lnapprox +\lneq +\lneqq +\lnot +\lnsim +\LO +\log +\logof +\longa +\longcastling +\longdashv +\longdivision +\longhookrightarrow +\longleadsto +\longleftarrow +\Longleftarrow +\longleftfootline +\longleftharpoondown +\longleftharpoonup +\longleftrightarrow +\Longleftrightarrow +\longleftsquigarrow +\longleftwavearrow +\longmapsfrom +\Longmapsfrom +\longmapsto +\Longmapsto +\LongPulseHigh +\LongPulseLow +\longrightarrow +\Longrightarrow +\longrightfootline +\longrightharpoondown +\longrightharpoonup +\longrightsquigarrow +\longrightwavearrow +\looparrowdownleft +\looparrowdownright +\looparrowleft +\looparrowright +\Loosebearing +\lor +\LowerDiamond +\lowint +\lowintsl +\lowintup +\lozenge +\lozengedot +\lozengeminus +\lparen +\lParen +\Lparen +\Lparengtr +\lparenless +\lrarc +\lrblacktriangle +\lrcorner +\lrtimes +\lrtriangle +\lrtriangleeq +\lsem +\lsf +\lsfz +\Lsh +\lsime +\lsimg +\lsqhook +\Lsteel +\Lt +\ltcc +\ltcir +\ltimes +\ltimesblack +\ltlarr +\ltquest +\ltriple +\ltrivb +\LU +\Luxembourg +\lvert +\lVert +\lvertneqq +\lVvert +\lvzigzag +\Lvzigzag +\lwave +\lwavy +\lWavy +\lz +m +\m +\M +\ma +\Macedonia +\macron +\Maggie +\magnon +\makeatletter +\makeatother +\male +\Male +\MALE +\MaleMale +\Malta +\maltese +\manboldkidney +\manconcentriccircles +\manconcentricdiamond +\mancone +\mancube +\manerrarrow +\ManFace +\manfilledquartercircle +\manhpennib +\manimpossiblecube +\mankidney +\manlhpenkidney +\manpenkidney +\manquadrifolium +\manquartercircle +\manrotatedquadrifolium +\manrotatedquartercircle +\manstar +\mantiltpennib +\mantriangledown +\mantriangleright +\mantriangleup +\manvpennib +\mappedfromchar +\Mappedfromchar +\mapsdown +\Mapsdown +\mapsfrom +\Mapsfrom +\mapsfromchar +\Mapsfromchar +\mapsto +\Mapsto +\mapstochar +\Mapstochar +\mapsup +\Mapsup +\marcato +\marcatoDown +\Marge +\markera +\markerb +\mars +\Mars +\mate +\mathaccent +\mathbb +\mathbbm +\mathbbmss +\mathbbmtt +\mathbf +\mathbin +\mathbold +\mathcal +\mathcent +\mathchoice +\mathclose +\mathcloud +\mathcolon +\mathdollar +\mathds +\mathellipsis +\mathfrak +\mathghost +\mathit +\mathleftghost +\mathnormal +\mathop +\mathopen +\mathord +\mathpalette +\mathparagraph +\mathpunct +\mathratio +\mathrel +\mathrightghost +\mathring +\mathrm +\mathscr +\mathsection +\mathslash +\mathsterling +\mathunderscore +\mathvisiblespace +\mathwitch +\mathwitch* +\max +\maxima +\maxwellDistrib +\maya +\mb +\Mb +\mbb +\mbB +\mBb +\Mbb +\mbbx +\mbox +\MC +\mdblkcircle +\mdblkdiamond +\mdblklozenge +\mdblksquare +\mdlgblkcircle +\mdlgblkdiamond +\mdlgblklozenge +\mdlgblksquare +\mdlgwhtcircle +\mdlgwhtdiamond +\mdlgwhtlozenge +\mdlgwhtsquare +\mdsmblkcircle +\mdsmblksquare +\mdsmwhtcircle +\mdsmwhtsquare +\mdwhtcircle +\mdwhtdiamond +\mdwhtlozenge +\mdwhtsquare +\measangledltosw +\measangledrtose +\measangleldtosw +\measanglelutonw +\measanglerdtose +\measanglerutone +\measangleultonw +\measangleurtone +\measeq +\measuredangle +\measuredangleleft +\measuredrightangle +\measuredrightangledot +\medbackslash +\medblackcircle +\medblackdiamond +\medblacklozenge +\medblacksquare +\medblackstar +\medblacktriangledown +\medblacktriangleleft +\medblacktriangleright +\medblacktriangleup +\medbullet +\medcirc +\medcircle +\meddiamond +\medlozenge +\medslash +\medsquare +\medstar +\medstarofdavid +\medtriangledown +\medtriangleleft +\medtriangleright +\medtriangleup +\medvert +\medvertdot +\medwhitestar +\mercury +\Mercury +\merge +\metalbond +\meterplus +\method +metre +\mglgwhtcircle +\mglgwhtlozenge +\mho +\micro +\mid +\midbarvee +\midbarwedge +\midcir +\middle +\middlebar +\middleslash +\midtilde +\min +\MineSign +\minim +\minimDotted +\minimDottedDouble +\minimDottedDoubleDown +\minimDottedDown +\minimDown +\minus +\minuscolon +\minuscoloncolon +\minusdot +\minusfdots +\minushookdown +\minushookup +\minuso +\minusrdots +\mlcp +\mmappedfromchar +\Mmappedfromchar +\mmapstochar +\Mmapstochar +\Moai +\Mobilefone +\mod +\models +\modtwosum +\Moldova +\Montenegro +\moo +\Moon +\MoonPha +\mordent +\Mordent +\morepawns +\moreroom +\Mountain +\MoveDown +\moverlay +\MoveUp +\mp +\mu +\Mu +\multimap +\multimapboth +\multimapbothvert +\multimapdot +\multimapdotboth +\multimapdotbothA +\multimapdotbothAvert +\multimapdotbothB +\multimapdotbothBvert +\multimapdotbothvert +\multimapdotinv +\multimapinv +\MultiplicationDot +\Mundus +\muon +\muup +\MVAt +\MVComma +\MVDivision +\MVEight +\MVFive +\MVFour +\MVLeftBracket +\MVMinus +\MVMultiplication +\MVNine +\MVOne +\MVPeriod +\MVPlus +\MVRightArrow +\MVRightBracket +\MVSeven +\MVSix +\MVThree +\MVTwo +\MVZero +n +\nabla +\nacwcirclearrowdown +\nacwcirclearrowleft +\nacwcirclearrowright +\nacwcirclearrowup +\nacwgapcirclearrow +\nacwleftarcarrow +\nacwnearcarrow +\nacwnwarcarrow +\nacwopencirclearrow +\nacwoverarcarrow +\nacwrightarcarrow +\nacwsearcarrow +\nacwswarcarrow +\nacwunderarcarrow +\NAK +\NANDd +\NANDl +\NANDr +\NANDu +\napprox +\napproxeq +\napproxeqq +\napproxident +\narceq +\nassert +\nAssert +\nasymp +\Natal +\natural +\Natural +\NATURAL +\nbackapprox +\nbackapproxeq +\nbackcong +\nbackeqsim +\nbacksim +\nbacksimeq +\nbacktriplesim +\nbarV +\nBarv +\nbdleftarcarrow +\nbdnearcarrow +\nbdnwarcarrow +\nbdoverarcarrow +\nbdrightarcarrow +\nbdsearcarrow +\nbdswarcarrow +\nbdunderarcarrow +\nblackwhitespoon +\NBSP +\nbumpeq +\nBumpeq +\nbumpeqq +\ncirceq +\ncirclearrowleft +\ncirclearrowright +\ncirmid +\nclosedequal +\nclosure +\ncong +\ncongdot +\ncurlyeqprec +\ncurlyeqsucc +\ncurvearrowdownup +\ncurvearrowleft +\ncurvearrowleftright +\ncurvearrownesw +\ncurvearrownwse +\ncurvearrowright +\ncurvearrowrightleft +\ncurvearrowsenw +\ncurvearrowswne +\ncurvearrowupdown +\ncwcirclearrowdown +\ncwcirclearrowleft +\ncwcirclearrowright +\ncwcirclearrowup +\ncwgapcirclearrow +\ncwleftarcarrow +\ncwnearcarrow +\ncwnwarcarrow +\ncwopencirclearrow +\ncwoverarcarrow +\ncwrightarcarrow +\ncwsearcarrow +\ncwswarcarrow +\ncwunderarcarrow +\ndasharrow +\ndasheddownarrow +\ndashedleftarrow +\ndashednearrow +\ndashednwarrow +\ndashedrightarrow +\ndashedsearrow +\ndashedswarrow +\ndasheduparrow +\ndashleftarrow +\ndashrightarrow +\ndashv +\ndashV +\nDashv +\nDashV +\ndashVv +\nDdashv +\nDdownarrow +\nddtstile +\ndiagdown +\ndiagup +\ndivides +\ndoteq +\nDoteq +\ndoublefrown +\ndoublefrowneq +\ndoublesmile +\ndoublesmileeq +\ndownarrow +\nDownarrow +\ndownarrowtail +\ndownassert +\ndownAssert +\ndownbkarrow +\ndownblackspoon +\ndowndownarrows +\ndownfilledspoon +\ndownfootline +\ndownfree +\ndownharpoonccw +\ndownharpooncw +\ndownharpoonleft +\ndownharpoonright +\ndownlcurvearrow +\ndownleftcurvedarrow +\ndownlsquigarrow +\ndownmapsto +\nDownmapsto +\ndownmodels +\ndownModels +\ndownpitchfork +\ndownrcurvearrow +\ndownrightcurvedarrow +\ndownrsquigarrow +\ndownspoon +\ndownuparrows +\ndownupcurvearrow +\ndownupharpoons +\ndownupharpoonsleftright +\ndownupsquigarrow +\ndownvdash +\ndownvDash +\ndownVdash +\ndownVDash +\ndownwavearrow +\ndststile +\ndtstile +\ndttstile +\ndualmap +\ne +\NE +\nearrow +\Nearrow +\nearrowcorner +\nearrowtail +\nebkarrow +\nefilledspoon +\nefootline +\nefree +\neg +\neharpoonccw +\neharpooncw +\neharpoonnw +\neharpoonse +\nelcurvearrow +\nelsquigarrow +\nemapsto +\nemodels +\neModels +\nenearrows +\neovnwarrow +\neovsearrow +\nepitchfork +\neptune +\Neptune +\neq +\neqbump +\neqcirc +\neqdot +\neqfrown +\neqsim +\neqslantgtr +\neqslantless +\neqsmile +\nequal +\nequalclosed +\nequiv +\nequivclosed +\nercurvearrow +\nersquigarrow +\nespoon +\neswarrow +\Neswarrow +\neswarrows +\neswbipropto +\neswcrossing +\neswcurvearrow +\neswharpoonnwse +\neswharpoons +\neswharpoonsenw +\neswline +\Neswline +\Netherlands +\neuter +\Neutral +\Neutrey +\neutrino +\neutron +\nevdash +\neVdash +\newextarrow +\newmetrics +\newmoon +\newtie +\nexists +\nfallingdotseq +\nforksnot +\nfrown +\nfrowneq +\nfrowneqsmile +\nfrownsmile +\nfrownsmileeq +\ng +\NG +\nge +\ngeq +\ngeqclosed +\ngeqdot +\ngeqq +\ngeqslant +\ngeqslantdot +\ngeqslcc +\ngescc +\ngesdot +\ngesl +\ngets +\ngg +\nggg +\ngtcc +\ngtr +\ngtrapprox +\ngtrcc +\ngtrclosed +\ngtrdot +\ngtreqless +\ngtreqlessslant +\ngtreqqless +\ngtreqslantless +\ngtrless +\ngtrsim +\nhateq +\nHdownarrow +\nhknearrow +\nhknwarrow +\nhksearrow +\nhkswarrow +\nhookdownarrow +\nhookleftarrow +\nhooknearrow +\nhooknwarrow +\nhookrightarrow +\nhooksearrow +\nhookswarrow +\nhookuparrow +\nhpar +\nHuparrow +\nhVvert +\ni +\nialpha +\nibeta +\NibLeft +\NibRight +\NibSolidLeft +\NibSolidRight +\NiceReapey +\nichi +\niepsilon +\nigamma +\niiota +\nilambda +\nimageof +\nin +\Ninja +\niobar +\niomega +\niphi +\niplus +\nis +\nisd +\nisigma +\nitheta +\niupsilon +\niv +\nj +\nlcirclearrowdown +\nlcirclearrowleft +\nlcirclearrowright +\nlcirclearrowup +\nlcurvearrowdown +\nlcurvearrowleft +\nlcurvearrowne +\nlcurvearrownw +\nlcurvearrowright +\nlcurvearrowse +\nlcurvearrowsw +\nlcurvearrowup +\nle +\nleadsto +\nleftarrow +\nLeftarrow +\nleftarrowtail +\nleftassert +\nleftAssert +\nleftbkarrow +\nleftblackspoon +\nleftcurvedarrow +\nleftdowncurvedarrow +\nleftfilledspoon +\nleftfootline +\nleftfree +\nleftharpoonccw +\nleftharpooncw +\nleftharpoondown +\nleftharpoonup +\nleftlcurvearrow +\nleftleftarrows +\nleftlsquigarrow +\nleftmapsto +\nLeftmapsto +\nleftmodels +\nleftModels +\nleftpitchfork +\nleftrcurvearrow +\nleftrightarrow +\nLeftrightarrow +\nLeftrightarroW +\nleftrightarrows +\nleftrightblackspoon +\nleftrightcurvearrow +\nleftrightharpoondownup +\nleftrightharpoons +\nleftrightharpoonupdown +\nleftrightline +\nLeftrightline +\nleftrightspoon +\nleftrightsquigarrow +\nleftrightwavearrow +\nleftrsquigarrow +\nleftspoon +\nleftsquigarrow +\nleftupcurvedarrow +\nleftvdash +\nleftvDash +\nleftVdash +\nleftVDash +\nleftwavearrow +\nleq +\nleqclosed +\nleqdot +\nleqq +\nleqslant +\nleqslantdot +\nleqslcc +\nlescc +\nlesdot +\nlesg +\nless +\nlessapprox +\nlesscc +\nlessclosed +\nlessdot +\nlesseqgtr +\nlesseqgtrslant +\nlesseqqgtr +\nlesseqslantgtr +\nlessgtr +\nlesssim +\nlhookdownarrow +\nlhookleftarrow +\nlhooknearrow +\nlhooknwarrow +\nlhookrightarrow +\nlhooksearrow +\nlhookswarrow +\nlhookuparrow +\nll +\nLleftarrow +\nlll +\nlongdashv +\nlongleadsto +\nlongleftarrow +\nLongleftarrow +\nlongleftfootline +\nlongleftrightarrow +\nLongleftrightarrow +\nlongleftsquigarrow +\nlongleftwavearrow +\nlongmapsfrom +\nLongmapsfrom +\nlongmapsto +\nLongmapsto +\nlongrightarrow +\nLongrightarrow +\nlongrightfootline +\nlongrightsquigarrow +\nlongrightwavearrow +\nltcc +\nmapsdown +\nMapsdown +\nmapsfrom +\nMapsfrom +\nmapsto +\nMapsto +\nmapsup +\nMapsup +\nmid +\nmidcir +\nmodels +\nmultimap +\nmultimapinv +\NN +\nndtstile +\nnearrow +\nNearrow +\nnearrowtail +\nnebkarrow +\nnefilledspoon +\nnefootline +\nnefree +\nneharpoonccw +\nneharpooncw +\nneharpoonnw +\nneharpoonse +\nnelcurvearrow +\nnelsquigarrow +\nnemapsto +\nnemodels +\nneModels +\nnenearrows +\nnepitchfork +\nnercurvearrow +\nnersquigarrow +\nnespoon +\nneswarrow +\nNeswarrow +\nneswarrows +\nneswcurvearrow +\nneswharpoonnwse +\nneswharpoons +\nneswharpoonsenw +\nneswline +\nNeswline +\nnevdash +\nneVdash +\nni +\nnststile +\nntstile +\nnttstile +\nnwarrow +\nNwarrow +\nnwarrowtail +\nnwbkarrow +\nnwfilledspoon +\nnwfootline +\nnwfree +\nnwharpoonccw +\nnwharpooncw +\nnwharpoonne +\nnwharpoonsw +\nnwlcurvearrow +\nnwlsquigarrow +\nnwmapsto +\nnwmodels +\nnwModels +\nnwnwarrows +\nnwpitchfork +\nnwrcurvearrow +\nnwrsquigarrow +\nnwsearrow +\nNwsearrow +\nnwsearrows +\nnwsecurvearrow +\nnwseharpoonnesw +\nnwseharpoons +\nnwseharpoonswne +\nnwseline +\nNwseline +\nnwspoon +\nnwvdash +\nnwVdash +\NoBleech +\NoChemicalCleaning +\NoIroning +\NORd +\norigof +\NORl +\NORr +\NorthNode +\NORu +\Norway +\NoSun +\not +\Not +\notasymp +\notbackslash +\notbot +\notchar +\NotCongruent +\notdivides +\notequiv +\notin +\notni +\notowner +\notperp +\notslash +\notsmallin +\notsmallowns +\nottop +\NoTumbler +\novelty +\noway +\nowns +\nparallel +\nparallelslant +\nperp +\npitchfork +\nplus +\npolint +\npolintsl +\npolintup +\nprec +\nprecapprox +\npreccurlyeq +\npreceq +\npreceqq +\nprecsim +\NR +\nrcirclearrowdown +\nrcirclearrowleft +\nrcirclearrowright +\nrcirclearrowup +\nrcurvearrowdown +\nrcurvearrowleft +\nrcurvearrowne +\nrcurvearrownw +\nrcurvearrowright +\nrcurvearrowse +\nrcurvearrowsw +\nrcurvearrowup +\nrelbar +\nRelbar +\nrestriction +\nrhookdownarrow +\nrhookleftarrow +\nrhooknearrow +\nrhooknwarrow +\nrhookrightarrow +\nrhooksearrow +\nrhookswarrow +\nrhookuparrow +\nrightarrow +\nRightarrow +\nrightarrowtail +\nrightassert +\nrightAssert +\nrightbkarrow +\nrightblackspoon +\nrightcurvedarrow +\nrightdowncurvedarrow +\nrightfilledspoon +\nrightfootline +\nrightfree +\nrightharpoonccw +\nrightharpooncw +\nrightharpoondown +\nrightharpoonup +\nrightlcurvearrow +\nrightleftarrows +\nrightleftcurvearrow +\nrightleftharpoons +\nrightleftsquigarrow +\nrightlsquigarrow +\nrightmapsto +\nRightmapsto +\nrightmodels +\nrightModels +\nrightpitchfork +\nrightrcurvearrow +\nrightrightarrows +\nrightrsquigarrow +\nrightspoon +\nrightsquigarrow +\nrightupcurvedarrow +\nrightvdash +\nrightvDash +\nrightVdash +\nrightVDash +\nrightwavearrow +\nrisingdotseq +\nRrightarrow +\nsdtstile +\nsearrow +\nSearrow +\nsearrowtail +\nsebkarrow +\nsefilledspoon +\nsefootline +\nsefree +\nseharpoonccw +\nseharpooncw +\nseharpoonne +\nseharpoonsw +\nselcurvearrow +\nselsquigarrow +\nsemapsto +\nsemodels +\nseModels +\nsenwarrows +\nsenwcurvearrow +\nsenwharpoons +\nsepitchfork +\nsercurvearrow +\nsersquigarrow +\nsesearrows +\nsespoon +\nsevdash +\nseVdash +\nshortdowntack +\nshortlefttack +\nshortmid +\nshortparallel +\nshortrighttack +\nshortuptack +\nsim +\nsime +\nsimeq +\nsmile +\nsmileeq +\nsmileeqfrown +\nsmilefrown +\nsmilefrowneq +\nsqdoublefrown +\nsqdoublefrowneq +\nsqdoublesmile +\nsqdoublesmileeq +\nsqeqfrown +\nsqeqsmile +\nsqfrown +\nsqfrowneq +\nsqfrowneqsmile +\nsqfrownsmile +\nsqsmile +\nsqsmileeq +\nsqsmileeqfrown +\nsqsmilefrown +\nsqsubset +\nsqSubset +\nSqsubset +\nsqsubseteq +\nsqsubseteqq +\nsqsupset +\nsqSupset +\nSqsupset +\nsqsupseteq +\nsqsupseteqq +\nsqtriplefrown +\nsqtriplesmile +\nsquigarrowdownup +\nsquigarrowleftright +\nsquigarrownesw +\nsquigarrownwse +\nsquigarrowrightleft +\nsquigarrowsenw +\nsquigarrowswne +\nsquigarrowupdown +\nsststile +\nstareq +\nststile +\nsttstile +\nsubset +\nSubset +\nsubseteq +\nsubseteqq +\nsucc +\nsuccapprox +\nsucccurlyeq +\nsucceq +\nsucceqq +\nsuccsim +\nsupset +\nSupset +\nsupseteq +\nsupseteqq +\nswarrow +\nSwarrow +\nswarrowtail +\nswbkarrow +\nswfilledspoon +\nswfootline +\nswfree +\nswharpoonccw +\nswharpooncw +\nswharpoonnw +\nswharpoonse +\nswlcurvearrow +\nswlsquigarrow +\nswmapsto +\nswmodels +\nswModels +\nswnearrows +\nswnecurvearrow +\nswneharpoons +\nswpitchfork +\nswrcurvearrow +\nswrsquigarrow +\nswspoon +\nswswarrows +\nswvdash +\nswVdash +\NT +\ntdtstile +\nthickapprox +\nto +\ntriangleeq +\ntriangleleft +\ntrianglelefteq +\ntrianglelefteqslant +\ntriangleright +\ntrianglerighteq +\ntrianglerighteqslant +\ntriplefrown +\ntriplesim +\ntriplesmile +\ntststile +\nttstile +\ntttstile +\ntwoheaddownarrow +\ntwoheadleftarrow +\ntwoheadnearrow +\ntwoheadnwarrow +\ntwoheadrightarrow +\ntwoheadsearrow +\ntwoheadswarrow +\ntwoheaduparrow +\nu +\Nu +\nucleus +\Nudelholz +\NUL +\NumLock +\nuparrow +\nUparrow +\nuparrowtail +\nupassert +\nupAssert +\nupbkarrow +\nupblackspoon +\nupdownarrow +\nUpdownarrow +\nupdownarrows +\nupdowncurvearrow +\nupdownharpoonleftright +\nupdownharpoonrightleft +\nupdownharpoons +\nupdownharpoonsleftright +\nupdownline +\nUpdownline +\nupdownsquigarrow +\nupdownwavearrow +\nupfilledspoon +\nupfootline +\nupfree +\nupharpoonccw +\nupharpooncw +\nupharpoonleft +\nupharpoonright +\nuplcurvearrow +\nupleftcurvedarrow +\nuplsquigarrow +\nupmapsto +\nUpmapsto +\nupmodels +\nupModels +\nuppitchfork +\nuprcurvearrow +\nuprightcurvearrow +\nuprsquigarrow +\nupspoon +\nupuparrows +\nupvdash +\nupvDash +\nupVdash +\nupVDash +\nupwavearrow +\Nursey +\nuup +\nUuparrow +\nvardownwavearrow +\nvargeq +\nvarhookdownarrow +\nvarhookleftarrow +\nvarhooknearrow +\nvarhooknwarrow +\nvarhookrightarrow +\nvarhooksearrow +\nvarhookswarrow +\nvarhookuparrow +\nvarisinobar +\nvarleftrightwavearrow +\nvarleftwavearrow +\nvarleq +\nvarniobar +\nvarparallel +\nvarparallelinv +\nvarrightwavearrow +\nvartriangleleft +\nvartriangleright +\nvarupdownwavearrow +\nvarupwavearrow +\nvBar +\nVbar +\nvdash +\nvDash +\nVdash +\nVDash +\nvDdash +\nveeeq +\nvinfty +\nvleftarrow +\nvLeftarrow +\nVleftarrow +\nvleftarrowtail +\nVleftarrowtail +\nvleftrightarrow +\nvLeftrightarrow +\nVleftrightarrow +\nvlongdash +\nvrightarrow +\nvRightarrow +\nVrightarrow +\nvrightarrowtail +\nVrightarrowtail +\nvtwoheadleftarrow +\nVtwoheadleftarrow +\nvtwoheadleftarrowtail +\nVtwoheadleftarrowtail +\nvtwoheadrightarrow +\nVtwoheadrightarrow +\nvtwoheadrightarrowtail +\nVtwoheadrightarrowtail +\nVvash +\nVvdash +\nwarrow +\Nwarrow +\nwarrowcorner +\nwarrowtail +\nwbkarrow +\nwedgeq +\nwfilledspoon +\nwfootline +\nwfree +\nwharpoonccw +\nwharpooncw +\nwharpoonne +\nwharpoonsw +\nwhiteblackspoon +\nwlcurvearrow +\nwlsquigarrow +\nwmapsto +\nwmodels +\nwModels +\nwnwarrows +\nwovnearrow +\nwpitchfork +\nwrcurvearrow +\nwrsquigarrow +\nwsearrow +\Nwsearrow +\nwsearrows +\nwsebipropto +\nwsecrossing +\nwsecurvearrow +\nwseharpoonnesw +\nwseharpoons +\nwseharpoonswne +\nwseline +\Nwseline +\nwspoon +\nwvdash +\nwVdash +o +\o +\O +\oast +\oasterisk +\obackslash +\obar +\obelus +\obelus* +\Obelus +\Obelus* +\oblong +\obot +\obrbrak +\obslash +\oc +\ocirc +\ocircle +\ocoasterisk +\ocommatopright +\octagon +\Octosteel +\od +\odash +\odiv +\odot +\odotslashdot +\odplus +\oe +\OE +\oequal +\Ofen +\officialeuro +\offinterlineskip +\ogreaterthan +\ohill +\ohm +\Ohne +\ohorn +\OHORN +\oiiint +\oiiintclockwise +\oiiintctrclockwise +\oiiintsl +\oiiintup +\oiint +\oiintclockwise +\oiintctrclockwise +\oiintsl +\oiintup +\oint +\ointclockwise +\ointctrclockwise +\ointctrclockwisesl +\ointctrclockwiseup +\ointsl +\ointup +\olcross +\olddWinkey +\oldGclef +\oldstylenums +\oldWinkey +\oleft +\olessthan +\OM +\omega +\Omega +\omegaup +\omicron +\Omicron +\ominus +\onlymove +\oo +\ooalign +\open +\openJoin +\openo +\opentimes +\operp +\oplus +\opluslhrim +\oplusrhrim +\opposbishops +\opposition +\Opposition +\OR +\orbit +\ORd +\oright +\origof +\ORl +\OrnamentDiamondSolid +\ORr +\ORu +\oslash +\ostar +\osum +\otimes +\Otimes +\otimeshat +\otimeslhrim +\otimesrhrim +\otop +\otriangle +\otriangleup +\oturnedcomma +\ovee +\oven +\Oven +\overarc +\overbrace +\overbracket +\overbridge +\overgroup +\overleftarrow +\overleftharp +\overleftharpdown +\overleftharpoon +\overleftrightarrow +\overleftswishingghost +\overleftwitchonbroom +\overleftwitchonbroom* +\overline +\overlinesegment +\overparen +\overparenthesis +\overrightarrow +\Overrightarrow +\overrightharp +\overrightharpdown +\overrightharpoon +\overrightswishingghost +\overrightwitchonbroom +\overrightwitchonbroom* +\overring +\overscriptleftarrow +\overscriptleftrightarrow +\overscriptrightarrow +\overset +\overt +\ovhook +\ovoid +\owedge +\owns +\ownsbar +p +\p +\p@ +P +\P +\PackingWaste +\Pallas +\pan +\PaperLandscape +\PaperPortrait +\parallel +\parallelogram +\parallelogramblack +\ParallelPort +\parallelslant +\parr +\parsim +\partial +\partialmeetcontraction +\partialslash +\partialvardint +\partialvardlanddownint +\partialvardlandupint +\partialvardlcircleleftint +\partialvardlcirclerightint +\partialvardoiint +\partialvardoint +\partialvardrcircleleftint +\partialvardrcirclerightint +\partialvardstrokedint +\partialvardsumint +\partialvartint +\partialvartlanddownint +\partialvartlandupint +\partialvartlcircleleftint +\partialvartlcirclerightint +\partialvartoiint +\partialvartoint +\partialvartrcircleleftint +\partialvartrcirclerightint +\partialvartstrokedint +\partialvartsumint +\partof +\partvoice +\partvoiceless +\passedpawn +\pause +\PAuse +\PAUSe +\PD +\Peace +\PeaceDove +\Ped +\peeler +\pencil +\PencilLeft +\PencilLeftDown +\PencilLeftUp +\PencilRight +\PencilRightDown +\PencilRightUp +\pentagon +\pentagonblack +\pentagram +\Pentagram +\pentam +\pentdot +\penteye +\permil +\perp +\Perp +\perps +\perthousand +\Pfanne +\Pfund +\PgDown +\PgUp +\PHarrow +\phase +\PHbee +\PHbeehive +\PHboomerang +\PHbow +\PHbullLeg +\PHcaptive +\PHcarpentryPlane +\PHcat +\PHchild +\PHclub +\PHcolumn +\PHcomb +\PHdolium +\PHdove +\PHeagle +\PHflute +\PHgaunlet +\PHgrater +\PHhelmet +\PHhide +\PHhorn +\phi +\Phi +\phimeson +\phimesonnull +\phiup +\PHlid +\PHlily +\PHmanacles +\PHmattock +\phone +\Phone +\PhoneHandset +\phonon +\photon +\PHoxBack +\PHpapyrus +\PHpedestrian +\PHplaneTree +\PHplumedHead +\PHram +\PHrosette +\PHsaw +\PHshield +\PHship +\PHsling +\PHsmallAxe +\PHstrainer +\PHtattooedHead +\PHtiara +\PHtunny +\PHvine +\PHwavyBand +\PHwoman +\pi +\Pi +\Pickup +{\pigpenfont A} +{\pigpenfont B} +{\pigpenfont C} +{\pigpenfont D} +{\pigpenfont E} +{\pigpenfont F} +{\pigpenfont G} +{\pigpenfont H} +{\pigpenfont I} +{\pigpenfont J} +{\pigpenfont K} +{\pigpenfont L} +{\pigpenfont M} +{\pigpenfont N} +{\pigpenfont O} +{\pigpenfont P} +{\pigpenfont Q} +{\pigpenfont R} +{\pigpenfont S} +{\pigpenfont T} +{\pigpenfont U} +{\pigpenfont V} +{\pigpenfont W} +{\pigpenfont X} +{\pigpenfont Y} +{\pigpenfont Z} +\pionminus +\pionnull +\pionplus +\pisces +\Pisces +\Pisymbol +\Pisymbol{astrosym}{0} +\Pisymbol{astrosym}{1} +\Pisymbol{astrosym}{10} +\Pisymbol{astrosym}{100} +\Pisymbol{astrosym}{101} +\Pisymbol{astrosym}{102} +\Pisymbol{astrosym}{103} +\Pisymbol{astrosym}{104} +\Pisymbol{astrosym}{105} +\Pisymbol{astrosym}{106} +\Pisymbol{astrosym}{107} +\Pisymbol{astrosym}{108} +\Pisymbol{astrosym}{109} +\Pisymbol{astrosym}{11} +\Pisymbol{astrosym}{110} +\Pisymbol{astrosym}{111} +\Pisymbol{astrosym}{112} +\Pisymbol{astrosym}{113} +\Pisymbol{astrosym}{114} +\Pisymbol{astrosym}{115} +\Pisymbol{astrosym}{116} +\Pisymbol{astrosym}{117} +\Pisymbol{astrosym}{118} +\Pisymbol{astrosym}{119} +\Pisymbol{astrosym}{12} +\Pisymbol{astrosym}{120} +\Pisymbol{astrosym}{121} +\Pisymbol{astrosym}{122} +\Pisymbol{astrosym}{123} +\Pisymbol{astrosym}{124} +\Pisymbol{astrosym}{125} +\Pisymbol{astrosym}{126} +\Pisymbol{astrosym}{127} +\Pisymbol{astrosym}{128} +\Pisymbol{astrosym}{129} +\Pisymbol{astrosym}{13} +\Pisymbol{astrosym}{130} +\Pisymbol{astrosym}{131} +\Pisymbol{astrosym}{132} +\Pisymbol{astrosym}{133} +\Pisymbol{astrosym}{134} +\Pisymbol{astrosym}{135} +\Pisymbol{astrosym}{136} +\Pisymbol{astrosym}{137} +\Pisymbol{astrosym}{138} +\Pisymbol{astrosym}{139} +\Pisymbol{astrosym}{14} +\Pisymbol{astrosym}{140} +\Pisymbol{astrosym}{141} +\Pisymbol{astrosym}{142} +\Pisymbol{astrosym}{143} +\Pisymbol{astrosym}{144} +\Pisymbol{astrosym}{145} +\Pisymbol{astrosym}{146} +\Pisymbol{astrosym}{147} +\Pisymbol{astrosym}{148} +\Pisymbol{astrosym}{149} +\Pisymbol{astrosym}{15} +\Pisymbol{astrosym}{150} +\Pisymbol{astrosym}{151} +\Pisymbol{astrosym}{152} +\Pisymbol{astrosym}{153} +\Pisymbol{astrosym}{154} +\Pisymbol{astrosym}{155} +\Pisymbol{astrosym}{156} +\Pisymbol{astrosym}{157} +\Pisymbol{astrosym}{158} +\Pisymbol{astrosym}{159} +\Pisymbol{astrosym}{16} +\Pisymbol{astrosym}{160} +\Pisymbol{astrosym}{161} +\Pisymbol{astrosym}{162} +\Pisymbol{astrosym}{163} +\Pisymbol{astrosym}{164} +\Pisymbol{astrosym}{165} +\Pisymbol{astrosym}{166} +\Pisymbol{astrosym}{167} +\Pisymbol{astrosym}{168} +\Pisymbol{astrosym}{169} +\Pisymbol{astrosym}{17} +\Pisymbol{astrosym}{178} +\Pisymbol{astrosym}{179} +\Pisymbol{astrosym}{18} +\Pisymbol{astrosym}{180} +\Pisymbol{astrosym}{181} +\Pisymbol{astrosym}{182} +\Pisymbol{astrosym}{183} +\Pisymbol{astrosym}{184} +\Pisymbol{astrosym}{185} +\Pisymbol{astrosym}{186} +\Pisymbol{astrosym}{187} +\Pisymbol{astrosym}{188} +\Pisymbol{astrosym}{189} +\Pisymbol{astrosym}{19} +\Pisymbol{astrosym}{190} +\Pisymbol{astrosym}{191} +\Pisymbol{astrosym}{2} +\Pisymbol{astrosym}{20} +\Pisymbol{astrosym}{200} +\Pisymbol{astrosym}{201} +\Pisymbol{astrosym}{202} +\Pisymbol{astrosym}{203} +\Pisymbol{astrosym}{204} +\Pisymbol{astrosym}{205} +\Pisymbol{astrosym}{206} +\Pisymbol{astrosym}{207} +\Pisymbol{astrosym}{208} +\Pisymbol{astrosym}{209} +\Pisymbol{astrosym}{21} +\Pisymbol{astrosym}{210} +\Pisymbol{astrosym}{211} +\Pisymbol{astrosym}{212} +\Pisymbol{astrosym}{213} +\Pisymbol{astrosym}{214} +\Pisymbol{astrosym}{215} +\Pisymbol{astrosym}{216} +\Pisymbol{astrosym}{217} +\Pisymbol{astrosym}{218} +\Pisymbol{astrosym}{219} +\Pisymbol{astrosym}{22} +\Pisymbol{astrosym}{220} +\Pisymbol{astrosym}{221} +\Pisymbol{astrosym}{222} +\Pisymbol{astrosym}{223} +\Pisymbol{astrosym}{224} +\Pisymbol{astrosym}{225} +\Pisymbol{astrosym}{226} +\Pisymbol{astrosym}{227} +\Pisymbol{astrosym}{228} +\Pisymbol{astrosym}{229} +\Pisymbol{astrosym}{23} +\Pisymbol{astrosym}{230} +\Pisymbol{astrosym}{231} +\Pisymbol{astrosym}{232} +\Pisymbol{astrosym}{233} +\Pisymbol{astrosym}{234} +\Pisymbol{astrosym}{235} +\Pisymbol{astrosym}{236} +\Pisymbol{astrosym}{237} +\Pisymbol{astrosym}{238} +\Pisymbol{astrosym}{239} +\Pisymbol{astrosym}{24} +\Pisymbol{astrosym}{240} +\Pisymbol{astrosym}{241} +\Pisymbol{astrosym}{242} +\Pisymbol{astrosym}{243} +\Pisymbol{astrosym}{244} +\Pisymbol{astrosym}{245} +\Pisymbol{astrosym}{246} +\Pisymbol{astrosym}{247} +\Pisymbol{astrosym}{248} +\Pisymbol{astrosym}{249} +\Pisymbol{astrosym}{25} +\Pisymbol{astrosym}{250} +\Pisymbol{astrosym}{251} +\Pisymbol{astrosym}{252} +\Pisymbol{astrosym}{253} +\Pisymbol{astrosym}{254} +\Pisymbol{astrosym}{255} +\Pisymbol{astrosym}{26} +\Pisymbol{astrosym}{27} +\Pisymbol{astrosym}{28} +\Pisymbol{astrosym}{29} +\Pisymbol{astrosym}{3} +\Pisymbol{astrosym}{30} +\Pisymbol{astrosym}{31} +\Pisymbol{astrosym}{32} +\Pisymbol{astrosym}{33} +\Pisymbol{astrosym}{34} +\Pisymbol{astrosym}{35} +\Pisymbol{astrosym}{36} +\Pisymbol{astrosym}{37} +\Pisymbol{astrosym}{38} +\Pisymbol{astrosym}{39} +\Pisymbol{astrosym}{4} +\Pisymbol{astrosym}{40} +\Pisymbol{astrosym}{41} +\Pisymbol{astrosym}{42} +\Pisymbol{astrosym}{43} +\Pisymbol{astrosym}{44} +\Pisymbol{astrosym}{45} +\Pisymbol{astrosym}{46} +\Pisymbol{astrosym}{47} +\Pisymbol{astrosym}{48} +\Pisymbol{astrosym}{49} +\Pisymbol{astrosym}{5} +\Pisymbol{astrosym}{50} +\Pisymbol{astrosym}{51} +\Pisymbol{astrosym}{52} +\Pisymbol{astrosym}{53} +\Pisymbol{astrosym}{54} +\Pisymbol{astrosym}{55} +\Pisymbol{astrosym}{56} +\Pisymbol{astrosym}{57} +\Pisymbol{astrosym}{58} +\Pisymbol{astrosym}{59} +\Pisymbol{astrosym}{6} +\Pisymbol{astrosym}{60} +\Pisymbol{astrosym}{61} +\Pisymbol{astrosym}{62} +\Pisymbol{astrosym}{63} +\Pisymbol{astrosym}{64} +\Pisymbol{astrosym}{65} +\Pisymbol{astrosym}{66} +\Pisymbol{astrosym}{67} +\Pisymbol{astrosym}{68} +\Pisymbol{astrosym}{69} +\Pisymbol{astrosym}{7} +\Pisymbol{astrosym}{8} +\Pisymbol{astrosym}{9} +\Pisymbol{astrosym}{90} +\Pisymbol{astrosym}{91} +\Pisymbol{astrosym}{92} +\Pisymbol{astrosym}{93} +\Pisymbol{astrosym}{94} +\Pisymbol{astrosym}{95} +\Pisymbol{cryst}{0} +\Pisymbol{cryst}{10} +\Pisymbol{cryst}{102} +\Pisymbol{cryst}{103} +\Pisymbol{cryst}{104} +\Pisymbol{cryst}{105} +\Pisymbol{cryst}{107} +\Pisymbol{cryst}{108} +\Pisymbol{cryst}{109} +\Pisymbol{cryst}{112} +\Pisymbol{cryst}{113} +\Pisymbol{cryst}{12} +\Pisymbol{cryst}{120} +\Pisymbol{cryst}{121} +\Pisymbol{cryst}{123} +\Pisymbol{cryst}{124} +\Pisymbol{cryst}{125} +\Pisymbol{cryst}{127} +\Pisymbol{cryst}{128} +\Pisymbol{cryst}{129} +\Pisymbol{cryst}{130} +\Pisymbol{cryst}{131} +\Pisymbol{cryst}{132} +\Pisymbol{cryst}{133} +\Pisymbol{cryst}{135} +\Pisymbol{cryst}{136} +\Pisymbol{cryst}{137} +\Pisymbol{cryst}{138} +\Pisymbol{cryst}{139} +\Pisymbol{cryst}{140} +\Pisymbol{cryst}{141} +\Pisymbol{cryst}{142} +\Pisymbol{cryst}{143} +\Pisymbol{cryst}{145} +\Pisymbol{cryst}{147} +\Pisymbol{cryst}{148} +\Pisymbol{cryst}{149} +\Pisymbol{cryst}{15} +\Pisymbol{cryst}{155} +\Pisymbol{cryst}{157} +\Pisymbol{cryst}{158} +\Pisymbol{cryst}{159} +\Pisymbol{cryst}{175} +\Pisymbol{cryst}{177} +\Pisymbol{cryst}{178} +\Pisymbol{cryst}{179} +\Pisymbol{cryst}{185} +\Pisymbol{cryst}{187} +\Pisymbol{cryst}{188} +\Pisymbol{cryst}{189} +\Pisymbol{cryst}{195} +\Pisymbol{cryst}{197} +\Pisymbol{cryst}{198} +\Pisymbol{cryst}{199} +\Pisymbol{cryst}{2} +\Pisymbol{cryst}{20} +\Pisymbol{cryst}{202} +\Pisymbol{cryst}{203} +\Pisymbol{cryst}{204} +\Pisymbol{cryst}{21} +\Pisymbol{cryst}{210} +\Pisymbol{cryst}{212} +\Pisymbol{cryst}{213} +\Pisymbol{cryst}{22} +\Pisymbol{cryst}{220} +\Pisymbol{cryst}{221} +\Pisymbol{cryst}{223} +\Pisymbol{cryst}{224} +\Pisymbol{cryst}{230} +\Pisymbol{cryst}{231} +\Pisymbol{cryst}{232} +\Pisymbol{cryst}{233} +\Pisymbol{cryst}{236} +\Pisymbol{cryst}{24} +\Pisymbol{cryst}{240} +\Pisymbol{cryst}{241} +\Pisymbol{cryst}{242} +\Pisymbol{cryst}{243} +\Pisymbol{cryst}{25} +\Pisymbol{cryst}{27} +\Pisymbol{cryst}{28} +\Pisymbol{cryst}{29} +\Pisymbol{cryst}{3} +\Pisymbol{cryst}{30} +\Pisymbol{cryst}{31} +\Pisymbol{cryst}{32} +\Pisymbol{cryst}{35} +\Pisymbol{cryst}{36} +\Pisymbol{cryst}{37} +\Pisymbol{cryst}{38} +\Pisymbol{cryst}{39} +\Pisymbol{cryst}{4} +\Pisymbol{cryst}{40} +\Pisymbol{cryst}{41} +\Pisymbol{cryst}{42} +\Pisymbol{cryst}{43} +\Pisymbol{cryst}{44} +\Pisymbol{cryst}{45} +\Pisymbol{cryst}{47} +\Pisymbol{cryst}{48} +\Pisymbol{cryst}{49} +\Pisymbol{cryst}{5} +\Pisymbol{cryst}{50} +\Pisymbol{cryst}{55} +\Pisymbol{cryst}{57} +\Pisymbol{cryst}{58} +\Pisymbol{cryst}{59} +\Pisymbol{cryst}{6} +\Pisymbol{cryst}{60} +\Pisymbol{cryst}{61} +\Pisymbol{cryst}{62} +\Pisymbol{cryst}{63} +\Pisymbol{cryst}{64} +\Pisymbol{cryst}{65} +\Pisymbol{cryst}{66} +\Pisymbol{cryst}{7} +\Pisymbol{cryst}{75} +\Pisymbol{cryst}{77} +\Pisymbol{cryst}{78} +\Pisymbol{cryst}{79} +\Pisymbol{cryst}{8} +\Pisymbol{cryst}{80} +\Pisymbol{cryst}{81} +\Pisymbol{cryst}{82} +\Pisymbol{cryst}{83} +\Pisymbol{cryst}{84} +\Pisymbol{cryst}{85} +\Pisymbol{cryst}{87} +\Pisymbol{cryst}{88} +\Pisymbol{cryst}{89} +\Pisymbol{cryst}{9} +\Pisymbol{cryst}{95} +\Pisymbol{cryst}{97} +\Pisymbol{cryst}{98} +\Pisymbol{cryst}{99} +\Pisymbol{dancers}{0} +\Pisymbol{dancers}{1} +\Pisymbol{dancers}{10} +\Pisymbol{dancers}{100} +\Pisymbol{dancers}{101} +\Pisymbol{dancers}{102} +\Pisymbol{dancers}{103} +\Pisymbol{dancers}{104} +\Pisymbol{dancers}{105} +\Pisymbol{dancers}{106} +\Pisymbol{dancers}{107} +\Pisymbol{dancers}{108} +\Pisymbol{dancers}{109} +\Pisymbol{dancers}{11} +\Pisymbol{dancers}{110} +\Pisymbol{dancers}{111} +\Pisymbol{dancers}{112} +\Pisymbol{dancers}{113} +\Pisymbol{dancers}{114} +\Pisymbol{dancers}{115} +\Pisymbol{dancers}{116} +\Pisymbol{dancers}{117} +\Pisymbol{dancers}{118} +\Pisymbol{dancers}{119} +\Pisymbol{dancers}{12} +\Pisymbol{dancers}{120} +\Pisymbol{dancers}{121} +\Pisymbol{dancers}{122} +\Pisymbol{dancers}{123} +\Pisymbol{dancers}{124} +\Pisymbol{dancers}{125} +\Pisymbol{dancers}{126} +\Pisymbol{dancers}{127} +\Pisymbol{dancers}{128} +\Pisymbol{dancers}{129} +\Pisymbol{dancers}{13} +\Pisymbol{dancers}{130} +\Pisymbol{dancers}{131} +\Pisymbol{dancers}{132} +\Pisymbol{dancers}{133} +\Pisymbol{dancers}{134} +\Pisymbol{dancers}{135} +\Pisymbol{dancers}{136} +\Pisymbol{dancers}{137} +\Pisymbol{dancers}{138} +\Pisymbol{dancers}{139} +\Pisymbol{dancers}{14} +\Pisymbol{dancers}{140} +\Pisymbol{dancers}{141} +\Pisymbol{dancers}{142} +\Pisymbol{dancers}{143} +\Pisymbol{dancers}{144} +\Pisymbol{dancers}{145} +\Pisymbol{dancers}{146} +\Pisymbol{dancers}{147} +\Pisymbol{dancers}{148} +\Pisymbol{dancers}{149} +\Pisymbol{dancers}{15} +\Pisymbol{dancers}{150} +\Pisymbol{dancers}{151} +\Pisymbol{dancers}{152} +\Pisymbol{dancers}{153} +\Pisymbol{dancers}{154} +\Pisymbol{dancers}{155} +\Pisymbol{dancers}{156} +\Pisymbol{dancers}{157} +\Pisymbol{dancers}{158} +\Pisymbol{dancers}{159} +\Pisymbol{dancers}{16} +\Pisymbol{dancers}{160} +\Pisymbol{dancers}{161} +\Pisymbol{dancers}{162} +\Pisymbol{dancers}{163} +\Pisymbol{dancers}{164} +\Pisymbol{dancers}{165} +\Pisymbol{dancers}{166} +\Pisymbol{dancers}{167} +\Pisymbol{dancers}{168} +\Pisymbol{dancers}{169} +\Pisymbol{dancers}{17} +\Pisymbol{dancers}{170} +\Pisymbol{dancers}{171} +\Pisymbol{dancers}{172} +\Pisymbol{dancers}{173} +\Pisymbol{dancers}{174} +\Pisymbol{dancers}{175} +\Pisymbol{dancers}{176} +\Pisymbol{dancers}{177} +\Pisymbol{dancers}{178} +\Pisymbol{dancers}{179} +\Pisymbol{dancers}{18} +\Pisymbol{dancers}{180} +\Pisymbol{dancers}{181} +\Pisymbol{dancers}{182} +\Pisymbol{dancers}{183} +\Pisymbol{dancers}{184} +\Pisymbol{dancers}{185} +\Pisymbol{dancers}{186} +\Pisymbol{dancers}{187} +\Pisymbol{dancers}{188} +\Pisymbol{dancers}{189} +\Pisymbol{dancers}{19} +\Pisymbol{dancers}{190} +\Pisymbol{dancers}{191} +\Pisymbol{dancers}{192} +\Pisymbol{dancers}{193} +\Pisymbol{dancers}{194} +\Pisymbol{dancers}{195} +\Pisymbol{dancers}{196} +\Pisymbol{dancers}{197} +\Pisymbol{dancers}{198} +\Pisymbol{dancers}{199} +\Pisymbol{dancers}{2} +\Pisymbol{dancers}{20} +\Pisymbol{dancers}{200} +\Pisymbol{dancers}{201} +\Pisymbol{dancers}{202} +\Pisymbol{dancers}{203} +\Pisymbol{dancers}{204} +\Pisymbol{dancers}{205} +\Pisymbol{dancers}{206} +\Pisymbol{dancers}{207} +\Pisymbol{dancers}{208} +\Pisymbol{dancers}{209} +\Pisymbol{dancers}{21} +\Pisymbol{dancers}{210} +\Pisymbol{dancers}{211} +\Pisymbol{dancers}{212} +\Pisymbol{dancers}{213} +\Pisymbol{dancers}{214} +\Pisymbol{dancers}{215} +\Pisymbol{dancers}{216} +\Pisymbol{dancers}{217} +\Pisymbol{dancers}{218} +\Pisymbol{dancers}{219} +\Pisymbol{dancers}{22} +\Pisymbol{dancers}{220} +\Pisymbol{dancers}{221} +\Pisymbol{dancers}{222} +\Pisymbol{dancers}{223} +\Pisymbol{dancers}{224} +\Pisymbol{dancers}{225} +\Pisymbol{dancers}{226} +\Pisymbol{dancers}{227} +\Pisymbol{dancers}{228} +\Pisymbol{dancers}{229} +\Pisymbol{dancers}{23} +\Pisymbol{dancers}{230} +\Pisymbol{dancers}{231} +\Pisymbol{dancers}{232} +\Pisymbol{dancers}{233} +\Pisymbol{dancers}{234} +\Pisymbol{dancers}{235} +\Pisymbol{dancers}{236} +\Pisymbol{dancers}{237} +\Pisymbol{dancers}{238} +\Pisymbol{dancers}{239} +\Pisymbol{dancers}{24} +\Pisymbol{dancers}{240} +\Pisymbol{dancers}{241} +\Pisymbol{dancers}{242} +\Pisymbol{dancers}{243} +\Pisymbol{dancers}{244} +\Pisymbol{dancers}{245} +\Pisymbol{dancers}{246} +\Pisymbol{dancers}{247} +\Pisymbol{dancers}{248} +\Pisymbol{dancers}{249} +\Pisymbol{dancers}{25} +\Pisymbol{dancers}{250} +\Pisymbol{dancers}{251} +\Pisymbol{dancers}{252} +\Pisymbol{dancers}{253} +\Pisymbol{dancers}{254} +\Pisymbol{dancers}{255} +\Pisymbol{dancers}{26} +\Pisymbol{dancers}{27} +\Pisymbol{dancers}{28} +\Pisymbol{dancers}{29} +\Pisymbol{dancers}{3} +\Pisymbol{dancers}{30} +\Pisymbol{dancers}{31} +\Pisymbol{dancers}{32} +\Pisymbol{dancers}{33} +\Pisymbol{dancers}{34} +\Pisymbol{dancers}{35} +\Pisymbol{dancers}{36} +\Pisymbol{dancers}{37} +\Pisymbol{dancers}{38} +\Pisymbol{dancers}{39} +\Pisymbol{dancers}{4} +\Pisymbol{dancers}{40} +\Pisymbol{dancers}{41} +\Pisymbol{dancers}{42} +\Pisymbol{dancers}{43} +\Pisymbol{dancers}{44} +\Pisymbol{dancers}{45} +\Pisymbol{dancers}{46} +\Pisymbol{dancers}{47} +\Pisymbol{dancers}{48} +\Pisymbol{dancers}{49} +\Pisymbol{dancers}{5} +\Pisymbol{dancers}{50} +\Pisymbol{dancers}{51} +\Pisymbol{dancers}{52} +\Pisymbol{dancers}{53} +\Pisymbol{dancers}{54} +\Pisymbol{dancers}{55} +\Pisymbol{dancers}{56} +\Pisymbol{dancers}{57} +\Pisymbol{dancers}{58} +\Pisymbol{dancers}{59} +\Pisymbol{dancers}{6} +\Pisymbol{dancers}{60} +\Pisymbol{dancers}{61} +\Pisymbol{dancers}{62} +\Pisymbol{dancers}{63} +\Pisymbol{dancers}{64} +\Pisymbol{dancers}{65} +\Pisymbol{dancers}{66} +\Pisymbol{dancers}{67} +\Pisymbol{dancers}{68} +\Pisymbol{dancers}{69} +\Pisymbol{dancers}{7} +\Pisymbol{dancers}{70} +\Pisymbol{dancers}{71} +\Pisymbol{dancers}{72} +\Pisymbol{dancers}{73} +\Pisymbol{dancers}{74} +\Pisymbol{dancers}{75} +\Pisymbol{dancers}{76} +\Pisymbol{dancers}{77} +\Pisymbol{dancers}{78} +\Pisymbol{dancers}{79} +\Pisymbol{dancers}{8} +\Pisymbol{dancers}{80} +\Pisymbol{dancers}{81} +\Pisymbol{dancers}{82} +\Pisymbol{dancers}{83} +\Pisymbol{dancers}{84} +\Pisymbol{dancers}{85} +\Pisymbol{dancers}{86} +\Pisymbol{dancers}{87} +\Pisymbol{dancers}{88} +\Pisymbol{dancers}{89} +\Pisymbol{dancers}{9} +\Pisymbol{dancers}{90} +\Pisymbol{dancers}{91} +\Pisymbol{dancers}{92} +\Pisymbol{dancers}{93} +\Pisymbol{dancers}{94} +\Pisymbol{dancers}{95} +\Pisymbol{dancers}{96} +\Pisymbol{dancers}{97} +\Pisymbol{dancers}{98} +\Pisymbol{dancers}{99} +\Pisymbol{dice3d}{100} +\Pisymbol{dice3d}{101} +\Pisymbol{dice3d}{102} +\Pisymbol{dice3d}{103} +\Pisymbol{dice3d}{104} +\Pisymbol{dice3d}{105} +\Pisymbol{dice3d}{106} +\Pisymbol{dice3d}{107} +\Pisymbol{dice3d}{108} +\Pisymbol{dice3d}{109} +\Pisymbol{dice3d}{110} +\Pisymbol{dice3d}{111} +\Pisymbol{dice3d}{112} +\Pisymbol{dice3d}{113} +\Pisymbol{dice3d}{114} +\Pisymbol{dice3d}{115} +\Pisymbol{dice3d}{116} +\Pisymbol{dice3d}{117} +\Pisymbol{dice3d}{118} +\Pisymbol{dice3d}{119} +\Pisymbol{dice3d}{120} +\Pisymbol{dice3d}{49} +\Pisymbol{dice3d}{50} +\Pisymbol{dice3d}{51} +\Pisymbol{dice3d}{52} +\Pisymbol{dice3d}{53} +\Pisymbol{dice3d}{54} +\Pisymbol{dice3d}{97} +\Pisymbol{dice3d}{98} +\Pisymbol{dice3d}{99} +\Pisymbol{dingbat}{100} +\Pisymbol{dingbat}{101} +\Pisymbol{dingbat}{102} +\Pisymbol{dingbat}{103} +\Pisymbol{dingbat}{104} +\Pisymbol{dingbat}{69} +\Pisymbol{dingbat}{70} +\Pisymbol{dingbat}{71} +\Pisymbol{dingbat}{72} +\Pisymbol{dingbat}{74} +\Pisymbol{dingbat}{75} +\Pisymbol{dingbat}{76} +\Pisymbol{dingbat}{77} +\Pisymbol{dingbat}{97} +\Pisymbol{dingbat}{98} +\Pisymbol{dingbat}{99} +\Pisymbol{fselch}{0} +\Pisymbol{fselch}{1} +\Pisymbol{fselch}{10} +\Pisymbol{fselch}{100} +\Pisymbol{fselch}{101} +\Pisymbol{fselch}{102} +\Pisymbol{fselch}{103} +\Pisymbol{fselch}{104} +\Pisymbol{fselch}{105} +\Pisymbol{fselch}{106} +\Pisymbol{fselch}{107} +\Pisymbol{fselch}{108} +\Pisymbol{fselch}{109} +\Pisymbol{fselch}{11} +\Pisymbol{fselch}{110} +\Pisymbol{fselch}{111} +\Pisymbol{fselch}{112} +\Pisymbol{fselch}{113} +\Pisymbol{fselch}{114} +\Pisymbol{fselch}{115} +\Pisymbol{fselch}{116} +\Pisymbol{fselch}{117} +\Pisymbol{fselch}{118} +\Pisymbol{fselch}{119} +\Pisymbol{fselch}{12} +\Pisymbol{fselch}{120} +\Pisymbol{fselch}{121} +\Pisymbol{fselch}{122} +\Pisymbol{fselch}{123} +\Pisymbol{fselch}{124} +\Pisymbol{fselch}{125} +\Pisymbol{fselch}{126} +\Pisymbol{fselch}{127} +\Pisymbol{fselch}{128} +\Pisymbol{fselch}{129} +\Pisymbol{fselch}{13} +\Pisymbol{fselch}{130} +\Pisymbol{fselch}{131} +\Pisymbol{fselch}{132} +\Pisymbol{fselch}{133} +\Pisymbol{fselch}{134} +\Pisymbol{fselch}{135} +\Pisymbol{fselch}{136} +\Pisymbol{fselch}{137} +\Pisymbol{fselch}{138} +\Pisymbol{fselch}{139} +\Pisymbol{fselch}{14} +\Pisymbol{fselch}{140} +\Pisymbol{fselch}{141} +\Pisymbol{fselch}{142} +\Pisymbol{fselch}{143} +\Pisymbol{fselch}{144} +\Pisymbol{fselch}{145} +\Pisymbol{fselch}{15} +\Pisymbol{fselch}{151} +\Pisymbol{fselch}{157} +\Pisymbol{fselch}{16} +\Pisymbol{fselch}{163} +\Pisymbol{fselch}{169} +\Pisymbol{fselch}{17} +\Pisymbol{fselch}{175} +\Pisymbol{fselch}{18} +\Pisymbol{fselch}{180} +\Pisymbol{fselch}{186} +\Pisymbol{fselch}{19} +\Pisymbol{fselch}{192} +\Pisymbol{fselch}{198} +\Pisymbol{fselch}{2} +\Pisymbol{fselch}{20} +\Pisymbol{fselch}{204} +\Pisymbol{fselch}{21} +\Pisymbol{fselch}{210} +\Pisymbol{fselch}{216} +\Pisymbol{fselch}{22} +\Pisymbol{fselch}{222} +\Pisymbol{fselch}{228} +\Pisymbol{fselch}{23} +\Pisymbol{fselch}{234} +\Pisymbol{fselch}{24} +\Pisymbol{fselch}{240} +\Pisymbol{fselch}{246} +\Pisymbol{fselch}{25} +\Pisymbol{fselch}{26} +\Pisymbol{fselch}{27} +\Pisymbol{fselch}{28} +\Pisymbol{fselch}{29} +\Pisymbol{fselch}{3} +\Pisymbol{fselch}{30} +\Pisymbol{fselch}{31} +\Pisymbol{fselch}{32} +\Pisymbol{fselch}{33} +\Pisymbol{fselch}{34} +\Pisymbol{fselch}{35} +\Pisymbol{fselch}{36} +\Pisymbol{fselch}{37} +\Pisymbol{fselch}{38} +\Pisymbol{fselch}{39} +\Pisymbol{fselch}{4} +\Pisymbol{fselch}{40} +\Pisymbol{fselch}{41} +\Pisymbol{fselch}{42} +\Pisymbol{fselch}{43} +\Pisymbol{fselch}{44} +\Pisymbol{fselch}{45} +\Pisymbol{fselch}{46} +\Pisymbol{fselch}{47} +\Pisymbol{fselch}{48} +\Pisymbol{fselch}{49} +\Pisymbol{fselch}{5} +\Pisymbol{fselch}{50} +\Pisymbol{fselch}{51} +\Pisymbol{fselch}{52} +\Pisymbol{fselch}{53} +\Pisymbol{fselch}{54} +\Pisymbol{fselch}{55} +\Pisymbol{fselch}{56} +\Pisymbol{fselch}{57} +\Pisymbol{fselch}{58} +\Pisymbol{fselch}{59} +\Pisymbol{fselch}{6} +\Pisymbol{fselch}{60} +\Pisymbol{fselch}{61} +\Pisymbol{fselch}{62} +\Pisymbol{fselch}{63} +\Pisymbol{fselch}{64} +\Pisymbol{fselch}{65} +\Pisymbol{fselch}{66} +\Pisymbol{fselch}{67} +\Pisymbol{fselch}{68} +\Pisymbol{fselch}{69} +\Pisymbol{fselch}{7} +\Pisymbol{fselch}{70} +\Pisymbol{fselch}{71} +\Pisymbol{fselch}{72} +\Pisymbol{fselch}{73} +\Pisymbol{fselch}{74} +\Pisymbol{fselch}{75} +\Pisymbol{fselch}{76} +\Pisymbol{fselch}{77} +\Pisymbol{fselch}{78} +\Pisymbol{fselch}{79} +\Pisymbol{fselch}{8} +\Pisymbol{fselch}{80} +\Pisymbol{fselch}{81} +\Pisymbol{fselch}{82} +\Pisymbol{fselch}{83} +\Pisymbol{fselch}{84} +\Pisymbol{fselch}{85} +\Pisymbol{fselch}{86} +\Pisymbol{fselch}{87} +\Pisymbol{fselch}{88} +\Pisymbol{fselch}{89} +\Pisymbol{fselch}{9} +\Pisymbol{fselch}{90} +\Pisymbol{fselch}{91} +\Pisymbol{fselch}{92} +\Pisymbol{fselch}{93} +\Pisymbol{fselch}{94} +\Pisymbol{fselch}{95} +\Pisymbol{fselch}{96} +\Pisymbol{fselch}{97} +\Pisymbol{fselch}{98} +\Pisymbol{fselch}{99} +\Pisymbol{greenpoint}{71} +\Pisymbol{hands}{65} +\Pisymbol{hands}{66} +\Pisymbol{hands}{67} +\Pisymbol{hands}{68} +\Pisymbol{knot1}{100} +\Pisymbol{knot1}{101} +\Pisymbol{knot1}{102} +\Pisymbol{knot1}{103} +\Pisymbol{knot1}{104} +\Pisymbol{knot1}{105} +\Pisymbol{knot1}{48} +\Pisymbol{knot1}{49} +\Pisymbol{knot1}{50} +\Pisymbol{knot1}{51} +\Pisymbol{knot1}{52} +\Pisymbol{knot1}{53} +\Pisymbol{knot1}{58} +\Pisymbol{knot1}{59} +\Pisymbol{knot1}{60} +\Pisymbol{knot1}{61} +\Pisymbol{knot1}{62} +\Pisymbol{knot1}{63} +\Pisymbol{knot1}{64} +\Pisymbol{knot1}{65} +\Pisymbol{knot1}{66} +\Pisymbol{knot1}{67} +\Pisymbol{knot1}{68} +\Pisymbol{knot1}{69} +\Pisymbol{knot1}{70} +\Pisymbol{knot1}{71} +\Pisymbol{knot1}{72} +\Pisymbol{knot1}{73} +\Pisymbol{knot1}{74} +\Pisymbol{knot1}{75} +\Pisymbol{knot1}{76} +\Pisymbol{knot1}{77} +\Pisymbol{knot1}{78} +\Pisymbol{knot1}{79} +\Pisymbol{knot1}{80} +\Pisymbol{knot1}{81} +\Pisymbol{knot1}{82} +\Pisymbol{knot1}{83} +\Pisymbol{knot1}{84} +\Pisymbol{knot1}{85} +\Pisymbol{knot1}{86} +\Pisymbol{knot1}{87} +\Pisymbol{knot1}{88} +\Pisymbol{knot1}{96} +\Pisymbol{knot1}{97} +\Pisymbol{knot1}{98} +\Pisymbol{knot1}{99} +\Pisymbol{knot2}{100} +\Pisymbol{knot2}{101} +\Pisymbol{knot2}{102} +\Pisymbol{knot2}{103} +\Pisymbol{knot2}{104} +\Pisymbol{knot2}{105} +\Pisymbol{knot2}{48} +\Pisymbol{knot2}{49} +\Pisymbol{knot2}{50} +\Pisymbol{knot2}{51} +\Pisymbol{knot2}{52} +\Pisymbol{knot2}{53} +\Pisymbol{knot2}{58} +\Pisymbol{knot2}{59} +\Pisymbol{knot2}{60} +\Pisymbol{knot2}{61} +\Pisymbol{knot2}{62} +\Pisymbol{knot2}{63} +\Pisymbol{knot2}{64} +\Pisymbol{knot2}{65} +\Pisymbol{knot2}{66} +\Pisymbol{knot2}{67} +\Pisymbol{knot2}{68} +\Pisymbol{knot2}{69} +\Pisymbol{knot2}{70} +\Pisymbol{knot2}{71} +\Pisymbol{knot2}{72} +\Pisymbol{knot2}{73} +\Pisymbol{knot2}{74} +\Pisymbol{knot2}{75} +\Pisymbol{knot2}{76} +\Pisymbol{knot2}{77} +\Pisymbol{knot2}{78} +\Pisymbol{knot2}{79} +\Pisymbol{knot2}{80} +\Pisymbol{knot2}{81} +\Pisymbol{knot2}{82} +\Pisymbol{knot2}{83} +\Pisymbol{knot2}{84} +\Pisymbol{knot2}{85} +\Pisymbol{knot2}{86} +\Pisymbol{knot2}{87} +\Pisymbol{knot2}{88} +\Pisymbol{knot2}{96} +\Pisymbol{knot2}{97} +\Pisymbol{knot2}{98} +\Pisymbol{knot2}{99} +\Pisymbol{knot3}{100} +\Pisymbol{knot3}{101} +\Pisymbol{knot3}{102} +\Pisymbol{knot3}{103} +\Pisymbol{knot3}{104} +\Pisymbol{knot3}{105} +\Pisymbol{knot3}{48} +\Pisymbol{knot3}{49} +\Pisymbol{knot3}{50} +\Pisymbol{knot3}{51} +\Pisymbol{knot3}{52} +\Pisymbol{knot3}{53} +\Pisymbol{knot3}{58} +\Pisymbol{knot3}{59} +\Pisymbol{knot3}{60} +\Pisymbol{knot3}{61} +\Pisymbol{knot3}{62} +\Pisymbol{knot3}{63} +\Pisymbol{knot3}{64} +\Pisymbol{knot3}{65} +\Pisymbol{knot3}{66} +\Pisymbol{knot3}{67} +\Pisymbol{knot3}{68} +\Pisymbol{knot3}{69} +\Pisymbol{knot3}{70} +\Pisymbol{knot3}{71} +\Pisymbol{knot3}{72} +\Pisymbol{knot3}{73} +\Pisymbol{knot3}{74} +\Pisymbol{knot3}{75} +\Pisymbol{knot3}{76} +\Pisymbol{knot3}{77} +\Pisymbol{knot3}{78} +\Pisymbol{knot3}{79} +\Pisymbol{knot3}{80} +\Pisymbol{knot3}{81} +\Pisymbol{knot3}{82} +\Pisymbol{knot3}{83} +\Pisymbol{knot3}{84} +\Pisymbol{knot3}{85} +\Pisymbol{knot3}{86} +\Pisymbol{knot3}{87} +\Pisymbol{knot3}{88} +\Pisymbol{knot3}{96} +\Pisymbol{knot3}{97} +\Pisymbol{knot3}{98} +\Pisymbol{knot3}{99} +\Pisymbol{knot4}{100} +\Pisymbol{knot4}{101} +\Pisymbol{knot4}{102} +\Pisymbol{knot4}{103} +\Pisymbol{knot4}{104} +\Pisymbol{knot4}{105} +\Pisymbol{knot4}{48} +\Pisymbol{knot4}{49} +\Pisymbol{knot4}{50} +\Pisymbol{knot4}{51} +\Pisymbol{knot4}{52} +\Pisymbol{knot4}{53} +\Pisymbol{knot4}{58} +\Pisymbol{knot4}{59} +\Pisymbol{knot4}{60} +\Pisymbol{knot4}{61} +\Pisymbol{knot4}{62} +\Pisymbol{knot4}{63} +\Pisymbol{knot4}{64} +\Pisymbol{knot4}{65} +\Pisymbol{knot4}{66} +\Pisymbol{knot4}{67} +\Pisymbol{knot4}{68} +\Pisymbol{knot4}{69} +\Pisymbol{knot4}{70} +\Pisymbol{knot4}{71} +\Pisymbol{knot4}{72} +\Pisymbol{knot4}{73} +\Pisymbol{knot4}{74} +\Pisymbol{knot4}{75} +\Pisymbol{knot4}{76} +\Pisymbol{knot4}{77} +\Pisymbol{knot4}{78} +\Pisymbol{knot4}{79} +\Pisymbol{knot4}{80} +\Pisymbol{knot4}{81} +\Pisymbol{knot4}{82} +\Pisymbol{knot4}{83} +\Pisymbol{knot4}{84} +\Pisymbol{knot4}{85} +\Pisymbol{knot4}{86} +\Pisymbol{knot4}{87} +\Pisymbol{knot4}{88} +\Pisymbol{knot4}{96} +\Pisymbol{knot4}{97} +\Pisymbol{knot4}{98} +\Pisymbol{knot4}{99} +\Pisymbol{knot5}{100} +\Pisymbol{knot5}{101} +\Pisymbol{knot5}{102} +\Pisymbol{knot5}{103} +\Pisymbol{knot5}{104} +\Pisymbol{knot5}{105} +\Pisymbol{knot5}{48} +\Pisymbol{knot5}{49} +\Pisymbol{knot5}{50} +\Pisymbol{knot5}{51} +\Pisymbol{knot5}{52} +\Pisymbol{knot5}{53} +\Pisymbol{knot5}{58} +\Pisymbol{knot5}{59} +\Pisymbol{knot5}{60} +\Pisymbol{knot5}{61} +\Pisymbol{knot5}{62} +\Pisymbol{knot5}{63} +\Pisymbol{knot5}{64} +\Pisymbol{knot5}{65} +\Pisymbol{knot5}{66} +\Pisymbol{knot5}{67} +\Pisymbol{knot5}{68} +\Pisymbol{knot5}{69} +\Pisymbol{knot5}{70} +\Pisymbol{knot5}{71} +\Pisymbol{knot5}{72} +\Pisymbol{knot5}{73} +\Pisymbol{knot5}{74} +\Pisymbol{knot5}{75} +\Pisymbol{knot5}{76} +\Pisymbol{knot5}{77} +\Pisymbol{knot5}{78} +\Pisymbol{knot5}{79} +\Pisymbol{knot5}{80} +\Pisymbol{knot5}{81} +\Pisymbol{knot5}{82} +\Pisymbol{knot5}{83} +\Pisymbol{knot5}{84} +\Pisymbol{knot5}{85} +\Pisymbol{knot5}{86} +\Pisymbol{knot5}{87} +\Pisymbol{knot5}{88} +\Pisymbol{knot5}{96} +\Pisymbol{knot5}{97} +\Pisymbol{knot5}{98} +\Pisymbol{knot5}{99} +\Pisymbol{knot6}{100} +\Pisymbol{knot6}{101} +\Pisymbol{knot6}{102} +\Pisymbol{knot6}{103} +\Pisymbol{knot6}{104} +\Pisymbol{knot6}{105} +\Pisymbol{knot6}{48} +\Pisymbol{knot6}{49} +\Pisymbol{knot6}{50} +\Pisymbol{knot6}{51} +\Pisymbol{knot6}{52} +\Pisymbol{knot6}{53} +\Pisymbol{knot6}{58} +\Pisymbol{knot6}{59} +\Pisymbol{knot6}{60} +\Pisymbol{knot6}{61} +\Pisymbol{knot6}{62} +\Pisymbol{knot6}{63} +\Pisymbol{knot6}{64} +\Pisymbol{knot6}{65} +\Pisymbol{knot6}{66} +\Pisymbol{knot6}{67} +\Pisymbol{knot6}{68} +\Pisymbol{knot6}{69} +\Pisymbol{knot6}{70} +\Pisymbol{knot6}{71} +\Pisymbol{knot6}{72} +\Pisymbol{knot6}{73} +\Pisymbol{knot6}{74} +\Pisymbol{knot6}{75} +\Pisymbol{knot6}{76} +\Pisymbol{knot6}{77} +\Pisymbol{knot6}{78} +\Pisymbol{knot6}{79} +\Pisymbol{knot6}{80} +\Pisymbol{knot6}{81} +\Pisymbol{knot6}{82} +\Pisymbol{knot6}{83} +\Pisymbol{knot6}{84} +\Pisymbol{knot6}{85} +\Pisymbol{knot6}{86} +\Pisymbol{knot6}{87} +\Pisymbol{knot6}{88} +\Pisymbol{knot6}{96} +\Pisymbol{knot6}{97} +\Pisymbol{knot6}{98} +\Pisymbol{knot6}{99} +\Pisymbol{knot7}{100} +\Pisymbol{knot7}{101} +\Pisymbol{knot7}{102} +\Pisymbol{knot7}{103} +\Pisymbol{knot7}{104} +\Pisymbol{knot7}{105} +\Pisymbol{knot7}{48} +\Pisymbol{knot7}{49} +\Pisymbol{knot7}{50} +\Pisymbol{knot7}{51} +\Pisymbol{knot7}{52} +\Pisymbol{knot7}{53} +\Pisymbol{knot7}{58} +\Pisymbol{knot7}{59} +\Pisymbol{knot7}{60} +\Pisymbol{knot7}{61} +\Pisymbol{knot7}{62} +\Pisymbol{knot7}{63} +\Pisymbol{knot7}{64} +\Pisymbol{knot7}{65} +\Pisymbol{knot7}{66} +\Pisymbol{knot7}{67} +\Pisymbol{knot7}{68} +\Pisymbol{knot7}{69} +\Pisymbol{knot7}{70} +\Pisymbol{knot7}{71} +\Pisymbol{knot7}{72} +\Pisymbol{knot7}{73} +\Pisymbol{knot7}{74} +\Pisymbol{knot7}{75} +\Pisymbol{knot7}{76} +\Pisymbol{knot7}{77} +\Pisymbol{knot7}{78} +\Pisymbol{knot7}{79} +\Pisymbol{knot7}{80} +\Pisymbol{knot7}{81} +\Pisymbol{knot7}{82} +\Pisymbol{knot7}{83} +\Pisymbol{knot7}{84} +\Pisymbol{knot7}{85} +\Pisymbol{knot7}{86} +\Pisymbol{knot7}{87} +\Pisymbol{knot7}{88} +\Pisymbol{knot7}{96} +\Pisymbol{knot7}{97} +\Pisymbol{knot7}{98} +\Pisymbol{knot7}{99} +\Pisymbol{magic}{48} +\Pisymbol{magic}{49} +\Pisymbol{magic}{50} +\Pisymbol{magic}{51} +\Pisymbol{magic}{52} +\Pisymbol{magic}{53} +\Pisymbol{magic}{54} +\Pisymbol{magic}{55} +\Pisymbol{magic}{56} +\Pisymbol{magic}{57} +\Pisymbol{magic}{66} +\Pisymbol{magic}{71} +\Pisymbol{magic}{82} +\Pisymbol{magic}{84} +\Pisymbol{magic}{85} +\Pisymbol{magic}{87} +\Pisymbol{magic}{88} +\Pisymbol{magic}{90} +\Pisymbol{moonphase}{0} +\Pisymbol{moonphase}{1} +\Pisymbol{moonphase}{2} +\Pisymbol{moonphase}{3} +\Pisymbol{nkarta}{100} +\Pisymbol{nkarta}{101} +\Pisymbol{nkarta}{102} +\Pisymbol{nkarta}{103} +\Pisymbol{nkarta}{104} +\Pisymbol{nkarta}{105} +\Pisymbol{nkarta}{106} +\Pisymbol{nkarta}{107} +\Pisymbol{nkarta}{108} +\Pisymbol{nkarta}{109} +\Pisymbol{nkarta}{110} +\Pisymbol{nkarta}{111} +\Pisymbol{nkarta}{112} +\Pisymbol{nkarta}{113} +\Pisymbol{nkarta}{114} +\Pisymbol{nkarta}{115} +\Pisymbol{nkarta}{116} +\Pisymbol{nkarta}{117} +\Pisymbol{nkarta}{118} +\Pisymbol{nkarta}{119} +\Pisymbol{nkarta}{120} +\Pisymbol{nkarta}{121} +\Pisymbol{nkarta}{122} +\Pisymbol{nkarta}{123} +\Pisymbol{nkarta}{124} +\Pisymbol{nkarta}{125} +\Pisymbol{nkarta}{126} +\Pisymbol{nkarta}{161} +\Pisymbol{nkarta}{162} +\Pisymbol{nkarta}{163} +\Pisymbol{nkarta}{164} +\Pisymbol{nkarta}{165} +\Pisymbol{nkarta}{166} +\Pisymbol{nkarta}{167} +\Pisymbol{nkarta}{168} +\Pisymbol{nkarta}{169} +\Pisymbol{nkarta}{170} +\Pisymbol{nkarta}{171} +\Pisymbol{nkarta}{172} +\Pisymbol{nkarta}{173} +\Pisymbol{nkarta}{174} +\Pisymbol{nkarta}{175} +\Pisymbol{nkarta}{176} +\Pisymbol{nkarta}{177} +\Pisymbol{nkarta}{178} +\Pisymbol{nkarta}{179} +\Pisymbol{nkarta}{180} +\Pisymbol{nkarta}{181} +\Pisymbol{nkarta}{182} +\Pisymbol{nkarta}{183} +\Pisymbol{nkarta}{184} +\Pisymbol{nkarta}{185} +\Pisymbol{nkarta}{186} +\Pisymbol{nkarta}{187} +\Pisymbol{nkarta}{188} +\Pisymbol{nkarta}{189} +\Pisymbol{nkarta}{190} +\Pisymbol{nkarta}{191} +\Pisymbol{nkarta}{192} +\Pisymbol{nkarta}{193} +\Pisymbol{nkarta}{194} +\Pisymbol{nkarta}{195} +\Pisymbol{nkarta}{196} +\Pisymbol{nkarta}{197} +\Pisymbol{nkarta}{198} +\Pisymbol{nkarta}{199} +\Pisymbol{nkarta}{200} +\Pisymbol{nkarta}{201} +\Pisymbol{nkarta}{202} +\Pisymbol{nkarta}{203} +\Pisymbol{nkarta}{204} +\Pisymbol{nkarta}{205} +\Pisymbol{nkarta}{206} +\Pisymbol{nkarta}{207} +\Pisymbol{nkarta}{208} +\Pisymbol{nkarta}{209} +\Pisymbol{nkarta}{210} +\Pisymbol{nkarta}{211} +\Pisymbol{nkarta}{212} +\Pisymbol{nkarta}{213} +\Pisymbol{nkarta}{214} +\Pisymbol{nkarta}{215} +\Pisymbol{nkarta}{216} +\Pisymbol{nkarta}{217} +\Pisymbol{nkarta}{218} +\Pisymbol{nkarta}{219} +\Pisymbol{nkarta}{220} +\Pisymbol{nkarta}{221} +\Pisymbol{nkarta}{222} +\Pisymbol{nkarta}{223} +\Pisymbol{nkarta}{224} +\Pisymbol{nkarta}{225} +\Pisymbol{nkarta}{226} +\Pisymbol{nkarta}{227} +\Pisymbol{nkarta}{228} +\Pisymbol{nkarta}{229} +\Pisymbol{nkarta}{230} +\Pisymbol{nkarta}{231} +\Pisymbol{nkarta}{232} +\Pisymbol{nkarta}{233} +\Pisymbol{nkarta}{234} +\Pisymbol{nkarta}{235} +\Pisymbol{nkarta}{236} +\Pisymbol{nkarta}{237} +\Pisymbol{nkarta}{238} +\Pisymbol{nkarta}{239} +\Pisymbol{nkarta}{240} +\Pisymbol{nkarta}{241} +\Pisymbol{nkarta}{242} +\Pisymbol{nkarta}{243} +\Pisymbol{nkarta}{244} +\Pisymbol{nkarta}{245} +\Pisymbol{nkarta}{246} +\Pisymbol{nkarta}{247} +\Pisymbol{nkarta}{248} +\Pisymbol{nkarta}{249} +\Pisymbol{nkarta}{250} +\Pisymbol{nkarta}{251} +\Pisymbol{nkarta}{252} +\Pisymbol{nkarta}{253} +\Pisymbol{nkarta}{254} +\Pisymbol{nkarta}{33} +\Pisymbol{nkarta}{34} +\Pisymbol{nkarta}{35} +\Pisymbol{nkarta}{36} +\Pisymbol{nkarta}{37} +\Pisymbol{nkarta}{38} +\Pisymbol{nkarta}{39} +\Pisymbol{nkarta}{40} +\Pisymbol{nkarta}{41} +\Pisymbol{nkarta}{42} +\Pisymbol{nkarta}{43} +\Pisymbol{nkarta}{44} +\Pisymbol{nkarta}{45} +\Pisymbol{nkarta}{46} +\Pisymbol{nkarta}{47} +\Pisymbol{nkarta}{48} +\Pisymbol{nkarta}{49} +\Pisymbol{nkarta}{50} +\Pisymbol{nkarta}{51} +\Pisymbol{nkarta}{52} +\Pisymbol{nkarta}{53} +\Pisymbol{nkarta}{54} +\Pisymbol{nkarta}{55} +\Pisymbol{nkarta}{56} +\Pisymbol{nkarta}{57} +\Pisymbol{nkarta}{58} +\Pisymbol{nkarta}{59} +\Pisymbol{nkarta}{60} +\Pisymbol{nkarta}{61} +\Pisymbol{nkarta}{62} +\Pisymbol{nkarta}{63} +\Pisymbol{nkarta}{64} +\Pisymbol{nkarta}{65} +\Pisymbol{nkarta}{66} +\Pisymbol{nkarta}{67} +\Pisymbol{nkarta}{68} +\Pisymbol{nkarta}{69} +\Pisymbol{nkarta}{70} +\Pisymbol{nkarta}{71} +\Pisymbol{nkarta}{72} +\Pisymbol{nkarta}{73} +\Pisymbol{nkarta}{74} +\Pisymbol{nkarta}{75} +\Pisymbol{nkarta}{76} +\Pisymbol{nkarta}{77} +\Pisymbol{nkarta}{78} +\Pisymbol{nkarta}{79} +\Pisymbol{nkarta}{80} +\Pisymbol{nkarta}{81} +\Pisymbol{nkarta}{82} +\Pisymbol{nkarta}{83} +\Pisymbol{nkarta}{84} +\Pisymbol{nkarta}{85} +\Pisymbol{nkarta}{86} +\Pisymbol{nkarta}{87} +\Pisymbol{nkarta}{88} +\Pisymbol{nkarta}{89} +\Pisymbol{nkarta}{90} +\Pisymbol{nkarta}{91} +\Pisymbol{nkarta}{92} +\Pisymbol{nkarta}{93} +\Pisymbol{nkarta}{94} +\Pisymbol{nkarta}{95} +\Pisymbol{nkarta}{96} +\Pisymbol{nkarta}{97} +\Pisymbol{nkarta}{98} +\Pisymbol{nkarta}{99} +\Pisymbol{smfpr10}{100} +\Pisymbol{smfpr10}{101} +\Pisymbol{smfpr10}{102} +\Pisymbol{smfpr10}{103} +\Pisymbol{smfpr10}{104} +\Pisymbol{smfpr10}{105} +\Pisymbol{smfpr10}{106} +\Pisymbol{smfpr10}{107} +\Pisymbol{smfpr10}{108} +\Pisymbol{smfpr10}{109} +\Pisymbol{smfpr10}{110} +\Pisymbol{smfpr10}{111} +\Pisymbol{smfpr10}{112} +\Pisymbol{smfpr10}{113} +\Pisymbol{smfpr10}{114} +\Pisymbol{smfpr10}{115} +\Pisymbol{smfpr10}{116} +\Pisymbol{smfpr10}{117} +\Pisymbol{smfpr10}{118} +\Pisymbol{smfpr10}{119} +\Pisymbol{smfpr10}{120} +\Pisymbol{smfpr10}{121} +\Pisymbol{smfpr10}{122} +\Pisymbol{smfpr10}{126} +\Pisymbol{smfpr10}{128} +\Pisymbol{smfpr10}{129} +\Pisymbol{smfpr10}{130} +\Pisymbol{smfpr10}{131} +\Pisymbol{smfpr10}{132} +\Pisymbol{smfpr10}{133} +\Pisymbol{smfpr10}{134} +\Pisymbol{smfpr10}{135} +\Pisymbol{smfpr10}{136} +\Pisymbol{smfpr10}{137} +\Pisymbol{smfpr10}{138} +\Pisymbol{smfpr10}{139} +\Pisymbol{smfpr10}{140} +\Pisymbol{smfpr10}{142} +\Pisymbol{smfpr10}{143} +\Pisymbol{smfpr10}{144} +\Pisymbol{smfpr10}{145} +\Pisymbol{smfpr10}{146} +\Pisymbol{smfpr10}{147} +\Pisymbol{smfpr10}{148} +\Pisymbol{smfpr10}{149} +\Pisymbol{smfpr10}{150} +\Pisymbol{smfpr10}{151} +\Pisymbol{smfpr10}{152} +\Pisymbol{smfpr10}{153} +\Pisymbol{smfpr10}{154} +\Pisymbol{smfpr10}{155} +\Pisymbol{smfpr10}{157} +\Pisymbol{smfpr10}{158} +\Pisymbol{smfpr10}{160} +\Pisymbol{smfpr10}{161} +\Pisymbol{smfpr10}{162} +\Pisymbol{smfpr10}{163} +\Pisymbol{smfpr10}{164} +\Pisymbol{smfpr10}{165} +\Pisymbol{smfpr10}{166} +\Pisymbol{smfpr10}{167} +\Pisymbol{smfpr10}{168} +\Pisymbol{smfpr10}{169} +\Pisymbol{smfpr10}{170} +\Pisymbol{smfpr10}{171} +\Pisymbol{smfpr10}{172} +\Pisymbol{smfpr10}{174} +\Pisymbol{smfpr10}{175} +\Pisymbol{smfpr10}{176} +\Pisymbol{smfpr10}{177} +\Pisymbol{smfpr10}{178} +\Pisymbol{smfpr10}{179} +\Pisymbol{smfpr10}{180} +\Pisymbol{smfpr10}{181} +\Pisymbol{smfpr10}{182} +\Pisymbol{smfpr10}{183} +\Pisymbol{smfpr10}{184} +\Pisymbol{smfpr10}{185} +\Pisymbol{smfpr10}{186} +\Pisymbol{smfpr10}{187} +\Pisymbol{smfpr10}{192} +\Pisymbol{smfpr10}{193} +\Pisymbol{smfpr10}{194} +\Pisymbol{smfpr10}{195} +\Pisymbol{smfpr10}{196} +\Pisymbol{smfpr10}{197} +\Pisymbol{smfpr10}{199} +\Pisymbol{smfpr10}{200} +\Pisymbol{smfpr10}{201} +\Pisymbol{smfpr10}{202} +\Pisymbol{smfpr10}{203} +\Pisymbol{smfpr10}{204} +\Pisymbol{smfpr10}{205} +\Pisymbol{smfpr10}{206} +\Pisymbol{smfpr10}{207} +\Pisymbol{smfpr10}{209} +\Pisymbol{smfpr10}{210} +\Pisymbol{smfpr10}{211} +\Pisymbol{smfpr10}{212} +\Pisymbol{smfpr10}{213} +\Pisymbol{smfpr10}{214} +\Pisymbol{smfpr10}{216} +\Pisymbol{smfpr10}{217} +\Pisymbol{smfpr10}{218} +\Pisymbol{smfpr10}{219} +\Pisymbol{smfpr10}{220} +\Pisymbol{smfpr10}{221} +\Pisymbol{smfpr10}{224} +\Pisymbol{smfpr10}{225} +\Pisymbol{smfpr10}{226} +\Pisymbol{smfpr10}{227} +\Pisymbol{smfpr10}{228} +\Pisymbol{smfpr10}{229} +\Pisymbol{smfpr10}{231} +\Pisymbol{smfpr10}{232} +\Pisymbol{smfpr10}{233} +\Pisymbol{smfpr10}{234} +\Pisymbol{smfpr10}{235} +\Pisymbol{smfpr10}{236} +\Pisymbol{smfpr10}{237} +\Pisymbol{smfpr10}{238} +\Pisymbol{smfpr10}{239} +\Pisymbol{smfpr10}{241} +\Pisymbol{smfpr10}{242} +\Pisymbol{smfpr10}{243} +\Pisymbol{smfpr10}{244} +\Pisymbol{smfpr10}{245} +\Pisymbol{smfpr10}{246} +\Pisymbol{smfpr10}{248} +\Pisymbol{smfpr10}{249} +\Pisymbol{smfpr10}{250} +\Pisymbol{smfpr10}{251} +\Pisymbol{smfpr10}{252} +\Pisymbol{smfpr10}{253} +\Pisymbol{smfpr10}{34} +\Pisymbol{smfpr10}{35} +\Pisymbol{smfpr10}{36} +\Pisymbol{smfpr10}{42} +\Pisymbol{smfpr10}{46} +\Pisymbol{smfpr10}{48} +\Pisymbol{smfpr10}{49} +\Pisymbol{smfpr10}{50} +\Pisymbol{smfpr10}{51} +\Pisymbol{smfpr10}{52} +\Pisymbol{smfpr10}{53} +\Pisymbol{smfpr10}{54} +\Pisymbol{smfpr10}{55} +\Pisymbol{smfpr10}{56} +\Pisymbol{smfpr10}{57} +\Pisymbol{smfpr10}{65} +\Pisymbol{smfpr10}{66} +\Pisymbol{smfpr10}{67} +\Pisymbol{smfpr10}{68} +\Pisymbol{smfpr10}{69} +\Pisymbol{smfpr10}{70} +\Pisymbol{smfpr10}{71} +\Pisymbol{smfpr10}{72} +\Pisymbol{smfpr10}{73} +\Pisymbol{smfpr10}{74} +\Pisymbol{smfpr10}{75} +\Pisymbol{smfpr10}{76} +\Pisymbol{smfpr10}{77} +\Pisymbol{smfpr10}{78} +\Pisymbol{smfpr10}{79} +\Pisymbol{smfpr10}{80} +\Pisymbol{smfpr10}{81} +\Pisymbol{smfpr10}{82} +\Pisymbol{smfpr10}{83} +\Pisymbol{smfpr10}{84} +\Pisymbol{smfpr10}{85} +\Pisymbol{smfpr10}{86} +\Pisymbol{smfpr10}{87} +\Pisymbol{smfpr10}{88} +\Pisymbol{smfpr10}{89} +\Pisymbol{smfpr10}{90} +\Pisymbol{smfpr10}{97} +\Pisymbol{smfpr10}{98} +\Pisymbol{smfpr10}{99} +\Pisymbol{umranda}{0} +\Pisymbol{umranda}{1} +\Pisymbol{umranda}{10} +\Pisymbol{umranda}{100} +\Pisymbol{umranda}{101} +\Pisymbol{umranda}{11} +\Pisymbol{umranda}{12} +\Pisymbol{umranda}{13} +\Pisymbol{umranda}{14} +\Pisymbol{umranda}{15} +\Pisymbol{umranda}{16} +\Pisymbol{umranda}{17} +\Pisymbol{umranda}{18} +\Pisymbol{umranda}{19} +\Pisymbol{umranda}{2} +\Pisymbol{umranda}{20} +\Pisymbol{umranda}{21} +\Pisymbol{umranda}{22} +\Pisymbol{umranda}{23} +\Pisymbol{umranda}{24} +\Pisymbol{umranda}{25} +\Pisymbol{umranda}{26} +\Pisymbol{umranda}{27} +\Pisymbol{umranda}{28} +\Pisymbol{umranda}{29} +\Pisymbol{umranda}{3} +\Pisymbol{umranda}{30} +\Pisymbol{umranda}{31} +\Pisymbol{umranda}{32} +\Pisymbol{umranda}{33} +\Pisymbol{umranda}{34} +\Pisymbol{umranda}{35} +\Pisymbol{umranda}{36} +\Pisymbol{umranda}{37} +\Pisymbol{umranda}{38} +\Pisymbol{umranda}{39} +\Pisymbol{umranda}{4} +\Pisymbol{umranda}{40} +\Pisymbol{umranda}{41} +\Pisymbol{umranda}{42} +\Pisymbol{umranda}{43} +\Pisymbol{umranda}{44} +\Pisymbol{umranda}{45} +\Pisymbol{umranda}{46} +\Pisymbol{umranda}{47} +\Pisymbol{umranda}{48} +\Pisymbol{umranda}{49} +\Pisymbol{umranda}{5} +\Pisymbol{umranda}{50} +\Pisymbol{umranda}{51} +\Pisymbol{umranda}{52} +\Pisymbol{umranda}{53} +\Pisymbol{umranda}{54} +\Pisymbol{umranda}{55} +\Pisymbol{umranda}{56} +\Pisymbol{umranda}{57} +\Pisymbol{umranda}{58} +\Pisymbol{umranda}{59} +\Pisymbol{umranda}{6} +\Pisymbol{umranda}{60} +\Pisymbol{umranda}{61} +\Pisymbol{umranda}{62} +\Pisymbol{umranda}{63} +\Pisymbol{umranda}{64} +\Pisymbol{umranda}{65} +\Pisymbol{umranda}{66} +\Pisymbol{umranda}{67} +\Pisymbol{umranda}{68} +\Pisymbol{umranda}{69} +\Pisymbol{umranda}{7} +\Pisymbol{umranda}{70} +\Pisymbol{umranda}{71} +\Pisymbol{umranda}{72} +\Pisymbol{umranda}{73} +\Pisymbol{umranda}{74} +\Pisymbol{umranda}{75} +\Pisymbol{umranda}{76} +\Pisymbol{umranda}{77} +\Pisymbol{umranda}{78} +\Pisymbol{umranda}{79} +\Pisymbol{umranda}{8} +\Pisymbol{umranda}{80} +\Pisymbol{umranda}{81} +\Pisymbol{umranda}{82} +\Pisymbol{umranda}{83} +\Pisymbol{umranda}{84} +\Pisymbol{umranda}{85} +\Pisymbol{umranda}{86} +\Pisymbol{umranda}{87} +\Pisymbol{umranda}{88} +\Pisymbol{umranda}{89} +\Pisymbol{umranda}{9} +\Pisymbol{umranda}{90} +\Pisymbol{umranda}{91} +\Pisymbol{umranda}{92} +\Pisymbol{umranda}{93} +\Pisymbol{umranda}{94} +\Pisymbol{umranda}{95} +\Pisymbol{umranda}{96} +\Pisymbol{umranda}{97} +\Pisymbol{umranda}{98} +\Pisymbol{umranda}{99} +\Pisymbol{umrandb}{0} +\Pisymbol{umrandb}{1} +\Pisymbol{umrandb}{10} +\Pisymbol{umrandb}{100} +\Pisymbol{umrandb}{101} +\Pisymbol{umrandb}{102} +\Pisymbol{umrandb}{103} +\Pisymbol{umrandb}{104} +\Pisymbol{umrandb}{105} +\Pisymbol{umrandb}{106} +\Pisymbol{umrandb}{107} +\Pisymbol{umrandb}{108} +\Pisymbol{umrandb}{109} +\Pisymbol{umrandb}{11} +\Pisymbol{umrandb}{110} +\Pisymbol{umrandb}{111} +\Pisymbol{umrandb}{112} +\Pisymbol{umrandb}{113} +\Pisymbol{umrandb}{114} +\Pisymbol{umrandb}{115} +\Pisymbol{umrandb}{116} +\Pisymbol{umrandb}{117} +\Pisymbol{umrandb}{118} +\Pisymbol{umrandb}{119} +\Pisymbol{umrandb}{12} +\Pisymbol{umrandb}{120} +\Pisymbol{umrandb}{121} +\Pisymbol{umrandb}{122} +\Pisymbol{umrandb}{123} +\Pisymbol{umrandb}{13} +\Pisymbol{umrandb}{14} +\Pisymbol{umrandb}{15} +\Pisymbol{umrandb}{16} +\Pisymbol{umrandb}{17} +\Pisymbol{umrandb}{18} +\Pisymbol{umrandb}{19} +\Pisymbol{umrandb}{2} +\Pisymbol{umrandb}{20} +\Pisymbol{umrandb}{21} +\Pisymbol{umrandb}{22} +\Pisymbol{umrandb}{23} +\Pisymbol{umrandb}{24} +\Pisymbol{umrandb}{25} +\Pisymbol{umrandb}{26} +\Pisymbol{umrandb}{27} +\Pisymbol{umrandb}{28} +\Pisymbol{umrandb}{29} +\Pisymbol{umrandb}{3} +\Pisymbol{umrandb}{30} +\Pisymbol{umrandb}{31} +\Pisymbol{umrandb}{32} +\Pisymbol{umrandb}{33} +\Pisymbol{umrandb}{34} +\Pisymbol{umrandb}{35} +\Pisymbol{umrandb}{36} +\Pisymbol{umrandb}{37} +\Pisymbol{umrandb}{38} +\Pisymbol{umrandb}{39} +\Pisymbol{umrandb}{4} +\Pisymbol{umrandb}{40} +\Pisymbol{umrandb}{41} +\Pisymbol{umrandb}{42} +\Pisymbol{umrandb}{43} +\Pisymbol{umrandb}{44} +\Pisymbol{umrandb}{45} +\Pisymbol{umrandb}{46} +\Pisymbol{umrandb}{47} +\Pisymbol{umrandb}{48} +\Pisymbol{umrandb}{49} +\Pisymbol{umrandb}{5} +\Pisymbol{umrandb}{50} +\Pisymbol{umrandb}{51} +\Pisymbol{umrandb}{52} +\Pisymbol{umrandb}{53} +\Pisymbol{umrandb}{54} +\Pisymbol{umrandb}{55} +\Pisymbol{umrandb}{56} +\Pisymbol{umrandb}{57} +\Pisymbol{umrandb}{58} +\Pisymbol{umrandb}{59} +\Pisymbol{umrandb}{6} +\Pisymbol{umrandb}{60} +\Pisymbol{umrandb}{61} +\Pisymbol{umrandb}{62} +\Pisymbol{umrandb}{63} +\Pisymbol{umrandb}{64} +\Pisymbol{umrandb}{65} +\Pisymbol{umrandb}{66} +\Pisymbol{umrandb}{67} +\Pisymbol{umrandb}{68} +\Pisymbol{umrandb}{69} +\Pisymbol{umrandb}{7} +\Pisymbol{umrandb}{70} +\Pisymbol{umrandb}{71} +\Pisymbol{umrandb}{72} +\Pisymbol{umrandb}{73} +\Pisymbol{umrandb}{74} +\Pisymbol{umrandb}{75} +\Pisymbol{umrandb}{76} +\Pisymbol{umrandb}{77} +\Pisymbol{umrandb}{78} +\Pisymbol{umrandb}{79} +\Pisymbol{umrandb}{8} +\Pisymbol{umrandb}{80} +\Pisymbol{umrandb}{81} +\Pisymbol{umrandb}{82} +\Pisymbol{umrandb}{83} +\Pisymbol{umrandb}{84} +\Pisymbol{umrandb}{85} +\Pisymbol{umrandb}{86} +\Pisymbol{umrandb}{87} +\Pisymbol{umrandb}{88} +\Pisymbol{umrandb}{89} +\Pisymbol{umrandb}{9} +\Pisymbol{umrandb}{90} +\Pisymbol{umrandb}{91} +\Pisymbol{umrandb}{92} +\Pisymbol{umrandb}{93} +\Pisymbol{umrandb}{94} +\Pisymbol{umrandb}{95} +\Pisymbol{umrandb}{96} +\Pisymbol{umrandb}{97} +\Pisymbol{umrandb}{98} +\Pisymbol{umrandb}{99} +\Pisymbol{WebOMintsGD}{100} +\Pisymbol{WebOMintsGD}{101} +\Pisymbol{WebOMintsGD}{102} +\Pisymbol{WebOMintsGD}{103} +\Pisymbol{WebOMintsGD}{104} +\Pisymbol{WebOMintsGD}{105} +\Pisymbol{WebOMintsGD}{106} +\Pisymbol{WebOMintsGD}{107} +\Pisymbol{WebOMintsGD}{108} +\Pisymbol{WebOMintsGD}{109} +\Pisymbol{WebOMintsGD}{110} +\Pisymbol{WebOMintsGD}{111} +\Pisymbol{WebOMintsGD}{112} +\Pisymbol{WebOMintsGD}{113} +\Pisymbol{WebOMintsGD}{114} +\Pisymbol{WebOMintsGD}{115} +\Pisymbol{WebOMintsGD}{116} +\Pisymbol{WebOMintsGD}{117} +\Pisymbol{WebOMintsGD}{118} +\Pisymbol{WebOMintsGD}{119} +\Pisymbol{WebOMintsGD}{120} +\Pisymbol{WebOMintsGD}{121} +\Pisymbol{WebOMintsGD}{122} +\Pisymbol{WebOMintsGD}{47} +\Pisymbol{WebOMintsGD}{48} +\Pisymbol{WebOMintsGD}{49} +\Pisymbol{WebOMintsGD}{50} +\Pisymbol{WebOMintsGD}{51} +\Pisymbol{WebOMintsGD}{52} +\Pisymbol{WebOMintsGD}{53} +\Pisymbol{WebOMintsGD}{54} +\Pisymbol{WebOMintsGD}{55} +\Pisymbol{WebOMintsGD}{56} +\Pisymbol{WebOMintsGD}{57} +\Pisymbol{WebOMintsGD}{65} +\Pisymbol{WebOMintsGD}{66} +\Pisymbol{WebOMintsGD}{67} +\Pisymbol{WebOMintsGD}{68} +\Pisymbol{WebOMintsGD}{69} +\Pisymbol{WebOMintsGD}{70} +\Pisymbol{WebOMintsGD}{71} +\Pisymbol{WebOMintsGD}{72} +\Pisymbol{WebOMintsGD}{73} +\Pisymbol{WebOMintsGD}{74} +\Pisymbol{WebOMintsGD}{75} +\Pisymbol{WebOMintsGD}{76} +\Pisymbol{WebOMintsGD}{77} +\Pisymbol{WebOMintsGD}{78} +\Pisymbol{WebOMintsGD}{79} +\Pisymbol{WebOMintsGD}{80} +\Pisymbol{WebOMintsGD}{81} +\Pisymbol{WebOMintsGD}{82} +\Pisymbol{WebOMintsGD}{83} +\Pisymbol{WebOMintsGD}{84} +\Pisymbol{WebOMintsGD}{85} +\Pisymbol{WebOMintsGD}{86} +\Pisymbol{WebOMintsGD}{87} +\Pisymbol{WebOMintsGD}{88} +\Pisymbol{WebOMintsGD}{89} +\Pisymbol{WebOMintsGD}{90} +\Pisymbol{WebOMintsGD}{91} +\Pisymbol{WebOMintsGD}{93} +\Pisymbol{WebOMintsGD}{97} +\Pisymbol{WebOMintsGD}{98} +\Pisymbol{WebOMintsGD}{99} +\pitchfork +\piup +\planck +\Plane +\plasmon +\plus +\Plus +\PlusCenterOpen +\pluscirc +\plusdot +\pluseqq +\plushat +\PlusOutline +\plussim +\plussubtwo +\PlusThinCenterOpen +\plustrif +\pluto +\Pluto +\pm +\pmb +\pmod +\pod +\pointer +\PointingHand +\pointint +\pointintsl +\pointintup +\pointright +\Poland +\polariton +\polaron +\polishhook +\polter +\portato +\portatoDown +\Portugal +\Poseidon +\positron +\postalmark +\Postbox +\pot +\Pound +\pounds +\powerset +\pp +\Pp +\ppm +\ppp +\Ppp +\pppp +\Pppp +\ppppp +\Ppppp +\Pr +\prec +\Prec +\precapprox +\preccurlyeq +\precdot +\preceq +\preceqq +\precnapprox +\precneq +\precneqq +\precnsim +\precsim +\prime +\Printer +\prod +\prodi +\Prodi +\PRODI +\profline +\profsurf +\projlim +\PropertyLine +\propfrom +\propto +\protein +\proton +\ProvidesPackage +\PrtSc +\prurel +\ps +\psi +\Psi +\psiup +\Psyche +\Pu +\pullback +\PulseHigh +\PulseLow +\pumpkin +\Purierstab +\pushout +\pwedge +\pxp +\Pxp +\QED +\qoppa +\Qoppa +\qp +\qprime +\QQ +\qqs +\qs +\qside +\quaddot +\quadeye +\quadrad +\Quadrad +\quadras +\Quadras +\quadrupole +\quark +\quarkb +\quarkc +\quarkd +\quarks +\quarkt +\quarku +\quarternote +\quarterNote +\quarterNoteDotted +\quarterNoteDottedDouble +\quarterNoteDottedDoubleDown +\quarterNoteDottedDown +\quarterNoteDown +\quaver +\quaverDotted +\quaverDottedDouble +\quaverDottedDoubleDown +\quaverDottedDown +\quaverDown +\quaverRest +\quaverRestDotted +\questeq +\Question +\Quincunx +\quotedblbase +\quotesinglbase +r +\r +R +\R +\radiation +\Radiation +\Radioactivity +\Radix +\Rain +\RainCloud +\RaisingEdge +\rangle +\rAngle +\Rangle +\ranglebar +\rangledot +\rangledownzigzagarrow +\RArrow +\rarrowfill +\ratio +\Rational +\RATIONAL +\RB +\rbag +\Rbag +\rblackbowtie +\rblkbrbrak +\rbrace +\rBrace +\rbrack +\rBrack +\Rbrack +\rbracklrtick +\rbrackubar +\rbrackurtick +\rbrbrak +\Rbrbrak +\rc +\rceil +\rCeil +\rcirclearrowdown +\rcirclearrowleft +\rcirclearrowright +\rcirclearrowup +\rcircleleftint +\rcirclerightint +\rcorners +\rcurvearrowdown +\rcurvearrowleft +\rcurvearrowne +\rcurvearrownw +\rcurvearrowright +\rcurvearrowse +\rcurvearrowsw +\rcurvearrowup +\rcurvyangle +\rdbrack +\rdiagovfdiag +\rdiagovsearrow +\Rdsh +\Re +\Real +\REAL +\recorder +\Rectangle +\RectangleBold +\RectangleThin +\Rectpipe +\Rectsteel +\recycle +\Recycling +\reference +\reflectbox +\Reibe +\relationleftproject +\relationlifting +\relationrightproject +\relbar +\Relbar +\Request +\resistivity +\resizebox +\respondens +\Respondens +\restoresymbol +\restrictbarb +\restrictbarbup +\restriction +\restrictmallet +\restrictmalletup +\restrictwand +\restrictwandup +\Retrograde +\Return +\revangle +\revangleubar +\revaw +\revD +\revddots +\reve +\reveject +\revemptyset +\revepsilon +\reverseallabreve +\reverseC +\reversedvideodbend +\reversemathcloud +\reversemathwitch +\reversemathwitch* +\revglotstop +\revmeasuredangle +\revnmid +\revsphericalangle +\Rewind +\RewindToIndex +\RewindToStart +\rfbowtie +\rfilet +\rfloor +\rFloor +\rftimes +\rgroup +\rhd +\RHD +\rho +\Rho +\rhomesonminus +\rhomesonnull +\rhomesonplus +\rhook +\rhookdownarrow +\rhookleftarrow +\rhooknearrow +\rhooknwarrow +\rhookrightarrow +\rhooksearrow +\rhookswarrow +\rhookuparrow +\rhoup +\right +\rightangle +\rightanglemdot +\rightanglesqr +\rightanglesquare +\rightarrow +\Rightarrow +\RIGHTarrow +\rightarrowapprox +\rightarrowbackapprox +\rightarrowbar +\rightarrowbsimilar +\rightarrowcircle +\rightarrowdiamond +\rightarrowgtr +\rightarrowonoplus +\rightarrowplus +\rightarrowshortleftarrow +\rightarrowsimilar +\rightarrowsupset +\rightarrowtail +\rightarrowtriangle +\rightarrowTriangle +\rightarrowx +\rightassert +\rightAssert +\rightbarharpoon +\rightbkarrow +\rightblackarrow +\rightblackspoon +\Rightcircle +\RIGHTcircle +\RIGHTCIRCLE +\rightcurvedarrow +\rightdasharrow +\rightdbltail +\RightDiamond +\rightdotarrow +\rightdowncurvedarrow +\rightevaw +\rightfilledspoon +\rightfishtail +\rightfootline +\rightfree +\righthalfcap +\righthalfcup +\righthand +\rightharpoonaccent +\rightharpoonccw +\rightharpooncw +\rightharpoondown +\rightharpoondownbar +\rightharpoonsupdown +\rightharpoonup +\rightharpoonupbar +\rightharpoonupdash +\rightimply +\rightlcurvearrow +\rightleftarrows +\rightleftcurvearrow +\rightleftharpoon +\rightleftharpoons +\rightleftharpoonsdown +\rightleftharpoonsfill +\rightleftharpoonsup +\rightleftsquigarrow +\rightlsquigarrow +\rightmapsto +\Rightmapsto +\rightmodels +\rightModels +\rightmoon +\rightouterjoin +\rightp +\rightpentagon +\rightpentagonblack +\rightpitchfork +\rightpointleft +\rightpointright +\rightpropto +\rightrcurvearrow +\rightrightarrows +\rightrightharpoons +\rightrsquigarrow +\RightScissors +\rightslice +\rightspoon +\rightsquigarrow +\rightt +\righttail +\righttherefore +\rightthreearrows +\rightthreetimes +\rightthumbsdown +\rightthumbsup +\righttoleftarrow +\Righttorque +\rightturn +\rightupcurvedarrow +\rightvdash +\rightvDash +\rightVdash +\rightVDash +\rightwave +\rightwavearrow +\rightwhitearrow +\rightwhiteroundarrow +\rightY +\ring +\ringplus +\riota +\rip +\risingdotseq +\rJoin +\RK +\rlap +\rmoustache +\RO +\rollingpin +\Romania +\rotatebox +\rotm +\rotOmega +\rotr +\rotvara +\rotw +\roty +\RoundedLsteel +\RoundedTsteel +\RoundedTTsteel +\rparen +\rParen +\Rparen +\rparengtr +\Rparenless +\rppolint +\rppolintsl +\rppolintup +\rqm +\RR +\rrangle +\rrbracket +\rrceil +\Rrelbar +\RRelbar +\rrfloor +\rrhD +\rrhDa +\rrhDap +\rrhDp +\rrhDs +\rrhDsp +\rrhDw +\rrhDwp +\rrhE +\rrhEp +\rrhF +\rrhFp +\rrhFw +\rrhFwp +\rrhL +\rrhLa +\rrhLap +\rrhLp +\rrhLs +\rrhLsp +\rrhLw +\rrhLwp +\rrhM +\rrhMp +\rrhR +\rrhRa +\rrhRap +\rrhRp +\rrhRs +\rrhRsp +\rrhRw +\rrhRwp +\rrhSd +\rrhSdp +\rrhSl +\rrhSlp +\rrhSr +\rrhSrp +\rrhSu +\rrhSup +\rrhU +\rrhUa +\rrhUap +\rrhUp +\rrhUs +\rrhUsp +\rrhUw +\rrhUwp +\Rrightarrow +\RRightarrow +\rrparenthesis +\RS +\rsem +\Rsh +\rsolbar +\rsqhook +\rsub +\rtborder +\rtbotcorner +\rtimes +\rtimesblack +\rtriltri +\rtriple +\rttopcorner +\RU +\ruledelayed +\rupee +\RV +\rvert +\rVert +\rVvert +\rvzigzag +\Rvzigzag +\rWalley +\rwave +\rwavy +\rWavy +s +\s +S +\S +\sA +\SAa +\SAb +\SAd +\SAdb +\SAdd +\Sadey +\sadface +\SAf +\Saftpresse +\SAg +\SAga +\sagittarius +\Sagittarius +\SAh +\SAhd +\SAhu +\SAk +\SAl +\SAlq +\SAm +\samebishops +\sampi +\Sampi +\SAn +\sansLmirrored +\sansLturned +\SAo +\Sappho +\SAq +\SAr +\sarabfamily +\SAs +\SAsa +\SAsd +\SAsv +\SAt +\SAtb +\SAtd +\satellitedish +\saturn +\Saturn +\savesymbol +\SAw +\SAy +\SAz +\SAzd +\Sborder +\scalebox +\scd +\scg +\Schaler +\Schneebesen +\Schussel +\schwa +\sci +\ScissorHollowLeft +\ScissorHollowRight +\ScissorLeft +\ScissorLeftBrokenBottom +\ScissorLeftBrokenTop +\ScissorRight +\ScissorRightBrokenBottom +\ScissorRightBrokenTop +\scn +\scoh +\scorpio +\Scorpio +\scpolint +\scpolintsl +\scpolintup +\scr +\scripta +\scriptg +\scriptscriptstyle +\scriptstyle +\scriptv +\Scroll +\scu +\scurel +\scy +\sddtstile +\sDep +\sdststile +\sdtstile +\sdttstile +\searrow +\Searrow +\searrowtail +\sebkarrow +\sec +\Sech +\SechBl +\SechBL +\SechBr +\SechBR +\second +\secstress +\SectioningDiamond +\sector +\sefilledspoon +\sefootline +\sefree +\segno +\Segno +\seharpoonccw +\seharpooncw +\seharpoonne +\seharpoonsw +\seight +\selcurvearrow +\selectfont +\selsquigarrow +\semapsto +\semibreve +\semibreveDotted +\semiquaver +\semiquaverDotted +\semiquaverDottedDouble +\semiquaverDottedDoubleDown +\semiquaverDottedDown +\semiquaverDown +\semiquaverRest +\semiquaverRestDotted +\Semisextile +\Semisquare +\semodels +\seModels +\senwarrows +\senwcurvearrow +\senwharpoons +\seovnearrow +\SePa +\separated +\sepitchfork +\seppawns +\Serbia +\sercurvearrow +\SerialInterface +\SerialPort +\sersquigarrow +\sesearrows +\sespoon +\Sesquiquadrate +\setminus +\sevdash +\seVdash +\Sextile +\Sey +\sfive +\sfour +\shake +\Shake +\Shakel +\Shakene +\Shakenw +\Shakesw +\sharp +\sharpArrowboth +\sharpArrowdown +\sharpArrowup +\sharpSlashslashslashStem +\sharpSlashslashslashStemstem +\sharpSlashslashStem +\sharpSlashslashStemstemstem +\shfermion +\shift +\Shift +\Shilling +\shneg +\shortcastling +\shortdownarrow +\shortdowntack +\ShortFifty +\ShortForty +\shortleftarrow +\shortlefttack +\shortmid +\ShortNinetyFive +\shortparallel +\ShortPulseHigh +\ShortPulseLow +\shortrightarrow +\shortrightarrowleftarrow +\shortrighttack +\ShortSixty +\ShortThirty +\shortuparrow +\shortuptack +\showclock +\shpos +\shuffle +\SI +\Sieb +\sieve +\sigma +\Sigma +\sigmaup +\sim +\simbot +\simcolon +\simcoloncolon +\simeq +\simgE +\simgtr +\similarleftarrow +\similarrightarrow +\simlE +\simless +\simminussim +\simneqq +\simperp +\simplus +\simrdots +\sin +\sincoh +\sinewave +\sinh +\SixFlowerAlternate +\SixFlowerAltPetal +\SixFlowerOpenCenter +\SixFlowerPetalDotted +\SixFlowerPetalRemoved +\SixFlowerRemovedOpenPetal +\SixStar +\SixteenStarLight +\sixteenthnote +\sixteenthNote +\sixteenthNoteDotted +\sixteenthNoteDottedDouble +\sixteenthNoteDottedDoubleDown +\sixteenthNoteDottedDown +\sixteenthNoteDown +\skull +\slash +\slashb +\slashc +\slashd +\slashdiv +\slashed +\slashu +\Sleet +\sliding +\Slovakia +\Slovenia +\smallaltoclef +\smallawint +\smallawintsl +\smallawintup +\smallbassclef +\smallblackcircle +\smallblackdiamond +\smallblacklozenge +\smallblacksquare +\smallblackstar +\smallblacktriangledown +\smallblacktriangleleft +\smallblacktriangleright +\smallblacktriangleup +\smallbosonloop +\smallbosonloopA +\smallbosonloopV +\smallcircle +\SmallCircle +\smallcirfnint +\smallcirfnintsl +\smallcirfnintup +\SmallCross +\smallctrbull +\smalldiamond +\SmallDiamondshape +\smalldivslash +\smallfint +\smallfintsl +\smallfintup +\smallfrown +\SmallHBar +\smalliiiint +\smalliiiintsl +\smalliiiintup +\smalliiint +\smalliiintsl +\smalliiintup +\smalliint +\smalliintsl +\smalliintup +\smallin +\smallint +\smallintbar +\smallintBar +\smallintbarsl +\smallintBarsl +\smallintbarup +\smallintBarup +\smallintcap +\smallintcapsl +\smallintcapup +\smallintclockwise +\smallintclockwisesl +\smallintclockwiseup +\smallintcup +\smallintcupsl +\smallintcupup +\smallintlarhk +\smallintlarhksl +\smallintlarhkup +\smallintsl +\smallintup +\smallintx +\smallintxsl +\smallintxup +\SmallLowerDiamond +\smalllowint +\smalllowintsl +\smalllowintup +\smalllozenge +\smallni +\smallnpolint +\smallnpolintsl +\smallnpolintup +\smalloiiint +\smalloiiintsl +\smalloiiintup +\smalloiint +\smalloiintsl +\smalloiintup +\smalloint +\smallointctrclockwise +\smallointctrclockwisesl +\smallointctrclockwiseup +\smallointsl +\smallointup +\smallowns +\smallpencil +\smallpointint +\smallpointintsl +\smallpointintup +\smallprod +\SmallRightDiamond +\smallrppolint +\smallrppolintsl +\smallrppolintup +\smallscpolint +\smallscpolintsl +\smallscpolintup +\smallsetminus +\smallsmile +\smallsqint +\smallsqintsl +\smallsqintup +\smallsquare +\SmallSquare +\smallstar +\smallsumint +\smallsumintsl +\smallsumintup +\smalltrebleclef +\smalltriangledown +\SmallTriangleDown +\smalltriangleleft +\SmallTriangleLeft +\smalltriangleright +\SmallTriangleRight +\smalltriangleup +\SmallTriangleUp +\smallupint +\smallupintsl +\smallupintup +\smallvarointclockwise +\smallvarointclockwisesl +\smallvarointclockwiseup +\SmallVBar +\smallwhitestar +\smartctrbull +\smashtimes +\smblkcircle +\smblkdiamond +\smblklozenge +\smblksquare +\smeparsl +\smile +\smileeq +\smileeqfrown +\smileface +\smilefrown +\smilefrowneq +\smiley +\Smiley +\smt +\smte +\smwhitestar +\smwhtcircle +\smwhtdiamond +\smwhtlozenge +\smwhtsquare +\sndtstile +\Snow +\SnowCloud +\Snowflake +\SnowflakeChevron +\SnowflakeChevronBold +\Snowman +\SNPP +\snststile +\sntstile +\snttstile +\sO +\SO +\SOH +\solid +\SouthNode +\Soyombo +\Spacebar +\spadesuit +\Spain +\Sparkle +\SparkleBold +\SpecialForty +\sPed +\sphericalangle +\sphericalangledown +\sphericalangleleft +\sphericalangleup +\spin +\spindown +\SpinDown +\spinup +\SpinUp +\spirituslenis +\splitvert +\Spoon +\spreadlips +\Springtree +\sqbullet +\sqcap +\Sqcap +\sqcapdot +\sqcapplus +\sqcup +\Sqcup +\sqcupdot +\sqcupplus +\sqdoublecap +\sqdoublecup +\sqdoublefrown +\sqdoublefrowneq +\sqdoublesmile +\sqdoublesmileeq +\sqeqfrown +\sqeqsmile +\sqfrown +\sqfrowneq +\sqfrowneqsmile +\sqfrownsmile +\sqiiint +\sqiint +\sqint +\sqintsl +\sqintup +\sqlozenge +\sqrt +\sqrt* +\sqsmile +\sqsmileeq +\sqsmileeqfrown +\sqsmilefrown +\sqsubset +\sqSubset +\Sqsubset +\sqsubseteq +\sqsubseteqq +\sqsubsetneq +\sqsubsetneqq +\sqsupset +\sqSupset +\Sqsupset +\sqsupseteq +\sqsupseteqq +\sqsupsetneq +\sqsupsetneqq +\sqtriplefrown +\sqtriplesmile +\square +\Square +\squarebotblack +\SquareCastShadowBottomRight +\SquareCastShadowTopLeft +\SquareCastShadowTopRight +\squarecrossfill +\squaredots +\squarehfill +\squarehvfill +\squareleftblack +\squarellblack +\squarellquad +\squarelrblack +\squarelrquad +\squareneswfill +\squarenwsefill +\Squarepipe +\squarerightblack +\SquareShadowA +\SquareShadowB +\SquareShadowBottomRight +\SquareShadowC +\SquareShadowTopLeft +\SquareShadowTopRight +\SquareSolid +\Squaresteel +\squaretopblack +\squareulblack +\squareulquad +\squareurblack +\squareurquad +\squarevfill +\squarewithdots +\squeezer +\squigarrowdownup +\squigarrowleftright +\squigarrownesw +\squigarrownwse +\squigarrowrightleft +\squigarrowsenw +\squigarrowswne +\squigarrowupdown +\squoval +\squplus +\ss +\SS +\ssdtstile +\ssearrow +\sseven +\ssix +\sslash +\ssststile +\sststile +\ssttstile +\sswarrow +\staccatissimo +\stackrel +\star +\stareq +\starofdavid +\starredbullet +\stater +\Station +\staveI +\staveII +\staveIII +\staveIV +\staveIX +\staveL +\staveLI +\staveLII +\staveLIII +\staveLIV +\staveLIX +\staveLV +\staveLVI +\staveLVII +\staveLVIII +\staveLX +\staveLXI +\staveLXII +\staveLXIII +\staveLXIV +\staveLXV +\staveLXVI +\staveLXVII +\staveLXVIII +\staveV +\staveVI +\staveVII +\staveVIII +\staveX +\staveXI +\staveXII +\staveXIII +\staveXIV +\staveXIX +\staveXL +\staveXLI +\staveXLII +\staveXLIII +\staveXLIV +\staveXLIX +\staveXLV +\staveXLVI +\staveXLVII +\staveXLVIII +\staveXV +\staveXVI +\staveXVII +\staveXVIII +\staveXX +\staveXXI +\staveXXII +\staveXXIII +\staveXXIV +\staveXXIX +\staveXXV +\staveXXVI +\staveXXVII +\staveXXVIII +\staveXXX +\staveXXXI +\staveXXXII +\staveXXXIII +\staveXXXIV +\staveXXXIX +\staveXXXV +\staveXXXVI +\staveXXXVII +\staveXXXVIII +\stdtstile +\steaming +\sthree +\stigma +\Stigma +\StoneMan +\Stopsign +\StopWatchEnd +\StopWatchStart +\stress +\Strichmaxerl +\strictfi +\strictif +\strictiff +\StrikingThrough +\strns +\strokedint +\StrokeFive +\StrokeFour +\StrokeOne +\StrokeThree +\strokethrough +\StrokeTwo +\stst +\stststile +\sttstile +\stttstile +\STX +\SUB +\subcorner +\subdoublebar +\subdoublevert +\subedot +\sublptr +\submult +\subrarr +\subrptr +\subset +\Subset +\subsetapprox +\subsetcirc +\subsetdot +\subseteq +\subseteqq +\subsetneq +\subsetneqq +\subsetplus +\subsetpluseq +\subsim +\subsub +\subsup +\succ +\Succ +\succapprox +\succcurlyeq +\succdot +\succeq +\succeqq +\succnapprox +\succneq +\succneqq +\succnsim +\succsim +\suchthat +\sum +\sumint +\sumintsl +\sumintup +\Summertree +\Summit +\SummitSign +\sun +\Sun +\SunCloud +\SunshineOpenCircled +\sup +\supdsub +\supedot +\suphsol +\suphsub +\suplarr +\supmult +\supset +\Supset +\supsetapprox +\supsetcirc +\supsetdot +\supseteq +\supseteqq +\supsetneq +\supsetneqq +\supsetplus +\supsetpluseq +\supsim +\supsub +\supsup +\surd +\surface +\SurveySign +\svrexample +\svrphoton +\swarrow +\Swarrow +\swarrowtail +\swbkarrow +\Sweden +\swfilledspoon +\swfootline +\swfree +\swharpoonccw +\swharpooncw +\swharpoonnw +\swharpoonse +\Switzerland +\swlcurvearrow +\swlsquigarrow +\swmapsto +\swmodels +\swModels +\swnearrows +\swnecurvearrow +\swneharpoons +\swords +\swpitchfork +\swrcurvearrow +\swrsquigarrow +\swspoon +\swswarrows +\swvdash +\swVdash +\syl +\syllabic +\symA +\symAE +\symB +\symbishop +\symC +\symking +\symknight +\symOE +\sympawn +\symqueen +\symrook +\symUE +\SYN +t +\t +T +\T +\Tab +\tabcolsep +\tachyon +\taild +\tailinvr +\taill +\tailn +\tailr +\tails +\tailt +\tailz +\Takt +\talloblong +\tally +\tan +\tanh +\Tape +\Taschenuhr +\tau +\Tau +\tauleptonminus +\tauleptonplus +\taurus +\Taurus +\tauup +\tccentigrade +\tcmu +\tcohm +\tcpertenthousand +\tcperthousand +\td +\tddtstile +\tdststile +\tdtstile +\tdttstile +\Telefon +\Telephone +\Tent +\tenuto +\terminus +\terminus* +\Terminus +\Terminus* +\Terra +\tesh +\tetartemorion +\text +\textacutedbl +\textacutemacron +\textacutewedge +\textadvancing +\textalpha +\textAlpha +\textaolig +\textara +\textarc +\textarl +\textarm +\textarn +\textart +\textasciiacute +\textasciibreve +\textasciicaron +\textasciicircum +\textasciidieresis +\textasciigrave +\textasciimacron +\textasciitilde +\textasteriskcentered +\textbabygamma +\textbackslash +\textbaht +\textbar +\textbarb +\textbarc +\textbard +\textbardbl +\textbardotlessj +\textbarg +\textbarglotstop +\textbari +\textbarl +\textbaro +\textbarrevglotstop +\textbaru +\textbeltl +\textbenttailyogh +\textbeta +\textBeta +\textbigcircle +\textbktailgamma +\textblank +\textblock +\textborn +\textbottomtiebar +\textbraceleft +\textbraceright +\textbrevemacron +\textbrokenbar +\textbullet +\textbullseye +\textcelsius +\textceltpal +\textcent +\textcentoldstyle +\textchi +\textChi +\textcircled +\textcircledP +\textcircumacute +\textcircumdot +\textcloseepsilon +\textcloseomega +\textcloserevepsilon +\textcolonmonetary +\textcommatailz +\textcopyleft +\textcopyright +\textcorner +\textcrb +\textcrd +\textcrg +\textcrh +\textcrinvglotstop +\textcrlambda +\textcrtwo +\textctc +\textctd +\textctdctzlig +\textctesh +\textctinvglotstop +\textctj +\textctjvar +\textctn +\textctstretchc +\textctstretchcvar +\textctt +\textcttctclig +\textctturnt +\textctyogh +\textctz +\textcurrency +\textcypr +\textdagger +\textdaggerdbl +\textdbend +\textdblhyphen +\textdblhyphenchar +\textdblig +\textdctzlig +\textdegree +\textdelta +\textDelta +\textdied +\textdiscount +\textdiv +\textdivorced +\textdkshade +\textdnblock +\textdollar +\textdollaroldstyle +\textdong +\textdotacute +\textdotbreve +\textdoublebaresh +\textdoublebarpipe +\textdoublebarpipevar +\textdoublebarslash +\textdoublegrave +\textdoublepipe +\textdoublepipevar +\textdoublevbaraccent +\textdoublevertline +\textdownarrow +\textdownfullarrow +\textdownstep +\textdyoghlig +\textdzlig +\texteightoldstyle +\textellipsis +\textemdash +\textendash +\textepsilon +\textEpsilon +\textesh +\textestimated +\texteta +\textEta +\texteuro +\textexclamdown +\textfallrise +\textfemale +\textfishhookr +\textfiveoldstyle +\textfjlig +\textflorin +\textfouroldstyle +\textfractionsolidus +\textfrak +\textfrbarn +\textfrhookd +\textfrhookdvar +\textfrhookt +\textfrtailgamma +\textg +\textgamma +\textGamma +\textglobfall +\textglobrise +\textglotstop +\textglotstopvari +\textglotstopvarii +\textglotstopvariii +\textgoth +\textgravecircum +\textgravedbl +\textgravedot +\textgravemacron +\textgravemid +\textgreater +\textgrgamma +\textguarani +\texthalflength +\texthardsign +\textheng +\texthighrise +\texthmlig +\texthooktop +\texthtb +\texthtbardotlessj +\texthtbardotlessjvar +\texthtc +\texthtd +\texthtg +\texthth +\texththeng +\texthtk +\texthtp +\texthtq +\texthtrtaild +\texthtscg +\texthtt +\texthvlig +\textifsym +\textinterrobang +\textinterrobangdown +\textinvglotstop +\textinvomega +\textinvsca +\textinvscr +\textinvscripta +\textinvsubbridge +\textiota +\textIota +\textkappa +\textKappa +\textknit +\textknit{<} +\textknit{-} +\textknit{;} +\textknit{:} +\textknit{"} +\textknit{(} +\textknit{)} +\textknit{[} +\textknit{]} +\textknit{@} +\textknit{*} +\textknit{2} +\textknit{3} +\textknit{4} +\textknit{5} +\textknit{6} +\textknit{7} +\textknit{8} +\textknit{9} +\textknit{a} +\textknit{A} +\textknit{b} +\textknit{B} +\textknit{E} +\textknit{f} +\textknit{F} +\textknit{h} +\textknit{H} +\textknit{i} +\textknit{I} +\textknit{j} +\textknit{J} +\textknit{l} +\textknit{L} +\textknit{m} +\textknit{M} +\textknit{O} +\textknit{q} +\textknit{Q} +\textknit{r} +\textknit{R} +\textknit{s} +\textknit{S} +\textknit{t} +\textknit{T} +\textknit{u} +\textknit{U} +\textknit{v} +\textknit{V} +\textknit{w} +\textknit{W} +\textknit{x} +\textknit{X} +\textknit{y} +\textknit{Y} +\textknit{z} +\textknit{Z} +\textlambda +\textLambda +\textlangle +\textlbrackdbl +\textleaf +\textleftarrow +\textlengthmark +\textless +\textlfblock +\textlfishhookrlig +\textlhdbend +\textlhookfour +\textlhookp +\textlhookt +\textlhti +\textlhtlongi +\textlhtlongy +\textlinb +\textlira +\textlnot +\textlonglegr +\textlooptoprevesh +\textlowering +\textlowrise +\textlptr +\textlquill +\textltailm +\textltailn +\textltilde +\textltshade +\textlyoghlig +\textmarried +\textmho +\textmicro +\textmidacute +\textminus +\textmu +\textMu +\textmugreek +\textmusicalnote +\textnaira +\textnineoldstyle +\textnrleg +\textnu +\textNu +\textnumero +\textObardotlessj +\textObullseye +\textohm +\textOlyoghlig +\textomega +\textOmega +\textomikron +\textOmikron +\textonehalf +\textoneoldstyle +\textonequarter +\textonesuperior +\textopenbullet +\textopencorner +\textopeno +\textordfeminine +\textordmasculine +\textovercross +\textoverw +\textpalhook +\textpalhooklong +\textpalhookvar +\textparagraph +\textperiodcentered +\textpertenthousand +\textperthousand +\textpeso +\textphi +\textPhi +\textpi +\textPi +\textpilcrow +\textpipe +\textpipevar +\textpm +\textpmhg +\textpolhook +\textprimstress +\textproto +\textpsi +\textPsi +\textqplig +\textquestiondown +\textquotedbl +\textquotedblleft +\textquotedblright +\textquoteleft +\textquoteright +\textquotesingle +\textquotestraightbase +\textquotestraightdblbase +\textraiseglotstop +\textraisevibyi +\textraising +\textramshorns +\textrangle +\textrbrackdbl +\textrecipe +\textrectangle +\textreferencemark +\textregistered +\textretracting +\textretractingvar +\textrevapostrophe +\textreve +\textrevepsilon +\textreversedvideodbend +\textrevglotstop +\textrevscl +\textrevscr +\textrevyogh +\textrho +\textRho +\textrhooka +\textrhooke +\textrhookepsilon +\textrhookopeno +\textrhookrevepsilon +\textrhookschwa +\textrhoticity +\textrightarrow +\textringmacron +\textrisefall +\textroundcap +\textrptr +\textrquill +\textrtaild +\textrtailhth +\textrtaill +\textrtailn +\textrtailr +\textrtails +\textrtailt +\textrtailz +\textrtblock +\textrthook +\textrthooklong +\textRubikUa +\textsarab +\textsca +\textscaolig +\textscb +\textscdelta +\textsce +\textscf +\textscg +\textsch +\textschwa +\textsci +\textscj +\textsck +\textscl +\textscm +\textscn +\textscoelig +\textscomega +\textscp +\textscq +\textscr +\textscripta +\textscriptg +\textscriptv +\textscu +\textscy +\textseagull +\textsecstress +\textsection +\textservicemark +\textsevenoldstyle +\textSFi +\textSFii +\textSFiii +\textSFiv +\textSFix +\textSFl +\textSFli +\textSFlii +\textSFliii +\textSFliv +\textSFv +\textSFvi +\textSFvii +\textSFviii +\textSFx +\textSFxi +\textSFxix +\textSFxl +\textSFxli +\textSFxlii +\textSFxliii +\textSFxliv +\textSFxlix +\textSFxlv +\textSFxlvi +\textSFxlvii +\textSFxlviii +\textSFxx +\textSFxxi +\textSFxxii +\textSFxxiii +\textSFxxiv +\textSFxxv +\textSFxxvi +\textSFxxvii +\textSFxxviii +\textSFxxxix +\textSFxxxvi +\textSFxxxvii +\textSFxxxviii +\textshade +\textsigma +\textSigma +\textsixoldstyle +\textsoftsign +\textspleftarrow +\textsterling +\textstretchc +\textstretchcvar +\textstyle +\textsubacute +\textsubarch +\textsubbar +\textsubbridge +\textsubcircum +\textsubdot +\textsubdoublearrow +\textsubgrave +\textsublhalfring +\textsubplus +\textsubrhalfring +\textsubrightarrow +\textsubring +\textsubsquare +\textsubtilde +\textsubumlaut +\textsubw +\textsubwedge +\textsuperimposetilde +\textsuperscript +\textsurd +\textswab +\textsyllabic +\texttau +\textTau +\texttctclig +\textteshlig +\texttheta +\textTheta +\textthing +\textthorn +\textthornvari +\textthornvarii +\textthornvariii +\textthornvariv +\textthreeoldstyle +\textthreequarters +\textthreequartersemdash +\textthreesuperior +\texttildedot +\texttildelow +\texttimes +\texttoneletterstem +\texttoptiebar +\texttrademark +\texttslig +\textturna +\textturncelig +\textturnglotstop +\textturnh +\textturnk +\textturnlonglegr +\textturnm +\textturnmrleg +\textturnr +\textturnrrtail +\textturnsck +\textturnscripta +\textturnscu +\textturnt +\textturnthree +\textturntwo +\textturnv +\textturnw +\textturny +\texttwelveudash +\texttwooldstyle +\texttwosuperior +\textuncrfemale +\textunderscore +\textuparrow +\textupblock +\textupfullarrow +\textupsilon +\textUpsilon +\textupstep +\textvbaraccent +\textvertline +\textvibyi +\textvibyy +\textvisiblespace +\textwon +\textwynn +\textxi +\textXi +\textxswdown +\textxswup +\textyen +\textyogh +\textzerooldstyle +\textzeta +\textZeta +\th +\TH +\therefore +\Thermo +\thermod +\theta +\Theta +\thetaup +\thething +\thickapprox +\thicksim +\thickvert +\ThinFog +\thinstar +\third +\thirtysecondNote +\thirtysecondNoteDotted +\thirtysecondNoteDottedDouble +\thirtysecondNoteDottedDoubleDown +\thirtysecondNoteDottedDown +\thirtysecondNoteDown +\thorn +\Thorn +\threeBeamedQuavers +\threeBeamedQuaversI +\threeBeamedQuaversII +\threeBeamedQuaversIII +\threedangle +\threedotcolon +\threesim +\tieinfty +\tilde +\tildel +\timelimit +\times +\timesbar +\Tmesonminus +\Tmesonnull +\Tmesonplus +\tminus +\tndtstile +\tnststile +\tntstile +\tnttstile +\to +\ToBottom +\toea +\tona +\tone +\Tongey +\top +\topborder +\topbot +\Topbottomheat +\topcir +\topdoteq +\topfork +\Topheat +\topsemicircle +\tosa +\ToTop +\towa +\tplus +\TR +\TransformHoriz +\TransformVert +\trapezium +\trebleclef +\triangle +\trianglecdot +\triangledown +\TriangleDown +\triangleeq +\triangleleft +\TriangleLeft +\triangleleftblack +\trianglelefteq +\trianglelefteqslant +\triangleminus +\triangleodot +\triangleplus +\triangleq +\triangleright +\TriangleRight +\trianglerightblack +\trianglerighteq +\trianglerighteqslant +\triangles +\triangleserifs +\triangletimes +\triangleubar +\TriangleUp +\Tribar +\trident +\trill +\Trine +\triple +\triplebar +\triplecovbond +\triplecross +\tripledot +\tripleeye +\triplefrown +\tripleplus +\triplesim +\triplesmile +\trprime +\trslash +\tsbm +\tsdtstile +\tsmb +\tsmm +\tsststile +\Tsteel +\tststile +\tsttstile +\ttdtstile +\ttimes +\TTsteel +\ttststile +\tttstile +\ttttstile +\Tumbler +\turn +\turnangle +\turnedbackneg +\turnediota +\turnedneg +\turnednot +\TwelweStar +\twoBeamedQuavers +\twocaps +\twocups +\twoheaddownarrow +\twoheadleftarrow +\twoheadleftarrowtail +\twoheadleftdbkarrow +\twoheadmapsfrom +\twoheadmapsto +\twoheadnearrow +\twoheadnwarrow +\twoheadrightarrow +\twoheadrightarrowtail +\twoheadsearrow +\twoheadswarrow +\twoheaduparrow +\twoheaduparrowcircle +\twoheadwhiteuparrow +\twoheadwhiteuparrowpedestal +\twonotes +\typecolon +u +\u +U +\U +\UA +\UArrow +\UB +\ubar +\ubarbbrevis +\ubarbrevis +\ubarsbrevis +\ubrbrak +\ubrevislonga +\udesc +\udot +\udotdot +\udots +\udtimes +\uhorn +\UHORN +\ularc +\ulblacktriangle +\ulcorner +\ullcorner +\ulrcorner +\ultriangle +\Umd +\uminus +\unclear +\underaccent +\underarc +\underarch +\underbrace +\underbracket +\underdots +\undergroup +\underleftarrow +\underleftharp +\underleftharpdown +\underleftharpoon +\underleftrightarrow +\underleftswishingghost +\underleftwitchonbroom +\underleftwitchonbroom* +\underline +\underlinesegment +\underparen +\underparenthesis +\underrightarrow +\underrightharp +\underrightharpdown +\underrightharpoon +\underrightswishingghost +\underrightwitchonbroom +\underrightwitchonbroom* +\underring +\underscriptleftarrow +\underscriptleftrightarrow +\underscriptrightarrow +\underset +\undertilde +\underwedge +\unitedpawns +\unlhd +\unrhd +\upalpha +\upand +\uparrow +\Uparrow +\UParrow +\uparrowbarred +\uparrowoncircle +\uparrowtail +\upassert +\upAssert +\upbackepsilon +\upbar +\upbeta +\upbkarrow +\upblackarrow +\upblackspoon +\upbow +\upbowtie +\upbracketfill +\upchi +\updasharrow +\updelta +\Updelta +\updownarrow +\Updownarrow +\updownarrowbar +\updownarrows +\updownblackarrow +\updowncurvearrow +\updownharpoonleftleft +\updownharpoonleftright +\updownharpoonrightleft +\updownharpoonrightright +\updownharpoons +\updownharpoonsleftright +\updownline +\Updownline +\updownsquigarrow +\updownwavearrow +\updownwhitearrow +\upepsilon +\upeta +\upfilledspoon +\upfishtail +\upfootline +\upfree +\upgamma +\Upgamma +\upharpoonccw +\upharpooncw +\upharpoonleft +\upharpoonleftbar +\upharpoonright +\upharpoonrightbar +\upharpoonsleftright +\upin +\upint +\upintsl +\upintup +\upiota +\upkappa +\uplambda +\Uplambda +\uplcurvearrow +\upleftcurvedarrow +\uplett +\uplsquigarrow +\uplus +\upmapsto +\Upmapsto +\upmodels +\upModels +\upmu +\upnu +\upomega +\Upomega +\upp +\upparenthfill +\upphi +\Upphi +\uppi +\Uppi +\uppitchfork +\uppropto +\uppsi +\Uppsi +\uprcurvearrow +\uprho +\uprightcurvearrow +\uprsquigarrow +\upsigma +\Upsigma +\upsilon +\Upsilon +\Upsilonmeson +\upsilonup +\upslice +\upspoon +\upt +\uptau +\uptherefore +\uptheta +\Uptheta +\uptodownarrow +\upuparrows +\upupharpoons +\upupsilon +\Upupsilon +\upvarepsilon +\upvarphi +\upvarpi +\upvarrho +\upvarsigma +\upvartheta +\upvdash +\upvDash +\upVdash +\upVDash +\upwavearrow +\upwhitearrow +\upxi +\Upxi +\upY +\upzeta +\uranus +\Uranus +\urarc +\urblacktriangle +\urcorner +\urtriangle +\US +\usepackage +\usf +\usfz +\ushort +\ushortdw +\ushortw +\ut +\utilde +\utimes +\UU +\Uuparrow +\UUparrow +\v +\vara +\varamalg +\varangle +\varbarwedge +\varbeta +\varbigcirc +\varbigtriangledown +\varbigtriangleup +\varcap +\varCapricorn +\varcarriagereturn +\VarClock +\varclub +\varclubsuit +\varcoppa +\varcoprod +\varcup +\varcurlyvee +\varcurlywedge +\vardiamond +\vardiamondsuit +\vardigamma +\vardoublebarwedge +\vardownarrow +\vardownwavearrow +\varEarth +\varepsilon +\varepsilonup +\VarFlag +\varg +\vargeq +\varhash +\varheart +\varheartsuit +\varhexagon +\varhexagonblack +\varhexagonlrbonds +\varhexstar +\varhookdownarrow +\varhookleftarrow +\varhooknearrow +\varhooknwarrow +\varhookrightarrow +\varhooksearrow +\varhookswarrow +\varhookuparrow +\vari +\VarIceMountain +\varinjlim +\varint +\varintercal +\various +\varisinobar +\varisins +\varkappa +\varleftarrow +\varleftrightarrow +\varleftrightwavearrow +\varleftwavearrow +\varleq +\varliminf +\varlimsup +\varlongleftarrow +\varlongleftrightarrow +\varlongmapsfrom +\varlongmapsto +\varlongrightarrow +\varlrtriangle +\varlrttriangle +\varmapsfrom +\varmapsto +\varmathbb +\varmodtwosum +\varMoon +\VarMountain +\varnearrow +\varniobar +\varnis +\varnothing +\varnotin +\varnotowner +\varnwarrow +\varoast +\varobar +\varobslash +\varocircle +\varodot +\varogreaterthan +\varoiiintclockwise +\varoiiintctrclockwise +\varoiint +\varoiintclockwise +\varoiintctrclockwise +\varoint +\varointclockwise +\varointclockwisesl +\varointclockwiseup +\varointctrclockwise +\varolessthan +\varomega +\varominus +\varopeno +\varoplus +\varoslash +\varosum +\varotimes +\varovee +\varowedge +\varparallel +\varparallelinv +\varpartialdiff +\varphi +\varphiup +\varphoton +\varpi +\varpiup +\varPluto +\varprod +\varprojlim +\varpropto +\varrho +\varrhoup +\varrightarrow +\varrightwavearrow +\varsampi +\Varsampi +\varsearrow +\varsigma +\varsigmaup +\varspade +\varspadesuit +\varsqcap +\varsqcup +\varsqsubsetneq +\varsqsubsetneqq +\varsqsupsetneq +\varsqsupsetneqq +\varstar +\varstigma +\varsubsetneq +\varsubsetneqq +\varsum +\varsumint +\VarSummit +\varsupsetneq +\varsupsetneqq +\varswarrow +\VarTaschenuhr +\varTerra +\vartheta +\varthetaup +\vartimes +\vartriangle +\vartriangleleft +\vartriangleright +\varuparrow +\varupdownarrow +\varupdownwavearrow +\varupwavearrow +\varUranus +\varv +\varvarpi +\varvarrho +\varVdash +\varveebar +\varw +\vary +\vBar +\Vbar +\VBar +\vBarv +\vbipropto +\vbrtri +\vcentcolon +\vcenter +\vcrossing +\vdash +\vDash +\Vdash +\VDash +\vDdash +\vdotdot +\vdots +\vec +\vectimes +\vee +\Vee +\veebar +\veedot +\veedoublebar +\veeeq +\veemidvert +\veeodot +\veeonvee +\veeonwedge +\venus +\Venus +\vernal +\vert +\Vert +\VERT +\vertbowtie +\vertdiv +\Vertex +\vertoverlay +\Vesta +\VHF +\Vier +\viewdata +\Village +\vin +\ViPa +\virgo +\Virgo +\vlongdash +\VM +\vod +\voicedh +\Vomey +\vppm +\vpppm +\vrectangle +\vrectangleblack +\vrule +\VT +\Vulkanus +\vv +\Vvdash +\VvDash +\Vvert +\vvvert +\vysmblkcircle +\vysmblksquare +\vysmwhtcircle +\vysmwhtsquare +\vzigzag +w +\Walley +\warning +\WashCotton +\WashSynthetics +\WashWool +\wasylozenge +\wasypropto +\wasytherefore +\water +\Water +\wbetter +\Wboson +\Wbosonminus +\Wbosonplus +\wdecisive +\weakpt +\WeakRain +\WeakRainCloud +\Wecker +\wedge +\Wedge +\wedgebar +\wedgedot +\wedgedoublebar +\wedgemidvert +\wedgeodot +\wedgeonwedge +\wedgeq +\westcross +\wfermion +\Wheelchair +\whfermion +\whistle +\white +\whitearrowupfrombar +\whitearrowuppedestal +\whitearrowuppedestalhbar +\whitearrowuppedestalvbar +\WhiteBishopOnBlack +\WhiteBishopOnWhite +\whiteblackspoon +\WhiteEmptySquare +\whiteinwhitetriangle +\WhiteKingOnBlack +\WhiteKingOnWhite +\WhiteKnightOnBlack +\WhiteKnightOnWhite +\WhitePawnOnBlack +\WhitePawnOnWhite +\whitepointerleft +\whitepointerright +\WhiteQueenOnBlack +\WhiteQueenOnWhite +\WhiteRookOnBlack +\WhiteRookOnWhite +\whitesquaretickleft +\whitesquaretickright +\whitestone +\wholeNote +\wholeNoteDotted +\wholeNoteRest +\wholeNoteRestDotted +\wholeof +\whthorzoval +\whtvertoval +\wideangledown +\wideangleup +\widearc +\widearrow +\widebar +\widebridgeabove +\widecheck +\widehat +\wideOarc +\wideparen +\widering +\widetilde +\widetriangle +\wind +\Winkey +\wInnocey +\Wintertree +\with +\withattack +\withidea +\withinit +\without +\wn +\WomanFace +\WorstTree +\wp +\wq +\wqq +\wr +\wreath +\WritingHand +\wupperhand +\x +\XBox +\xbsol +\Xey +\xhookleftarrow +\xhookrightarrow +\xi +\Xi +\xiup +\xleftarrow +\xLeftarrow +\xleftharpoondown +\xleftharpoonup +\xleftrightarrow +\xLeftrightarrow +\xleftrightharpoons +\xleftswishingghost +\xleftwitchonbroom +\xleftwitchonbroom* +\xlongequal +\xlongleftarrow +\xLongleftarrow +\xlongleftrightarrow +\xLongleftrightarrow +\xlongrightarrow +\xLongrightarrow +\xmapsto +\XQ +\xrightarrow +\xRightarrow +\xrightharpoondown +\xrightharpoonup +\xrightleftharpoons +\xrightswishingghost +\xrightwitchonbroom +\xrightwitchonbroom* +\xsol +\XSolid +\XSolidBold +\XSolidBrush +\xswordsdown +\xswordsup +\xtofrom +\xtwoheadleftarrow +\xtwoheadrightarrow +\Ydown +\yen +\yinyang +\Yinyang +\Yleft +\yogh +\Yright +\Yup +\ZA +\ZB +\Zbar +\Zborder +\Zboson +\ZC +\zcmp +\ZD +\ZE +\zeta +\Zeta +\zetaup +\Zeus +\ZF +\ZG +\ZH +\ZI +\ZJ +\ZK +\ZL +\ZM +\ZN +\ZO +\Zodiac +\ZP +\zpipe +\zproject +\ZQ +\ZR +\ZS +\ZT +\ztransf +\Ztransf +\ZU +\zugzwang +\ZV +\ZW +\Zwdr +\ZwPa +\ZX +\ZY +\ZZ diff --git a/src/completionItemProvider.ts b/src/completionItemProvider.ts new file mode 100644 index 0000000..5a0579b --- /dev/null +++ b/src/completionItemProvider.ts @@ -0,0 +1,290 @@ +import * as vscode from 'vscode'; +import {latex_types} from '../dictionary/symbol_types'; +import text_symbols from '../dictionary/text_symbols'; +import math_symbols from '../dictionary/math_symbols'; +import package_symbols from '../dictionary/package_symbols'; +import environment_symbols from '../dictionary/environment_symbols'; +import tikz_symbols from '../dictionary/tikz_symbols'; +import parameter_dictionary from '../dictionary/parameter_dictionary'; + +function convertToItemKind(type: latex_types): vscode.CompletionItemKind { + if (latex_types.symbol) { + return vscode.CompletionItemKind.Variable; + } else if (latex_types.function) { + return vscode.CompletionItemKind.Function; + } else if (latex_types.environment) { + return vscode.CompletionItemKind.Interface; + } else if (latex_types.package) { + return vscode.CompletionItemKind.Module; + } else if (latex_types.keyword) { + return vscode.CompletionItemKind.Keyword; + } else if (latex_types.parameter) { + return vscode.CompletionItemKind.Value; + } else if (latex_types.snippet) { + return vscode.CompletionItemKind.Snippet; + } + return vscode.CompletionItemKind.Property; +} + +function fillSymbols(symbolsCollection: vscode.CompletionItem[], symbolsDefinition: Object): void { + for (var key in symbolsDefinition) { + var sym_def = symbolsDefinition[key]; + var item = new vscode.CompletionItem(key, convertToItemKind(sym_def.kind)); + if (sym_def.detail) { + item.detail = sym_def.detail; + } + if (sym_def.documentation) { + item.documentation = sym_def.documentation; + } + if (sym_def.insertText) { + if (sym_def.insertText.indexOf("$") > -1) { + item.insertText = new vscode.SnippetString(sym_def.insertText); + } else { + item.insertText = sym_def.insertText; + } + } + symbolsCollection.push(item); + } +} + +export default class Provider implements vscode.CompletionItemProvider { + // protected name: string; + + private text_symbols: vscode.CompletionItem[]; + private math_symbols: vscode.CompletionItem[]; + private package_symbols: vscode.CompletionItem[]; + private environment_symbols: vscode.CompletionItem[]; + private tikz_symbols: vscode.CompletionItem[]; + + private parameter_dictionary: Object; + + constructor() { + // initialize Collections + this.text_symbols = new Array(); + this.math_symbols = new Array(); + this.package_symbols = new Array(); + this.environment_symbols = new Array(); + this.tikz_symbols = new Array(); + // fill the collections from the LaTeX symbols definitions + fillSymbols(this.text_symbols, text_symbols); + fillSymbols(this.math_symbols, math_symbols); + fillSymbols(this.package_symbols, package_symbols); + fillSymbols(this.environment_symbols, environment_symbols); + fillSymbols(this.tikz_symbols, tikz_symbols); + this.parameter_dictionary = parameter_dictionary; + } + + dispose() { } + + private isInlinemath(line: string, position: vscode.Position): boolean { + var count = 0; + for (var i = 0; i < line.length; i++) { + if (line[i] === "$") { + count++; + } + } + return count % 2 ? true : false; + } + + private getEnvironmentType(document: vscode.TextDocument, position: vscode.Position): string { + var line = document.lineAt(position); + if (line.isEmptyOrWhitespace ? false : this.isInlinemath(line.text.substring(0, position.character), position)) { + return "math"; + } + var environment_references = { + "displaymath": "math", "equation": "math", "eqnarray": "math", "align": "math", "align*": "math", + "multline": "math", "multline*": "math", "gather": "math", "gather*": "math", "split": "math", "split*": "math", + "tikzpicture": "tikz" + }; + var begin_index = -1; + var end_index = -1; + var environment; + for (var i = position.line; i >= 0; i--) { // iterate over lines from the current line (position) to the top of he document + line = document.lineAt(i); // get line with linenumber i (0 based) + if (line.isEmptyOrWhitespace) { continue; } // consistency check + var line_text = line.text; // get the current line as string + while (line_text.length > 6) { // More then "\\end{" and "}" characters are neccessary for a usefull accessment + begin_index = line_text.lastIndexOf("\\begin{"); + end_index = line_text.lastIndexOf("\\end{"); + if (begin_index > end_index) { + let environment = line_text.substring(begin_index + 7, line_text.indexOf("}", begin_index + 7)); + if (environment_references.hasOwnProperty(environment)) { + return environment_references[environment]; + } + } else if (end_index > begin_index) { + let environment = line_text.substring(end_index + 5, line_text.indexOf("}", end_index + 5)); + if (environment_references.hasOwnProperty(environment)) { + return null; + } + } else { + break; + } + line_text = line_text.substring(0, begin_index > end_index ? begin_index : end_index); + } + } + return null; + } + + private searchAndCreateParameterSymbols(line_before_pos: string): vscode.CompletionItem[] { + for (var key in this.parameter_dictionary) { + if (line_before_pos.endsWith(key)) { + var completionItems = new Array(); + fillSymbols(completionItems, this.parameter_dictionary[key]); + return completionItems; + } + } + return []; + } + + /** + * @param symbol_label NOT Used + * @param position NOT Used + */ + private searchAndCreateLableSymbols(document: vscode.TextDocument, symbol_label: string, position: vscode.Position): vscode.CompletionItem[] { + var completionItems = new Array(); + for (var i = 0; i < document.lineCount; i++) { + var line = document.lineAt(i); + if (line.isEmptyOrWhitespace) { continue; } + var line_text = line.text; + var index_start = line_text.indexOf("\\label{") + 7; // add 7 to considure the length of "\label{" + if (index_start > 6) { // index_start returns > -1 iff substring was found, adding 7 => 6 + var index_end = line_text.indexOf("}", index_start); + if (index_end > -1) { + completionItems.push(new vscode.CompletionItem( + line_text.substring(index_start, index_end), // label + vscode.CompletionItemKind.Reference // kind + )); + } + } + } + return completionItems; + } + + private filterSymbols(symbolsCollection: vscode.CompletionItem[], match: string, position: vscode.Position): vscode.CompletionItem[] { + var filtert_symbols = new Array(); + var range = new vscode.Range(new vscode.Position(position.line, position.character - match.length), position); + for (var i = 0; i < symbolsCollection.length; i++) { + var item = symbolsCollection[i]; + var clonedItem; + if (item.label.includes(match)) { + clonedItem = new vscode.CompletionItem(item.label, item.kind); + if (item.documentation) { + clonedItem.documentation = item.documentation; + } + if (item.insertText) { + clonedItem.insertText = item.insertText; + } + clonedItem.range = range; + clonedItem.filterText = match; + clonedItem.sortText = item.label.indexOf(match) + item.label; + filtert_symbols.push(clonedItem); + } + } + return filtert_symbols; + } + + // private categoriesAndFilterSymbols(document: vscode.TextDocument, line: string, position: vscode.Position): vscode.CompletionItem[] { + // var index; + // if ((index = line.lastIndexOf("\\")) > -1) { + // line = line.substring(index + 1, position.character); + // if (line.startsWith("begin{")) { + // return this.filterSymbols(this.environment_symbols, line.substring(6, line.length), position); + // } else if (line.startsWith("end{")) { + // return this.filterSymbols(this.environment_symbols, line.substring(4, line.length), position); + // } else { + // switch (this.getEnvironmentType(document, position)) { + // case "math": + // return this.filterSymbols(this.math_symbols, line, position); + // case "tikz": + // return this.filterSymbols(this.tikz_symbols, line, position); + // default: + // return this.filterSymbols(this.text_symbols, line, position); + // } + // } + // } + // return []; + // } + + provideCompletionItems(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken) : vscode.CompletionItem[] { + var line = document.lineAt(position); + if (line.isEmptyOrWhitespace) { + return []; + } + var line_text = line.text; + var line_before_pos = line_text.substring(0, position.character).trim(); + + // if (line_before_pos.endsWith("\\")) { + // if (this.isInlinemath(line_before_pos, position)) { + // return this.math_symbols; + // } else { + // switch (this.getEnvironmentType(document, position)) { + // case "math": + // return this.math_symbols; + // case "tikz": + // return this.tikz_symbols; + // default: + // return this.text_symbols; + // } + // } + // } else if (line_before_pos.endsWith("{")) { + // if (line_before_pos.endsWith("\\begin{") || line_before_pos.endsWith("\\end{")) { + // return this.environment_symbols; + // } else if (line_before_pos.endsWith("\\usepackage{")) { // get package names for usepackage function + // return this.package_symbols; + // } else if (line_before_pos.endsWith("\\ref{") || line_before_pos.endsWith("\\eqref{") || line_before_pos.endsWith("\\pageref{")) { + // return searchAndCreateLableSymbols(document); + // } + // } else if (line_before_pos.endsWith("[")) { + // return this.searchAndCreateParameterSymbols(line_before_pos.substring(0, line_before_pos.length - 1)); + // } else { + // return this.categoriesAndFilterSymbols(document, line_before_pos, position); + // } + var start_index: number; + var end_index: number; + var symbol_label: string; + if ((start_index = line_before_pos.lastIndexOf("\\") + 1) > 0) { + if ((end_index = line_before_pos.indexOf("{", start_index)) > -1) { + symbol_label = line_before_pos.substring(start_index, end_index - 1); + switch (symbol_label) { + case "begin": + case "end": + return this.filterSymbols(this.environment_symbols, symbol_label, position); + case "ref": + case "eqref": + case "pageref": + return this.searchAndCreateLableSymbols(document, symbol_label, position); + case "usepackage": + return this.filterSymbols(this.package_symbols, symbol_label, position); + default: + switch (this.getEnvironmentType(document, position)) { + case "math": + return this.filterSymbols(this.math_symbols, symbol_label, position); + case "tikz": + return this.filterSymbols(this.tikz_symbols, symbol_label, position); + default: + return this.filterSymbols(this.text_symbols, symbol_label, position); + } + } + // if (line_before_pos.startsWith("begin{")) { + // } else if (line_before_pos.startsWith("end{")) { + // return this.filterSymbols(this.environment_symbols, line_before_pos.substring(4, line_before_pos.length), position); + // } else if (line_before_pos.endsWith("ref{") || line_before_pos.endsWith("eqref{") || line_before_pos.endsWith("pageref{")) { + + // } + // } else if ((end_index = line_before_pos.indexOf("[")) > -1) { + // return []; + // } + // else { + // switch (this.getEnvironmentType(document, position)) { + // case "math": + // return this.filterSymbols(this.math_symbols, line_before_pos, position); + // case "tikz": + // return this.filterSymbols(this.tikz_symbols, line_before_pos, position); + // default: + // return this.filterSymbols(this.text_symbols, line_before_pos, position); + // } + } + } + return []; + } +} \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts new file mode 100644 index 0000000..2570505 --- /dev/null +++ b/src/extension.ts @@ -0,0 +1,15 @@ +// The module 'vscode' contains the VS Code extensibility API +// Import the module and reference it with the alias vscode in your code below +import * as vscode from 'vscode'; +import CompletionItemProvider from './completionItemProvider'; + +// this method is called when your extension is activated +// your extension is activated the very first time the command is executed +export function activate(context: vscode.ExtensionContext) { + // Register the Completion Item Provider + context.subscriptions.push(vscode.languages.registerCompletionItemProvider( + [{ language: 'latex'}], // document selector + new CompletionItemProvider(), // A Complete Item Provider instance + '\\', '{', '[' //, '=' // Characters to trigger an completion suggestion + )); +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..95a831e --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "outDir": "out", + "lib": [ + "es6" + ], + "sourceMap": true, + "rootDir": "." + }, + "exclude": [ + "node_modules" + ] +}