pax_global_header00006660000000000000000000000064147427424740014531gustar00rootroot0000000000000052 comment=57a03797c16a8a1e6555b6822592f78dc38834a5 vimtex-2.16/000077500000000000000000000000001474274247400127755ustar00rootroot00000000000000vimtex-2.16/.github/000077500000000000000000000000001474274247400143355ustar00rootroot00000000000000vimtex-2.16/.github/ISSUE_TEMPLATE/000077500000000000000000000000001474274247400165205ustar00rootroot00000000000000vimtex-2.16/.github/ISSUE_TEMPLATE/feature_request.md000066400000000000000000000015051474274247400222460ustar00rootroot00000000000000--- name: Feature request about: Suggest a new feature or enhancement labels: enhancement --- NB! Before posting an issue: * Make sure to search for a solution in old issues before posting a new one. * Learn at least a minimum of Markdown formatting (https://guides.github.com/features/mastering-markdown). Finally, please remove any boilerplate template content that is not relevant! **Is your feature request related to a problem? Please describe it.** A clear and short description of what the problem is. **Describe the solution you'd like** A clear and short description of what you want to happen. **Describe alternatives you've considered** A clear and short description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. vimtex-2.16/.github/ISSUE_TEMPLATE/issue_report.md.disabled000066400000000000000000000030161474274247400233330ustar00rootroot00000000000000--- name: General issue about: Report a bug, a problem or any kind of issue --- NB! Before posting an issue: * Make sure to search for a solution in old issues before posting a new one. * Learn at least a minimum of Markdown formatting (https://guides.github.com/features/mastering-markdown). Note, the following can be useful tips to try before posting the issue: * Run `:checkhealth` (if available, e.g. on neovim). * Inspect output of `:VimtexCompileOutput`. Finally, please remove any boilerplate template content that is not relevant! **Issue** Provide a clear and short description of the issue. Use simple english. Provide relevant files and commands in detail, so everybody can reproduce the issue! The following are _examples_ of minimal input files. To use the minimal vimrc files: * Regular Vim: `vim --servername VIM -u minimal.vim minimal.tex` * neovim: `nvim -u minimal.vim minimal.tex` **minimal.vim** ```vim set nocompatible let &runtimepath = '~/.vim/bundle/vimtex,' . &runtimepath let &runtimepath .= ',~/.vim/bundle/vimtex/after' filetype plugin indent on syntax enable ``` **minimal.tex** ```tex \documentclass{minimal} \begin{document} Hello world! \end{document} ``` NB: If relevant, include the content of your `.latexmkrc` file! **Commands/Input** Provide set of keys or command to reproduce the issue. **Observed Behaviour** Describe the observed behaviour. **Expected Behaviour** Describe both the expected and the observed behaviour. **Output from VimtexInfo** Run `:VimtexInfo` and paste the content here. vimtex-2.16/.github/ISSUE_TEMPLATE/issue_report.yml000066400000000000000000000046671474274247400220030ustar00rootroot00000000000000name: General issue description: Report a bug, a problem, or any kind of issue labels: [bug] body: - type: markdown attributes: value: | Before reporting, please [search existing issues](https://github.com/lervag/vimtex/issues?q=is%3Aissue+is%3Aopen). - type: textarea attributes: label: "Description" description: | Provide a clear and short description of the issue. Use simple english. validations: required: true - type: textarea attributes: label: "Steps to reproduce" description: | Steps to reproduce. Please include minimal test files (`minimal.vim` and `minimal.tex`) and include an initial step like: * Vim: `vim -u minimal.vim minimal.tex`. * neovim: `nvim -u minimal.vim minimal.tex` See below for examples of minimal test files. placeholder: | 1. `vim -u minimal.vim minimal.tex` 2. Do something 3. Do something more - type: textarea attributes: label: "Expected behavior" description: "A description of the behavior you expected." placeholder: "When following the above steps, I expect ..." - type: textarea attributes: label: "Actual behavior" placeholder: "When following the above steps, I observe ..." - type: input attributes: label: "Do you use a latexmkrc file?" description: | This can either be a global `~/.latexmkrc` file or a project specific `/my/project/latexmkrc` file. Or something similar. If _yes_, then consider if it is relevant to describe it in the above descriptions! placeholder: "Yes / No" validations: required: true - type: textarea attributes: label: "VimtexInfo" description: | Run `:VimtexInfo` in a relevant LaTeX file and copy the content here. render: yaml validations: required: true - type: markdown attributes: value: | ## Example of minimal test files **minimal.vim** ```vim set nocompatible let &runtimepath = '~/.vim/bundle/vimtex,' . &runtimepath let &runtimepath .= ',~/.vim/bundle/vimtex/after' filetype plugin indent on syntax enable " Add relevant options and VimTeX configuration below. ``` **minimal.tex** ```tex \documentclass{minimal} \begin{document} Hello world! \end{document} ``` vimtex-2.16/.github/workflows/000077500000000000000000000000001474274247400163725ustar00rootroot00000000000000vimtex-2.16/.github/workflows/main.yml000066400000000000000000000024421474274247400200430ustar00rootroot00000000000000name: CI tests on: pull_request: paths-ignore: - 'doc/*' - 'docker/*' - 'media/*' - '*.md' push: paths-ignore: - 'doc/*' - 'docker/*' - 'media/*' - '*.md' env: SHELL: bash jobs: run-tests: name: Test on ubuntu-latest runs-on: ubuntu-latest if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - name: Install packages run: | sudo apt update sudo apt install \ moreutils \ texlive texlive-latex-extra texlive-extra-utils \ texlive-bibtex-extra libtext-bibtex-perl \ texlive-publishers \ latexmk \ libmodule-build-perl \ libconfig-autoconf-perl \ libextutils-libbuilder-perl - uses: jdx/mise-action@v2 with: tool_versions: | neovim 0.9.5 vim 9.1.0 - uses: actions/checkout@master with: fetch-depth: 1 - name: Test with neovim working-directory: ./test run: | mise use neovim make -j1 - name: Test with vim env: MYVIM: vim -T dumb --not-a-term -n working-directory: ./test run: | mise use vim make -j1 vimtex-2.16/.gitignore000066400000000000000000000003121474274247400147610ustar00rootroot00000000000000doc/tags test/test-compiler/latexrun test/test-syntax/syntax/ test/test-textobj-targets/targets.vim/ test/issues test/test-completion-bibtex/test_parser_* test/test-quickfix-fix-path/test_hbox* *.log vimtex-2.16/.luarc.json000066400000000000000000000004101474274247400150470ustar00rootroot00000000000000{ "$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json", "runtime": { "version": "LuaJIT" }, "workspace": { "library": [ "$VIMRUNTIME", "${3rd}/luv/library" ], "checkThirdParty": false } } vimtex-2.16/.stylua.toml000066400000000000000000000001651474274247400152730ustar00rootroot00000000000000column_width = 80 indent_type = "Spaces" indent_width = 2 quote_style = "AutoPreferDouble" call_parentheses = "None" vimtex-2.16/.vintrc.yaml000066400000000000000000000000731474274247400152440ustar00rootroot00000000000000policies: ProhibitAbbreviationOption: enabled: false vimtex-2.16/CONTRIBUTING.md000066400000000000000000000063641474274247400152370ustar00rootroot00000000000000# Guide for code contributions - [Branch model](#branch-model) - [Documentation style](#documentation-style) - [Code style](#code-style) - [Running tests](#running-tests) ## Branch model VimTeX is developed mainly through the master branch, and pull requests should be [fork based](https://help.github.com/articles/using-pull-requests/). ## Documentation style Vim help files have their own specific syntax. There is a Vim help section on how to write them, see [`:h help-writing`](http://vimdoc.sourceforge.net/htmldoc/helphelp.html#help-writing). The VimTeX documentation style should be relatively clear, and it should be easy to see from the existing documentation how to write it. Still, here are some pointers: - Max 80 columns per line - Use the help tag system for pointers to other parts of the Vim documentation - Use line of `=`s to separate sections - Use line of `-`s to separate subsections - The section tags should be right aligned at the 79th column - Sections should be included and linked to from the table of contents VimTeX also has a high level code [documentation](./DOCUMENTATION.md) mainly for developers. It should provide an overview of the VimTeX code and APIs and may help developers (and users) to understand the functionalities of the plugin a little bit faster. ## Code style When submitting code for VimTeX, please adhere to the following standards: - Use `shiftwidth=2` - no tabs! - Write readable code - Break lines for readability - Line should not be longer than 80 columns - Use comments: - For complex code that is difficult to understand - Simple code does not need comments - Use (single) empty lines to separate logical blocks of code - Use good variable names - The name should indicate what the variable is/does - Variable names should be lower case - Local function variables should be preceded with `l:` - Prefer single quoted strings - See also the [Google vimscript style guide](https://google.github.io/styleguide/vimscriptguide.xml) - Use markers for folding - I generally only fold functions, and I tend to group similar functions so that when folded, I get a nice structural overview of a file - See some of the files for examples of how I do this ## Running tests New functionality should be accompanied by tests. Tests can be run from the `test` folder with `make`. The tests currently only run on Linux, and the following utilities are required to run all the tests: - `wget` - `chronic` (from [moreutils](https://joeyh.name/code/moreutils/)) These utilities may not come with all Linux distributions and may need to be installed with your favorite package manager (e.g. `yum`, `apt-get`, or `brew` on Mac). By default, the tests are run with the Neovim executable `nvim`. You can change the executable by setting the environment variable `MYVIM` before running. To run with vanilla vim, use `MYVIM="vim -T dumb --not-a-term --noplugin -n"`. Either export this in your shell, or prepend to `make`, that is, run `MYVIM="vim -T dumb --not-a-term --noplugin -n" make`. vimtex-2.16/DOCUMENTATION.md000066400000000000000000000352411474274247400153350ustar00rootroot00000000000000# Documentation Welcome to the "high-level documentation" of VimTeX. The goal of this document is to help developers (and curious users) to understand the structure of the plugin and how it works. That is, it should essentially provide a useful and quick overview of the most important files and directories. See also `:help vimtex-code` for some related information. The table of contents has the same structure as the essential file structure of VimTeX. E.g., if you want to know something about `vimtex/autoload/vimtex/somefile.vim`, then you can lookup the path in the table of contents and click on it. - [ftplugin](#ftplugin) - [syntax](#syntax) - [indent](#indent) - [after/ftplugin](#afterftplugin) - [autoload](#autoload) - [vimtex.vim](#vimtexvim) - [vimtex](#vimtex) - [state.vim](#statevim) - [delim.vim](#delimvim) - [cmd.vim](#cmdvim) - [cache.vim](#cachevim) - [compiler.vim](#compilervim) - [compiler](#compiler) - [debug.vim](#debugvim) - [complete.vim](#completevim) - [tools](#tools) - [context.vim](#contextvim) - [fold.vim](#foldvim) - [parser.vim](#parservim) - [qf.vim](#qfvim) - [syntax](#syntax-1) - [text\_obj.vim](#text_objvim) - [view.vim](#viewvim) - [health/vimtex.vim](#healthvimtexvim) - [unite/sources/vimtex.vim](#unitesourcesvimtexvim) - [rplugin/python3/denite/source/vimtex.py](#rpluginpython3denitesourcevimtexpy) - [test](#test) # ftplugin The main features of VimTeX are implemented as a filetype plugin for Vim and neovim. This is a specific concept that you can read about with `:help filetype-plugins`. VimTeX provides a filetype plugin for the `tex` and `bib` filetypes. These scripts are the main entry points for the bulk functionalities of VimTeX. They are both very simple: they ensure that the user wants to load VimTeX, then they execute the function `vimtex#init()` from [`autoload/vimtex.vim`](#vimtexvim). # syntax VimTeX is also a syntax plugin and provides a `tex` syntax plugin script. The relevant Vim and neovim docs for this is `:help :syn-files`. Essentially, this is the entry point for loading the syntax highlighting. # indent VimTeX also has an indentation script; this feature is also a special concept with an entry point under the `indent/` directory, see `:help indent-expression`. The main purpose of `indent/tex.vim` and `indent/bib.vim` is to provide functions like `VimtexIndent()` that are used with the `:help 'indentexpr'` option. # after/ftplugin The `after/` directory is a simple Vim and neovim concept that allows to ensure that some scripts are loaded _after_ the main scripts. For details of the concept, see `:help after-directory`. Currently, there's only one script `after/ftplugin/tex.vim`. This is used to make sure that VimTeX loaded successfully and that there're no conflicts with other plugins such as LaTeX-Box. # autoload The `autoload` directory is an important concept in Vimscript. It allows to avoid loading code until it is strictly necessary. This allows to substantially speed up the initialization phase, since the bulk VimTeX code is not sourced unless necessary. See `:help autoload` for more details. It may also be instructive to read [this chapter](https://learnvimscriptthehardway.stevelosh.com/chapters/42.html) of the well known [Learn Vimscript the Hard Way](https://learnvimscriptthehardway.stevelosh.com/chapters/42.html) by Steve Losh. ## vimtex.vim This file defines the main entry point `vimtex#init()`, which is responsible for loading all of the VimTeX functionalities, except: * syntax highlighting is loaded from `syntax/tex.vim` * indentation is loaded from `indent/tex.vim` The main initialization function calls `vimtex#mymodule#init_buffer()` for each submodule, if it exists. This function should take care of defining buffer local mappings, commands, and autocommands for the respective submodule. The initialization function also ensures that the current buffer is coupled with a corresponding state dictionary, see [autoload/vimtex/state.vim](#statevim). ## vimtex This directory holds the bulk of the VimTeX source code. Each `.vim` file represents a separate submodule that may provide one or more of the following: * a functional API that is used in other parts of VimTeX * buffer functionalities (mappings, commands, and/or autocommands) * state data ### state.vim The VimTeX state variable is a dictionary that contains data specific to a single LaTeX project. A project may consist of several buffers for different files, e.g. if the project is a multi-file project (see `:help vimtex-multi-file`). A submodule may add to the state during initialization with `vimtex#mymodule#init_state(state)`, which takes the state object as a single argument. ### delim.vim This file defines an API and some buffer mappings for detecting and manipulating the surrounding delimiters. The API is mostly based on the function `vimtex#delim#get_surrounding(type)`. The following is a simple example to detect the surrounding environment. Let `|` denote the cursor position: ```tex \begin{Environment} Some awesome | text \end{Environment} ``` Example code for working with the environment delimiter: ```vim " The return values are dictionaries let [l:open, l:close] = vimtex#delim#get_surrounding('env_tex') " Empty dicts mean we did not find a surrounding environment if empty(l:open) | return | endif " The dicts have several attributes, the most important are probably these: echo l:open.name echo l:open.lnum echo l:open.cnum ``` ### cmd.vim This file defines an API and some buffer mappings for detecting and manipulating LaTeX commands. The main API relies on the functions `vimtex#cmd#get_*(...)`, e.g. `vimtex#cmd#get_current()`. A simple example usage: ```vim let l:cmd = vimtex#cmd#get_current() if empty(l:cmd) | return | endif echo l:cmd.name echo l:cmd.pos_start echo l:cmd.pos_end echo l:cmd.args echo l:cmd.opts ``` ### cache.vim This file implements an API for creating and accessing caches that can be both volatile and persistent, as well as project and buffer local. Here's an example of how to use a cache. ```vim function VimTeXCacheExample() " create a new cache (if the name doesn't exist yet) " with an attribute 'number'. So the cache would be like that: " " let l:test = { " 'number' = 10, " } let l:my_cache = vimtex#cache#open('cache_name', {'number' : 10}) " change the value in you cache let l:my_cache['number'] = 9001 " will print '9001' echo l:my_cache['number'] " save your changes " In general it'll be saved in your `$XDG_CACHE_HOME/vimtex/` directory " (normally '~/.cache/vimtex') in the appropriate tex-file where you accessed " cache file. call vimtex#cache#close('cache_name') endfunction ``` ### compiler.vim This submodule defines an API for interacting with LaTeX compiler backends. It also defines the main compiler mappings and commands (e.g. `:VimtexCompile`). Each supported backend is defined in separated scripts under `vimtex/autoload/vimtex/compiler/*.vim`. These scripts provide `vimtex#compiler#mycompiler#init()`, which is used to initialize a particular backend - it should return a dictionary object that will be part of the VimTeX state. The main compiler API essentially connects to the specified backend. E.g., if one uses the default `latexmk` backend, then the top level `vimtex#compiler#start()` function will essentially call the `s:compiler_nvim.start_single()` function from `vimtex/autolaod/vimtex/compiler/latexmk.vim`. ### debug.vim This standalone script defines a convenience function for internal debugging: `vimtex#debug#stacktrace()` parses the stacktrace from the `v:throwpoint` variable (see `:h v:throwpoint` for more information). If this does not exist, then we forcibly create it and remove the top element. You can try this code as an example: ```vim " Save as test.py function! Test() abort try throw "Nasty error message is here :D" catch call vimtex#debug#stacktrace(1) endtry endfunction ``` Now type `:call Test()`, and the quickfix window should pop up with the specified error message and the location of the error. ### complete.vim This script defines the main completion API: `vimtex#complete#omnifunc(...)`. See `:help complete-functions` for details on how omnifunctions work. The function is relatively advanced and allows different completion mechanisms for different contexts. The `complete/` subdirectory contains simple files that lists keywords defined for specific packages or classes. These files are used by the command and environment completers. The `complete/tools` directory includes a large map between LaTeX commands and unicode glyphs, like `\alpha -> α` and `\beta -> β`. This is used to enrich the keywords lists under `complete/` to add more fancy completion menus. ### context.vim This script provides a context menu feature (`:help :VimtexContextMenu`). Each script under `autoload/vimtex/context/*.vim` defines a specific context and its related actions. See [here](https://github.com/lervag/vimtex/pull/1961#issuecomment-795476750) for a more detailed description of how this is implemented. For instance, the context `context/cite.vim` defines a citation context (see `:help vimtex-context-citation`). ### fold.vim This defines the fold functions for VimTeX. Folding is explained in `:help folds`. An example of how a folded document may look like: ![folding example](https://github.com/lervag/vimtex-media/blob/main/img/folding.png) VimTeX defines a custom fold expression, see `:help fold-expr`. The `vimtex#fold#init_state` function will apply folding as per the related configuration (see `:help vimtex-folding`). The fold expression is modularized to allow a relatively high degree of customizability. Each type is defined in its separate file, e.g. `autoload/vimtex/fold/envs.vim` for folding of environments. ### parser.vim A lot of VimTeX functionalities relies on some type of parsing. This module defines an API for various parsers, both for TeX files and other filetypes (e.g. `aux` and `bib`), as well as some specific types of parser (e.g. `toc` for parsing TeX files for a table of contents). The code for each parser is defined in sub modules, e.g. `parser/bib.vim`. The `vimcomplete.bst` file is used by `parser/bib.vim` in the `s:parse_with_bibtex()` function. It is used to convert a `.bib` file to a `.bbl` file with `bibtex` - this is useful because the `.bbl` file generated with this `.bst` file is very easy to parse. ### toc.vim Specifies a simple API and buffer mappings/commands for creating a convenient table of contents (TOC) to navigate and inspect a file (`:h :VimtexTocToggle` for more information). ![toc example](https://github.com/lervag/vimtex-media/blob/main/img/toc.png) ### qf.vim This submodule defines functions and buffer mappings to parse log files and similar and put errors and warnings into the quickfix window (see `:help quickfix`). The functions are used e.g. by callbacks from the compilers, if supported and enabled, to automatically parse log files and display potential errors after compilation. The files `vimtex/autoload/vimtex/qf/*.vim` define different types of log parsers. E.g., `qf/bibtex.vim` is used to parse `.blg` files for BibTeX related warnings and errors, and `qf/latexlog.vim` parses `.log` files for LaTeX warnings and errors. `qf/pulp.vim` defines an alternative log parser that can be used instead of `latexlog.vim`. See also `:help g:vimtex_quickfix_method`. Here's an example of the quickfix list generated by the `qf/latexlog.vim` script: ![quickfix example](https://github.com/lervag/vimtex-media/blob/main/img/quickfix.png) ### syntax.vim This script implements some convenience functions for the bulk VimTeX code. This may be counter intuitive, so be warned. The idea is that other parts of VimTeX may rely on the syntax state, e.g. to determine if a position is within math mode (`vimtex#syntax#in_mathzone(...)`). The actual syntax rules are defined in the scripts under `syntax/*.vim`. ### syntax This subdirectory contains the main syntax highlighting scripts. The entry point for the syntax scripts are, as mentioned previously, the top level [`syntax/tex.vim`](#syntax). However, as most of the code, the bulk source is defined in the autoloaded functions. In short: `syntax/core.vim` implements the core syntax rules, whereas the scripts under `syntax/p/` define package specific syntax rules. ### text\_obj.vim This submodule defines text objects, see `:help text-objects`. Buffer local mappings are created during initialization. The module allows to use different backends, including the popular [`targets.vim`](https://github.com/wellle/targets.vim). ### view.vim This submodule defines the main view API and buffer mappings/commands. That is, mappings and commands to open a PDF viewer for the compiled LaTeX document. The desired PDF viewer is specified with `g:vimtex_view_method` variable, and the specified viewer is initialized from `view/VIEWER.vim` (e.g. `view/zathura.vim`). This does essentially just the following for a given VimTeX state: ```vim let a:state.viewer = vimtex#view#{g:vimtex_view_method}#new() ``` That is, if `g:vimtex_view_method` is `zathura`, then this calls `vimtex#view#zathura#new()`. The `new()` method should return a dictionary object with e.g. a `.view()` method that is used to open a file with the specified viewer. ## health/vimtex.vim VimTeX hooks into the `health.vim` framework provided by `neovim` (see `:help health`). This is a utility framework for performing health checks that may help users discover problems with e.g. configuration. VimTeX has a few checks for e.g. Vim versions and configuration validation. Note: This is not relevant for regular Vim. ## unite/sources/vimtex.vim This script defines a VimTeX table-of-content source for the [unite](https://github.com/Shougo/unite.vim) plugin. See `:help vimtex-unite` for more info. # rplugin/python3/denite/source/vimtex.py This script defines a VimTeX table-of-content source for the [denite.vim](https://github.com/Shougo/denite.nvim) plugin. See also `:help vimtex-denite`. # test This directory is used to, you guessed it, define tests for the VimTeX code. The tests are built on top of a Makefile based workflow. The `test/Makefile` runs all tests defined in sub directories named `test-...`. It is a fundamental requirement that all tests run with `make` from the top level `test` directory should pass for VimTeX to be deemed stable and fully functional. The `test/` directory also contains some simple LaTeX and VimTeX configuration examples under `test/example-...`, as well as some issue specific test files under `issues/ISSUE-NUMBER`. vimtex-2.16/LICENSE.md000066400000000000000000000020631474274247400144020ustar00rootroot00000000000000MIT license Copyright (c) 2025 Karl Yngve Lervåg 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. vimtex-2.16/README.md000066400000000000000000000363631474274247400142670ustar00rootroot00000000000000# VimTeX VimTeX is a modern [Vim](http://www.vim.org/) and [Neovim](https://neovim.io/) filetype and syntax plugin for LaTeX files. [![Gitter](https://badges.gitter.im/vimtex-chat/community.svg)](https://gitter.im/vimtex-chat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) ![CI tests](https://github.com/lervag/vimtex/workflows/CI%20tests/badge.svg) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5N4MFVXN7U8NW) ## Table of contents - [Requirements](#requirements) - [Installation](#installation) - [Configuration](#configuration) - [Quick Start](#quick-start) - [Tutorial](#tutorial) - [Documentation](#documentation) - [Screenshots](#screenshots) - [GIFs](#gifs) - [Features](#features) - [Other relevant plugins](#other-relevant-plugins) - [Linting and syntax checking](#linting-and-syntax-checking) - [Snippets and templates](#snippets-and-templates) - [Tag navigation](#tag-navigation) - [Alternatives](#alternatives) - [VimTeX on the Web](#vimtex-on-the-web) ## Requirements VimTeX requires Vim version 8.2.3995 or Neovim version 0.9.5. The requirements were updated in April 2024 after the release of VimTeX 2.15. If you are stuck on older versions of Vim or Neovim, then you should not use the most recent version of VimTeX, but instead remain at the v2.15 tag. Some features require external tools. For example, the default compiler backend relies on [latexmk](https://www.cantab.net/users/johncollins/latexmk/index.html). Users are encouraged to read the requirements section in the [documentation](doc/vimtex.txt) (`:h vimtex-requirements`). ## Installation There are a lot of methods for installing plugins. The following explains the most common and popular approaches. > [!WARNING] > > Many plugin managers provide mechanisms to lazy load plugins. Please don't > use this for VimTeX! VimTeX is already lazy loaded by virtue of being > a filetype plugin and by using the autoload mechanisms. There is therefore > nothing to gain by forcing VimTeX to lazily load through the plugin manager. > In fact, doing it will _break_ the inverse-search mechanism, which relies on > a _global_ command (`:VimtexInverseSearch`). ### lazy.nvim In Neovim, [lazy.nvim](https://github.com/folke/lazy.nvim) is probably the most popular plugin manger. To install VimTeX, add a plugin spec similar to this: ```lua { "lervag/vimtex", lazy = false, -- we don't want to lazy load VimTeX -- tag = "v2.15", -- uncomment to pin to a specific release init = function() -- VimTeX configuration goes here, e.g. vim.g.vimtex_view_method = "zathura" end } ``` VimTeX is mostly implemented with Vimscript and is configured with the classical vimscript variable convention like `g:vimtex_OPTION_NAME`. Nowadays, Neovim is often configured with Lua, thus some users may be interested in reading `:help lua-vimscript`. ### vim-plug If you use [vim-plug](https://github.com/junegunn/vim-plug), then add *one* of the following lines to your configuration. The first will use the latest versions from the `master` branch, whereas the second will pin to a release tag. ```vim Plug 'lervag/vimtex' Plug 'lervag/vimtex', { 'tag': 'v2.15' } ``` ### Other There are many other plugin managers out there. They are typically well documented, and it should be straightforward to extrapolate the above snippets. > [!NOTE] > > If you use the built-in package feature, then: > > - Make sure to read and understand the package feature: `:help package`! > - Use the `/pack/foo/start` subdirectory to make sure the filetype plugin is > automatically loaded for the `tex` filetypes. > - Helptags are not generated automatically. Run `:helptags` to generate them. > - Please note that by default Vim puts custom `/start/` plugin directories at > the end of the `&runtimepath`. This means the built in filetype plugin is > loaded, which prevents VimTeX from loading. See > [#1413](https://github.com/lervag/vimtex/issues/1413) for two suggested > solutions to this. To see which scripts are loaded and in which order, use > `:scriptnames`. > - For more information on how to use the Vim native package solution, see > [here](https://vi.stackexchange.com/questions/9522/what-is-the-vim8-package-feature-and-how-should-i-use-it) > and [here](https://shapeshed.com/vim-packages/). ## Configuration After installing VimTeX, you should edit your `.vimrc` file or `init.vim` file to configure VimTeX to your liking. Users should read the documentation to learn the various configuration possibilities, but the below is a simple overview of some of the main aspects. > [!CAUTION] > > **PLEASE** don't just copy this without reading the comments! ```vim " This is necessary for VimTeX to load properly. The "indent" is optional. " Note: Most plugin managers will do this automatically! filetype plugin indent on " This enables Vim's and neovim's syntax-related features. Without this, some " VimTeX features will not work (see ":help vimtex-requirements" for more " info). " Note: Most plugin managers will do this automatically! syntax enable " Viewer options: One may configure the viewer either by specifying a built-in " viewer method: let g:vimtex_view_method = 'zathura' " Or with a generic interface: let g:vimtex_view_general_viewer = 'okular' let g:vimtex_view_general_options = '--unique file:@pdf\#src:@line@tex' " VimTeX uses latexmk as the default compiler backend. If you use it, which is " strongly recommended, you probably don't need to configure anything. If you " want another compiler backend, you can change it as follows. The list of " supported backends and further explanation is provided in the documentation, " see ":help vimtex-compiler". let g:vimtex_compiler_method = 'latexrun' " Most VimTeX mappings rely on localleader and this can be changed with the " following line. The default is usually fine and is the symbol "\". let maplocalleader = "," ``` ## Quick Start The following video shows how to use VimTeX's main features (credits: [@DustyTopology](https://github.com/DustyTopology) from [#1946](https://github.com/lervag/vimtex/issues/1946#issuecomment-846345095)). The example LaTeX file used in the video is available under [`test/example-quick-start/main.tex`](test/example-quick-start/main.tex) and it may be instructive to copy the file and play with it to learn some of these basic functions. https://user-images.githubusercontent.com/66584581/119213849-1b7d4080-ba77-11eb-8a31-7ff7b9a4a020.mp4 > [!TIP] > > If the compiler or the viewer doesn't start properly, one may type > `li` to view the system commands that were executed to start > them. To inspect the compiler output, use `lo`. ### Tutorial Both new and experienced users are encouraged to read the excellent guide by @ejmastnak: [Getting started with the VimTeX plugin](https://ejmastnak.com/tutorials/vim-latex/vimtex/). The guide covers all the fundamentals of setting up a VimTeX-based LaTeX workflow, including usage of the VimTeX plugin, compilation, setting up forward and inverse search with a PDF reader, and Vimscript tools for user-specific customization. ### Documentation Users are of course _strongly_ encouraged to read the documentation, at least the introduction, to learn about the different features and possibilities provided by VimTeX (see [`:h vimtex`](doc/vimtex.txt)). Advanced users and potential developers may also be interested in reading the supplementary documents: * [CONTRIBUTING.md](CONTRIBUTING.md) * [DOCUMENTATION.md](DOCUMENTATION.md) ## Screenshots Here is an example of the syntax highlighting provided by VimTeX. The conceal feature is active on the right-hand side split. The example is made by @DustyTopology with the [vim-colors-xcode](https://github.com/arzg/vim-colors-xcode) colorscheme with some minor adjustments [described here](https://github.com/lervag/vimtex/issues/1946#issuecomment-843674951). ![Syntax example](https://github.com/lervag/vimtex-media/blob/main/img/syntax.png) ### GIFs See the file [VISUALS.md](VISUALS.md) for screencast-style GIFs demonstrating VimTeX's core motions, text-editing commands, and text objects. ## Features Below is a list of features offered by VimTeX. The features are accessible as both commands and mappings. The mappings generally start with `l`, but if desired one can disable default mappings to define custom mappings. Nearly all features are enabled by default, but each feature may be disabled if desired. The two exceptions are code folding and formating, which are disabled by default and must be manually enabled. - Document compilation with [latexmk](https://www.cantab.net/users/johncollins/latexmk/index.html), [latexrun](https://github.com/aclements/latexrun), [tectonic](https://tectonic-typesetting.github.io), or [arara](https://github.com/cereda/arara) - LaTeX log parsing for quickfix entries using - internal method - [pplatex](https://github.com/stefanhepp/pplatex) - Compilation of selected part of document - Support for several PDF viewers with forward search - [MuPDF](http://www.mupdf.com/) - [Okular](https://okular.kde.org/) - [qpdfview](https://launchpad.net/qpdfview) - [Skim](http://skim-app.sourceforge.net/) - [SumatraPDF](http://www.sumatrapdfreader.org/free-pdf-reader.html) - [TeXShop](https://pages.uoregon.edu/koch/texshop/) - [Zathura](https://pwmt.org/projects/zathura/) - Other viewers are supported through a general interface - Completion of - citations - labels - commands - file names for figures, input/include, includepdf, includestandalone - glossary entries - package and documentclass names based on available `.sty` and `.cls` files - Document navigation through - table of contents - table of labels - proper settings for `'include'`, `'includeexpr'`, `'suffixesadd'` and `'define'`, which among other things - allow `:h include-search` and `:h definition-search` - give enhanced `gf` command - Easy access to (online) documentation of packages - Word count (through `texcount`) - Motions ([link to GIF demonstrations](VISUALS.md#motion-commands)) - Move between section boundaries with `[[`, `[]`, `][`, and `]]` - Move between environment boundaries with `[m`, `[M`, `]m`, and `]M` - Move between math environment boundaries with `[n`, `[N`, `]n`, and `]N` - Move between frame environment boundaries with `[r`, `[R`, `]r`, and `]R` - Move between comment boundaries with `[*` and `]*` - Move between matching delimiters with `%` - Text objects ([link to GIF demonstrations](VISUALS.md#text-objects)) - `ic ac` Commands - `id ad` Delimiters - `ie ae` LaTeX environments - `i$ a$` Math environments - `iP aP` Sections - `im am` Items - Other mappings ([link to GIF demonstrations](VISUALS.md#deleting-surrounding-latex-content)) - Delete the surrounding command, environment or delimiter with `dsc`/`dse`/`ds$`/`dsd` - Change the surrounding command, environment or delimiter with `csc`/`cse`/`cs$`/`csd` - Toggle starred command or environment with `tsc`/`tse` - Toggle inline and displaymath with `ts$` - Toggle between e.g. `()` and `\left(\right)` with `tsd` - Toggle (inline) fractions with `tsf` - Toggle line-break macro `\\` with `tsb` - Close the current environment/delimiter in insert mode with `]]` - Add `\left ... \right)` modifiers to surrounding delimiters with `` - Insert new command with `` - Convenient insert mode mappings for faster typing of e.g. maths - Context menu on citations (e.g. `\cite{...}`) mapped to `` - Improved folding (`:h 'foldexpr'`) - Improved indentation (`:h 'indentexpr'`) - Syntax highlighting - A consistent core syntax specification - General syntax highlighting for several popular LaTeX packages - Nested syntax highlighting for several popular LaTeX packages - Highlight matching delimiters - Support for multi-file project packages - [import](http://ctan.uib.no/macros/latex/contrib/import/import.pdf) - [subfiles](http://ctan.uib.no/macros/latex/contrib/subfiles/subfiles.pdf) See the documentation for a thorough introduction to VimTeX (e.g. `:h vimtex`). ## Other relevant plugins Even though VimTeX provides a lot of nice features for working with LaTeX documents, there are several features that are better served by other, dedicated plugins. For a more detailed listing of these, please see [`:help vimtex-and-friends`](doc/vimtex.txt#L540). ### Linting and syntax checking * [ale](https://github.com/w0rp/ale) * [neomake](https://github.com/neomake/neomake) * [syntastic](https://github.com/vim-syntastic/syntastic) ### Snippets and templates * [UltiSnips](https://github.com/SirVer/ultisnips) * [neosnippet](https://github.com/Shougo/neosnippet.vim) ### Tag navigation * [vim-gutentags](https://github.com/ludovicchabant/vim-gutentags) ## Alternatives The following are some alternative LaTeX plugins for Vim: * [LaTeX-Suite](http://vim-latex.sourceforge.net) The main difference between VimTeX and LaTeX-Suite (aka vim-latex) is probably that VimTeX does not try to implement a full fledged IDE for LaTeX inside Vim. E.g.: * VimTeX does not provide a full snippet feature, because this is better handled by [UltiSnips](https://github.com/SirVer/ultisnips) or [neosnippet](https://github.com/Shougo/neosnippet.vim) or similar snippet engines. * VimTeX builds upon Vim principles: It provides text objects for environments, inline math, it provides motions for sections and paragraphs * VimTeX uses `latexmk`, `latexrun`, `tectonic` or `arara` for compilation with a callback feature to get instant feedback on compilation errors * VimTeX is very modular: if you don't like a feature, you can turn it off. * [TexMagic.nvim](https://github.com/jakewvincent/texmagic.nvim) "A simple, lightweight Neovim plugin that facilitates LaTeX build engine selection via magic comments. It is designed with the TexLab LSP server's build functionality in mind, which at the time of this plugin's inception had to be specified in init.lua/init.vim and could not be set on a by-project basis." This plugin should be combined with the TexLab LSP server, and it only works on neovim. * [LaTeX-Box](https://github.com/LaTeX-Box-Team/LaTeX-Box) VimTeX currently has most of the features of LaTeX-Box, as well as some additional ones. See [here](#features) for a relatively complete list of features. One particular feature that LaTeX-Box has but VimTeX misses, is the ability to do single-shot compilation _with callback_. This functionality was removed because it adds a lot of complexity for relatively little gain (IMHO). * [AutomaticTexPlugin](http://atp-vim.sourceforge.net) * [vim-latex-live-preview](https://github.com/xuhdev/vim-latex-live-preview) For more alternatives and more information and discussions regarding LaTeX plugins for Vim, see: * [What are the differences between LaTeX plugins](http://vi.stackexchange.com/questions/2047/what-are-the-differences-between-latex-plugins) * [List of LaTeX editors (not only Vim)](https://tex.stackexchange.com/questions/339/latex-editors-ides) vimtex-2.16/VISUALS.md000066400000000000000000000251171474274247400144530ustar00rootroot00000000000000# VimTeX Visualized This page contains animated GIFs that demonstrate many of the core VimTeX editing features listed in `:help vimtex-features`. The related mappings are documented in detail at `:help vimtex-mappings`. The GIFs and accompanying descriptions are used with permission from [@ejmastnak](https://github.com/ejmastnak)'s guide to [Getting started with the VimTeX plugin](https://www.ejmastnak.com/tutorials/vim-latex/vimtex.html). Hopefully, the animations can give you a clearer mental image of what VimTeX's mappings do and how you might use them. You may want to scroll through this page while simultaneously looking through `:help vimtex-features`—the animations should nicely complement the plain-text documentation. You can find a description of how the GIFs were made [at the bottom of this page](#how-these-gifs-were-made). #### This page is community-maintained * This page is made possible only with help from the community. [@ejmastnak](https://github.com/ejmastnak), not [@lervag](https://github.com/lervag), takes primary responsibility for maintaining it, but contributions from all VimTeX users are welcome. * If you notice mistakes or outdated content (following a VimTeX update, say), feel free to open a PR to fix it yourself. Alternatively, contact [@ejmastnak](https://github.com/ejmastnak) at [ejmastnak@gmail.com](mailto:ejmastnak@gmail.com), who will be happy to help fix it. ## Table of contents * [Motion commands](#motion-commands) * [Navigating sections](#navigating-sections) * [Navigating environments](#navigating-environments) * [Navigating math zones](#navigating-math-zones) * [Navigating frames](#navigating-frames) * [Navigating matching delimiters](#navigating-matching-delimiters) * [Text objects](#text-objects) * [The math text object](#the-math-text-object) * [The section, delimiter, and command text objects](#the-section-delimiter-and-command-text-objects) * [The environment and item text objects](#the-environment-and-item-text-objects) * [Deleting surrounding LaTeX content](#deleting-surrounding-latex-content) * [Delete surrounding commands](#delete-surrounding-commands) * [Delete surrounding environments](#delete-surrounding-environments) * [Delete surrounding math zones](#delete-surrounding-math-zones) * [Delete surrounding delimiters](#delete-surrounding-delimiters) * [Changing surrounding LaTeX content](#changing-surrounding-latex-content) * [Change surrounding commands](#change-surrounding-commands) * [Change surrounding environments](#change-surrounding-environments) * [Change surrounding math zones](#change-surrounding-math-zones) * [Change surrounding delimiters](#change-surrounding-delimiters) * [Toggling commands](#toggling-commands) * [Toggling starred commands and environments](#toggling-starred-commands-and-environments) * [Toggling between inline and display math](#toggling-between-inline-and-display-math) * [Toggling delimiter modifiers](#toggling-delimiter-modifiers) * [Toggling fractions](#toggling-fractions) * [How these GIFs were made](#how-these-gifs-were-made) ## Motion commands ### Navigating sections Use `]]` to jump to the beginning of the next `\section`, `\subsection` or `\subsubsection`, whichever comes first. Use `[[` to jump backward through sections, and see the similar shortcuts `][` and `[]` in the VimTeX documentation at `:help (vimtex-][)` and `:help (vimtex-[])`. ![Navigating sections](https://github.com/lervag/vimtex-media/blob/main/gif/move/move-section.gif) ### Navigating environments Use `]m` and `[m` to jump to the next or previous environment `\begin{}` command. See the VimTeX documentation for the similar shortcuts `]M` and `[M`, described in `:help (vimtex-]M)` and `:help (vimtex-[M)`. ![Navigating environments](https://github.com/lervag/vimtex-media/blob/main/gif/move/move-environment.gif) ### Navigating math zones Use `]n` and `[n` to jump to the beginning of the next or previous math zone. See the VimTeX documentation for the similar shortcuts `]N` and `[N`, described in `:help (vimtex-]N)` and `:help (vimtex-[N)`. ![Navigating math zones](https://github.com/lervag/vimtex-media/blob/main/gif/move/move-math.gif) ### Navigating frames Use `]r` and `[r` to jump to the beginning of the next or previous Beamer `frame` environment. See the VimTeX documentation for the similar shortcuts `]R` and `[R`, described in `:help (vimtex-]R)` and `:help (vimtex-[R)`. ![Navigating frames](https://github.com/lervag/vimtex-media/blob/main/gif/move/move-frame.gif) ### Navigating matching delimiters Use `%` to move between matching delimiters, inline-math `$` delimiters, and LaTeX environments. ![Navigating matching delimiters](https://github.com/lervag/vimtex-media/blob/main/gif/move/move-matching.gif) ## Text objects VimTeX provides text objects for commands, delimiters, environments, math zones, sections, and items. The following GIFs use Vim's visual mode to show the scope of the text objects. ### The math text object The `i$` and `a$` text objects select inline math, display math, and common math environments. ![The math text object](https://github.com/lervag/vimtex-media/blob/main/gif/text-objects/obj-math.gif) ### The section, delimiter, and command text objects The `iP` and `aP` text objects select LaTeX sections (their subsection variations); the `id` and `ad` objects select delimiters (parentheses, brackets, braces...); the `ic` and `ac` objects select LaTeX commands. ![The section, delimiter, and command text objects](https://github.com/lervag/vimtex-media/blob/main/gif/text-objects/obj-sec-delim-cmd.gif) ### The environment and item text objects The `ie` and `ae` text objects select LaTeX environments and the `im` and `am` objects select items in enumerated environments. ![The environment and item text objects](https://github.com/lervag/vimtex-media/blob/main/gif/text-objects/obj-env-item.gif) ## Deleting surrounding LaTeX content ### Delete surrounding commands Use `dsc` to delete a LaTeX command while preserving the command's argument(s); the `dsc` mapping also recognizes and correctly deletes parameters inside square brackets. ![`dsc`](https://github.com/lervag/vimtex-media/blob/main/gif/change-delete/dsc.gif) ### Delete surrounding environments Use `dse` to delete the `\begin{}` and `\end{}` declaration surrounding a LaTeX environment without changing the environment contents. ![`dse`](https://github.com/lervag/vimtex-media/blob/main/gif/change-delete/dse.gif) ### Delete surrounding math zones Use `ds$` to delete surrounding math zones (display math, standard environments, and inline math) without changing the math contents. ![`ds$`](https://github.com/lervag/vimtex-media/blob/main/gif/change-delete/dsm.gif) ### Delete surrounding delimiters Use `dsd` to delete delimiters (e.g. `()`, `[]`, `{}`, *and* any of their `\left \right`, `\big \big` variants) without changing the enclosed content. ![`dsd`](https://github.com/lervag/vimtex-media/blob/main/gif/change-delete/dsd.gif) ## Changing surrounding LaTeX content ### Change surrounding commands Use `csc` to change a LaTeX command while preserving the command's argument(s). ![`csc`](https://github.com/lervag/vimtex-media/blob/main/gif/change-delete/csc.gif) ### Change surrounding environments Use `cse` to change the type of a LaTeX environment without changing the environment contents. ![`cse`](https://github.com/lervag/vimtex-media/blob/main/gif/change-delete/cse.gif) ### Change surrounding math zones Use `cs$` to change the type of surrounding math zone without changing the math contents. You can switch between display math, standard environments, and inline math. ![`cs$`](https://github.com/lervag/vimtex-media/blob/main/gif/change-delete/csm.gif) ### Change surrounding delimiters Use `csd` to change delimiters (e.g. `()`, `[]`, `{}`, and any of their `\left \right`, `\big \big` variants) without changing the enclosed content; the `csd` command is "smart" and correctly recognizes and preserves `\left \right`-style modifiers. ![`csd`](https://github.com/lervag/vimtex-media/blob/main/gif/change-delete/csd.gif) ## Toggling commands ### Toggling starred commands and environments Use `tsc` and `tse` to toggle between starred and un-starred versions of commands and environments, respectively. ![`tsc` and `tse`](https://github.com/lervag/vimtex-media/blob/main/gif/toggle/tsc-tse.gif) ### Toggling between inline and display math Use `ts$` to toggle between inline math, display math, and standard math environments. ![`ts$`](https://github.com/lervag/vimtex-media/blob/main/gif/toggle/tsm.gif) ### Toggling delimiter modifiers Use `tsd` to change between plain and `\left`/`\right` versions of delimiters. Use the `g:vimtex_delim_toggle_mod_list` variable to add more modifiers to the delimiter toggle list. (e.g. `\big` as in the GIF below) ![`tsd`](https://github.com/lervag/vimtex-media/blob/main/gif/toggle/tsd.gif) ### Toggling fractions Use `tsf` to toggle between inline and `\frac{}{}` versions of fractions. ![`tsf`](https://github.com/lervag/vimtex-media/blob/main/gif/toggle/tsf.gif) ## How these GIFs were made (Based on interest and discussion in issue [#2685](https://github.com/lervag/vimtex/issues/2685).) The basic toolkit is [Menyoki](https://github.com/orhun/menyoki) for recording the GIFs and [screenkey](https://gitlab.com/screenkey/screenkey) to display the keys being typed, all running on a Linux system using the X11 window system. On top of this are some aesthetic details to make the GIFs look nicer, including: - [Goyo](https://github.com/junegunn/goyo.vim) to remove Vim peripherals (status bar, line numbers, etc.) for a cleaner look - [Limelight](https://github.com/junegunn/limelight.vim) to draw focus to the currently selected paragraph (and gray out the rest of the document) - Screen recording region (crop, basically) set via Menyoki to exactly capture the terminal window (and not e.g. the rest of my desktop) - Enlarged terminal font for the duration of the GIF recording for better readability - Vim and screenkey color schemes and fonts aligned for visual consistency. The aesthetic details and cropping are wrapped in shell scripts for repeatability across multiple GIF recordings—the original scripts and auxiliary files can be found in the GitHub repo [ejmastnak/ejmastnak.github.io](https://github.com/ejmastnak/ejmastnak.github.io/tree/main/tutorials/vim-latex/gifs), although they might be difficult to parse without additional context. Feel free to contact [@ejmastnak](https://github.com/ejmastnak) if you're interested in the details or recording similar GIFs. vimtex-2.16/after/000077500000000000000000000000001474274247400140765ustar00rootroot00000000000000vimtex-2.16/after/ftplugin/000077500000000000000000000000001474274247400157265ustar00rootroot00000000000000vimtex-2.16/after/ftplugin/tex.vim000066400000000000000000000013151474274247400172430ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " if !get(g:, 'vimtex_enabled', 1) finish endif if exists('b:did_ftplugin_vimtex') finish endif let b:did_ftplugin_vimtex = 1 " Check for plugin clashes. " Note: This duplicates the code in health/vimtex.vim:s:check_plugin_clash() let s:scriptnames = vimtex#util#command('scriptnames') let s:latexbox = !empty(filter(copy(s:scriptnames), "v:val =~# 'latex-box'")) if s:latexbox call vimtex#log#warning([ \ 'Conflicting plugin detected: LaTeX-Box', \ 'VimTeX does not work as expected when LaTeX-Box is installed!', \ 'Please disable or remove it to use VimTeX!', \]) endif vimtex-2.16/assets/000077500000000000000000000000001474274247400142775ustar00rootroot00000000000000vimtex-2.16/assets/json/000077500000000000000000000000001474274247400152505ustar00rootroot00000000000000vimtex-2.16/assets/json/fontawesome.json000066400000000000000000001047221474274247400205000ustar00rootroot00000000000000{ "regular": { "accessible-icon": "", "accusoft": "", "acquisitions-incorporated": "", "ad": "", "address-book": "", "address-card": "", "adjust": "", "adn": "", "adversal": "", "affiliatetheme": "", "air-freshener": "", "airbnb": "", "algolia": "", "align-center": "", "align-justify": "", "align-left": "", "align-right": "", "alipay": "", "allergies": "", "amazon": "", "amazon-pay": "", "ambulance": "", "american-sign-language-interpreting": "", "amilia": "", "anchor": "", "android": "", "angellist": "", "angle-double-down": "", "angle-double-left": "", "angle-double-right": "", "angle-double-up": "", "angle-down": "", "angle-left": "", "angle-right": "", "angle-up": "", "angry": "", "angrycreative": "", "angular": "", "ankh": "", "app-store": "", "app-store-ios": "", "apper": "", "apple": "", "apple-pay": "", "archive": "", "archway": "", "arrow-alt-circle-down": "", "arrow-alt-circle-left": "", "arrow-alt-circle-right": "", "arrow-alt-circle-up": "", "arrow-circle-down": "", "arrow-circle-left": "", "arrow-circle-right": "", "arrow-circle-up": "", "arrow-down": "", "arrow-left": "", "arrow-right": "", "arrow-up": "", "arrows-alt-h": "", "arrows-alt-v": "", "artstation": "", "assistive-listening-systems": "", "asterisk": "", "asymmetrik": "", "at": "", "atlas": "", "atlassian": "", "atom": "", "audible": "", "audio-description": "", "autoprefixer": "", "avianex": "", "aviato": "", "award": "", "aws": "", "baby": "", "baby-carriage": "", "backspace": "", "backward": "", "bacon": "", "bacteria": "", "bacterium": "", "bahai": "", "balance-scale": "", "balance-scale-left": "", "balance-scale-right": "", "ban": "", "band-aid": "", "bandcamp": "", "barcode": "", "bars": "", "baseball-ball": "", "basketball-ball": "", "bath": "", "battery-empty": "", "battery-full": "", "battery-half": "", "battery-quarter": "", "battery-three-quarters": "", "battle-net": "", "bed": "", "beer": "", "behance": "", "behance-square": "", "bell": "", "bell-slash": "", "bezier-curve": "", "bible": "", "bicycle": "", "biking": "", "bimobject": "", "binoculars": "", "biohazard": "", "birthday-cake": "", "bitbucket": "", "bitcoin": "", "bity": "", "black-tie": "", "blackberry": "", "blender": "", "blender-phone": "", "blind": "", "blog": "", "blogger": "", "blogger-b": "", "bluetooth": "", "bluetooth-b": "", "bold": "", "bolt": "", "bomb": "", "bone": "", "bong": "", "book": "", "book-dead": "", "book-medical": "", "book-open": "", "book-reader": "", "bookmark": "", "bootstrap": "", "border-all": "", "border-none": "", "border-style": "", "bowling-ball": "", "box": "", "box-open": "", "box-tissue": "", "boxes": "", "braille": "", "brain": "", "bread-slice": "", "briefcase": "", "briefcase-medical": "", "broadcast-tower": "", "broom": "", "brush": "", "btc": "", "buffer": "", "bug": "", "building": "", "bullhorn": "", "bullseye": "", "burn": "", "buromobelexperte": "", "bus": "", "business-time": "", "buy-n-large": "", "calculator": "", "calendar": "", "calendar-check": "", "calendar-day": "", "calendar-minus": "", "calendar-plus": "", "calendar-times": "", "calendar-week": "", "camera": "", "camera-retro": "", "campground": "", "canadian-maple-leaf": "", "candy-cane": "", "cannabis": "", "capsules": "", "car": "", "car-battery": "", "car-crash": "", "car-side": "", "caravan": "", "caret-down": "", "caret-left": "", "caret-right": "", "caret-square-down": "", "caret-square-left": "", "caret-square-right": "", "caret-square-up": "", "caret-up": "", "carrot": "", "cart-arrow-down": "", "cart-plus": "", "cash-register": "", "cat": "", "cc-amazon-pay": "", "cc-amex": "", "cc-apple-pay": "", "cc-diners-club": "", "cc-discover": "", "cc-jcb": "", "cc-mastercard": "", "cc-paypal": "", "cc-stripe": "", "cc-visa": "", "centercode": "", "centos": "", "certificate": "", "chair": "", "chalkboard": "", "chalkboard-teacher": "", "charging-station": "", "chart-area": "", "chart-bar": "", "chart-line": "", "chart-pie": "", "check": "", "check-circle": "", "check-double": "", "check-square": "", "cheese": "", "chess": "", "chess-bishop": "", "chess-board": "", "chess-king": "", "chess-knight": "", "chess-pawn": "", "chess-queen": "", "chess-rook": "", "chevron-circle-down": "", "chevron-circle-left": "", "chevron-circle-right": "", "chevron-circle-up": "", "chevron-down": "", "chevron-left": "", "chevron-right": "", "chevron-up": "", "child": "", "chrome": "", "chromecast": "", "church": "", "circle": "", "circle-notch": "", "city": "", "clinic-medical": "", "clipboard": "", "clipboard-check": "", "clipboard-list": "", "clock": "", "clone": "", "closed-captioning": "", "cloud": "", "cloud-meatball": "", "cloud-moon": "", "cloud-moon-rain": "", "cloud-rain": "", "cloud-showers-heavy": "", "cloud-sun": "", "cloud-sun-rain": "", "cloudflare": "", "cloudscale": "", "cloudsmith": "", "cloudversify": "", "cocktail": "", "code": "", "code-branch": "", "codepen": "", "codiepie": "", "coffee": "", "cog": "", "cogs": "", "coins": "", "columns": "", "comment": "", "comment-dollar": "", "comment-dots": "", "comment-medical": "", "comment-slash": "", "comments": "", "comments-dollar": "", "compact-disc": "", "compass": "", "compress": "", "concierge-bell": "", "confluence": "", "connectdevelop": "", "contao": "", "cookie": "", "cookie-bite": "", "copy": "", "copyright": "", "cotton-bureau": "", "couch": "", "cpanel": "", "creative-commons": "", "creative-commons-by": "", "creative-commons-nc": "", "creative-commons-nc-eu": "", "creative-commons-nc-jp": "", "creative-commons-nd": "", "creative-commons-pd": "", "creative-commons-remix": "", "creative-commons-sa": "", "creative-commons-sampling": "", "creative-commons-sampling-plus": "", "creative-commons-share": "", "creative-commons-zero": "", "credit-card": "", "critical-role": "", "crop": "", "cross": "", "crosshairs": "", "crow": "", "crown": "", "crutch": "", "css3": "", "cube": "", "cubes": "", "cut": "", "cuttlefish": "", "d-and-d": "", "d-and-d-beyond": "", "dailymotion": "", "dashcube": "", "database": "", "deaf": "", "deezer": "", "delicious": "", "democrat": "", "deploydog": "", "deskpro": "", "desktop": "", "dev": "", "deviantart": "", "dharmachakra": "", "dhl": "", "diagnoses": "", "diaspora": "", "dice": "", "dice-d20": "", "dice-d6": "", "dice-five": "", "dice-four": "", "dice-one": "", "dice-six": "", "dice-three": "", "dice-two": "", "digg": "", "digital-ocean": "", "digital-tachograph": "", "directions": "", "discord": "", "discourse": "", "disease": "", "divide": "", "dizzy": "", "dna": "", "dochub": "", "docker": "", "dog": "", "dollar-sign": "", "dolly": "", "dolly-flatbed": "", "donate": "", "door-closed": "", "door-open": "", "dot-circle": "", "dove": "", "download": "", "draft2digital": "", "drafting-compass": "", "dragon": "", "draw-polygon": "", "dribbble": "", "dribbble-square": "", "dropbox": "", "drum": "", "drum-steelpan": "", "drumstick-bite": "", "drupal": "", "dumbbell": "", "dumpster": "", "dumpster-fire": "", "dungeon": "", "dyalog": "", "earlybirds": "", "ebay": "", "edge": "", "edge-legacy": "", "edit": "", "egg": "", "eject": "", "elementor": "", "ellipsis-h": "", "ellipsis-v": "", "ello": "", "ember": "", "empire": "", "envelope": "", "envelope-open": "", "envelope-open-text": "", "envelope-square": "", "envira": "", "equals": "", "eraser": "", "erlang": "", "ethereum": "", "ethernet": "", "etsy": "", "euro-sign": "", "evernote": "", "exclamation": "", "exclamation-circle": "", "exclamation-triangle": "", "expand": "", "expeditedssl": "", "eye": "", "eye-dropper": "", "eye-slash": "", "facebook": "", "facebook-f": "", "facebook-messenger": "", "facebook-square": "", "fan": "", "fantasy-flight-games": "", "fast-backward": "", "fast-forward": "", "faucet": "", "fax": "", "feather": "", "fedex": "", "fedora": "", "female": "", "fighter-jet": "", "figma": "", "file": "", "file-archive": "", "file-audio": "", "file-code": "", "file-contract": "", "file-csv": "", "file-download": "", "file-excel": "", "file-export": "", "file-image": "", "file-import": "", "file-invoice": "", "file-invoice-dollar": "", "file-medical": "", "file-pdf": "", "file-powerpoint": "", "file-prescription": "", "file-signature": "", "file-upload": "", "file-video": "", "file-word": "", "fill": "", "fill-drip": "", "film": "", "filter": "", "fingerprint": "", "fire": "", "fire-extinguisher": "", "firefox": "", "firefox-browser": "", "first-aid": "", "first-order": "", "firstdraft": "", "fish": "", "fist-raised": "", "flag": "", "flag-checkered": "", "flag-usa": "", "flask": "", "flickr": "", "flipboard": "", "flushed": "", "fly": "", "folder": "", "folder-minus": "", "folder-open": "", "folder-plus": "", "font": "", "font-awesome": "", "font-awesome-flag": "", "fonticons": "", "fonticons-fi": "", "football-ball": "", "fort-awesome": "", "forumbee": "", "forward": "", "foursquare": "", "free-code-camp": "", "freebsd": "", "frog": "", "frown": "", "frown-open": "", "fulcrum": "", "funnel-dollar": "", "futbol": "", "galactic-republic": "", "galactic-senate": "", "gamepad": "", "gas-pump": "", "gavel": "", "gem": "", "genderless": "", "get-pocket": "", "gg": "", "gg-circle": "", "ghost": "", "gift": "", "gifts": "", "git": "", "git-square": "", "github": "", "github-square": "", "gitkraken": "", "gitlab": "", "gitter": "", "glass-cheers": "", "glass-martini": "", "glass-whiskey": "", "glasses": "", "glide": "", "glide-g": "", "globe": "", "globe-africa": "", "globe-americas": "", "globe-asia": "", "globe-europe": "", "gofore": "", "golf-ball": "", "goodreads": "", "goodreads-g": "", "google": "", "google-drive": "", "google-pay": "", "google-play": "", "google-plus": "", "google-plus-g": "", "google-plus-square": "", "google-wallet": "", "gopuram": "", "graduation-cap": "", "gratipay": "", "grav": "", "greater-than": "", "greater-than-equal": "", "grimace": "", "grin": "", "grin-beam": "", "grin-beam-sweat": "", "grin-hearts": "", "grin-squint": "", "grin-squint-tears": "", "grin-stars": "", "grin-tears": "", "grin-tongue": "", "grin-tongue-squint": "", "grin-tongue-wink": "", "grin-wink": "", "grip-horizontal": "", "grip-lines": "", "grip-lines-vertical": "", "grip-vertical": "", "gripfire": "", "grunt": "", "guilded": "", "guitar": "", "gulp": "", "h-square": "", "hacker-news": "", "hacker-news-square": "", "hackerrank": "", "hamburger": "", "hammer": "", "hamsa": "", "hand-holding": "", "hand-holding-heart": "", "hand-holding-medical": "", "hand-holding-usd": "", "hand-holding-water": "", "hand-lizard": "", "hand-middle-finger": "", "hand-paper": "", "hand-peace": "", "hand-point-down": "", "hand-point-left": "", "hand-point-right": "", "hand-point-up": "", "hand-pointer": "", "hand-rock": "", "hand-scissors": "", "hand-sparkles": "", "hand-spock": "", "hands": "", "hands-helping": "", "hands-wash": "", "handshake": "", "handshake-alt-slash": "", "handshake-slash": "", "hanukiah": "", "hard-hat": "", "hashtag": "", "hat-cowboy": "", "hat-cowboy-side": "", "hat-wizard": "", "hdd": "", "head-side-cough": "", "head-side-cough-slash": "", "head-side-mask": "", "head-side-virus": "", "heading": "", "headphones": "", "headset": "", "heart": "", "heart-broken": "", "heartbeat": "", "helicopter": "", "highlighter": "", "hiking": "", "hippo": "", "hips": "", "hire-a-helper": "", "history": "", "hive": "", "hockey-puck": "", "holly-berry": "", "home": "", "hooli": "", "hornbill": "", "horse": "", "horse-head": "", "hospital": "", "hospital-symbol": "", "hospital-user": "", "hot-tub": "", "hotdog": "", "hotel": "", "hotjar": "", "hourglass": "", "hourglass-end": "", "hourglass-half": "", "hourglass-start": "", "house-damage": "", "house-user": "", "houzz": "", "hryvnia": "", "html5": "", "hubspot": "", "i-cursor": "", "ice-cream": "", "icicles": "", "icons": "", "id-badge": "", "id-card": "", "ideal": "", "igloo": "", "image": "", "images": "", "imdb": "", "inbox": "", "indent": "", "industry": "", "infinity": "", "info": "", "info-circle": "", "innosoft": "", "instagram": "", "instagram-square": "", "instalod": "", "intercom": "", "internet-explorer": "", "invision": "", "ioxhost": "", "italic": "", "itch-io": "", "itunes": "", "itunes-note": "", "java": "", "jedi": "", "jedi-order": "", "jenkins": "", "jira": "", "joget": "", "joint": "", "joomla": "", "journal-whills": "", "js": "", "js-square": "", "jsfiddle": "", "kaaba": "", "kaggle": "", "key": "", "keybase": "", "keyboard": "", "keycdn": "", "khanda": "", "kickstarter": "", "kickstarter-k": "", "kiss": "", "kiss-beam": "", "kiss-wink-heart": "", "kiwi-bird": "", "korvue": "", "landmark": "", "language": "", "laptop": "", "laptop-code": "", "laptop-house": "", "laptop-medical": "", "laravel": "", "lastfm": "", "lastfm-square": "", "laugh": "", "laugh-beam": "", "laugh-squint": "", "laugh-wink": "", "layer-group": "", "leaf": "", "leanpub": "", "lemon": "", "less": "", "less-than": "", "less-than-equal": "", "life-ring": "", "lightbulb": "", "line": "", "link": "", "linkedin": "", "linkedin-in": "", "linode": "", "linux": "", "lira-sign": "", "list": "", "list-ol": "", "list-ul": "", "location-arrow": "", "lock": "", "lock-open": "", "long-arrow-alt-down": "", "long-arrow-alt-left": "", "long-arrow-alt-right": "", "long-arrow-alt-up": "", "low-vision": "", "luggage-cart": "", "lungs": "", "lungs-virus": "", "lyft": "", "magento": "", "magic": "", "magnet": "", "mail-bulk": "", "mailchimp": "", "male": "", "mandalorian": "", "map": "", "map-marked": "", "map-marker": "", "map-pin": "", "map-signs": "", "markdown": "", "marker": "", "mars": "", "mars-double": "", "mars-stroke": "", "mars-stroke-h": "", "mars-stroke-v": "", "mask": "", "mastodon": "", "maxcdn": "", "mdb": "", "medal": "", "medapps": "", "medium": "", "medium-m": "", "medkit": "", "medrt": "", "meetup": "", "megaport": "", "meh": "", "meh-blank": "", "meh-rolling-eyes": "", "memory": "", "mendeley": "", "menorah": "", "mercury": "", "meteor": "", "microblog": "", "microchip": "", "microphone": "", "microphone-alt-slash": "", "microphone-slash": "", "microscope": "", "microsoft": "", "minus": "", "minus-circle": "", "minus-square": "", "mitten": "", "mix": "", "mixcloud": "", "mixer": "", "mizuni": "", "mobile": "", "modx": "", "monero": "", "money-bill": "", "money-bill-wave": "", "money-check": "", "monument": "", "moon": "", "mortar-pestle": "", "mosque": "", "motorcycle": "", "mountain": "", "mouse": "", "mouse-pointer": "", "mug-hot": "", "music": "", "napster": "", "neos": "", "network-wired": "", "neuter": "", "newspaper": "", "nimblr": "", "node": "", "node-js": "", "not-equal": "", "notes-medical": "", "npm": "", "ns8": "", "nutritionix": "", "object-group": "", "object-ungroup": "", "octopus-deploy": "", "odnoklassniki": "", "odnoklassniki-square": "", "oil-can": "", "old-republic": "", "om": "", "opencart": "", "openid": "", "opera": "", "optin-monster": "", "orcid": "", "osi": "", "otter": "", "outdent": "", "page4": "", "pagelines": "", "pager": "", "paint-brush": "", "paint-roller": "", "palette": "", "palfed": "", "pallet": "", "paper-plane": "", "paperclip": "", "parachute-box": "", "paragraph": "", "parking": "", "passport": "", "pastafarianism": "", "paste": "", "patreon": "", "pause": "", "pause-circle": "", "paw": "", "paypal": "", "peace": "", "pen": "", "pen-fancy": "", "pen-nib": "", "pen-square": "", "pencil-ruler": "", "penny-arcade": "", "people-arrows": "", "people-carry": "", "pepper-hot": "", "perbyte": "", "percent": "", "percentage": "", "periscope": "", "person-booth": "", "phabricator": "", "phoenix-framework": "", "phoenix-squadron": "", "phone": "", "phone-slash": "", "phone-square": "", "phone-volume": "", "photo-video": "", "php": "", "pied-piper": "", "pied-piper-hat": "", "pied-piper-pp": "", "pied-piper-square": "", "piggy-bank": "", "pills": "", "pinterest": "", "pinterest-p": "", "pinterest-square": "", "pizza-slice": "", "place-of-worship": "", "plane": "", "plane-arrival": "", "plane-departure": "", "plane-slash": "", "play": "", "play-circle": "", "playstation": "", "plug": "", "plus": "", "plus-circle": "", "plus-square": "", "podcast": "", "poll": "", "poll-h": "", "poo": "", "poo-storm": "", "poop": "", "portrait": "", "pound-sign": "", "power-off": "", "pray": "", "praying-hands": "", "prescription": "", "prescription-bottle": "", "print": "", "procedures": "", "product-hunt": "", "project-diagram": "", "pump-medical": "", "pump-soap": "", "pushed": "", "puzzle-piece": "", "python": "", "qq": "", "qrcode": "", "question": "", "question-circle": "", "quidditch": "", "quinscape": "", "quora": "", "quote-left": "", "quote-right": "", "quran": "", "r-project": "", "radiation": "", "rainbow": "", "random": "", "raspberry-pi": "", "ravelry": "", "react": "", "reacteurope": "", "readme": "", "rebel": "", "receipt": "", "record-vinyl": "", "recycle": "", "red-river": "", "reddit": "", "reddit-alien": "", "reddit-square": "", "redhat": "", "redo": "", "registered": "", "remove-format": "", "renren": "", "reply": "", "reply-all": "", "replyd": "", "republican": "", "researchgate": "", "resolving": "", "restroom": "", "retweet": "", "rev": "", "ribbon": "", "ring": "", "road": "", "robot": "", "rocket": "", "rocketchat": "", "rockrms": "", "route": "", "rss": "", "rss-square": "", "ruble-sign": "", "ruler": "", "ruler-combined": "", "ruler-horizontal": "", "ruler-vertical": "", "running": "", "rupee-sign": "", "rust": "", "sad-cry": "", "sad-tear": "", "safari": "", "salesforce": "", "sass": "", "satellite": "", "satellite-dish": "", "save": "", "schlix": "", "school": "", "screwdriver": "", "scribd": "", "scroll": "", "sd-card": "", "search": "", "search-dollar": "", "search-location": "", "search-minus": "", "search-plus": "", "searchengin": "", "seedling": "", "sellcast": "", "sellsy": "", "server": "", "servicestack": "", "shapes": "", "share": "", "share-alt-square": "", "share-square": "", "shekel-sign": "", "shield-virus": "", "ship": "", "shipping-fast": "", "shirtsinbulk": "", "shoe-prints": "", "shopify": "", "shopping-bag": "", "shopping-basket": "", "shopping-cart": "", "shopware": "", "shower": "", "shuttle-van": "", "sign": "", "sign-language": "", "signal": "", "signature": "", "sim-card": "", "simplybuilt": "", "sink": "", "sistrix": "", "sitemap": "", "sith": "", "skating": "", "sketch": "", "skiing": "", "skiing-nordic": "", "skull": "", "skull-crossbones": "", "skyatlas": "", "skype": "", "slack": "", "slack-hash": "", "slash": "", "sleigh": "", "sliders-h": "", "slideshare": "", "smile": "", "smile-beam": "", "smile-wink": "", "smog": "", "smoking": "", "smoking-ban": "", "sms": "", "snapchat": "", "snapchat-ghost": "", "snapchat-square": "", "snowboarding": "", "snowflake": "", "snowman": "", "snowplow": "", "soap": "", "socks": "", "solar-panel": "", "sort": "", "sort-alpha-down": "", "sort-alpha-up": "", "sort-amount-down": "", "sort-amount-up": "", "sort-down": "", "sort-numeric-down": "", "sort-numeric-up": "", "sort-up": "", "soundcloud": "", "sourcetree": "", "spa": "", "space-shuttle": "", "speakap": "", "speaker-deck": "", "spell-check": "", "spider": "", "spinner": "", "splotch": "", "spotify": "", "spray-can": "", "square": "", "square-full": "", "squarespace": "", "stack-exchange": "", "stack-overflow": "", "stackpath": "", "stamp": "", "star": "", "star-and-crescent": "", "star-half": "", "star-of-david": "", "star-of-life": "", "staylinked": "", "steam": "", "steam-square": "", "steam-symbol": "", "step-backward": "", "step-forward": "", "stethoscope": "", "sticker-mule": "", "sticky-note": "", "stop": "", "stop-circle": "", "stopwatch": "", "stopwatch-20": "", "store": "", "store-alt-slash": "", "store-slash": "", "strava": "", "stream": "", "street-view": "", "strikethrough": "", "stripe": "", "stripe-s": "", "stroopwafel": "", "studiovinari": "", "stumbleupon": "", "stumbleupon-circle": "", "subscript": "", "subway": "", "suitcase": "", "suitcase-rolling": "", "sun": "", "superpowers": "", "superscript": "", "supple": "", "surprise": "", "suse": "", "swatchbook": "", "swift": "", "swimmer": "", "swimming-pool": "", "symfony": "", "synagogue": "", "sync": "", "syringe": "", "table": "", "table-tennis": "", "tablet": "", "tablets": "", "tag": "", "tags": "", "tape": "", "tasks": "", "taxi": "", "teamspeak": "", "teeth": "", "teeth-open": "", "telegram": "", "telegram-plane": "", "temperature-high": "", "temperature-low": "", "tencent-weibo": "", "tenge": "", "terminal": "", "text-height": "", "text-width": "", "th": "", "th-large": "", "th-list": "", "the-red-yeti": "", "theater-masks": "", "themeco": "", "themeisle": "", "thermometer": "", "thermometer-empty": "", "thermometer-full": "", "thermometer-half": "", "thermometer-quarter": "", "thermometer-three-quarters": "", "think-peaks": "", "thumbs-down": "", "thumbs-up": "", "thumbtack": "", "tiktok": "", "times": "", "times-circle": "", "tint": "", "tint-slash": "", "tired": "", "toggle-off": "", "toggle-on": "", "toilet": "", "toilet-paper": "", "toilet-paper-slash": "", "toolbox": "", "tools": "", "tooth": "", "torah": "", "torii-gate": "", "tractor": "", "trade-federation": "", "trademark": "", "traffic-light": "", "trailer": "", "train": "", "tram": "", "transgender": "", "trash": "", "trash-restore": "", "tree": "", "trello": "", "trophy": "", "truck": "", "truck-loading": "", "truck-monster": "", "truck-moving": "", "truck-pickup": "", "tshirt": "", "tty": "", "tumblr": "", "tumblr-square": "", "tv": "", "twitch": "", "twitter": "", "twitter-square": "", "typo3": "", "uber": "", "ubuntu": "", "uikit": "", "umbraco": "", "umbrella": "", "umbrella-beach": "", "uncharted": "", "underline": "", "undo": "", "uniregistry": "", "unity": "", "universal-access": "", "university": "", "unlink": "", "unlock": "", "unsplash": "", "untappd": "", "upload": "", "ups": "", "usb": "", "user": "", "user-alt-slash": "", "user-astronaut": "", "user-check": "", "user-circle": "", "user-clock": "", "user-cog": "", "user-edit": "", "user-friends": "", "user-graduate": "", "user-injured": "", "user-lock": "", "user-md": "", "user-minus": "", "user-ninja": "", "user-nurse": "", "user-plus": "", "user-secret": "", "user-shield": "", "user-slash": "", "user-tag": "", "user-tie": "", "user-times": "", "users": "", "users-cog": "", "users-slash": "", "usps": "", "ussunnah": "", "utensil-spoon": "", "utensils": "", "vaadin": "", "vector-square": "", "venus": "", "venus-double": "", "venus-mars": "", "vest": "", "vest-patches": "", "viacoin": "", "viadeo": "", "viadeo-square": "", "vial": "", "vials": "", "viber": "", "video": "", "video-slash": "", "vihara": "", "vimeo": "", "vimeo-square": "", "vimeo-v": "", "vine": "", "virus": "", "virus-slash": "", "viruses": "", "vk": "", "vnv": "", "voicemail": "", "volleyball-ball": "", "volume-down": "", "volume-mute": "", "volume-off": "", "volume-up": "", "vote-yea": "", "vr-cardboard": "", "vuejs": "", "walking": "", "wallet": "", "warehouse": "", "watchman-monitoring": "", "water": "", "wave-square": "", "waze": "", "weebly": "", "weibo": "", "weight": "", "weight-hanging": "", "weixin": "", "whatsapp": "", "whatsapp-square": "", "wheelchair": "", "whmcs": "", "wifi": "", "wikipedia-w": "", "wind": "", "window-close": "", "window-maximize": "", "window-minimize": "", "window-restore": "", "windows": "", "wine-bottle": "", "wine-glass": "", "wix": "", "wizards-of-the-coast": "", "wodu": "", "wolf-pack-battalion": "", "won-sign": "", "wordpress": "", "wordpress-simple": "", "wpbeginner": "", "wpexplorer": "", "wpforms": "", "wpressr": "", "wrench": "", "x-ray": "", "xbox": "", "xing": "", "xing-square": "", "y-combinator": "", "yahoo": "", "yammer": "", "yandex": "", "yandex-international": "", "yarn": "", "yelp": "", "yen-sign": "", "yin-yang": "", "yoast": "", "youtube": "", "youtube-square": "", "zhihu": "" }, "starred": { "apple": "", "arrows": "", "bus": "", "calendar": "", "car": "", "cloud-download": "", "cloud-upload": "", "comment": "", "compress": "", "compress-arrows": "", "creative-commons-pd": "", "crop": "", "css3": "", "exchange": "", "expand": "", "expand-arrows": "", "external-link": "", "external-link-square": "", "feather": "", "file": "", "file-medical": "", "fire": "", "first-order": "", "font-awesome": "", "fort-awesome": "", "git": "", "github": "", "glass-martini": "", "grin": "", "headphones": "", "hospital": "", "id-card": "", "level-down": "", "level-up": "", "list": "", "map-marked": "", "map-marker": "", "microphone": "", "mobile": "", "money-bill": "", "money-bill-wave": "", "money-check": "", "pen": "", "pencil": "", "phone": "", "phone-square": "", "pied-piper": "", "prescription-bottle": "", "radiation": "", "redo": "", "share": "", "shield": "", "sign-in": "", "sign-out": "", "sort-alpha-down": "", "sort-alpha-up": "", "sort-amount-down": "", "sort-amount-up": "", "sort-numeric-down": "", "sort-numeric-up": "", "square-root": "", "star-half": "", "store": "", "sync": "", "tablet": "", "tachometer": "", "ticket": "", "transgender": "", "trash": "", "trash-restore": "", "undo": "", "unlock": "", "user": "", "wine-glass": "" } } vimtex-2.16/autoload/000077500000000000000000000000001474274247400146055ustar00rootroot00000000000000vimtex-2.16/autoload/health/000077500000000000000000000000001474274247400160525ustar00rootroot00000000000000vimtex-2.16/autoload/health/vimtex.vim000066400000000000000000000113171474274247400201060ustar00rootroot00000000000000function! health#vimtex#check() abort call vimtex#options#init() call v:lua.vim.health.start('VimTeX') call s:check_general() call s:check_plugin_clash() call s:check_view() call s:check_compiler() endfunction function! s:check_general() abort " {{{1 if !has('nvim') || v:version < 800 call v:lua.vim.health.warn('VimTeX works best with Vim 8 or neovim') else call v:lua.vim.health.ok('Vim version should have full support!') endif if !executable('bibtex') call v:lua.vim.health.warn('bibtex is not executable!', \ 'bibtex is required for cite completions.') endif if !executable('biber') call v:lua.vim.health.warn( \ 'biber is not executable!', \ 'Biber is often required so this may give unexpected problems.') endif endfunction " }}}1 function! s:check_compiler() abort " {{{1 if !g:vimtex_compiler_enabled | return | endif if !executable(g:vimtex_compiler_method) let l:ind = ' ' call v:lua.vim.health.error(printf( \ '|g:vimtex_compiler_method| (`%s`) is not executable!', \ g:vimtex_compiler_method)) return endif call v:lua.vim.health.ok('Compiler should work!') endfunction " }}}1 function! s:check_plugin_clash() abort " {{{1 " Note: This duplicates the code in after/ftplugin/tex.vim let l:scriptnames = vimtex#util#command('scriptnames') let l:latexbox = !empty(filter(copy(l:scriptnames), "v:val =~# 'latex-box'")) if l:latexbox call v:lua.vim.health.warn('Conflicting plugin detected: LaTeX-Box') call v:lua.vim.health.info('VimTeX does not work as expected when LaTeX-Box is installed!') call v:lua.vim.health.info('Please disable or remove it to use VimTeX!') endif endfunction " }}}1 function! s:check_view() abort " {{{1 call s:check_view_{g:vimtex_view_method}() if executable('xdotool') && !executable('pstree') call v:lua.vim.health.warn('pstree is not available', \ 'vimtex#view#inverse_search is better if pstree is available.') endif endfunction " }}}1 function! s:check_view_general() abort " {{{1 if executable(g:vimtex_view_general_viewer) call v:lua.vim.health.ok('General viewer should work properly!') else call v:lua.vim.health.error( \ 'Selected viewer is not executable!', \ '- Selection: ' . g:vimtex_view_general_viewer, \ '- Please see :h g:vimtex_view_general_viewer') endif endfunction " }}}1 function! s:check_view_zathura() abort " {{{1 let l:ok = 1 if !executable('zathura') call v:lua.vim.health.error('Zathura is not executable!') let l:ok = 0 endif if !executable('xdotool') call v:lua.vim.health.warn('Zathura requires xdotool for forward search!') let l:ok = 0 endif if l:ok call v:lua.vim.health.ok('Zathura should work properly!') endif endfunction " }}}1 function! s:check_view_zathura_simple() abort " {{{1 let l:ok = 1 if !executable('zathura') call v:lua.vim.health.error('Zathura is not executable!') let l:ok = 0 endif if l:ok call v:lua.vim.health.ok('Zathura should work properly!') endif endfunction " }}}1 function! s:check_view_mupdf() abort " {{{1 let l:ok = 1 if !executable('mupdf') call v:lua.vim.health.error('MuPDF is not executable!') let l:ok = 0 endif if !executable('xdotool') call v:lua.vim.health.warn('MuPDF requires xdotool for forward search!') let l:ok = 0 endif if !executable('synctex') call v:lua.vim.health.warn('MuPDF requires synctex for forward search!') let l:ok = 0 endif if l:ok call v:lua.vim.health.ok('MuPDF should work properly!') endif endfunction " }}}1 function! s:check_view_sioyek() abort " {{{1 let l:ok = 1 if !executable(g:vimtex_view_sioyek_exe) call v:lua.vim.health.error('Sioyek is not executable!') let l:ok = 0 endif if l:ok call v:lua.vim.health.ok('Sioyek should work properly!') endif endfunction " }}}1 function! s:check_view_skim() abort " {{{1 call vimtex#jobs#run(join([ \ 'osascript -e ', \ '''tell application "Finder" to POSIX path of ', \ '(get application file id (id of application "Skim") as alias)''', \])) if v:shell_error == 0 call v:lua.vim.health.ok('Skim viewer should work!') else call v:lua.vim.health.error('Skim is not installed!') endif endfunction " }}}1 function! s:check_view_texshop() abort " {{{1 let l:cmd = join([ \ 'osascript -e ', \ '''tell application "Finder" to POSIX path of ', \ '(get application file id (id of application "TeXShop") as alias)''', \]) if system(l:cmd) call v:lua.vim.health.error('TeXShop is not installed!') else call v:lua.vim.health.ok('TeXShop viewer should work!') endif endfunction " }}}1 vimtex-2.16/autoload/unite/000077500000000000000000000000001474274247400157315ustar00rootroot00000000000000vimtex-2.16/autoload/unite/sources/000077500000000000000000000000001474274247400174145ustar00rootroot00000000000000vimtex-2.16/autoload/unite/sources/vimtex.vim000066400000000000000000000051011474274247400214420ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " let s:save_cpo = &cpo set cpo&vim let s:source = { \ 'name' : 'vimtex', \ 'sorters' : 'sorter_nothing', \ 'default_kind' : 'jump_list', \ 'syntax' : 'uniteSource__vimtex', \ 'entries' : [], \ 'maxlevel' : 1, \ 'hooks' : {}, \} function! s:source.gather_candidates(args, context) abort " {{{1 if exists('b:vimtex') let s:source.entries = vimtex#parser#toc() let s:source.maxlevel = max(map(copy(s:source.entries), 'v:val.level')) endif return map(copy(s:source.entries), \ 's:create_candidate(v:val, s:source.maxlevel)') endfunction " }}}1 function! s:source.hooks.on_syntax(args, context) abort " {{{1 syntax match VimtexTocSecs /.* @\d$/ \ contains=VimtexTocNum,VimtexTocTag,@Tex \ contained containedin=uniteSource__vimtex syntax match VimtexTocSec0 /.* @0$/ \ contains=VimtexTocNum,VimtexTocTag,@Tex \ contained containedin=uniteSource__vimtex syntax match VimtexTocSec1 /.* @1$/ \ contains=VimtexTocNum,VimtexTocTag,@Tex \ contained containedin=uniteSource__vimtex syntax match VimtexTocSec2 /.* @2$/ \ contains=VimtexTocNum,VimtexTocTag,@Tex \ contained containedin=uniteSource__vimtex syntax match VimtexTocSec3 /.* @3$/ \ contains=VimtexTocNum,VimtexTocTag,@Tex \ contained containedin=uniteSource__vimtex syntax match VimtexTocSec4 /.* @4$/ \ contains=VimtexTocNum,VimtexTocTag,@Tex \ contained containedin=uniteSource__vimtex syntax match VimtexTocNum \ /\%69v\%(\%([A-Z]\+\>\|\d\+\)\%(\.\d\+\)*\)\?\s*@\d$/ \ contains=VimtexTocLevel \ contained containedin=VimtexTocSec[0-9*] syntax match VimtexTocTag \ /\[.\]\s*@\d$/ \ contains=VimtexTocLevel \ contained containedin=VimtexTocSec[0-9*] syntax match VimtexTocLevel \ /@\d$/ conceal \ contained containedin=VimtexTocNum,VimtexTocTag endfunction " }}}1 function! s:create_candidate(entry, maxlevel) abort " {{{1 let level = a:maxlevel - a:entry.level let title = printf('%-65S%-10s', \ strpart(repeat(' ', 2*level) . a:entry.title, 0, 60), \ b:vimtex.toc.print_number(a:entry.number)) return { \ 'word' : title, \ 'abbr' : title . ' @' . level, \ 'action__path' : a:entry.file, \ 'action__line' : get(a:entry, 'line', 0), \ } endfunction " }}}1 function! unite#sources#vimtex#define() abort return s:source endfunction let &cpo = s:save_cpo vimtex-2.16/autoload/vimtex.vim000066400000000000000000000350241474274247400166420ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#init() abort " {{{1 if exists('#User#VimtexEventInitPre') doautocmd User VimtexEventInitPre endif call vimtex#options#init() call s:init_state() call s:init_buffer() call s:init_default_mappings() if exists('#User#VimtexEventInitPost') doautocmd User VimtexEventInitPost endif augroup vimtex_main autocmd! autocmd VimLeave * call s:quit() augroup END endfunction " }}}1 function! s:init_state() abort " {{{1 call vimtex#state#init() call vimtex#state#init_local() endfunction " }}}1 function! s:init_buffer() abort " {{{1 try let l:disabled_modules = s:init_buffer_{&filetype}() catch /E117/ let l:disabled_modules = [] endtry " Define autocommands augroup vimtex_buffers autocmd! * autocmd BufFilePre call s:filename_changed_pre() autocmd BufFilePost call s:filename_changed_post() autocmd BufUnload call s:buffer_deleted('unload') autocmd BufWipeout call s:buffer_deleted('wipe') augroup END " Initialize buffer settings for sub modules call extend(l:disabled_modules, get(b:vimtex, 'disabled_modules', [])) for l:mod in filter(copy(s:modules), \ 'index(l:disabled_modules, v:val) < 0') try call vimtex#{l:mod}#init_buffer() catch /E117.*#init_/ catch /E127.*vimtex#profile#/ endtry endfor endfunction " }}}1 function! s:init_buffer_tex() abort " {{{1 setlocal comments=sO:%\ -,mO:%\ \ ,eO:%%,:% setlocal commentstring=\%\ %s for l:suf in [ \ '.sty', \ '.cls', \ '.log', \ '.aux', \ '.bbl', \ '.out', \ '.blg', \ '.brf', \ '.cb', \ '.dvi', \ '.fdb_latexmk', \ '.fls', \ '.idx', \ '.ilg', \ '.ind', \ '.inx', \ '.pdf', \ '.synctex.gz', \ '.toc', \ ] execute 'set suffixes+=' . l:suf endfor setlocal suffixesadd=.tex,.sty,.cls setlocal iskeyword+=: setlocal includeexpr=vimtex#include#expr() let &l:include = g:vimtex#re#tex_include let &l:define = '\v\\%(' \ . '([egx]|mathchar|count|dimen|muskip|skip|toks)?def' \ . '|font' \ . '|(future)?let' \ . '|new(count|dimen|skip|muskip|box|toks|read|write|fam|insert)' \ . '|(re)?new(boolean|command|counter|environment' \ . '|font|if|length|savebox|theorem(style)?)' \ . '|DeclareMathOperator' \ . '|bibitem%(\[[^]]*\])?' \ . ')' " Specify list of modules to disable return [] endfunction " }}}1 function! s:init_buffer_bib() abort " {{{1 setlocal comments=sO:%\ -,mO:%\ \ ,eO:%%,:% setlocal commentstring=\%\ %s for l:suf in [ \ '.sty', \ '.cls', \ '.log', \ '.aux', \ '.bbl', \ '.out', \ '.blg', \ '.brf', \ '.cb', \ '.dvi', \ '.fdb_latexmk', \ '.fls', \ '.idx', \ '.ilg', \ '.ind', \ '.inx', \ '.pdf', \ '.synctex.gz', \ '.toc', \ ] execute 'set suffixes+=' . l:suf endfor setlocal suffixesadd=.tex,.bib if g:vimtex_fold_bib_enabled call vimtex#fold#bib#init() endif " Specify list of modules to disable return [ \ 'fold', 'matchparen', 'format', 'doc', 'imaps', 'delim', \ 'env', 'motion', 'complete', \] endfunction " }}}1 function! s:init_default_mappings() abort " {{{1 if !g:vimtex_mappings_enabled | return | endif call s:map_prefixed(0, 'n', 'i', '(vimtex-info)') call s:map_prefixed(0, 'n', 'I', '(vimtex-info-full)') call s:map_prefixed(0, 'n', 'x', '(vimtex-reload)') call s:map_prefixed(0, 'n', 'X', '(vimtex-reload-state)') call s:map_prefixed(1, 'n', 's', '(vimtex-toggle-main)') call s:map_prefixed(0, 'n', 'q', '(vimtex-log)') call s:map_prefixed(1, 'n', 'a', '(vimtex-context-menu)') call s:map(0, 'n', 'ds$', '(vimtex-env-delete-math)') call s:map(0, 'n', 'cs$', '(vimtex-env-change-math)') call s:map(0, 'n', 'dse', '(vimtex-env-delete)') call s:map(0, 'n', 'cse', '(vimtex-env-change)') call s:map(0, 'n', 'tse', '(vimtex-env-toggle)') call s:map(0, 'n', 'tss', '(vimtex-env-toggle-star)') call s:map(0, 'n', 'ts$', '(vimtex-env-toggle-math)') call s:map(0, 'n', '', '(vimtex-env-surround-line)') call s:map(0, 'x', '', '(vimtex-env-surround-visual)') call s:map(0, 'n', 'dsc', '(vimtex-cmd-delete)') call s:map(0, 'n', 'csc', '(vimtex-cmd-change)') call s:map(0, 'n', 'tsc', '(vimtex-cmd-toggle-star)') call s:map(0, 'n', 'tsf', '(vimtex-cmd-toggle-frac)') call s:map(0, 'x', 'tsf', '(vimtex-cmd-toggle-frac)') call s:map(0, 'n', 'tsb', '(vimtex-cmd-toggle-break)') call s:map(0, 'i', '', '(vimtex-cmd-create)') call s:map(0, 'n', '', '(vimtex-cmd-create)') call s:map(0, 'x', '', '(vimtex-cmd-create)') call s:map(0, 'n', 'dsd', '(vimtex-delim-delete)') call s:map(0, 'n', 'csd', '(vimtex-delim-change-math)') call s:map(0, 'n', 'tsd', '(vimtex-delim-toggle-modifier)') call s:map(0, 'x', 'tsd', '(vimtex-delim-toggle-modifier)') call s:map(0, 'n', 'tsD', '(vimtex-delim-toggle-modifier-reverse)') call s:map(0, 'x', 'tsD', '(vimtex-delim-toggle-modifier-reverse)') call s:map(0, 'i', ']]', '(vimtex-delim-close)') call s:map(0, 'n', '', '(vimtex-delim-add-modifiers)') if g:vimtex_compiler_enabled call s:map_prefixed(0, 'n', 'l', '(vimtex-compile)') call s:map_prefixed(0, 'n', 'o', '(vimtex-compile-output)') call s:map_prefixed(1, 'n', 'L', '(vimtex-compile-selected)') call s:map_prefixed(1, 'x', 'L', '(vimtex-compile-selected)') call s:map_prefixed(0, 'n', 'k', '(vimtex-stop)') call s:map_prefixed(0, 'n', 'K', '(vimtex-stop-all)') call s:map_prefixed(0, 'n', 'e', '(vimtex-errors)') call s:map_prefixed(0, 'n', 'c', '(vimtex-clean)') call s:map_prefixed(0, 'n', 'C', '(vimtex-clean-full)') call s:map_prefixed(0, 'n', 'g', '(vimtex-status)') call s:map_prefixed(0, 'n', 'G', '(vimtex-status-all)') endif if g:vimtex_motion_enabled " These are forced in order to overwrite matchit mappings call s:map(1, 'n', '%', '(vimtex-%)', 1) call s:map(1, 'x', '%', '(vimtex-%)', 1) call s:map(1, 'o', '%', '(vimtex-%)', 1) call s:map(1, 'n', ']]', '(vimtex-]])') call s:map(1, 'n', '][', '(vimtex-][)') call s:map(1, 'n', '[]', '(vimtex-[])') call s:map(1, 'n', '[[', '(vimtex-[[)') call s:map(1, 'x', ']]', '(vimtex-]])') call s:map(1, 'x', '][', '(vimtex-][)') call s:map(1, 'x', '[]', '(vimtex-[])') call s:map(1, 'x', '[[', '(vimtex-[[)') call s:map(1, 'o', ']]', '(vimtex-]])') call s:map(1, 'o', '][', '(vimtex-][)') call s:map(1, 'o', '[]', '(vimtex-[])') call s:map(1, 'o', '[[', '(vimtex-[[)') call s:map(1, 'n', ']M', '(vimtex-]M)') call s:map(1, 'n', ']m', '(vimtex-]m)') call s:map(1, 'n', '[M', '(vimtex-[M)') call s:map(1, 'n', '[m', '(vimtex-[m)') call s:map(1, 'x', ']M', '(vimtex-]M)') call s:map(1, 'x', ']m', '(vimtex-]m)') call s:map(1, 'x', '[M', '(vimtex-[M)') call s:map(1, 'x', '[m', '(vimtex-[m)') call s:map(1, 'o', ']M', '(vimtex-]M)') call s:map(1, 'o', ']m', '(vimtex-]m)') call s:map(1, 'o', '[M', '(vimtex-[M)') call s:map(1, 'o', '[m', '(vimtex-[m)') call s:map(1, 'n', ']N', '(vimtex-]N)') call s:map(1, 'n', ']n', '(vimtex-]n)') call s:map(1, 'n', '[N', '(vimtex-[N)') call s:map(1, 'n', '[n', '(vimtex-[n)') call s:map(1, 'x', ']N', '(vimtex-]N)') call s:map(1, 'x', ']n', '(vimtex-]n)') call s:map(1, 'x', '[N', '(vimtex-[N)') call s:map(1, 'x', '[n', '(vimtex-[n)') call s:map(1, 'o', ']N', '(vimtex-]N)') call s:map(1, 'o', ']n', '(vimtex-]n)') call s:map(1, 'o', '[N', '(vimtex-[N)') call s:map(1, 'o', '[n', '(vimtex-[n)') call s:map(1, 'n', ']R', '(vimtex-]R)') call s:map(1, 'n', ']r', '(vimtex-]r)') call s:map(1, 'n', '[R', '(vimtex-[R)') call s:map(1, 'n', '[r', '(vimtex-[r)') call s:map(1, 'x', ']R', '(vimtex-]R)') call s:map(1, 'x', ']r', '(vimtex-]r)') call s:map(1, 'x', '[R', '(vimtex-[R)') call s:map(1, 'x', '[r', '(vimtex-[r)') call s:map(1, 'o', ']R', '(vimtex-]R)') call s:map(1, 'o', ']r', '(vimtex-]r)') call s:map(1, 'o', '[R', '(vimtex-[R)') call s:map(1, 'o', '[r', '(vimtex-[r)') call s:map(1, 'n', ']/', '(vimtex-]/)') call s:map(1, 'n', ']*', '(vimtex-]*)') call s:map(1, 'n', '[/', '(vimtex-[/)') call s:map(1, 'n', '[*', '(vimtex-[*)') call s:map(1, 'x', ']/', '(vimtex-]/)') call s:map(1, 'x', ']*', '(vimtex-]*)') call s:map(1, 'x', '[/', '(vimtex-[/)') call s:map(1, 'x', '[*', '(vimtex-[*)') call s:map(1, 'o', ']/', '(vimtex-]/)') call s:map(1, 'o', ']*', '(vimtex-]*)') call s:map(1, 'o', '[/', '(vimtex-[/)') call s:map(1, 'o', '[*', '(vimtex-[*)') endif if g:vimtex_text_obj_enabled call s:map(0, 'x', 'id', '(vimtex-id)') call s:map(0, 'x', 'ad', '(vimtex-ad)') call s:map(0, 'o', 'id', '(vimtex-id)') call s:map(0, 'o', 'ad', '(vimtex-ad)') call s:map(0, 'x', 'i$', '(vimtex-i$)') call s:map(0, 'x', 'a$', '(vimtex-a$)') call s:map(0, 'o', 'i$', '(vimtex-i$)') call s:map(0, 'o', 'a$', '(vimtex-a$)') call s:map(1, 'x', 'iP', '(vimtex-iP)') call s:map(1, 'x', 'aP', '(vimtex-aP)') call s:map(1, 'o', 'iP', '(vimtex-iP)') call s:map(1, 'o', 'aP', '(vimtex-aP)') call s:map(1, 'x', 'im', '(vimtex-im)') call s:map(1, 'x', 'am', '(vimtex-am)') call s:map(1, 'o', 'im', '(vimtex-im)') call s:map(1, 'o', 'am', '(vimtex-am)') if vimtex#text_obj#targets#enabled() call vimtex#text_obj#targets#init() " These are handled explicitly to avoid conflict with gitgutter call s:map(0, 'x', 'ic', '(vimtex-targets-i)c') call s:map(0, 'x', 'ac', '(vimtex-targets-a)c') call s:map(0, 'o', 'ic', '(vimtex-targets-i)c') call s:map(0, 'o', 'ac', '(vimtex-targets-a)c') else if g:vimtex_text_obj_variant ==# 'targets' call vimtex#log#warning( \ "Ignoring g:vimtex_text_obj_variant = 'targets'" \ . " because 'g:loaded_targets' does not exist or is 0.") endif let g:vimtex_text_obj_variant = 'vimtex' call s:map(0, 'x', 'ie', '(vimtex-ie)') call s:map(0, 'x', 'ae', '(vimtex-ae)') call s:map(0, 'o', 'ie', '(vimtex-ie)') call s:map(0, 'o', 'ae', '(vimtex-ae)') call s:map(0, 'x', 'ic', '(vimtex-ic)') call s:map(0, 'x', 'ac', '(vimtex-ac)') call s:map(0, 'o', 'ic', '(vimtex-ic)') call s:map(0, 'o', 'ac', '(vimtex-ac)') endif endif if g:vimtex_toc_enabled call s:map_prefixed(0, 'n', 't', '(vimtex-toc-open)') call s:map_prefixed(0, 'n', 'T', '(vimtex-toc-toggle)') endif if has_key(b:vimtex, 'viewer') call s:map_prefixed(0, 'n', 'v', '(vimtex-view)') if !empty(maparg('(vimtex-reverse-search)', 'n')) call s:map_prefixed(1, 'n', 'r', '(vimtex-reverse-search)') endif endif if g:vimtex_imaps_enabled call s:map_prefixed(0, 'n', 'm', '(vimtex-imaps-list)') endif if g:vimtex_doc_enabled call s:map(1, 'n', 'K', '(vimtex-doc-package)') endif endfunction " }}}1 function! s:filename_changed_pre() abort " {{{1 let s:filename_changed = expand('%:p') ==# b:vimtex.tex endfunction " }}}1 function! s:filename_changed_post() abort " {{{1 if s:filename_changed let l:old = b:vimtex.tex let b:vimtex.tex = expand('%:p') let b:vimtex.root = fnamemodify(b:vimtex.tex, ':h') let b:vimtex.base = fnamemodify(b:vimtex.tex, ':t') let b:vimtex.name = fnamemodify(b:vimtex.tex, ':t:r') call vimtex#log#warning('Filename change detected') call vimtex#log#info('Old: ' . l:old) call vimtex#log#info('New: ' . b:vimtex.tex) if has_key(b:vimtex, 'compiler') if b:vimtex.compiler.is_running() call vimtex#compiler#stop() call vimtex#log#warning('Compilation stopped!') endif call vimtex#compiler#init_state(b:vimtex) endif endif endfunction " }}}1 function! s:buffer_deleted(reason) abort " {{{1 " " We need a simple cache of buffer ids because a buffer unload might clear " buffer variables, so that a subsequent buffer wipe will not trigger a full " cleanup. By caching the buffer id, we should avoid this issue. " let s:buffer_cache = get(s:, 'buffer_cache', {}) let l:file = expand('') if !has_key(s:buffer_cache, l:file) let s:buffer_cache[l:file] = getbufvar(l:file, 'vimtex_id', -1) endif if a:reason ==# 'wipe' call vimtex#state#cleanup(s:buffer_cache[l:file]) call remove(s:buffer_cache, l:file) endif endfunction " }}}1 function! s:quit() abort " {{{1 for l:state in vimtex#state#list_all() call l:state.cleanup() endfor call vimtex#cache#write_all() endfunction " }}}1 function! s:map_prefixed(ftype, mode, lhs, rhs) abort " {{{1 let l:lhs = g:vimtex_mappings_prefix . a:lhs call s:map(a:ftype, a:mode, l:lhs, a:rhs) endfunction " }}}1 function! s:map(ftype, mode, lhs, rhs, ...) abort " {{{1 if (a:ftype == 0 \ || a:ftype == 1 && &filetype ==# 'tex' \ || a:ftype == 2 && &filetype ==# 'bib') \ && !hasmapto(a:rhs, a:mode) \ && index(get(g:vimtex_mappings_disable, a:mode, []), a:lhs) < 0 \ && (a:0 > 0 \ || g:vimtex_mappings_override_existing \ || empty(maparg(a:lhs, a:mode))) silent execute a:mode . 'map ' a:lhs a:rhs endif endfunction " }}}1 " {{{1 Initialize module let s:modules = map( \ glob(expand(':r') . '/*.vim', 0, 1), \ { _, x -> fnamemodify(x, ':t:r') }) call remove(s:modules, index(s:modules, 'test')) " }}}1 vimtex-2.16/autoload/vimtex/000077500000000000000000000000001474274247400161215ustar00rootroot00000000000000vimtex-2.16/autoload/vimtex/bib.vim000066400000000000000000000072351474274247400174010ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#bib#files() abort " {{{1 if !exists('b:vimtex') | return [] | endif if has_key(b:vimtex, 'compiler') if has_key(b:vimtex.packages, 'biblatex') let l:file = b:vimtex.compiler.get_file('bcf') if filereadable(l:file) let l:bibs = map( \ filter(readfile(l:file), "v:val =~# 'bcf:datasource'"), \ {_, x -> matchstr(x, '<[^>]*>\zs[^<]*')}) for l:f in filter(copy(l:bibs), {_, x -> x =~# '[*?{[]' }) let l:bibs += glob(l:f, 0, 1) endfor if !empty(l:bibs) | return s:validate(l:bibs) | endif endif endif let l:file = b:vimtex.compiler.get_file('blg') if filereadable(l:file) let l:bibs = map( \ filter(readfile(l:file), 'v:val =~# ''^Database file #\d'''), \ {_, x -> matchstr(x, '#\d\+: \zs.*\ze\.bib$')}) " Ignore '{name}-blx.bib' file (created by biblatex) if has_key(b:vimtex.packages, 'biblatex') call filter(l:bibs, 'v:val !~# ''-blx$''') endif " Ignore '{name}Notes.bib' file (created by revtex4) if b:vimtex.documentclass =~# '^revtex4' call filter(l:bibs, 'v:val !~# ''.Notes$''') endif if !empty(l:bibs) | return s:validate(l:bibs) | endif endif endif return s:validate(s:files_manual()) endfunction " }}}1 function! s:validate(files) abort " {{{1 call filter(a:files, {_, x -> !empty(x)}) call map(a:files, {_, x -> substitute(x, '\%(\.bib\)\?$', '.bib', '')}) call map(a:files, {_, x -> filereadable(x) ? x : vimtex#kpsewhich#find(x)}) call filter(a:files, {_, x -> filereadable(x)}) return a:files endfunction " }}}1 function! s:files_manual() abort " {{{1 " " Search for bibliography files by parsing the source code " * Parse commands such as \bibliography{file1,file2.bib,...} " let l:cache = vimtex#cache#open('bibfiles', { \ 'local': 1, \ 'default': {'files': [], 'ftime': -1} \}) " Handle local file editing (e.g. subfiles package) let l:id = get(get(b:, 'vimtex_local', {'main_id' : b:vimtex_id}), 'main_id') let l:vimtex = vimtex#state#get(l:id) let l:bibfiles = [] for l:file in map(l:vimtex.get_sources(), 'l:vimtex.root . ''/'' . v:val') let l:current = l:cache.get(l:file) let l:ftime = getftime(l:file) if l:ftime > l:current.ftime let l:cache.modified = 1 let l:current.ftime = l:ftime let l:current.files = [] for l:entry in map( \ filter(readfile(l:file), {_, x -> x =~# s:bib_re}), \ {_, x -> matchstr(x, s:bib_re)}) " Interpolate the \jobname command let l:entry = substitute(l:entry, '\\jobname', b:vimtex.name, 'g') " Assume comma separated list of files let l:files = split(l:entry, ',') " But also add the unmodified entry for consideration, as the comma may " be part of the filename or part of a globbing expression. if len(l:files) > 1 let l:files += [l:entry] endif " Now attempt to apply globbing where applicable for l:exp in filter(copy(l:files), {_, x -> x =~# '[*?{[]'}) try let l:globbed = glob(l:exp, 0, 1) let l:files += l:globbed catch /E220/ endtry endfor let l:current.files += l:files endfor endif let l:bibfiles += l:current.files endfor " Write cache to file call l:cache.write() return uniq(l:bibfiles) endfunction " }}}1 let s:bib_re = g:vimtex#re#not_comment . '\\(' \ . join(g:vimtex_bibliography_commands, '|') \ . ')\s*\{\zs.+\ze}' vimtex-2.16/autoload/vimtex/cache.vim000066400000000000000000000175131474274247400177100ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#cache#init_buffer() abort " {{{1 command! -buffer -nargs=1 VimtexClearCache call vimtex#cache#clear() endfunction " }}}1 function! vimtex#cache#path(name) abort " {{{1 let l:root = s:root() if !isdirectory(l:root) call mkdir(l:root, 'p') endif return vimtex#paths#join(l:root, a:name) endfunction " }}}1 function! vimtex#cache#wrap(Func, name, ...) abort " {{{1 if !has('lambda') throw 'error: vimtex#cache#wrap requires +lambda' endif let l:opts = a:0 > 0 ? a:1 : {} let l:cache = vimtex#cache#open(a:name, l:opts) function! CachedFunc(key) closure if l:cache.has(a:key) return l:cache.get(a:key) else return l:cache.set(a:key, a:Func(a:key)) endif endfunction return function('CachedFunc') endfunction " }}}1 function! vimtex#cache#open(name, ...) abort " {{{1 let l:opts = extend({ \ 'local': v:false, \ 'default': 0, \ 'persistent': get(g:, 'vimtex_cache_persistent', v:true), \ 'validate': s:_version, \}, a:0 > 0 ? a:1 : {}) let l:project_local = remove(l:opts, 'local') return s:cache_open(a:name, l:project_local, l:opts) endfunction " }}}1 function! vimtex#cache#close(name) abort " {{{1 " Note: This will close BOTH local and global cache! for [l:name, l:cache] in s:cache_get_both(a:name) if !empty(l:cache) && has_key(s:caches, l:name) call l:cache.write() unlet s:caches[l:name] endif endfor endfunction " }}}1 function! vimtex#cache#clear(name) abort " {{{1 if empty(a:name) | return | endif if a:name ==# 'ALL' return s:cache_clear_all() endif let l:persistent = get(g:, 'vimtex_cache_persistent', 1) for [l:name, l:cache] in s:cache_get_both(a:name) if !empty(l:cache) call l:cache.clear() unlet s:caches[l:name] elseif l:persistent let l:path = vimtex#cache#path(l:name . '.json') call delete(l:path) endif endfor endfunction " }}}1 function! vimtex#cache#write_all() abort " {{{1 for l:cache in values(get(s:, 'caches', {})) call l:cache.write() endfor endfunction " }}}1 function! s:cache_open(name, project_local, opts) abort " {{{1 let l:name = a:project_local ? s:local_name(a:name) : a:name let s:caches = get(s:, 'caches', {}) if !has_key(s:caches, l:name) let l:path = vimtex#cache#path(l:name . '.json') let s:caches[l:name] = s:cache.init(l:path, a:opts) endif return s:caches[l:name] endfunction " }}}1 function! s:cache_get(name, ...) abort " {{{1 let l:project_local = a:0 > 0 ? a:1 : v:false let l:name = l:project_local ? s:local_name(a:name) : a:name let s:caches = get(s:, 'caches', {}) return [l:name, get(s:caches, l:name, {})] endfunction " }}}1 function! s:cache_get_both(name) abort " {{{1 return map( \ [v:false, v:true], \ { _, x -> s:cache_get(a:name, x) } \) endfunction " }}}1 function! s:cache_clear_all() abort " {{{1 " Delete cache state map unlet! s:caches if !get(g:, 'vimtex_cache_persistent', 1) | return | endif " Delete cache files for l:file in globpath(s:root(), '*.json', 0, 1) call delete(l:file) endfor endfunction " }}}1 let s:cache = {} function! s:cache.init(path, opts) dict abort " {{{1 let new = deepcopy(self) unlet new.init let new.data = {} let new.path = a:path let new.ftime = -1 let new.default = a:opts.default let new.__validated = 0 let new.__validation_value = deepcopy(a:opts.validate) if type(new.__validation_value) == v:t_dict let new.__validation_value._version = s:_version endif let new.data.__validate = deepcopy(new.__validation_value) if a:opts.persistent return extend(new, s:cache_persistent) endif return extend(new, s:cache_volatile) endfunction " }}}1 let s:cache_persistent = { \ 'type': 'persistent', \ 'modified': 0, \} function! s:cache_persistent.validate() dict abort " {{{1 let self.__validated = 1 if type(self.data.__validate) != type(self.__validation_value) \ || self.data.__validate != self.__validation_value call self.clear() let self.data.__validate = deepcopy(self.__validation_value) call self.write() endif endfunction " }}}1 function! s:cache_persistent.get(key) dict abort " {{{1 call self.read() if !has_key(self.data, a:key) let self.data[a:key] = deepcopy(self.default) endif return get(self.data, a:key) endfunction " }}}1 function! s:cache_persistent.has(key) dict abort " {{{1 call self.read() return has_key(self.data, a:key) endfunction " }}}1 function! s:cache_persistent.set(key, value) dict abort " {{{1 call self.read() let self.data[a:key] = a:value call self.write(1) return a:value endfunction " }}}1 function! s:cache_persistent.write(...) dict abort " {{{1 call self.read() let l:modified = self.modified || a:0 > 0 if !l:modified || empty(self.data) | return | endif try let l:encoded = json_encode(self.data) call writefile([l:encoded], self.path) let self.ftime = getftime(self.path) let self.modified = 0 catch /E474:/ call vimtex#log#warning( \ 'Could not encode cache "' \ . fnamemodify(self.path, ':t:r') . '"', \ string(self.data) \) endtry endfunction " }}}1 function! s:cache_persistent.read() dict abort " {{{1 if getftime(self.path) <= self.ftime | return | endif let self.ftime = getftime(self.path) let l:contents = join(readfile(self.path)) if empty(l:contents) | return | endif let l:data = json_decode(l:contents) if type(l:data) != v:t_dict call vimtex#log#warning( \ 'Inconsistent cache data while reading:', \ self.path, \ 'Decoded data type: ' . type(l:data) \) return endif call extend(self.data, l:data) if !self.__validated call self.validate() endif endfunction " }}}1 function! s:cache_persistent.clear() dict abort " {{{1 let self.data = { '__validate': deepcopy(self.__validation_value) } let self.ftime = -1 let self.modified = 0 call delete(self.path) endfunction " }}}1 let s:cache_volatile = { \ 'type': 'volatile', \} function! s:cache_volatile.get(key) dict abort " {{{1 if !has_key(self.data, a:key) let self.data[a:key] = deepcopy(self.default) endif return get(self.data, a:key) endfunction " }}}1 function! s:cache_volatile.has(key) dict abort " {{{1 return has_key(self.data, a:key) endfunction " }}}1 function! s:cache_volatile.set(key, value) dict abort " {{{1 let self.data[a:key] = a:value let self.ftime = localtime() return a:value endfunction " }}}1 function! s:cache_volatile.write(...) dict abort " {{{1 endfunction " }}}1 function! s:cache_volatile.read() dict abort " {{{1 endfunction " }}}1 function! s:cache_volatile.clear() dict abort " {{{1 let self.data = {} let self.ftime = -1 endfunction " }}}1 " Utility functions function! s:root() abort " {{{1 return get(g:, 'vimtex_cache_root', \ (empty($XDG_CACHE_HOME) ? $HOME . '/.cache' : $XDG_CACHE_HOME) \ . '/vimtex') endfunction " }}}1 function! s:local_name(name) abort " {{{1 let l:filename = exists('b:vimtex.tex') \ ? fnamemodify(b:vimtex.tex, ':r') \ : expand('%:p:r') let l:filename = substitute(l:filename, '\s\+', '_', 'g') let l:filename = substitute(l:filename, '\/', '%', 'g') let l:filename = substitute(l:filename, '\\', '%', 'g') let l:filename = substitute(l:filename, ':', '%', 'g') " We can't save cache files with too long names. This is not a rigorous fix, " but I think it should handle most relevant cases well enough. " See: https://github.com/lervag/vimtex/issues/3001 if strlen(l:filename) > 200 let l:filename = '%...' .. strpart(l:filename, strlen(l:filename) - 200) endif return a:name . l:filename endfunction " }}}1 let s:_version = 'cache_v2' vimtex-2.16/autoload/vimtex/cite.vim000066400000000000000000000026671474274247400175750ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#cite#get_entry(...) abort " {{{1 let l:key = a:0 > 0 ? a:1 : vimtex#cite#get_key() if empty(l:key) | return {} | endif " Ensure we're at the root directory when locating bib files call vimtex#paths#pushd(b:vimtex.root) let l:entries = [] for l:file in vimtex#bib#files() let l:entries += vimtex#parser#bib( \ l:file, \ {'backend': has('nvim') ? 'lua' : 'vim'} \) endfor call vimtex#paths#popd() " Return entry with the given key return l:entries->filter({_, x -> x.key ==# l:key})->get(0, {}) endfunction " }}}1 function! vimtex#cite#get_key(...) abort " {{{1 let l:cmd = a:0 > 0 ? a:1 : vimtex#cmd#get_current() if empty(l:cmd) \ || l:cmd.name[1:] !~# g:vimtex#re#cite_cmd \ || len(l:cmd.args) < 1 \ || len(l:cmd.args) > 2 return '' endif let l:current_word = a:0 > 1 ? a:2 : expand('') let l:cites = l:cmd.args->map({_, x -> x.text})->join(',')->split(',\s*') return index(l:cites, l:current_word) >= 0 \ ? l:current_word \ : l:cites[0] endfunction " }}}1 function! vimtex#cite#get_key_at(line, col) abort " {{{1 let l:pos_saved = vimtex#pos#get_cursor() call vimtex#pos#set_cursor(a:line, a:col) let l:key = vimtex#cite#get_key() call vimtex#pos#set_cursor(l:pos_saved) return l:key endfunction " }}}1 vimtex-2.16/autoload/vimtex/cmd.vim000066400000000000000000000505321474274247400174060ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#cmd#init_buffer() abort " {{{1 nnoremap (vimtex-cmd-delete) \ :call operator_setup('delete')normal! g@l nnoremap (vimtex-cmd-change) \ :call operator_setup('change')normal! g@l inoremap (vimtex-cmd-create) \ =vimtex#cmd#create_insert() nnoremap (vimtex-cmd-create) \ :call operator_setup('create')normal! g@l xnoremap (vimtex-cmd-create) \ :call vimtex#cmd#create_visual() nnoremap (vimtex-cmd-toggle-star) \ :call operator_setup('toggle_star')normal! g@l nnoremap (vimtex-cmd-toggle-frac) \ :call operator_setup('toggle_frac')normal! g@l xnoremap (vimtex-cmd-toggle-frac) \ :call vimtex#cmd#toggle_frac_visual() nnoremap (vimtex-cmd-toggle-break) \ :call operator_setup('toggle_break')normal! g@l endfunction " }}}1 function! vimtex#cmd#change(new_name) abort " {{{1 let l:cmd = vimtex#cmd#get_current() if empty(l:cmd) | return | endif let l:old_name = l:cmd.name let l:lnum = l:cmd.pos_start.lnum let l:cnum = l:cmd.pos_start.cnum " Get new command name let l:new_name = substitute(a:new_name, '^\\', '', '') if empty(l:new_name) | return | endif " Update current position let l:save_pos = vimtex#pos#get_cursor() if strlen(l:new_name) < strlen(l:old_name) let l:col = searchpos('\\\k', 'bcnW')[1] + strlen(l:new_name) if l:col < l:save_pos[2] let l:save_pos[2] = l:col endif endif " Perform the change let l:line = getline(l:lnum) call setline(l:lnum, \ strpart(l:line, 0, l:cnum) \ . l:new_name \ . strpart(l:line, l:cnum + strlen(l:old_name) - 1)) " Restore cursor position cal vimtex#pos#set_cursor(l:save_pos) endfunction function! vimtex#cmd#delete(...) abort " {{{1 if a:0 > 0 let l:cmd = call('vimtex#cmd#get_at', a:000) else let l:cmd = vimtex#cmd#get_current() endif if empty(l:cmd) | return | endif " Save current position let l:save_pos = vimtex#pos#get_cursor() let l:lnum_cur = l:save_pos[1] let l:cnum_cur = l:save_pos[2] " Remove closing bracket (if exactly one argument) if len(l:cmd.args) == 1 let l:lnum = l:cmd.args[0].close.lnum let l:cnum = l:cmd.args[0].close.cnum let l:line = getline(l:lnum) call setline(l:lnum, \ strpart(l:line, 0, l:cnum - 1) \ . strpart(l:line, l:cnum)) let l:cnum2 = l:cmd.args[0].open.cnum endif " Remove command (and possibly the opening bracket) let l:lnum = l:cmd.pos_start.lnum let l:cnum = l:cmd.pos_start.cnum let l:cnum2 = get(l:, 'cnum2', l:cnum + strlen(l:cmd.name) - 1) let l:line = getline(l:lnum) call setline(l:lnum, \ strpart(l:line, 0, l:cnum - 1) \ . strpart(l:line, l:cnum2)) " Restore appropriate cursor position if l:lnum_cur == l:lnum if l:cnum_cur > l:cnum2 let l:save_pos[2] -= l:cnum2 - l:cnum + 1 else let l:save_pos[2] -= l:cnum_cur - l:cnum endif endif cal vimtex#pos#set_cursor(l:save_pos) endfunction function! vimtex#cmd#delete_all(...) abort " {{{1 if a:0 > 0 let l:cmd = call('vimtex#cmd#get_at', a:000) else let l:cmd = vimtex#cmd#get_current() endif if empty(l:cmd) | return | endif call vimtex#pos#set_cursor(l:cmd.pos_start) normal! v call vimtex#pos#set_cursor(l:cmd.pos_end) normal! d endfunction function! vimtex#cmd#create_insert() abort " {{{1 if mode() !=# 'i' | return | endif let l:re = '\v%(^|\A)\zs\a+(\*=)@>\a*\ze%(\A|$)' let l:c0 = col('.') - 1 let [l:l1, l:c1] = searchpos(l:re, 'bcn', line('.')) let l:c1 -= 1 let l:line = getline(l:l1) let l:match = matchstr(l:line, l:re, l:c1) let l:c2 = l:c1 + strlen(l:match) if l:c0 > l:c2 call vimtex#log#warning('Could not create command') return '' endif let l:strpart1 = strpart(l:line, 0, l:c1) let l:strpart2 = '\' . strpart(l:match, 0, l:c0 - l:c1) . '{' let l:strpart3 = strpart(l:line, l:c0) call setline(l:l1, l:strpart1 . l:strpart2 . l:strpart3) call vimtex#pos#set_cursor(l:l1, l:c2+3) return '' endfunction " }}}1 function! vimtex#cmd#create(cmd, visualmode) abort " {{{1 if empty(a:cmd) | return | endif " Avoid autoindent (disable indentkeys) let l:save_indentkeys = &l:indentkeys setlocal indentkeys= if a:visualmode let l:pos_start = getpos("'<") let l:pos_end = getpos("'>") if visualmode() ==# '' normal! gvA} execute 'normal! gvI\' . a:cmd . '{' let l:pos_end[2] += strlen(a:cmd) + 3 else normal! `>a} normal! `< execute 'normal! i\' . a:cmd . '{' let l:pos_end[2] += \ l:pos_end[1] == l:pos_start[1] ? strlen(a:cmd) + 3 : 1 endif call vimtex#pos#set_cursor(l:pos_end) else let l:pos = vimtex#pos#get_cursor() let l:save_reg = getreg('"') let l:pos[2] += strlen(a:cmd) + 2 execute 'normal! ciw\' . a:cmd . '{"}' call setreg('"', l:save_reg) call vimtex#pos#set_cursor(l:pos) endif " Restore indentkeys setting let &l:indentkeys = l:save_indentkeys endfunction " }}}1 function! vimtex#cmd#create_visual() abort " {{{1 let l:cmd = vimtex#ui#input({ \ 'info': ['Create command: ', ['VimtexWarning', '(empty to cancel)']], \}) let l:cmd = substitute(l:cmd, '^\\', '', '') call vimtex#cmd#create(l:cmd, 1) endfunction " }}}1 function! vimtex#cmd#toggle_star() abort " {{{1 let l:cmd = vimtex#cmd#get_current() if empty(l:cmd) | return | endif let l:old_name = l:cmd.name let l:lnum = l:cmd.pos_start.lnum let l:cnum = l:cmd.pos_start.cnum " Set new command name if match(l:old_name, '\*$') == -1 let l:new_name = l:old_name.'*' else let l:new_name = strpart(l:old_name, 0, strlen(l:old_name)-1) endif let l:new_name = substitute(l:new_name, '^\\', '', '') if empty(l:new_name) | return | endif " Update current position let l:save_pos = vimtex#pos#get_cursor() let l:save_pos[2] += strlen(l:new_name) - strlen(l:old_name) + 1 " Perform the change let l:line = getline(l:lnum) call setline(l:lnum, \ strpart(l:line, 0, l:cnum) \ . l:new_name \ . strpart(l:line, l:cnum + strlen(l:old_name) - 1)) " Restore cursor position cal vimtex#pos#set_cursor(l:save_pos) endfunction " }}}1 function! vimtex#cmd#toggle_frac() abort " {{{1 let l:frac = s:get_frac_cmd() if empty(l:frac) let l:frac = s:get_frac_inline() endif if empty(l:frac) | return | endif let l:lnum = line('.') let l:line = getline(l:lnum) call setline(l:lnum, \ strpart(l:line, 0, l:frac.col_start) \ . l:frac.text_toggled \ . strpart(l:line, l:frac.col_end+1)) endfunction " }}}1 function! vimtex#cmd#toggle_frac_visual() abort " {{{1 let l:save_reg = getreg('a') normal! gv"ay let l:selected = substitute(getreg('a'), '\n\s*', ' ', '') call setreg('a', l:save_reg) let l:frac = s:get_frac_inline_visual(l:selected) if empty(l:frac) let l:frac = s:get_frac_cmd_visual(l:selected) endif if empty(l:frac) | return | endif let l:save_reg = getreg('a') call setreg('a', l:frac.text_toggled) normal! gv"ap call setreg('a', l:save_reg) endfunction " }}}1 function! vimtex#cmd#toggle_break() abort " {{{1 let l:lnum = line('.') let l:line = getline(l:lnum) let l:replace = l:line =~# '\s*\\\\\s*$' \ ? substitute(l:line, '\s*\\\\\s*$', '', '') \ : substitute(l:line, '\s*$', ' \\\\', '') call setline(l:lnum, l:replace) endfunction " }}}1 function! vimtex#cmd#parser_separator_check(separator_string) abort " {{{1 return a:separator_string =~# '\v^%(\n\s*)?$' endfunction " }}}1 function! s:get_frac_toggled(origin, numerator, denominator) abort " {{{1 let l:target = get(g:vimtex_toggle_fractions, a:origin, 'INLINE') if l:target ==# 'INLINE' let l:numerator = (a:numerator =~# '^\\\?\w*$') \ ? a:numerator \ : '(' . a:numerator . ')' let l:denominator = (a:denominator =~# '^\\\?\w*$') \ ? a:denominator \ : '(' . a:denominator . ')' return l:numerator . '/' . l:denominator endif return printf('\%s{%s}{%s}', l:target, a:numerator, a:denominator) endfunction " }}}1 function! s:get_frac_cmd() abort " {{{1 let l:frac_cmds = map(filter( \ keys(g:vimtex_toggle_fractions), { _, x -> x !~# 'INLINE' }), \ { _, x -> '\' .. x }) let l:save_pos = vimtex#pos#get_cursor() while 1 let l:cmd = s:get_cmd('prev') if empty(l:cmd) || l:cmd.pos_start.lnum < line('.') call vimtex#pos#set_cursor(l:save_pos) return {} endif " Note: \dfrac and \cfrac are defined by amsmath and are common variants if index(l:frac_cmds, l:cmd.name) >= 0 break endif call vimtex#pos#set_cursor(vimtex#pos#prev(l:cmd.pos_start)) endwhile call vimtex#pos#set_cursor(l:save_pos) let l:frac = { \ 'type': 'cmd', \ 'origin': l:cmd.name[1:], \ 'col_start': l:cmd.pos_start.cnum - 1, \ 'col_end': l:cmd.pos_end.cnum - 1, \} if len(l:cmd.args) >= 2 let l:consume = [] let l:frac.numerator = l:cmd.args[0].text let l:frac.denominator = l:cmd.args[1].text elseif len(l:cmd.args) == 1 let l:consume = ['denominator'] let l:frac.numerator = l:cmd.args[0].text let l:frac.denominator = '' else let l:consume = ['numerator', 'denominator'] let l:frac.numerator = '' let l:frac.denominator = '' endif " Handle unfinished cases let l:line = getline('.') let l:pos = l:frac.col_end + 1 for l:key in l:consume let l:part = strpart(l:line, l:frac.col_end + 1) let l:blurp = matchstr(l:part, '^\s*{[^}]*}') if !empty(l:blurp) let l:frac[l:key] = trim(l:blurp)[1:-2] let l:frac.col_end += len(l:blurp) continue endif let l:blurp = matchstr(l:part, '^\s*\w') if !empty(l:blurp) let l:frac[l:key] = trim(l:blurp) let l:frac.col_end += len(l:blurp) endif endfor " Abort if \frac region does not cover cursor if l:frac.col_end < col('.') | return {} | endif let l:frac.text = strpart(getline('.'), \ l:frac.col_start, l:frac.col_end - l:frac.col_start + 1) let l:frac.text_toggled = s:get_frac_toggled( \ l:frac.origin, l:frac.numerator, l:frac.denominator) return l:frac endfunction " }}}1 function! s:get_frac_cmd_visual(selected) abort " {{{1 let l:frac_re = '\\\(' . join(filter( \ keys(g:vimtex_toggle_fractions), \ { _, x -> x !~# 'INLINE' }), '\|') . '\)' let l:matches = matchlist( \ a:selected, '^\s*' . l:frac_re . '\s*{\(.*\)}\s*{\(.*\)}\s*$') if empty(l:matches) | return {} | endif let l:frac = { \ 'type': 'cmd', \ 'origin': l:matches[1], \ 'text': a:selected, \ 'numerator': l:matches[2], \ 'denominator': l:matches[3], \} let l:frac.text_toggled = s:get_frac_toggled( \ l:frac.origin, l:frac.numerator, l:frac.denominator) return l:frac endfunction " }}}1 function! s:get_frac_inline() abort " {{{1 let l:line = getline('.') let l:col = col('.') - 1 let l:pos_after = -1 let l:pos_before = -1 while 1 let l:pos_before = l:pos_after let l:pos_after = match(l:line, '\/', l:pos_after+1) if l:pos_after < 0 || l:pos_after >= l:col | break | endif endwhile if l:pos_after == -1 && l:pos_before == -1 return {} endif let l:positions = [] if l:pos_before > 0 let l:positions += [l:pos_before] endif if l:pos_after > 0 let l:positions += [l:pos_after] endif for l:pos in l:positions let l:frac = {'type': 'inline'} " " Parse numerator " let l:before = strpart(l:line, 0, l:pos) if l:before =~# ')\s*$' let l:pos_before = s:get_inline_limit(l:before, -1) - 1 let l:parens = strpart(l:before, l:pos_before) else let l:pos_before = match(l:before, '\s*$') let l:parens = '' endif let l:before = strpart(l:line, 0, l:pos_before) let l:atoms = matchstr(l:before, '\(\\(\)\?\zs[^-$(){} ]*$') let l:pos_before = l:pos_before - strlen(l:atoms) let l:frac.numerator = s:get_inline_trim(l:atoms . l:parens) let l:frac.col_start = l:pos_before " " Parse denominator " let l:after = strpart(l:line, l:pos+1) let l:atoms = l:after =~# '^\s*[^$()} ]*\\)' \ ? matchstr(l:after, '^\s*[^$()} ]*\ze\\)') \ : matchstr(l:after, '^\s*[^$()} ]*') let l:pos_after = l:pos + strlen(l:atoms) let l:after = strpart(l:line, l:pos_after+1) if l:after =~# '^(' let l:index = s:get_inline_limit(l:after, 1) let l:pos_after = l:pos_after + l:index + 1 let l:parens = strpart(l:after, 0, l:index+1) else let l:parens = '' endif let l:frac.denominator = s:get_inline_trim(l:atoms . l:parens) let l:frac.col_end = l:pos_after " " Combine/Parse inline and frac expressions " let l:frac.origin = 'INLINE' let l:frac.text = strpart(l:line, \ l:frac.col_start, \ l:frac.col_end - l:frac.col_start + 1) let l:frac.text_toggled = s:get_frac_toggled( \ l:frac.origin, l:frac.numerator, l:frac.denominator) " " Accept result if the range contains the cursor column " if l:col >= l:frac.col_start && l:col <= l:frac.col_end return l:frac endif endfor return {} endfunction " }}}1 function! s:get_frac_inline_visual(selected) abort " {{{1 let l:parts = split(a:selected, '/') if len(l:parts) != 2 | return {} | endif let l:frac = { \ 'type': 'inline', \ 'origin': 'INLINE', \ 'text': a:selected, \ 'numerator': s:get_inline_trim(l:parts[0]), \ 'denominator': s:get_inline_trim(l:parts[1]), \} let l:frac.text_toggled = s:get_frac_toggled( \ l:frac.origin, l:frac.numerator, l:frac.denominator) return l:frac endfunction " }}}1 function! s:get_inline_limit(str, dir) abort " {{{1 if a:dir > 0 let l:open = '(' let l:string = a:str else let l:open = ')' let l:string = join(reverse(split(a:str, '\zs')), '') endif let idx = -1 let depth = 0 while idx < len(l:string) let idx = match(l:string, '[()]', idx + 1) if idx < 0 let idx = len(l:string) endif if idx >= len(l:string) || l:string[idx] ==# l:open let depth += 1 else let depth -= 1 if depth == 0 return a:dir < 0 ? len(a:str) - idx : idx endif endif endwhile return -1 endfunction " }}}1 function! s:get_inline_trim(str) abort " {{{1 let l:str = trim(a:str) return substitute(l:str, '^(\(.*\))$', '\1', '') endfunction " }}}1 function! vimtex#cmd#get_next() abort " {{{1 return s:get_cmd('next') endfunction " }}}1 function! vimtex#cmd#get_prev() abort " {{{1 return s:get_cmd('prev') endfunction " }}}1 function! vimtex#cmd#get_current() abort " {{{1 let l:save_pos = vimtex#pos#get_cursor() let l:pos_val_cursor = vimtex#pos#val(l:save_pos) let l:depth = 3 while l:depth > 0 let l:depth -= 1 let l:cmd = s:get_cmd('prev') if empty(l:cmd) | break | endif let l:pos_val = vimtex#pos#val(l:cmd.pos_end) if l:pos_val >= l:pos_val_cursor call vimtex#pos#set_cursor(l:save_pos) return l:cmd else call vimtex#pos#set_cursor(vimtex#pos#prev(l:cmd.pos_start)) endif endwhile call vimtex#pos#set_cursor(l:save_pos) return {} endfunction " }}}1 function! vimtex#cmd#get_at(...) abort " {{{1 let l:pos_saved = vimtex#pos#get_cursor() call call('vimtex#pos#set_cursor', a:000) let l:cmd = vimtex#cmd#get_current() call vimtex#pos#set_cursor(l:pos_saved) return l:cmd endfunction " }}}1 function! s:operator_setup(operator) abort " {{{1 let s:operator = a:operator let &opfunc = s:snr() . 'operator_function' " Ask for user input if necessary/relevant if s:operator ==# 'change' let l:current = vimtex#cmd#get_current() if empty(l:current) | return | endif let s:operator_cmd_name = substitute(vimtex#ui#input({ \ 'info': ['Change command: ', ['VimtexWarning', l:current.name]], \}), '^\\', '', '') elseif s:operator ==# 'create' let s:operator_cmd_name = substitute(vimtex#ui#input({ \ 'info': ['Create command: ', ['VimtexWarning', '(empty to cancel)']], \}), '^\\', '', '') endif endfunction " }}}1 function! s:operator_function(_) abort " {{{1 let l:name = get(s:, 'operator_cmd_name', '') execute 'call vimtex#cmd#' . { \ 'change': 'change(l:name)', \ 'create': 'create(l:name, 0)', \ 'delete': 'delete()', \ 'toggle_star': 'toggle_star()', \ 'toggle_frac': 'toggle_frac()', \ 'toggle_break': 'toggle_break()', \ }[s:operator] endfunction " }}}1 function! s:snr() abort " {{{1 return matchstr(expand(''), '\d\+_') endfunction " }}}1 function! s:get_cmd(direction) abort " {{{1 let [lnum, cnum, match] = s:get_cmd_name(a:direction ==# 'next') if lnum == 0 | return {} | endif let res = { \ 'name' : match, \ 'text' : '', \ 'pos_start' : { 'lnum' : lnum, 'cnum' : cnum }, \ 'pos_end' : { 'lnum' : lnum, 'cnum' : cnum + strlen(match) - 1 }, \ 'args' : [], \ 'opts' : [], \} " Environments always start with environment name and allows option " afterwords if res.name ==# '\begin' let arg = s:get_cmd_part('{', res.pos_end) if empty(arg) | return res | endif call add(res.args, arg) let res.pos_end.lnum = arg.close.lnum let res.pos_end.cnum = arg.close.cnum endif " Get overlay specification let res.overlay = s:get_cmd_overlay(res.pos_end.lnum, res.pos_end.cnum) if !empty(res.overlay) let res.pos_end.lnum = res.overlay.close.lnum let res.pos_end.cnum = res.overlay.close.cnum endif " Get options and arguments while v:true let opt = s:get_cmd_part('[', res.pos_end) if !empty(opt) call add(res.opts, opt) let res.pos_end.lnum = opt.close.lnum let res.pos_end.cnum = opt.close.cnum continue endif let arg = s:get_cmd_part('{', res.pos_end) if !empty(arg) call add(res.args, arg) let res.pos_end.lnum = arg.close.lnum let res.pos_end.cnum = arg.close.cnum continue endif break endwhile " Include entire cmd text let res.text = s:text_between(res.pos_start, res.pos_end, 1) return res endfunction " }}}1 function! s:get_cmd_name(next) abort " {{{1 let [l:lnum, l:cnum] = searchpos( \ '\v\\%(\a+\*?|[,:;!])', \ a:next ? 'nW' : 'cbnW') let l:match = matchstr(getline(l:lnum), '^\v\\%([,:;!]|\a*\*?)', l:cnum-1) return [l:lnum, l:cnum, l:match] endfunction " }}}1 function! s:get_cmd_part(part, start_pos) abort " {{{1 let l:save_pos = vimtex#pos#get_cursor() call vimtex#pos#set_cursor(a:start_pos) let l:open = vimtex#delim#get_next('delim_tex', 'open') call vimtex#pos#set_cursor(l:save_pos) " Ensure that the next delimiter is found and is of the right type if empty(l:open) || l:open.match !=# a:part | return {} | endif " Ensure that the delimiter is the next non-whitespace character according to " a configurable rule if ! call(g:vimtex_parser_cmd_separator_check, [ \ s:text_between(a:start_pos, l:open) \]) return {} endif let l:close = vimtex#delim#get_matching(l:open) if empty(l:close) return {} endif return { \ 'open' : l:open, \ 'close' : l:close, \ 'text' : s:text_between(l:open, l:close), \} endfunction " }}}1 function! s:get_cmd_overlay(lnum, cnum) abort " {{{1 let l:match = matchstr(getline(a:lnum), '^\s*<[^>]*>', a:cnum) return empty(l:match) \ ? {} \ : { \ 'open' : {'lnum' : a:lnum, 'cnum' : a:cnum + 1}, \ 'close' : {'lnum' : a:lnum, 'cnum' : a:cnum + strlen(l:match)}, \ 'text' : l:match \ } endfunction " }}}1 function! s:text_between(p1, p2, ...) abort " {{{1 let [l1, c1] = [a:p1.lnum, a:p1.cnum - (a:0 > 0)] let [l2, c2] = [a:p2.lnum, a:p2.cnum - (a:0 <= 0)] let lines = getline(l1, l2) if !empty(lines) let lines[0] = strpart(lines[0], c1) let lines[-1] = strpart(lines[-1], 0, \ l1 == l2 ? c2 - c1 : c2) endif return join(lines, "\n") endfunction " }}}1 vimtex-2.16/autoload/vimtex/compiler.vim000066400000000000000000000317741474274247400204640ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#compiler#init_buffer() abort " {{{1 if !g:vimtex_compiler_enabled | return | endif " Define commands command! -buffer -nargs=* VimtexCompile call vimtex#compiler#compile() command! -buffer -bang -nargs=* VimtexCompileSS call vimtex#compiler#compile_ss() command! -buffer -range VimtexCompileSelected ,call vimtex#compiler#compile_selected('command') command! -buffer VimtexCompileOutput call vimtex#compiler#output() command! -buffer VimtexStop call vimtex#compiler#stop() command! -buffer VimtexStopAll call vimtex#compiler#stop_all() command! -buffer -bang VimtexClean call vimtex#compiler#clean( == "!") command! -buffer -bang VimtexStatus call vimtex#compiler#status( == "!") " Define mappings nnoremap (vimtex-compile) :call vimtex#compiler#compile() nnoremap (vimtex-compile-ss) :call vimtex#compiler#compile_ss() nnoremap (vimtex-compile-selected) :set opfunc=vimtex#compiler#compile_selectedg@ xnoremap (vimtex-compile-selected) :call vimtex#compiler#compile_selected('visual') nnoremap (vimtex-compile-output) :call vimtex#compiler#output() nnoremap (vimtex-stop) :call vimtex#compiler#stop() nnoremap (vimtex-stop-all) :call vimtex#compiler#stop_all() nnoremap (vimtex-clean) :call vimtex#compiler#clean(0) nnoremap (vimtex-clean-full) :call vimtex#compiler#clean(1) nnoremap (vimtex-status) :call vimtex#compiler#status(0) nnoremap (vimtex-status-all) :call vimtex#compiler#status(1) endfunction " }}}1 function! vimtex#compiler#init_state(state) abort " {{{1 if !g:vimtex_compiler_enabled | return | endif let a:state.compiler = s:init_compiler({ \ 'file_info': { \ 'root': a:state.root, \ 'target': a:state.tex, \ 'target_name': a:state.name, \ 'target_basename': a:state.base, \ 'jobname': a:state.name, \ } \}) endfunction " }}}1 function! vimtex#compiler#callback(status) abort " {{{1 " Status: " 1: Compilation cycle has started " 2: Compilation complete - Success " 3: Compilation complete - Failed if !exists('b:vimtex.compiler') | return | endif silent! call s:output.pause() let l:__silent = b:vimtex.compiler.silence_next_callback if l:__silent let b:vimtex.compiler.silence_next_callback = v:false if g:vimtex_compiler_silent let l:__silent = v:false else call vimtex#log#set_silent() endif endif let b:vimtex.compiler.status = a:status if a:status == 1 if exists('#User#VimtexEventCompiling') doautocmd User VimtexEventCompiling endif elseif a:status == 2 if !g:vimtex_compiler_silent call vimtex#log#info('Compilation completed') endif if exists('b:vimtex') call b:vimtex.update_packages() call vimtex#syntax#packages#init() endif call vimtex#qf#open(0) if exists('#User#VimtexEventCompileSuccess') doautocmd User VimtexEventCompileSuccess endif elseif a:status == 3 if !g:vimtex_compiler_silent call vimtex#log#warning('Compilation failed!') endif call vimtex#qf#open(0) if exists('#User#VimtexEventCompileFailed') doautocmd User VimtexEventCompileFailed endif endif if l:__silent call vimtex#log#set_silent_restore() endif silent! call s:output.resume() endfunction " }}}1 function! vimtex#compiler#compile(...) abort " {{{1 if !b:vimtex.compiler.enabled | return | endif if b:vimtex.compiler.is_running() call vimtex#compiler#stop() else call call('vimtex#compiler#start', a:000) endif endfunction " }}}1 function! vimtex#compiler#compile_ss(...) abort " {{{1 if !b:vimtex.compiler.enabled | return | endif if b:vimtex.compiler.is_running() call vimtex#log#info( \ 'Compiler is already running, use :VimtexStop to stop it!') return endif call b:vimtex.compiler.start_single(expandcmd(join(a:000))) if g:vimtex_compiler_silent | return | endif call vimtex#log#info('Compiler started in background!') endfunction " }}}1 function! vimtex#compiler#compile_selected(type) abort range " {{{1 if !b:vimtex.compiler.enabled | return | endif " Values of a:firstline and a:lastline are not available in nested function " calls, so we must handle them here. let l:opts = a:type ==# 'command' \ ? {'type': 'range', 'range': [a:firstline, a:lastline]} \ : {'type': a:type =~# 'line\|char\|block' ? 'operator' : a:type} let l:state = vimtex#parser#selection_to_texfile(l:opts) if empty(l:state) | return | endif " Create and initialize temporary compiler let l:compiler = s:init_compiler({ \ 'file_info': { \ 'root': l:state.root, \ 'target': l:state.tex, \ 'target_name': l:state.name, \ 'target_basename': l:state.base, \ 'jobname': l:state.name, \ }, \ 'out_dir': '', \ 'continuous': 0, \ 'callback': 0, \}) if empty(l:compiler) | return | endif call vimtex#log#info('Compiling selected lines ...') call vimtex#log#set_silent() call l:compiler.start() call l:compiler.wait() " Check if successful if vimtex#qf#inquire(l:state.tex) call vimtex#log#set_silent_restore() call vimtex#log#warning('Compiling selected lines ... failed!') botright cwindow return else call l:compiler.clean(0) call b:vimtex.viewer.view(l:state.pdf) call vimtex#log#set_silent_restore() call vimtex#log#info('Compiling selected lines ... done') endif endfunction " }}}1 function! vimtex#compiler#output() abort " {{{1 if !b:vimtex.compiler.enabled | return | endif if !exists('b:vimtex.compiler.output') \ || !filereadable(b:vimtex.compiler.output) call vimtex#log#warning('No output exists!') return endif " If relevant output is open, then reuse it if exists('s:output') if s:output.name ==# b:vimtex.compiler.output if bufwinnr(b:vimtex.compiler.output) == s:output.winnr execute s:output.winnr . 'wincmd w' endif return else call s:output.destroy() endif endif call s:output_factory.create(b:vimtex.compiler.output) endfunction " }}}1 function! vimtex#compiler#start(...) abort " {{{1 if !b:vimtex.compiler.enabled | return | endif if !b:vimtex.is_compileable() call vimtex#log#error( \ 'Compilation error due to failed mainfile detection!', \ 'Please ensure that VimTeX can locate the proper main .tex file.', \ 'Read ":help vimtex-multi-file" for more info.' \) return endif if b:vimtex.compiler.is_running() call vimtex#log#warning( \ 'Compiler is already running for `' . b:vimtex.base . "'") return endif call b:vimtex.compiler.start(expandcmd(join(a:000))) if g:vimtex_compiler_silent | return | endif " We add a redraw here to clear messages (e.g. file written). This is useful " to avoid the "Press ENTER" prompt in some cases, see e.g. " https://github.com/lervag/vimtex/issues/2149 redraw if b:vimtex.compiler.continuous call vimtex#log#info('Compiler started in continuous mode') else call vimtex#log#info('Compiler started in background!') endif endfunction " }}}1 function! vimtex#compiler#stop() abort " {{{1 if !b:vimtex.compiler.enabled | return | endif if !b:vimtex.compiler.is_running() call vimtex#log#warning( \ 'There is no process to stop (' . b:vimtex.base . ')') return endif call b:vimtex.compiler.stop() if g:vimtex_compiler_silent | return | endif call vimtex#log#info('Compiler stopped (' . b:vimtex.base . ')') endfunction " }}}1 function! vimtex#compiler#stop_all() abort " {{{1 for l:state in vimtex#state#list_all() if exists('l:state.compiler.enabled') \ && l:state.compiler.enabled \ && l:state.compiler.is_running() call l:state.compiler.stop() call vimtex#log#info('Compiler stopped (' \ . l:state.compiler.file_info.target_basename . ')') endif endfor endfunction " }}}1 function! vimtex#compiler#clean(full) abort " {{{1 if !b:vimtex.compiler.enabled | return | endif let l:restart = b:vimtex.compiler.is_running() if l:restart call b:vimtex.compiler.stop() endif call b:vimtex.compiler.clean(a:full) sleep 100m call b:vimtex.compiler.remove_dirs() call vimtex#log#info('Compiler clean finished' . (a:full ? ' (full)' : '')) if l:restart let b:vimtex.compiler.silence_next_callback = 1 silent call b:vimtex.compiler.start() endif endfunction " }}}1 function! vimtex#compiler#status(detailed) abort " {{{1 if !b:vimtex.compiler.enabled | return | endif if a:detailed let l:running = [] for l:data in vimtex#state#list_all() if l:data.compiler.is_running() let l:name = l:data.tex if len(l:name) >= winwidth('.') - 20 let l:name = '...' . l:name[-winwidth('.')+23:] endif call add(l:running, printf('%-6s %s', \ string(l:data.compiler.get_pid()) . ':', l:name)) endif endfor if empty(l:running) call vimtex#log#info('Compiler is not running!') else call vimtex#log#info('Compiler is running', l:running) endif else if exists('b:vimtex.compiler') \ && b:vimtex.compiler.is_running() call vimtex#log#info('Compiler is running') else call vimtex#log#info('Compiler is not running!') endif endif endfunction " }}}1 function! s:init_compiler(options) abort " {{{1 if type(g:vimtex_compiler_method) == v:t_func \ || exists('*' . g:vimtex_compiler_method) let l:method = call(g:vimtex_compiler_method, [a:options.file_info.target]) else let l:method = g:vimtex_compiler_method endif if index([ \ 'arara', \ 'generic', \ 'latexmk', \ 'latexrun', \ 'tectonic', \], l:method) < 0 call vimtex#log#error('Error! Invalid compiler method: ' . l:method) let l:method = 'latexmk' endif let l:options = extend( \ deepcopy(get(g:, 'vimtex_compiler_' . l:method, {})), \ a:options) return vimtex#compiler#{l:method}#init(l:options) endfunction " }}}1 let s:output_factory = {} function! s:output_factory.create(file) dict abort " {{{1 let l:vimtex = b:vimtex silent execute 'split' a:file let b:vimtex = l:vimtex setlocal autoread setlocal nomodifiable setlocal bufhidden=wipe nnoremap q :bwipeout if has('nvim') || has('gui_running') nnoremap :bwipeout endif let s:output = deepcopy(self) unlet s:output.create let s:output.name = a:file let s:output.ftime = -1 let s:output.paused = v:false let s:output.bufnr = bufnr('%') let s:output.winnr = bufwinnr('%') let s:output.timer = timer_start(100, \ {_ -> s:output.update()}, \ {'repeat': -1}) augroup vimtex_output_window autocmd! autocmd BufDelete call s:output.destroy() autocmd BufEnter * call s:output.update() autocmd FocusGained * call s:output.update() autocmd CursorHold * call s:output.update() autocmd CursorHoldI * call s:output.update() autocmd CursorMoved * call s:output.update() autocmd CursorMovedI * call s:output.update() augroup END endfunction " }}}1 function! s:output_factory.pause() dict abort " {{{1 let self.paused = v:true endfunction " }}}1 function! s:output_factory.resume() dict abort " {{{1 let self.paused = v:false endfunction " }}}1 function! s:output_factory.update() dict abort " {{{1 if self.paused | return | endif let l:ftime = getftime(self.name) if self.ftime >= l:ftime \ || mode() ==? 'v' || mode() ==# "\" return endif let self.ftime = getftime(self.name) if bufwinnr(self.name) != self.winnr let self.winnr = bufwinnr(self.name) endif let l:swap = bufwinnr('%') != self.winnr if l:swap let l:return = bufwinnr('%') execute 'keepalt' self.winnr . 'wincmd w' endif " Force reload file content silent edit if l:swap " Go to last line of file if it is not the current window normal! Gzb execute 'keepalt' l:return . 'wincmd w' redraw endif endfunction " }}}1 function! s:output_factory.destroy() dict abort " {{{1 call timer_stop(self.timer) autocmd! vimtex_output_window augroup! vimtex_output_window unlet s:output endfunction " }}}1 " {{{1 Initialize module if !get(g:, 'vimtex_compiler_enabled') | finish | endif augroup vimtex_compiler autocmd! autocmd VimLeave * call vimtex#compiler#stop_all() augroup END " }}}1 vimtex-2.16/autoload/vimtex/compiler/000077500000000000000000000000001474274247400177335ustar00rootroot00000000000000vimtex-2.16/autoload/vimtex/compiler/_template.vim000066400000000000000000000317431474274247400224320ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#compiler#_template#new(opts) abort " {{{1 return extend(deepcopy(s:compiler), a:opts) endfunction " }}}1 let s:compiler = { \ 'name': '__template__', \ 'enabled': v:true, \ 'out_dir': '', \ 'continuous': 0, \ 'hooks': [], \ 'output': tempname(), \ 'silence_next_callback': 0, \ 'file_info': {}, \ 'status': -1, \} function! s:compiler.new(options) abort dict " {{{1 let l:compiler = extend(deepcopy(self), a:options) let l:backend = has('nvim') ? 'nvim' : 'jobs' call extend(l:compiler, deepcopy(s:compiler_{l:backend})) call l:compiler.__check_requirements() call vimtex#util#materialize_property( \ l:compiler, 'out_dir', l:compiler.file_info) call l:compiler.__init() " $VIMTEX_OUTPUT_DIRECTORY overrides configured compiler.out_dir if !empty($VIMTEX_OUTPUT_DIRECTORY) if !empty(l:compiler.out_dir) \ && (l:compiler.out_dir !=# $VIMTEX_OUTPUT_DIRECTORY) call vimtex#log#warning( \ 'Setting VIMTEX_OUTPUT_DIRECTORY overrides out_dir!', \ 'Changed out_dir from: ' . l:compiler.out_dir, \ 'Changed out_dir to: ' . $VIMTEX_OUTPUT_DIRECTORY) endif let l:compiler.out_dir = $VIMTEX_OUTPUT_DIRECTORY endif " Remove init methods unlet l:compiler.new unlet l:compiler.__check_requirements unlet l:compiler.__init return l:compiler endfunction " }}}1 function! s:compiler.__check_requirements() abort dict " {{{1 let self.enabled = v:false endfunction " }}}1 function! s:compiler.__init() abort dict " {{{1 endfunction " }}}1 function! s:compiler.__build_cmd(opts) abort dict " {{{1 throw 'VimTeX: __build_cmd method must be defined!' endfunction " }}}1 function! s:compiler.__pprint() abort dict " {{{1 let l:list = [] if self.file_info.target !=# b:vimtex.tex call add(l:list, ['root', self.file_info.root]) call add(l:list, ['target', self.file_info.target_basename]) endif if self.file_info.jobname !=# b:vimtex.name call add(l:list, ['jobname', self.file_info.jobname]) endif if has_key(self, 'get_engine') call add(l:list, ['engine', self.get_engine()]) endif if has_key(self, 'options') call add(l:list, ['options', self.options]) endif if !empty(self.out_dir) call add(l:list, ['out_dir', self.out_dir]) endif if has_key(self, '__pprint_append') call extend(l:list, self.__pprint_append()) endif if has_key(self, 'job') let l:job = [] call add(l:job, ['jobid', self.job]) call add(l:job, ['output', self.output]) call add(l:job, ['cmd', self.cmd]) if self.continuous call add(l:job, ['pid', self.get_pid()]) endif call add(l:list, ['job', l:job]) endif return l:list endfunction " }}}1 function! s:compiler._create_build_dir(path) abort dict " {{{1 " Create build dir "path" if it does not exist " Note: This may need to create a hierarchical structure! if empty(a:path) | return | endif if has_key(b:vimtex, 'get_sources') let l:dirs = b:vimtex.get_sources() call filter(map( \ l:dirs, "fnamemodify(v:val, ':h')"), \ {_, x -> x !=# '.'}) call filter(l:dirs, {_, x -> stridx(x, '../') != 0}) else let l:dirs = glob(self.file_info.root . '/**/*.tex', v:false, v:true) call map(l:dirs, "fnamemodify(v:val, ':h')") call map(l:dirs, 'strpart(v:val, strlen(self.file_info.root) + 1)') endif call uniq(sort(filter(l:dirs, '!empty(v:val)'))) call map(l:dirs, {_, x -> \ (vimtex#paths#is_abs(a:path) ? '' : self.file_info.root . '/') \ . a:path . '/' . x}) call filter(l:dirs, '!isdirectory(v:val)') if empty(l:dirs) | return | endif " Create the non-existing directories call vimtex#log#warning(["Creating directorie(s):"] \ + map(copy(l:dirs), {_, x -> '* ' . x})) for l:dir in l:dirs call mkdir(l:dir, 'p') endfor endfunction " }}}1 function! s:compiler._remove_dir(path) abort dict " {{{1 if empty(a:path) | return | endif let l:out_dir = vimtex#paths#is_abs(a:path) \ ? a:path \ : self.file_info.root . '/' . a:path if !isdirectory(l:out_dir) | return | endif let l:tree = glob(l:out_dir . '/**/*', 0, 1) let l:files = filter(copy(l:tree), 'filereadable(v:val)') if empty(l:files) for l:dir in sort(l:tree) + [l:out_dir] call delete(l:dir, 'd') endfor endif endfunction " }}}1 function! s:compiler.create_dirs() abort dict " {{{1 call self._create_build_dir(self.out_dir) endfunction " }}}1 function! s:compiler.remove_dirs() abort dict " {{{1 call self._remove_dir(self.out_dir) endfunction " }}}1 function! s:compiler.get_file(ext) abort dict " {{{1 for l:root in [ \ $VIMTEX_OUTPUT_DIRECTORY, \ self.out_dir, \ self.file_info.root \] if empty(l:root) | continue | endif let l:cand = printf('%s/%s.%s', l:root, self.file_info.jobname, a:ext) if !vimtex#paths#is_abs(l:root) let l:cand = self.file_info.root . '/' . l:cand endif if filereadable(l:cand) return fnamemodify(l:cand, ':p') endif endfor return '' endfunction " }}}1 function! s:compiler.clean(full) abort dict " {{{1 let l:extensions = ['synctex.gz', 'toc', 'out', 'aux', 'log', 'xdv', 'fls'] if a:full call extend(l:extensions, ['pdf']) endif call map(l:extensions, { _, x -> self.get_file(x) }) for l:file in filter(l:extensions, { _, x -> !empty(x) }) call delete(l:file) endfor for l:expr in g:vimtex_compiler_clean_paths for l:path in glob(self.file_info.root . '/' . l:expr, v:false, v:true) call delete(l:path, 'rf') endfor endfor endfunction " }}}1 function! s:compiler.start(...) abort dict " {{{1 if self.is_running() | return | endif call self.create_dirs() " Initialize output file call writefile([], self.output, 'a') " Prepare compile command let l:passed_options = a:0 > 0 ? ' ' . a:1 : '' let self.cmd = self.__build_cmd(l:passed_options) let l:cmd = has('win32') \ ? 'cmd /s /c "' . self.cmd . '"' \ : ['sh', '-c', self.cmd] " Handle -jobname if it is passed as an option let l:jobname = matchstr(self.cmd, '-jobname=\zs\S*') let self.file_info.jobname = empty(l:jobname) \ ? self.file_info.target_name \ : l:jobname " Execute command and toggle status call self.exec(l:cmd) let self.status = 1 " Use timer to check that compiler started properly if self.continuous let self.check_timer \ = timer_start(50, function('s:check_if_running'), {'repeat': 20}) let self.vimtex_id = b:vimtex_id let s:check_timers[self.check_timer] = self endif if exists('#User#VimtexEventCompileStarted') doautocmd User VimtexEventCompileStarted endif endfunction let s:check_timers = {} function! s:check_if_running(timer) abort " {{{2 if s:check_timers[a:timer].is_running() | return | endif call timer_stop(a:timer) let l:compiler = remove(s:check_timers, a:timer) unlet l:compiler.check_timer if l:compiler.vimtex_id == get(b:, 'vimtex_id', -1) call vimtex#compiler#output() endif call vimtex#log#error('Compiler did not start successfully!') endfunction " }}}2 " }}}1 function! s:compiler.start_single(...) abort dict " {{{1 let l:continuous = self.continuous let self.continuous = 0 call call(self.start, a:000) let self.continuous = l:continuous endfunction " }}}1 function! s:compiler.stop() abort dict " {{{1 if !self.is_running() | return | endif silent! call timer_stop(self.check_timer) let self.status = 0 call self.kill() if exists('#User#VimtexEventCompileStopped') doautocmd User VimtexEventCompileStopped endif endfunction " }}}1 let s:compiler_jobs = {} function! s:compiler_jobs.exec(cmd) abort dict " {{{1 let l:options = { \ 'in_io': 'null', \ 'out_io': 'file', \ 'err_io': 'file', \ 'out_name': self.output, \ 'err_name': self.output, \ 'cwd': self.file_info.root, \} if self.continuous let l:options.out_io = 'pipe' let l:options.err_io = 'pipe' let l:options.out_cb = function('s:callback_continuous_output') let l:options.err_cb = function('s:callback_continuous_output') else let s:cb_target = self.file_info.target !=# b:vimtex.tex \ ? self.file_info.target \ : '' let s:cb_output = self.output let l:options.exit_cb = function('s:callback') endif let self.job = job_start(a:cmd, l:options) endfunction " }}}1 function! s:compiler_jobs.kill() abort dict " {{{1 call job_stop(self.job) for l:dummy in range(25) sleep 1m if !self.is_running() | return | endif endfor endfunction " }}}1 function! s:compiler_jobs.wait() abort dict " {{{1 for l:dummy in range(500) sleep 10m if !self.is_running() | return | endif endfor call self.stop() endfunction " }}}1 function! s:compiler_jobs.is_running() abort dict " {{{1 return has_key(self, 'job') && job_status(self.job) ==# 'run' endfunction " }}}1 function! s:compiler_jobs.get_pid() abort dict " {{{1 return has_key(self, 'job') \ ? get(job_info(self.job), 'process') : 0 endfunction " }}}1 function! s:callback(ch, msg) abort " {{{1 if !exists('b:vimtex.compiler') | return | endif if b:vimtex.compiler.status == 0 | return | endif try call vimtex#compiler#callback(2 + vimtex#qf#inquire(s:cb_target)) catch /E565:/ " In some edge cases, the callback seems to be issued while executing code " in a protected context where "cclose" is not allowed with the resulting " error code from compiler#callback->qf#open. The reported error message " is: " " E565: Not allowed to change text or change window: cclose " " See https://github.com/lervag/vimtex/issues/2225 endtry if !exists('b:vimtex.compiler.hooks') | return | endif try let l:lines = readfile(s:cb_output) for l:Hook in b:vimtex.compiler.hooks for l:line in l:lines call l:Hook(l:line) endfor endfor catch /E716/ endtry endfunction " }}}1 function! s:callback_continuous_output(channel, msg) abort " {{{1 if exists('b:vimtex.compiler.output') \ && filewritable(b:vimtex.compiler.output) call writefile([a:msg], b:vimtex.compiler.output, 'aS') endif call s:check_callback(a:msg) if !exists('b:vimtex.compiler.hooks') | return | endif try for l:Hook in b:vimtex.compiler.hooks call l:Hook(a:msg) endfor catch /E716/ endtry endfunction " }}}1 let s:compiler_nvim = {} function! s:compiler_nvim.exec(cmd) abort dict " {{{1 let l:shell = { \ 'stdin': 'null', \ 'on_stdout': function('s:callback_nvim_output'), \ 'on_stderr': function('s:callback_nvim_output'), \ 'cwd': self.file_info.root, \ 'tex': self.file_info.target, \ 'output': self.output, \} if !self.continuous let l:shell.on_exit = function('s:callback_nvim_exit') endif call vimtex#jobs#neovim#shell_default() let self.job = jobstart(a:cmd, l:shell) call vimtex#jobs#neovim#shell_restore() endfunction " }}}1 function! s:compiler_nvim.kill() abort dict " {{{1 call jobstop(self.job) endfunction " }}}1 function! s:compiler_nvim.wait() abort dict " {{{1 let l:retvals = jobwait([self.job], 5000) if empty(l:retvals) | return | endif let l:status = l:retvals[0] if l:status >= 0 | return | endif if l:status == -1 | call self.stop() | endif endfunction " }}}1 function! s:compiler_nvim.is_running() abort dict " {{{1 try let pid = jobpid(self.job) return l:pid > 0 catch return v:false endtry endfunction " }}}1 function! s:compiler_nvim.get_pid() abort dict " {{{1 try return jobpid(self.job) catch return 0 endtry endfunction " }}}1 function! s:callback_nvim_output(id, data, event) abort dict " {{{1 " Filter out unwanted newlines let l:data = split(substitute(join(a:data, 'QQ'), '^QQ\|QQ$', '', ''), 'QQ') if !empty(l:data) && filewritable(self.output) call writefile(l:data, self.output, 'a') endif call s:check_callback( \ get(filter(copy(a:data), \ {_, x -> x =~# '^vimtex_compiler_callback'}), -1, '')) if !exists('b:vimtex.compiler.hooks') | return | endif try for l:Hook in b:vimtex.compiler.hooks call l:Hook(join(a:data, "\n")) endfor catch /E716/ endtry endfunction " }}}1 function! s:callback_nvim_exit(id, data, event) abort dict " {{{1 if !exists('b:vimtex.compiler') | return | endif if b:vimtex.compiler.status == 0 | return | endif let l:target = self.tex !=# b:vimtex.tex ? self.tex : '' call vimtex#compiler#callback(2 + vimtex#qf#inquire(l:target)) endfunction " }}}1 function! s:check_callback(line) abort " {{{1 let l:status = get(s:callbacks, substitute(a:line, '\r', '', '')) if l:status <= 0 | return | endif call vimtex#compiler#callback(l:status) endfunction let s:callbacks = { \ 'vimtex_compiler_callback_compiling': 1, \ 'vimtex_compiler_callback_success': 2, \ 'vimtex_compiler_callback_failure': 3, \} " }}}1 vimtex-2.16/autoload/vimtex/compiler/arara.vim000066400000000000000000000014051474274247400215360ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#compiler#arara#init(options) abort " {{{1 return s:compiler.new(a:options) endfunction " }}}1 let s:compiler = vimtex#compiler#_template#new({ \ 'name': 'arara', \ 'options': ['--log'], \}) function! s:compiler.__check_requirements() abort dict " {{{1 if !executable('arara') call vimtex#log#warning('arara is not executable!') let self.enabled = v:false endif endfunction " }}}1 function! s:compiler.__build_cmd(passed_options) abort dict " {{{1 return 'arara ' . join(self.options) \ . ' ' . a:passed_options \ . ' ' . vimtex#util#shellescape(self.file_info.target_basename) endfunction " }}}1 vimtex-2.16/autoload/vimtex/compiler/generic.vim000066400000000000000000000014271474274247400220700ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#compiler#generic#init(options) abort " {{{1 return s:compiler.new(a:options) endfunction " }}}1 let s:compiler = vimtex#compiler#_template#new({ \ 'name' : 'generic', \ 'command' : '', \}) function! s:compiler.__check_requirements() abort dict " {{{1 if empty(self.command) call vimtex#log#warning('Please specify the command to run!') let self.enabled = v:false endif endfunction " }}}1 function! s:compiler.__build_cmd(passed_options) abort dict " {{{1 return self.command->substitute( \ '@tex', \ vimtex#util#shellescape(b:vimtex.tex), \ 'g' \) \ .. a:passed_options endfunction " }}}1 vimtex-2.16/autoload/vimtex/compiler/latexmk.vim000066400000000000000000000243741474274247400221270ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#compiler#latexmk#init(options) abort " {{{1 return s:compiler.new(a:options) endfunction " }}}1 function! vimtex#compiler#latexmk#get_rc_opt(root, opt, type, default) abort " {{{1 " " Parse option from .latexmkrc. " " Arguments: " root Root of LaTeX project " opt Name of options " type 0 if string, 1 if integer, 2 if list " default Value to return if option not found in latexmkrc file " " Output: " [value, location] " " value Option value (integer or string) " location An integer that indicates where option was found " -1: not found (default value returned) " 0: global latexmkrc file " 1: local latexmkrc file " if a:type == 0 let l:pattern = '^\s*\$' . a:opt . '\s*=\s*[''"]\(.\+\)[''"]' elseif a:type == 1 let l:pattern = '^\s*\$' . a:opt . '\s*=\s*\(\d\+\)' elseif a:type == 2 let l:pattern = '^\s*@' . a:opt . '\s*=\s*(\(.*\))' else throw 'VimTeX: Argument error' endif " Candidate files " - each element is a pair [path_to_file, is_local_rc_file]. let l:files = [ \ [a:root . '/latexmkrc', 1], \ [a:root . '/.latexmkrc', 1], \ [fnamemodify('~/.latexmkrc', ':p'), 0], \ [fnamemodify( \ !empty($XDG_CONFIG_HOME) ? $XDG_CONFIG_HOME : '~/.config', ':p') \ . '/latexmk/latexmkrc', 0] \] let l:result = [a:default, -1] for [l:file, l:is_local] in l:files if filereadable(l:file) let l:match = matchlist(readfile(l:file), l:pattern) if len(l:match) > 1 let l:result = [l:match[1], l:is_local] break end endif endfor " Parse the list if a:type == 2 && l:result[1] > -1 let l:array = split(l:result[0], ',') let l:result[0] = [] for l:x in l:array let l:x = substitute(l:x, "^'", '', '') let l:x = substitute(l:x, "'$", '', '') let l:result[0] += [l:x] endfor endif return l:result endfunction " }}}1 function! vimtex#compiler#latexmk#copy_temp_files() abort " {{{1 if exists('*b:vimtex.compiler.__copy_temp_files') call b:vimtex.compiler.__copy_temp_files() endif endfunction " }}}1 let s:compiler = vimtex#compiler#_template#new({ \ 'name' : 'latexmk', \ 'aux_dir': '', \ 'callback' : 1, \ 'continuous': 1, \ 'executable' : 'latexmk', \ 'options' : [ \ '-verbose', \ '-file-line-error', \ '-synctex=1', \ '-interaction=nonstopmode', \ ], \}) function! s:compiler.__check_requirements() abort dict " {{{1 if !executable(self.executable) call vimtex#log#warning(self.executable . ' is not executable') let self.enabled = v:false endif endfunction " }}}1 function! s:compiler.__init() abort dict " {{{1 call vimtex#util#materialize_property(self, 'aux_dir', self.file_info) call s:compare_with_latexmkrc(self, 'out_dir') call s:compare_with_latexmkrc(self, 'aux_dir') " $VIMTEX_OUTPUT_DIRECTORY overrides configured compiler.aux_dir if !empty($VIMTEX_OUTPUT_DIRECTORY) if !empty(self.aux_dir) \ && (self.aux_dir !=# $VIMTEX_OUTPUT_DIRECTORY) call vimtex#log#warning( \ 'Setting VIMTEX_OUTPUT_DIRECTORY overrides aux_dir!', \ 'Changed aux_dir from: ' . self.aux_dir, \ 'Changed aux_dir to: ' . $VIMTEX_OUTPUT_DIRECTORY) endif let self.aux_dir = $VIMTEX_OUTPUT_DIRECTORY endif call self.__init_temp_files() endfunction " }}}1 function! s:compiler.__build_cmd(passed_options) abort dict " {{{1 let l:cmd = (has('win32') \ ? 'set max_print_line=2000 & ' \ : 'max_print_line=2000 ') . self.executable let l:cmd .= ' ' . join(self.options) . a:passed_options let l:cmd .= ' ' . self.get_engine() if !empty(self.out_dir) let l:cmd .= ' -outdir=' . fnameescape(self.out_dir) endif if !empty(self.aux_dir) let l:cmd .= ' -emulate-aux-dir' let l:cmd .= ' -auxdir=' . fnameescape(self.aux_dir) endif if self.continuous let l:cmd .= ' -pvc -pvctimeout- -view=none' if self.callback for [l:opt, l:val] in [ \ ['compiling_cmd', 'vimtex_compiler_callback_compiling'], \ ['success_cmd', 'vimtex_compiler_callback_success'], \ ['failure_cmd', 'vimtex_compiler_callback_failure'], \] let l:cmd .= s:wrap_option_appendcmd(l:opt, 'echo ' . l:val) endfor endif endif return l:cmd . ' ' . vimtex#util#shellescape(self.file_info.target_basename) endfunction " }}}1 function! s:compiler.__pprint_append() abort dict " {{{1 let l:list = [] if !empty(self.aux_dir) call add(l:list, ['aux_dir', self.aux_dir]) endif call add(l:list, ['callback', self.callback]) call add(l:list, ['continuous', self.continuous]) call add(l:list, ['executable', self.executable]) return l:list endfunction " }}}1 function! s:compiler.get_file(ext) abort dict " {{{1 if g:vimtex_view_use_temp_files \ && index(['pdf', 'synctex.gz'], a:ext) >= 0 return self.__get_temp_file(a:ext) endif for l:root in [ \ $VIMTEX_OUTPUT_DIRECTORY, \ self.aux_dir, \ self.out_dir, \ self.file_info.root \] if empty(l:root) | continue | endif let l:cand = printf('%s/%s.%s', l:root, self.file_info.jobname, a:ext) if !vimtex#paths#is_abs(l:root) let l:cand = self.file_info.root . '/' . l:cand endif if filereadable(l:cand) return fnamemodify(l:cand, ':p') endif endfor return '' endfunction " }}}1 function! s:compiler.create_dirs() abort dict " {{{1 call self._create_build_dir(self.out_dir) call self._create_build_dir(self.aux_dir) endfunction " }}}1 function! s:compiler.remove_dirs() abort dict " {{{1 call self._remove_dir(self.out_dir) call self._remove_dir(self.aux_dir) endfunction " }}}1 function! s:compiler.clean(full) abort dict " {{{1 call self.__clean_temp_files(a:full) let l:cmd = self.executable let l:cmd .= a:full ? ' -C' : ' -c' if !empty(self.out_dir) let l:cmd .= ' -outdir=' . fnameescape(self.out_dir) endif if !empty(self.aux_dir) let l:cmd .= ' -emulate-aux-dir' let l:cmd .= ' -auxdir=' . fnameescape(self.aux_dir) endif let l:cmd .= ' ' . vimtex#util#shellescape(self.file_info.target_basename) call vimtex#jobs#run(l:cmd, {'cwd': self.file_info.root}) endfunction " }}}1 function! s:compiler.get_engine() abort dict " {{{1 " Parse tex_program from TeX directive let l:tex_program_directive = b:vimtex.get_tex_program() let l:tex_program = l:tex_program_directive " Parse tex_program from pdf_mode option in .latexmkrc let [l:pdf_mode, l:is_local] = vimtex#compiler#latexmk#get_rc_opt( \ self.file_info.root, 'pdf_mode', 1, -1) if l:pdf_mode >= 1 && l:pdf_mode <= 5 let l:tex_program_pdfmode = [ \ 'pdflatex', \ 'pdfps', \ 'pdfdvi', \ 'lualatex', \ 'xelatex', \][l:pdf_mode-1] " Use pdf_mode if there is no TeX directive if l:tex_program_directive ==# '_' let l:tex_program = l:tex_program_pdfmode elseif l:is_local && l:tex_program_directive !=# l:tex_program_pdfmode " Give warning when there may be a confusing conflict call vimtex#log#warning( \ 'Value of pdf_mode from latexmkrc is inconsistent with ' . \ 'TeX program directive!', \ 'TeX program: ' . l:tex_program_directive, \ 'pdf_mode: ' . l:tex_program_pdfmode, \ 'The value of pdf_mode will be ignored.') endif endif return get(g:vimtex_compiler_latexmk_engines, \ l:tex_program, \ g:vimtex_compiler_latexmk_engines._) endfunction " }}}1 function! s:compiler.__init_temp_files() abort dict " {{{1 let self.__temp_files = {} if !g:vimtex_view_use_temp_files | return | endif let l:root = !empty(self.out_dir) \ ? self.out_dir \ : self.file_info.root for l:ext in ['pdf', 'synctex.gz'] let l:source = printf('%s/%s.%s', l:root, self.file_info.jobname, l:ext) let l:target = printf('%s/_%s.%s', l:root, self.file_info.jobname, l:ext) let self.__temp_files[l:source] = l:target endfor augroup vimtex_compiler autocmd! autocmd User VimtexEventCompileSuccess \ call vimtex#compiler#latexmk#copy_temp_files() augroup END endfunction " }}}1 function! s:compiler.__copy_temp_files() abort dict " {{{1 for [l:source, l:target] in items(self.__temp_files) if getftime(l:source) > getftime(l:target) call writefile(readfile(l:source, 'b'), l:target, 'b') endif endfor endfunction " }}}1 function! s:compiler.__get_temp_file(ext) abort dict " {{{1 for l:file in values(self.__temp_files) if filereadable(l:file) && l:file =~# a:ext . '$' return l:file endif endfor return '' endfunction " }}}1 function! s:compiler.__clean_temp_files(full) abort dict " {{{1 for l:file in values(self.__temp_files) if filereadable(l:file) && (a:full || l:file[-3:] !=# 'pdf') call delete(l:file) endif endfor endfunction " }}}1 function! s:compare_with_latexmkrc(dict, option) abort " {{{1 " Check if option is specified in .latexmkrc. " If it is, .latexmkrc should be respected! let l:value = vimtex#compiler#latexmk#get_rc_opt( \ a:dict.file_info.root, a:option, 0, '')[0] if !empty(l:value) if !empty(a:dict[a:option]) && (a:dict[a:option] !=# l:value) call vimtex#log#warning( \ 'Option "' . a:option . '" is overridden by latexmkrc', \ 'Changed from: ' . a:dict[a:option], \ 'Changed to: ' . l:value) endif let a:dict[a:option] = l:value endif endfunction " }}}1 function! s:wrap_option_appendcmd(name, value) abort " {{{1 " Note: On Linux, we use double quoted perl strings; these interpolate " variables. One should therefore NOT pass values that contain `$`. let l:win_cmd_sep = has('nvim') ? '^&' : '&' let l:common = printf('$%s = ($%s ? $%s', a:name, a:name, a:name) return has('win32') \ ? printf(' -e "%s . '' %s '' : '''') . ''%s''"', \ l:common, l:win_cmd_sep, a:value) \ : printf(' -e ''%s . " ; " : "") . "%s"''', \ l:common, a:value) endfunction "}}}1 vimtex-2.16/autoload/vimtex/compiler/latexrun.vim000066400000000000000000000026421474274247400223160ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#compiler#latexrun#init(options) abort " {{{1 return s:compiler.new(a:options) endfunction " }}}1 let s:compiler = vimtex#compiler#_template#new({ \ 'name' : 'latexrun', \ 'options' : [ \ '--verbose-cmds', \ '--latex-args="-synctex=1"', \ ], \}) function! s:compiler.__check_requirements() abort dict " {{{1 if !executable('latexrun') call vimtex#log#warning('latexrun is not executable!') let self.enabled = v:false endif endfunction " }}}1 function! s:compiler.__build_cmd(passed_options) abort dict " {{{1 return 'latexrun ' . join(self.options) \ . ' --latex-cmd ' . self.get_engine() \ . ' -O ' \ . (empty(self.out_dir) ? '.' : fnameescape(self.out_dir)) \ . a:passed_options \ . ' ' . vimtex#util#shellescape(self.file_info.target_basename) endfunction " }}}1 function! s:compiler.clean(...) abort dict " {{{1 let l:cmd = printf('latexrun --clean-all -O %s', \ empty(self.out_dir) ? '.' : fnameescape(self.out_dir)) call vimtex#jobs#run(l:cmd, {'cwd': self.file_info.root}) endfunction " }}}1 function! s:compiler.get_engine() abort dict " {{{1 return get(g:vimtex_compiler_latexrun_engines, \ b:vimtex.get_tex_program(), \ g:vimtex_compiler_latexrun_engines._) endfunction " }}}1 vimtex-2.16/autoload/vimtex/compiler/tectonic.vim000066400000000000000000000023551474274247400222650ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#compiler#tectonic#init(options) abort " {{{1 return s:compiler.new(a:options) endfunction " }}}1 let s:compiler = vimtex#compiler#_template#new({ \ 'name' : 'tectonic', \ 'options' : [ \ '--keep-logs', \ '--synctex' \ ], \}) function! s:compiler.__check_requirements() abort dict " {{{1 if !executable('tectonic') call vimtex#log#warning('tectonic is not executable!') let self.enabled = v:false endif for l:opt in self.options if l:opt =~# '^-\%(o\|-outdir\)' call vimtex#log#warning("Don't use --outdir or -o in compiler options," \ . ' use out_dir instead, see :help g:vimtex_compiler_tectonic' \ . ' for more details') break endif endfor endfunction " }}}1 function! s:compiler.__build_cmd(passed_options) abort dict " {{{1 let l:outdir = !empty(self.out_dir) \ ? self.out_dir \ : self.file_info.root return 'tectonic ' . join(self.options) \ . ' --outdir="' . l:outdir . '"' \ . a:passed_options \ . ' ' . vimtex#util#shellescape(self.file_info.target_basename) endfunction " }}}1 vimtex-2.16/autoload/vimtex/complete.vim000066400000000000000000000665111474274247400204570ustar00rootroot00000000000000" VimTeX - LaTeX plugin for Vim " " Maintainer: Karl Yngve Lervåg " Email: karl.yngve@gmail.com " function! vimtex#complete#init_buffer() abort " {{{1 if !g:vimtex_complete_enabled | return | endif if !has_key(b:vimtex, 'complete') let b:vimtex.complete = {} endif for l:completer in s:completers if has_key(l:completer, 'init') call l:completer.init() endif endfor setlocal omnifunc=vimtex#complete#omnifunc endfunction " }}}1 function! vimtex#complete#omnifunc(findstart, base) abort " {{{1 if a:findstart if exists('s:completer') | unlet s:completer | endif let l:pos = col('.') - 1 let l:line = getline('.')[:l:pos-1] for l:completer in s:completers if !get(l:completer, 'enabled', 1) | continue | endif for l:pattern in l:completer.patterns if l:line =~# l:pattern let s:completer = l:completer while l:pos > 0 if l:line[l:pos - 1] =~# '{\|,\|\[\|\\' \ || l:line[l:pos-2:l:pos-1] ==# ', ' let s:completer.context = matchstr(l:line, \ get(s:completer, 're_context', '\S*$')) return l:pos else let l:pos -= 1 endif endwhile return -2 endif endfor endfor return -3 elseif !exists('s:completer') return [] endif return g:vimtex_complete_close_braces && get(s:completer, 'inside_braces', 1) \ ? s:close_braces(s:completer.complete(a:base)) \ : s:completer.complete(a:base) endfunction " }}}1 function! vimtex#complete#complete(type, input, context) abort " {{{1 try let s:completer = s:completer_{a:type} let s:completer.context = a:context return s:completer.complete(a:input) catch /E121/ return [] endtry endfunction " }}}1 " " Completers " " {{{1 Bibtex let s:completer_bib = { \ 'patterns' : [ \ '\v\\%(\a*cite|Cite)\a*\*?%(\s*\[[^]]*\]|\s*\<[^>]*\>){0,2}\s*\{[^}]*$', \ '\v\\%(\a*cites|Cites)%(\s*\([^)]*\)){0,2}' \ . '%(%(\s*\[[^]]*\]){0,2}\s*\{[^}]*\})*' \ . '%(\s*\[[^]]*\]){0,2}\s*\{[^}]*$', \ '\v\\bibentry\s*\{[^}]*$', \ '\v\\%(text|block)cquote\*?%(\s*\[[^]]*\]){0,2}\{[^}]*$', \ '\v\\%(for|hy)\w+cquote\*?\{[^}]*\}%(\s*\[[^]]*\]){0,2}\{[^}]*$', \ '\v\\defbibentryset\{[^}]*\}\{[^}]*$', \ '\v\\\a?[vV]olcite%(\s*\[[^]]*\])?\s*\{[^}]*\}%(\s*\[[^]]*\])?\s*\{[^}]*$', \ ], \ 'initialized' : 0, \} function! s:completer_bib.init() dict abort " {{{2 if self.initialized | return | endif let self.initialized = 1 let self.patterns += g:vimtex_complete_bib.custom_patterns endfunction function! s:completer_bib.complete(regex) dict abort " {{{2 let self.candidates = self.gather_candidates() if g:vimtex_complete_bib.simple call s:filter(self.candidates, a:regex) else call s:filter_with_options(self.candidates, a:regex, { \ 'anchor': 0, \ 'filter_key': 'mstr', \}) endif return self.candidates endfunction function! s:completer_bib.gather_candidates() dict abort " {{{2 let l:entries = [] let l:cache = vimtex#cache#open('bibcomplete', { \ 'local': 1, \ 'default': {'result': [], 'ftime': -1}, \ 'validate': {'options': deepcopy(g:vimtex_complete_bib)} \}) " " Find data from external bib files " " Note: bibtex seems to require that we are in the project root call vimtex#paths#pushd(b:vimtex.root) for l:file in vimtex#bib#files() let l:current = l:cache.get(l:file) let l:ftime = getftime(l:file) if l:ftime > l:current.ftime let l:current.ftime = l:ftime let l:current.result = map( \ vimtex#parser#bib(l:file), \ {_, x -> s:bib_to_candidate(x)}) let l:cache.modified = 1 endif let l:entries += l:current.result endfor call vimtex#paths#popd() " " Find data from 'thebibliography' environments " let l:ftime = b:vimtex.getftime() if l:ftime > 0 let l:current = l:cache.get(sha256(b:vimtex.tex)) if l:ftime > l:current.ftime let l:current.ftime = l:ftime let l:current.result = [] let l:lines = vimtex#parser#tex(b:vimtex.tex, {'detailed' : 0}) if match(l:lines, '\C\\begin{thebibliography}') >= 0 call filter(l:lines, 'v:val =~# ''\C\\bibitem''') for l:line in l:lines let l:matches = matchlist(l:line, '\\bibitem\(\[[^]]\]\)\?{\([^}]*\)') if len(l:matches) > 1 call add(l:current.result, s:bib_to_candidate({ \ 'key': l:matches[2], \ 'type': 'thebibliography', \ 'author': '', \ 'year': '', \ 'title': l:matches[2], \ })) endif endfor endif endif let l:entries += l:current.result endif " Write cache to file call l:cache.write() return l:entries endfunction " }}}2 function! s:bib_to_candidate(entry) abort " {{{2 let l:auth = substitute(get(a:entry, 'author', 'Unknown'), '\~', ' ', 'g') let l:substitutes = { \ '@author_all' : g:vimtex_complete_bib.auth_len > 0 \ ? strcharpart(l:auth, 0, g:vimtex_complete_bib.auth_len) \ : l:auth, \ '@author_short' : substitute(l:auth, ',.*\ze', ' et al.', ''), \ '@key' : a:entry['key'], \ '@title' : get(a:entry, 'title', 'No title'), \ '@type' : empty(a:entry['type']) ? '-' : a:entry['type'], \ '@year' : get(a:entry, 'year', get(a:entry, 'date', '?')), \} let l:cand = {'word': a:entry['key']} " Create match and menu strings let l:cand.mstr = copy(g:vimtex_complete_bib.match_str_fmt) let l:cand.menu = copy(g:vimtex_complete_bib.menu_fmt) let l:cand.info = copy(g:vimtex_complete_bib.info_fmt) for [l:key, l:val] in items(l:substitutes) let l:val = escape(l:val, '&') let l:cand.mstr = substitute(l:cand.mstr, l:key, l:val, '') let l:cand.menu = substitute(l:cand.menu, l:key, l:val, '') let l:cand.info = substitute(l:cand.info, l:key, l:val, '') endfor if empty(l:cand.menu) unlet l:cand.menu endif if empty(l:cand.info) unlet l:cand.info endif " Create abbreviation string (if necessary) if !empty(g:vimtex_complete_bib.abbr_fmt) let l:cand.abbr = copy(g:vimtex_complete_bib.abbr_fmt) for [l:key, l:val] in items(l:substitutes) let l:cand.abbr = substitute(l:cand.abbr, l:key, escape(l:val, '&'), '') endfor endif return l:cand endfunction " }}}2 " }}}1 " {{{1 Labels let s:completer_ref = { \ 'patterns' : [ \ '\v\\v?%(auto|eq|[cC]?%(page)?|labelc)?ref%(\s*\{[^}]*|range\s*\{[^,{}]*%(\}\{)?)$', \ '\\hyperref\s*\[[^]]*$', \ '\\subref\*\?{[^}]*$', \ '\\nameref{[^}]*$', \ ], \ 're_context' : '\\\w*{[^}]*$', \ 'initialized' : 0, \} function! s:completer_ref.init() dict abort " {{{2 if self.initialized | return | endif let self.initialized = 1 " Add custom patterns let self.patterns += g:vimtex_complete_ref.custom_patterns endfunction function! s:completer_ref.complete(regex) dict abort " {{{2 let l:candidates = self.get_matches(a:regex) if self.context =~# '\\eqref' \ && !empty(filter(copy(l:candidates), 'v:val.word =~# ''^eq:''')) call filter(l:candidates, 'v:val.word =~# ''^eq:''') endif return l:candidates endfunction function! s:completer_ref.get_matches(regex) dict abort " {{{2 let l:labels = vimtex#parser#auxiliary#labels() " Match number let l:matches = filter(copy(l:labels), {_, x -> x.menu =~# a:regex}) if !empty(l:matches) | return l:matches | endif " Match label let l:matches = filter(copy(l:labels), {_, x -> x.word =~# a:regex}) if !empty(l:matches) | return l:matches | endif " Match label and number let l:regex_split = split(a:regex) if len(l:regex_split) > 1 let l:base = l:regex_split[0] let l:number = escape(join(l:regex_split[1:], ' '), '.') let l:matches = filter(copy(l:labels), \ {_, x -> x.word =~# l:base && x.menu =~# l:number}) endif return l:matches endfunction " }}}1 " {{{1 Commands let s:completer_cmd = { \ 'patterns' : [g:vimtex#re#not_bslash . '\\\a*$'], \ 'inside_braces' : 0, \} function! s:completer_cmd.complete(regex) dict abort " {{{2 let l:candidates = self.gather_candidates() let l:mode = vimtex#syntax#in_mathzone() ? 'm' : 'n' call s:filter(l:candidates, a:regex) call filter(l:candidates, 'l:mode =~# v:val.mode') return l:candidates endfunction function! s:completer_cmd.gather_candidates() dict abort " {{{2 let l:candidates = s:load_from_document('cmd') let l:candidates += self.gather_candidates_from_lets() for l:pkg in s:get_packages() let l:candidates += s:load_from_package(l:pkg, 'cmd') endfor let l:candidates += self.gather_candidates_from_glossary_keys() return vimtex#util#uniq_unsorted(l:candidates) endfunction function! s:completer_cmd.gather_candidates_from_glossary_keys() dict abort " {{{2 if !has_key(b:vimtex.packages, 'glossaries') | return [] | endif let l:preamble = vimtex#parser#preamble(b:vimtex.tex) call map(l:preamble, {_, x -> substitute(x, '\s*%.*', '', 'g')}) let l:glskeys = split(join(l:preamble, "\n"), '\n\s*\\glsaddkey\*\?')[1:] call map(l:glskeys, {_, x -> substitute(x, '\n\s*', '', 'g')}) call map(l:glskeys, 'vimtex#util#tex2tree(v:val)[2:6]') let l:candidates = map(vimtex#util#flatten(l:glskeys), {_, x -> { \ 'word' : x[1:], \ 'mode' : '.', \ 'kind' : '[cmd: glossaries]', \}}) return l:candidates endfunction function! s:completer_cmd.gather_candidates_from_lets() dict abort " {{{2 let l:preamble = vimtex#parser#preamble(b:vimtex.tex) let l:lets = filter(copy(l:preamble), 'v:val =~# ''\\let\>''') let l:defs = filter(copy(l:preamble), 'v:val =~# ''\\def\>''') let l:candidates = map(l:lets, {_, x -> { \ 'word': matchstr(x, '\\let[^\\]*\\\zs\w*'), \ 'mode': '.', \ 'kind': '[cmd: \let]', \}}) \ + map(l:defs, {_, x -> { \ 'word': matchstr(x, '\\def[^\\]*\\\zs\w*'), \ 'mode': '.', \ 'kind': '[cmd: \def]', \}}) return l:candidates endfunction " }}}1 " {{{1 Environments let s:completer_env = { \ 'patterns' : ['\v\\%(begin|end)%(\s*\[[^]]*\])?\s*\{[^}]*$'], \} function! s:completer_env.complete(regex) dict abort " {{{2 if self.context =~# '^\\end\>' " When completing \end{, search for an unmatched \begin{...} let l:matching_env = '' let l:save_pos = vimtex#pos#get_cursor() let l:pos_val_cursor = vimtex#pos#val(l:save_pos) let l:lnum = l:save_pos[1] + 1 while l:lnum > 1 let l:open = vimtex#delim#get_prev('env_tex', 'open') if empty(l:open) || get(l:open, 'name', '') ==# 'document' break endif let l:close = vimtex#delim#get_matching(l:open) if empty(l:close.match) let l:matching_env = l:close.name . (l:close.starred ? '*' : '') break endif let l:pos_val_try = vimtex#pos#val(l:close) + strlen(l:close.match) if l:pos_val_try > l:pos_val_cursor break else let l:lnum = l:open.lnum call vimtex#pos#set_cursor(vimtex#pos#prev(l:open)) endif endwhile call vimtex#pos#set_cursor(l:save_pos) if !empty(l:matching_env) && l:matching_env =~# a:regex return [{ \ 'word': l:matching_env, \ 'kind': '[env: matching]', \}] endif endif return s:filter(copy(self.gather_candidates()), a:regex) endfunction " }}}2 function! s:completer_env.gather_candidates() dict abort " {{{2 let l:candidates = s:load_from_document('env') for l:pkg in s:get_packages() let l:candidates += s:load_from_package(l:pkg, 'env') endfor return vimtex#util#uniq_unsorted(l:candidates) endfunction " }}}2 " }}}1 " {{{1 Filenames (\includegraphics) let s:completer_img = { \ 'patterns' : ['\v\\includegraphics\*?%(\s*\[[^]]*\]){0,2}\s*\{[^}]*$'], \ 'ext_re' : '\v\.%(' \ . join(['png', 'jpg', 'eps', 'pdf', 'pgf', 'tikz'], '|') \ . ')$', \} function! s:completer_img.complete(regex) dict abort let l:added_files = [] let l:generated_pdf = b:vimtex.compiler.get_file('pdf') let l:candidates = [] for l:path in b:vimtex.graphicspath + [b:vimtex.root] let l:files = globpath(l:path, '**/*.*', 1, 1) \ ->filter({_, x -> \ x =~? self.ext_re \ && x !=# l:generated_pdf \ && index(l:added_files, x) < 0 \}) let l:added_files += l:files let l:candidates += map(l:files, {_, x -> { \ 'abbr': vimtex#paths#shorten_relative(x), \ 'word': vimtex#paths#relative(x, l:path), \ 'kind': '[graphics]', \}}) endfor return s:filter(l:candidates, a:regex) endfunction " }}}1 " {{{1 Filenames (\input, \include, and \subfile) let s:completer_inc = { \ 'patterns' : [ \ g:vimtex#re#tex_input . '[^}]*$', \ '\v\\includeonly\s*\{[^}]*$', \ ], \} function! s:completer_inc.complete(regex) dict abort let l:candidates = globpath(b:vimtex.root, '**/*.tex', 0, 1) " Add .tikz files if appropriate if has_key(b:vimtex.packages, 'tikz') && self.context !~# '\\subfile' call extend(l:candidates, globpath(b:vimtex.root, '**/*.tikz', 0, 1)) endif if self.context =~# '\\include' let l:candidates = map(l:candidates, {_, x -> #{ \ word: vimtex#paths#relative(x, b:vimtex.root)->fnamemodify(':r'), \ kind: '[include]', \}}) else let l:candidates = map(l:candidates, {_, x -> #{ \ word: vimtex#paths#relative(x, b:vimtex.root), \ kind: '[input]', \}}) endif return s:filter(l:candidates, a:regex) endfunction " }}}1 " {{{1 Filenames (\includepdf) let s:completer_pdf = { \ 'patterns' : ['\v\\includepdf%(\s*\[[^]]*\])?\s*\{[^}]*$'], \} function! s:completer_pdf.complete(regex) dict abort let l:candidates = globpath(b:vimtex.root, '**/*.pdf', 0, 1) \ ->map({_, x -> #{ \ word: vimtex#paths#relative(x, b:vimtex.root), \ kind: '[includepdf]', \ } \}) return s:filter(l:candidates, a:regex) endfunction " }}}1 " {{{1 Filenames (\includestandalone) let s:completer_sta = { \ 'patterns' : ['\v\\includestandalone%(\s*\[[^]]*\])?\s*\{[^}]*$'], \} function! s:completer_sta.complete(regex) dict abort let l:candidates = globpath(b:vimtex.root, '**/*.tex', 0, 1) \ ->map({_, x -> #{ \ word: vimtex#paths#relative(x, b:vimtex.root)->fnamemodify(':r'), \ kind: '[includestandalone]', \}}) return s:filter(l:candidates, a:regex) endfunction " }}}1 " {{{1 Glossary (\gls +++) let s:completer_gls = { \ 'patterns' : [ \ '\v\\([cpdr]?(gls|Gls|GLS)|acr|Acr|ACR)\a*\s*\{[^}]*$', \ '\v\\(ac|Ac|AC)\s*\{[^}]*$', \ ], \ 'key' : { \ 'newglossaryentry' : ' [gls]', \ 'longnewglossaryentry' : ' [gls]', \ 'newacronym' : ' [acr]', \ 'newabbreviation' : ' [abbr]', \ 'glsxtrnewsymbol' : ' [symbol]', \ }, \} function! s:completer_gls.init() dict abort " {{{2 if !has_key(b:vimtex.packages, 'glossaries-extra') | return | endif " Detect stuff like this: " \GlsXtrLoadResources[src={glossary}] " \GlsXtrLoadResources[src=glossary.bib] " \GlsXtrLoadResources[src={glossary.bib}, selection={all}] " \GlsXtrLoadResources[selection={all},src={glossary.bib}] " \GlsXtrLoadResources[ " src={glossary.bib}, " selection={all}, " ] let l:do_search = 0 let b:vimtex.complete.glsbib = [] for l:line in vimtex#parser#preamble(b:vimtex.tex) if line =~# '^\s*\\GlsXtrLoadResources\s*\[' let l:do_search = 1 let l:line = matchstr(l:line, '^\s*\\GlsXtrLoadResources\s*\[\zs.*') endif if !l:do_search | continue | endif let l:matches = split(l:line, '[=,]') if empty(l:matches) | continue | endif while !empty(l:matches) let l:key = trim(remove(l:matches, 0)) if l:key ==# 'src' let l:value = trim(remove(l:matches, 0)) let l:value = substitute(l:value, '^{', '', '') let l:value = substitute(l:value, '[]}]\s*', '', 'g') if !vimtex#paths#is_abs(l:value) let l:value = vimtex#paths#join(b:vimtex.root, l:value) endif if !filereadable(l:value) let l:value .= '.bib' endif call add(b:vimtex.complete.glsbib, l:value) break endif endwhile endfor endfunction function! s:completer_gls.complete(regex) dict abort " {{{2 return s:filter( \ self.parse_glsentries() + self.parse_glsbib(), a:regex) endfunction function! s:completer_gls.parse_glsentries() dict abort " {{{2 let l:candidates = [] let l:re_commands = '\v\\(' . join(keys(self.key), '|') . ')' let l:re_matcher = l:re_commands . '\s*%(\[.*\])=\s*\{([^{}]*)' for l:line in filter( \ vimtex#parser#tex(b:vimtex.tex, {'detailed' : 0}), \ 'v:val =~# l:re_commands') let l:matches = matchlist(l:line, l:re_matcher) call add(l:candidates, { \ 'word' : l:matches[2], \ 'menu' : self.key[l:matches[1]], \}) endfor return l:candidates endfunction function! s:completer_gls.parse_glsbib() dict abort " {{{2 let l:candidates = [] for l:filename in get(b:vimtex.complete, 'glsbib', []) for l:entry in vimtex#parser#bib(l:filename, {'backend': 'vim'}) let l:menu = '' for l:c in ['name', 'long', 'title'] if l:entry->has_key(l:c) let l:menu = ' ' .. l:entry[l:c] break endif endfor call add(l:candidates, { \ 'word': l:entry.key, \ 'kind': '[gls]', \ 'menu': l:menu \}) endfor endfor return l:candidates endfunction " }}}1 " {{{1 Packages (\usepackage) let s:completer_pck = { \ 'patterns' : [ \ '\v\\%(usepackage|RequirePackage)%(\s*\[[^]]*\])?\s*\{[^}]*$', \ '\v\\PassOptionsToPackage\s*\{[^}]*\}\s*\{[^}]*$', \ ], \ 'candidates' : [], \} function! s:completer_pck.complete(regex) dict abort " {{{2 return s:filter(self.gather_candidates(), a:regex) endfunction function! s:completer_pck.gather_candidates() dict abort " {{{2 if empty(self.candidates) let self.candidates = map(s:get_texmf_candidates('sty'), {_, x -> { \ 'word': x, \ 'kind': '[package]', \}}) endif return copy(self.candidates) endfunction " }}}1 " {{{1 Documentclasses (\documentclass) let s:completer_doc = { \ 'patterns' : [ \ '\v\\documentclass%(\s*\[[^]]*\])?\s*\{[^}]*$', \ '\v\\PassOptionsToClass\s*\{[^}]*\}\s*\{[^}]*$', \ ], \ 'candidates' : [], \} function! s:completer_doc.complete(regex) dict abort " {{{2 return s:filter(self.gather_candidates(), a:regex) endfunction function! s:completer_doc.gather_candidates() dict abort " {{{2 if empty(self.candidates) let self.candidates = map(s:get_texmf_candidates('cls'), {_, x -> { \ 'word' : x, \ 'kind' : '[documentclass]', \}}) endif return copy(self.candidates) endfunction " }}}1 " {{{1 Bibliographystyles (\bibliographystyle) let s:completer_bst = { \ 'patterns' : ['\v\\bibliographystyle\s*\{[^}]*$'], \ 'candidates' : [], \} function! s:completer_bst.complete(regex) dict abort " {{{2 return s:filter(self.gather_candidates(), a:regex) endfunction function! s:completer_bst.gather_candidates() dict abort " {{{2 if empty(self.candidates) let self.candidates = map(s:get_texmf_candidates('bst'), {_, x -> { \ 'word' : x, \ 'kind' : '[bst files]', \}}) endif return copy(self.candidates) endfunction " }}}1 " " Functions to parse candidates from packages " function! s:get_packages() abort " {{{1 let l:packages = [ \ 'default', \ 'class-' . get(b:vimtex, 'documentclass', ''), \ ] + keys(b:vimtex.packages) call vimtex#paths#pushd(s:complete_dir) let l:missing = filter(copy(l:packages), '!filereadable(v:val)') call filter(l:packages, 'filereadable(v:val)') " Parse include statements in complete files let l:queue = copy(l:packages) while !empty(l:queue) let l:current = remove(l:queue, 0) let l:includes = filter(readfile(l:current), 'v:val =~# ''^\#\s*include:''') if empty(l:includes) | continue | endif call map(l:includes, {_, x -> matchstr(x, 'include:\s*\zs.*\ze\s*$')}) let l:missing += filter(copy(l:includes), \ {_, x -> !filereadable(x) && index(l:missing, x) < 0}) call filter(l:includes, \ {_, x -> filereadable(x) && index(l:packages, x) < 0}) let l:packages += l:includes let l:queue += l:includes endwhile call vimtex#paths#popd() return l:packages + l:missing endfunction " }}}1 function! s:load_from_package(pkg, type) abort " {{{1 let s:pkg_cache = get(s:, 'pkg_cache', \ vimtex#cache#open('pkgcomplete', {'default': {}})) let l:current = s:pkg_cache.get(a:pkg) let l:pkg_file = s:complete_dir . '/' . a:pkg if filereadable(l:pkg_file) if !has_key(l:current, 'candidates') let s:pkg_cache.modified = 1 let l:current.candidates \ = s:_load_candidates_from_complete_file(a:pkg, l:pkg_file) endif else if !has_key(l:current, 'candidates') let s:pkg_cache.modified = 1 let l:current.candidates = {'cmd': [], 'env': []} endif let l:filename = a:pkg =~# '^class-' \ ? vimtex#kpsewhich#find(a:pkg[6:] . '.cls') \ : vimtex#kpsewhich#find(a:pkg . '.sty') let l:ftime = getftime(l:filename) if l:ftime > get(l:current, 'ftime', -1) let s:pkg_cache.modified = 1 let l:current.ftime = l:ftime let l:current.candidates = s:_load_candidates_from_source( \ readfile(l:filename), a:pkg) endif endif " Write cache to file call s:pkg_cache.write() return copy(l:current.candidates[a:type]) endfunction " }}}1 function! s:load_from_document(type) abort " {{{1 let s:pkg_cache = get(s:, 'pkg_cache', \ vimtex#cache#open('pkgcomplete', {'default': {}})) let l:ftime = b:vimtex.getftime() if l:ftime < 0 | return [] | endif let l:current = s:pkg_cache.get(sha256(b:vimtex.tex)) if l:ftime > get(l:current, 'ftime', -1) let l:current.ftime = l:ftime let l:current.candidates = s:_load_candidates_from_source( \ vimtex#parser#tex(b:vimtex.tex, {'detailed' : 0}), \ 'local') " Write cache to file let s:pkg_cache.modified = 1 call s:pkg_cache.write() endif return copy(l:current.candidates[a:type]) endfunction " }}}1 function! s:_load_candidates_from_complete_file(pkg, pkgfile) abort " {{{1 let l:result = {'cmd': [], 'env': []} let l:lines = readfile(a:pkgfile) let l:candidates = filter(copy(l:lines), 'v:val =~# ''^\a''') call map(l:candidates, 'split(v:val)') call map(l:candidates, {_, x -> { \ 'word': x[0], \ 'mode': '.', \ 'kind': '[cmd: ' . a:pkg . '] ', \ 'menu': get(x, 1, ''), \}}) let l:result.cmd += l:candidates let l:candidates = filter(l:lines, 'v:val =~# ''^\\begin{''') call map(l:candidates, {_, x -> { \ 'word': substitute(x, '^\\begin{\|}$', '', 'g'), \ 'mode': '.', \ 'kind': '[env: ' . a:pkg . '] ', \}}) let l:result.env += l:candidates return l:result endfunction " }}}1 function! s:_load_candidates_from_source(lines, pkg) abort " {{{1 return { \ 'cmd': \ s:gather_candidates_from_newcommands( \ copy(a:lines), 'cmd: ' . a:pkg), \ 'env': \ s:gather_candidates_from_newenvironments( \ a:lines, 'env: ' . a:pkg) \} endfunction " }}}1 function! s:gather_candidates_from_newcommands(lines, label) abort " {{{1 " Arguments: " a:lines Lines of TeX that may contain \newcommands (or some variant, " e.g. as provided by xparse and standard declaration) " a:label Label to use in the menu let l:re = '\v\\%(%(provide|renew|new)command' \ . '|%(New|Declare|Provide|Renew)%(Expandable)?DocumentCommand' \ . '|DeclarePairedDelimiter)' let l:re_match = l:re . '\*?%(\{\\?\zs[^}]*|\\\zs\w+)' return map(filter(a:lines, 'v:val =~# l:re'), {_, x -> { \ 'word': matchstr(x, l:re_match), \ 'mode': '.', \ 'kind': '[' . a:label . ']', \}}) endfunction " }}}1 function! s:gather_candidates_from_newenvironments(lines, label) abort " {{{1 " Arguments: " a:lines Lines of TeX that may contain \newenvironments (or some " variant, e.g. as provided by xparse and standard declaration) " a:label Label to use in the menu let l:re = '\v\\((renew|new)environment' \ . '|(New|Renew|Provide|Declare)DocumentEnvironment)' let l:re_match = l:re . '\*?\{\\?\zs[^}]*' return map(filter(a:lines, 'v:val =~# l:re'), {_, x -> { \ 'word': matchstr(x, l:re_match), \ 'mode': '.', \ 'kind': '[' . a:label . ']', \}}) endfunction " }}}1 " " Utility functions " function! s:filter(input, regex) abort " {{{1 if empty(a:input) | return a:input | endif let l:ignore_case = g:vimtex_complete_ignore_case \ && (!g:vimtex_complete_smart_case || a:regex !~# '\u') if type(a:input[0]) == v:t_dict let l:Filter = l:ignore_case \ ? {_, x -> x.word =~? '^' . a:regex} \ : {_, x -> x.word =~# '^' . a:regex} else let l:Filter = l:ignore_case \ ? {_, x -> x =~? '^' . a:regex} \ : {_, x -> x =~# '^' . a:regex} endif return filter(a:input, l:Filter) endfunction " }}}1 function! s:filter_with_options(input, regex, opts) abort " {{{1 if empty(a:input) | return a:input | endif let l:regex = (get(a:opts, 'anchor', 1) ? '^' : '') . a:regex let l:ignore_case = g:vimtex_complete_ignore_case \ && (!g:vimtex_complete_smart_case || a:regex !~# '\u') if type(a:input[0]) == v:t_dict let l:key = get(a:opts, 'filter_key', 'word') let l:Filter = l:ignore_case \ ? {_, x -> x[l:key] =~? l:regex} \ : {_, x -> x[l:key] =~# l:regex} else let l:Filter = l:ignore_case \ ? {_, x -> x =~? l:regex} \ : {_, x -> x =~# l:regex} endif return filter(a:input, l:Filter) endfunction " }}}1 function! s:get_texmf_candidates(filetype) abort " {{{1 let l:candidates = [] let l:texmfhome = $TEXMFHOME if empty(l:texmfhome) let l:texmfhome = get(vimtex#kpsewhich#run('--var-value TEXMFHOME'), 0, '') endif " Add locally installed candidates first if !empty(l:texmfhome) let l:candidates += glob(l:texmfhome . '/**/*.' . a:filetype, 0, 1) call map(l:candidates, "fnamemodify(v:val, ':t:r')") endif " Then add globally available candidates (based on ls-R files) for l:file in vimtex#kpsewhich#run('--all ls-R') let l:candidates += map(filter(readfile(l:file), \ {_, x -> x =~# '\.' . a:filetype}), \ "fnamemodify(v:val, ':r')") endfor return l:candidates endfunction " }}}1 function! s:close_braces(candidates) abort " {{{1 if strpart(getline('.'), col('.') - 1) !~# '^\s*[,}]' for l:cand in a:candidates if !has_key(l:cand, 'abbr') let l:cand.abbr = l:cand.word endif let l:cand.word = substitute(l:cand.word, '}*$', '}', '') endfor endif return a:candidates endfunction " }}}1 " " Initialize module " let s:completers = map( \ filter(items(s:), 'v:val[0] =~# ''^completer_'''), \ 'v:val[1]') let s:complete_dir = expand(':r') . '/' vimtex-2.16/autoload/vimtex/complete/000077500000000000000000000000001474274247400177315ustar00rootroot00000000000000vimtex-2.16/autoload/vimtex/complete/abntcite000066400000000000000000000001521474274247400214430ustar00rootroot00000000000000bibtextitlecommand citeauthor citeauthoronline citeonline citeoptions citeyear leftovercite rightovercite vimtex-2.16/autoload/vimtex/complete/acro000066400000000000000000000003531474274247400206010ustar00rootroot00000000000000aca* acap acap* acf* Acf* acfirstupper acflike acflike* acfp Acfp acfp* Acfp* acfplike acfplike* acifused acl* Acl* aclp Aclp aclp* Aclp* acp* Acp* acreset acresetall acs* acsetup acsp acsp* acuse acuseall DeclareAcronym printacronyms vimtex-2.16/autoload/vimtex/complete/acronym000066400000000000000000000003271474274247400213260ustar00rootroot00000000000000acf* acffont acfi acfi* acfp acfp* acfsfont acl* aclp aclp* aclu aclu* acp* acresetall acro acrodef acrodefplural acroextra acroplural acs* acsfont acsp acsp* acsu acsu* acused newacro newacroplural \begin{acronym} vimtex-2.16/autoload/vimtex/complete/afterpage000066400000000000000000000000121474274247400216030ustar00rootroot00000000000000afterpage vimtex-2.16/autoload/vimtex/complete/algorithm2e000066400000000000000000000047141474274247400220770ustar00rootroot00000000000000#include:color #include:endfloat #include:ifthen #include:relsize #include:tocbibind #include:xspace AlCapFnt AlCapNameFnt AlCapNameSty AlCapSty AlFnt algocfautorefname algocffuncautorefname algocfprocautorefname algoendfloat algoheightrule algoheightruledefault AlgoLineautorefname algoplace algorithmautorefname algorithmcflinename algorithmcfname algotitleheightrule algotitleheightruledefault AlTitleFnt AlTitleSty ArgSty Begin BlankLine Case CommentSty DataSty decmargin DecMargin dontprintsemicolon DontPrintSemicolon Else ElseIf ForAll ForEach FuncSty functionautorefname Hlne incmargin IncMargin Indentp Indm Indmm Indp Indpp InOutSizeDefined KwData KwIn KwOut KwResult KwRet KwSty KwTo lCase leIf lElse lElseif lElseIf lFor lForAll lForEach linesnotnumbered LinesNotNumbered linesnumbered LinesNumbered linesnumberedhidden LinesNumberedHidden listalgorithmcfname listofalgocfs lnlset lOther lRepeat lWhile next nllabel nlset nlSty NlSty nocaptionofalgo NoCaptionOfAlgo Other printsemicolon PrintSemicolon ProcArgFnt ProcArgSty procedureautorefname ProcFnt ProcNameFnt ProcNameSty ProcSty relsize Repeat ResetInOut restorecaptionofalgo RestoreCaptionOfAlgo restylealgo RestyleAlgo Return SetAlCapFnt setalcaphskip SetAlCapHSkip SetAlCapNameFnt SetAlCapNameSty setalcapskip SetAlCapSkip SetAlCapSty SetAlFnt SetAlgoCaptionLayout SetAlgoCaptionSeparator SetAlgoFuncName SetAlgoInsideSkip SetAlgoLined SetAlgoLongEnd SetAlgoNlRelativeSize SetAlgoNoEnd SetAlgoNoLine SetAlgoProcName SetAlgoRefName SetAlgoRefRelativeSize SetAlgorithmName SetAlgoShortEnd SetAlgoSkip SetAlgoVlined SetAlTitleFnt SetAlTitleSty SetArgSty SetCommentSty SetDataSty SetEndCharOfAlgoLine SetFillComment SetFuncSty SetInd SetKw SetKwArray SetKwBlock SetKwComment SetKwData SetKwFor SetKwFunction SetKwHangingKw SetKwIF SetKwInOut SetKwInput SetKwRepeat SetKwSty SetKwSwitch setLeftLinesNumbers SetLine setnlskip Setnlskip SetNlSkip Setnlsty SetNlSty SetNoFillComment SetNoLine SetNothing SetProcArgFnt SetProcArgSty SetProcFnt SetProcNameFnt SetProcNameSty SetProcSty setRightLinesNumbers SetSideCommentLeft SetSideCommentRight SetTitleSty SetVline SetVlineSkip showln ShowLn showlnlabel ShowLnLabel Switch tcc* tcp* test thealgocf thealgocfline thealgocfproc theAlgoLine theHalgocf theHalgocffunc theHalgocfproc theHAlgoLine thepostalgo Titleofalgo TitleOfAlgo TitleSty uCase uElse uElseIf vespace While \begin{algocf} \begin{algorithm} \begin{algorithm*} \begin{function} \begin{function*} \begin{procedure} \begin{procedure*} vimtex-2.16/autoload/vimtex/complete/allrunes000066400000000000000000000004211474274247400214760ustar00rootroot00000000000000arafamily arcfamily arlfamily armfamily arnfamily artfamily curvedtwigs hflip hightwigs lfseries lowtwigs roundedtwigs straighttwigs textara textarc textarl textarm textarn textart textcu texthi textlf textlo textro textst textwil textwol turn vflip withlines withoutlines vimtex-2.16/autoload/vimtex/complete/amsbsy000066400000000000000000000000131474274247400211440ustar00rootroot00000000000000boldsymbol vimtex-2.16/autoload/vimtex/complete/amsfonts000066400000000000000000000004021474274247400215020ustar00rootroot00000000000000dashleftarrow ⇠ dashrightarrow ⇢ llcorner └ lozenge ◊ lrcorner ┘ rightsquigarrow ⇝ sqsubset ⊏ sqsupset ⊐ square □ trianglelefteq ⊴ trianglerighteq ⊵ ulcorner ┌ unlhd ⊴ unrhd ⊵ urcorner ┐ vartriangleleft ⊲ vartriangleright ⊳ vimtex-2.16/autoload/vimtex/complete/amsmath000066400000000000000000000021671474274247400213140ustar00rootroot00000000000000allowdisplaybreaks AmSfont binom bmod boldsymbol boxed cfrac dbinom ddddot dddot DeclareMathOperator DeclareMathOperator* displaybreak dotsb ⋯ dotsc … dotsi ⋯ dotsm ⋯ dotso … eqref hdotsfor idotsint iiiint ⨌ iiint ∭ iint ∬ impliedby ⟸ implies ⇒ intertext leftroot lvert ∣ lVert ∥ medspace mspace negmedspace negthickspace negthinspace nobreakdash notag operatorname operatornamewithlimits overleftrightarrow ↔ overset pmod raisetag rvert ∣ rVert ∥ sideset substack tag* tbinom text tfrac thickspace thinspace underleftarrow ← underleftrightarrow ↔ underrightarrow → underset uproot varDelta Δ varGamma Γ varLambda Λ varOmega Ω varPhi Φ varPi Π varPsi Ψ varSigma Σ varTheta Θ varUpsilon Υ varXi Ξ xleftarrow ← xrightarrow → \begin{align} \begin{align*} \begin{alignat} \begin{alignat*} \begin{aligned} \begin{alignedat} \begin{cases} \begin{equation*} \begin{flalign} \begin{flalign*} \begin{gather} \begin{gather*} \begin{gathered} \begin{multline} \begin{multline*} \begin{smallmatrix} \begin{split} \begin{subarray} \begin{subequations} \begin{xalignat} \begin{xalignat*} \begin{xxalignat} vimtex-2.16/autoload/vimtex/complete/amsopn000066400000000000000000000001301474274247400211430ustar00rootroot00000000000000injlim nolimits operatornamewithlimits projlim varinjlim varliminf varlimsup varprojlim vimtex-2.16/autoload/vimtex/complete/amssymb000066400000000000000000000055041474274247400213330ustar00rootroot00000000000000approxeq ≊ backepsilon ∍ backprime ‵ backsim ∽ backsimeq ⋍ barwedge ⊼ Bbbk 𝕜 because ∵ beth ℶ between ≬ bigstar ★ blacklozenge ◆ blacksquare ■ blacktriangle ▲ blacktriangledown ▼ blacktriangleleft ◀ blacktriangleright ▶ boxdot ⊡ boxminus ⊟ boxplus ⊞ boxtimes ⊠ bumpeq ≏ Bumpeq ≎ centerdot ⋅ checkmark ✓ circeq ≗ circlearrowleft ↺ circlearrowright ↻ circledast ⊛ circledcirc ⊚ circleddash ⊝ circledS Ⓢ complement ∁ curlyeqprec ⋞ curlyeqsucc ⋟ curlyvee ⋎ curlywedge ⋏ curvearrowleft ↶ curvearrowright ↷ daleth ℸ diagdown ╲ diagup ╱ digamma ϝ divideontimes ⋇ doteqdot ≑ dotplus ∔ doublebarwedge ⩞ downdownarrows ⇊ downharpoonleft ⇃ downharpoonright ⇂ eqcirc ≖ eqsim ≂ eqslantgtr ⪖ eqslantless ⪕ fallingdotseq ≒ Finv Ⅎ Game ⅁ geqq ≧ geqslant ⩾ gimel ℷ gnapprox ⪊ gneq ⪈ gneqq ≩ gnsim ⋧ gtrapprox ⪆ gtrdot ⋗ gtreqless ⋛ gtreqqless ⪌ gtrless ≷ gtrsim ≳ gvertneqq  hslash ℏ intercal ⊺ leftarrowtail ↢ leftleftarrows ⇇ leftrightarrows ⇆ leftrightharpoons ⇋ leftrightsquigarrow ↭ leftthreetimes ⋋ leqq ≦ leqslant ⩽ lessapprox ⪅ lessdot ⋖ lesseqgtr ⋚ lesseqqgtr ⪋ lessgtr ≶ lesssim ≲ Lleftarrow ⇚ lnapprox ⪉ lneq ⪇ lneqq ≨ lnsim ⋦ looparrowleft ↫ looparrowright ↬ lozenge ◊ ltimes ⋉ lvertneqq  maltese ✠ measuredangle ∡ multimap ⊸ ncong ≆ nexists ∄ ngeq ≱ ngeqq  ngeqslant  ngtr ≯ nleftarrow ↚ nLeftarrow ⇍ nleftrightarrow ↮ nLeftrightarrow ⇎ nleq ≰ nleqq  nleqslant  nless ≮ nmid ∤ nparallel ∦ nprec ⊀ npreceq ⋠ nrightarrow ↛ nRightarrow ⇏ nshortmid  nshortparallel  nsim ≁ nsubseteq ⊈ nsubseteqq  nsucc ⊁ nsucceq ⋡ nsupseteq ⊉ nsupseteqq  ntriangleleft ⋪ ntrianglelefteq ⋬ ntriangleright ⋫ ntrianglerighteq ⋭ nvdash ⊬ nvDash ⊭ nVdash ⊮ nVDash ⊯ pitchfork ⋔ precapprox ⪷ preccurlyeq ≼ precnapprox ⪹ precneqq ⪵ precnsim ⋨ precsim ≾ rightarrowtail ↣ rightleftarrows ⇄ rightrightarrows ⇉ rightsquigarrow ⇝ rightthreetimes ⋌ risingdotseq ≓ Rrightarrow ⇛ rtimes ⋊ shortmid ∣ shortparallel ∥ smallfrown ⌢ smallsetminus ∖ smallsmile ⌣ sphericalangle ∢ square □ Subset ⋐ subseteqq ⫅ subsetneq ⊊ subsetneqq ⫋ succapprox ⪸ succcurlyeq ≽ succnapprox ⪺ succneqq ⪶ succnsim ⋩ succsim ≿ Supset ⋑ supseteqq ⫆ supsetneq ⊋ supsetneqq ⫌ therefore ∴ thickapprox ≈ thicksim ∼ triangledown ▽ trianglelefteq ⊴ triangleq ≜ trianglerighteq ⊵ twoheadleftarrow ↞ twoheadrightarrow ↠ upharpoonleft ↿ upharpoonright ↾ upuparrows ⇈ varkappa ϰ varnothing ∅ varpropto ∝ varsubsetneq  varsubsetneqq  varsupsetneq  varsupsetneqq  vartriangle △ vartriangleleft ⊲ vartriangleright ⊳ vDash ⊨ Vdash ⊩ veebar ⊻ Vvdash ⊪ vimtex-2.16/autoload/vimtex/complete/amsthm000066400000000000000000000001111474274247400211360ustar00rootroot00000000000000newtheoremstyle qedhere qedsymbol swapnumbers theoremstyle \begin{proof} vimtex-2.16/autoload/vimtex/complete/appendix000066400000000000000000000005441474274247400214670ustar00rootroot00000000000000addappheadtotoc appendicestocpagenum appendixheaderoff appendixheaderon appendixpage appendixpagename appendixpageoff appendixpageon appendixtitleoff appendixtitleon appendixtitletocoff appendixtitletocon appendixtocname appendixtocoff appendixtocon noappendicestocpagenum restoreapp setthesection setthesubsection \begin{appendices} \begin{subappendices} vimtex-2.16/autoload/vimtex/complete/array000066400000000000000000000001331474274247400207670ustar00rootroot00000000000000arraybackslash extrarowheight extratabsurround firsthline lasthline newcolumntype showcols vimtex-2.16/autoload/vimtex/complete/attachfile000066400000000000000000000001101474274247400217500ustar00rootroot00000000000000attachfile attachfilesetup noattachfile notextattachfile textattachfile vimtex-2.16/autoload/vimtex/complete/babel000066400000000000000000000017141474274247400207240ustar00rootroot00000000000000aliasshorthand alsoname babelhyphenation bibname captionsfrench ccname DecimalMathComma defineshorthand degres dotFFN enclname extrasfrenchb Fcolonspace foreignlanguage frenchabstractname frenchalsoname frenchappendixname frenchbibname frenchbsetup frenchccname frenchchaptername frenchcontentsname frenchenclname FrenchEnumerate frenchfigurename frenchglossaryname frenchheadtoname frenchindexname frenchlistfigurename frenchlisttablename frenchpagename frenchpartname frenchprefacename frenchproofname frenchrefname frenchseename frenchspacing frenchtablename Fthinspace glossaryname headtoname ieme iemes iere ieres iers iflanguage kernFFN languageattribute languagename languageshorthands NoAutoSpacing noextrasfrenchb nombre nonfrenchspacing parindentFFN prefacename primo proofname quarto secundo seename selectlanguage shorthandoff shorthandon StandardFootnotes StandardMathComma tertio useshorthands \begin{hypenrules} \begin{otherlanguage} \begin{otherlanguage*} vimtex-2.16/autoload/vimtex/complete/beamerfoils000066400000000000000000000001331474274247400221410ustar00rootroot00000000000000bmstyle endfoil foilhead FoilTeX LogoOff LogoOn MyLogo rotatefoilhead \begin{boldequation} vimtex-2.16/autoload/vimtex/complete/beamerprosper000066400000000000000000000005721474274247400225260ustar00rootroot00000000000000dualslide email fontText fontTitle fromSlide FromSlide fromSlide* hiddenitem institution Logo onlyInPDF onlyInPS onlySlide OnlySlide onlySlide* overlays PDForPS PDFtransition prosperpart slideCaption tsection tsection* tsectionandpart tsectionandpart* untilSlide UntilSlide untilsSlide untilsSlide* \begin{enumstep} \begin{Itemize} \begin{itemstep} \begin{notes} \begin{slides} vimtex-2.16/autoload/vimtex/complete/beamerseminar000066400000000000000000000001131474274247400224610ustar00rootroot00000000000000blue green ifarticle ifportrait ifslide ifslidesonly overlay \begin{slide} vimtex-2.16/autoload/vimtex/complete/beamertexpower000066400000000000000000000002321474274247400227020ustar00rootroot00000000000000boxedsteps bstep code codeswitch dstep liststepwise nonboxedsteps parstepwise rebstep redstep restep reswitch revstep step steponce stepwise switch vstep vimtex-2.16/autoload/vimtex/complete/beamerthemeFhG000066400000000000000000000006051474274247400225200ustar00rootroot00000000000000#include:euler #include:fhginstitutes #include:graphicx #include:pgf #include:textcomp boxitem cdotitem endtitleframe fhgpaperwidth fhgtextwidth insertframepart insertframesection insertframesubsection questionitem setinstitute splitvnext splitvvnext titleframe triangledownitem triangleleftitem trianglerightitem triangleupitem vdotsitem \begin{splitv} \begin{splitvv} \begin{titleframe} vimtex-2.16/autoload/vimtex/complete/biblatex000066400000000000000000000051331474274247400214500ustar00rootroot00000000000000#include:natbib addabbrvspace addabthinspace addbibresource adddotspace addglobalbib addhighpenspace addhpthinspace addlowpenspace addlpthinspace addnbspace addnbthinspace addsectionbib addslash addspace addthinspace addtocategory andmoredelim andothersdelim autocap autocite Autocite autocite* Autocite* autocites Autocites avolcite Avolcite bibbycategory bibbysection bibbysegment bibcplstring bibcpsstring bibcpstring bibdatelong bibdateshort bibellipsis bibfont bibhang bibitemextrasep bibitemsep biblabelsep biblclstring biblcsstring biblcstring bibleftbracket bibleftparen biblstring bibnamedash bibpagespunct bibparsep bibrangedash bibrightbracket bibrightparen bibsetup bibsstring bibstring bibuclstring bibucstring biburldatelong biburldateshort bibuscstring bibxlstring bibxsstring bibxstring category Cite cite* citeauthor Citeauthor citedate citefield citelist citename citereset citereset* cites Cites citesetup citetitle citetitle* citeurl citeyear compcitedelim DeclareBibliographyCategory DeclareFieldAlias DeclareFieldFormat DeclareFieldFormat* DeclareIndexFieldAlias DeclareIndexFieldFormat DeclareIndexFieldFormat* DeclareIndexListAlias DeclareIndexListFormat DeclareIndexListFormat* DeclareIndexNameAlias DeclareIndexNameFormat DeclareIndexNameFormat* DeclareListAlias DeclareListFormat DeclareListFormat* DeclareNameAlias DeclareNameFormat DeclareNameFormat* defbibfilter defbibheading defbibnote DefineBibliographyExtras DefineBibliographyStrings DefineHyphenationExceptions ExecuteBibliographyOptions finalandcomma finallistdelim finalnamedelim finentrypunct fnotecite footcite Footcite footcites Footcites footfullcite forceE forceY fullcite hyphen hyphenate ifkomabibtotoc ifkomabibtotocnumbered ifmemoirbibintoc keyword labelalphaothers labelnamepunct mainlang mancite mkbibacro mkbibbold mkbibbrackets mkbibemph mkbibendnote mkbibendnotetext mkbibfemord mkbibfootnote mkbibfootnotetext mkbibitalic mkbibmascord mkbibnameaffix mkbibnamefirst mkbibnamelast mkbibnameprefix mkbibordinal mkbibparens mkbibquote mkbibsuperscript mknumalph multicitedelim multilistdelim multinamedelim nameyeardelim nbhyphen NewBibliographyString newblockpunct newrefsection newrefsegment newunitpunct noligature nopp notecite Notecite parencite Parencite parencite* parencites Parencites pnotecite Pnotecite postnotedelim ppno prenotedelim printbibliography printshorthands psqq revsdnamedelim segment smartcite Smartcite smartcites Smartcites subtitlepunct supercite supercitedelim supercites svolcite Svolcite textcite Textcite textcites Textcites tvolcite Tvolcite type UndefineBibliographyExtras unspace \begin{refsection} \begin{refsegment} vimtex-2.16/autoload/vimtex/complete/bm000066400000000000000000000001141474274247400202460ustar00rootroot00000000000000bmdefine bmmax boldsymbol DeclareBoldMathCommand heavysymbol hmdefine hmmax vimtex-2.16/autoload/vimtex/complete/booktabs000066400000000000000000000001131474274247400214530ustar00rootroot00000000000000addlinespace bottomrule cmidrule midrule morecmidrules specialrule toprule vimtex-2.16/autoload/vimtex/complete/braket000066400000000000000000000000161474274247400211210ustar00rootroot00000000000000braket Braket vimtex-2.16/autoload/vimtex/complete/calc000066400000000000000000000001171474274247400205550ustar00rootroot00000000000000depthof heightof maxof minof ratio real settototalheight totalheightof widthof vimtex-2.16/autoload/vimtex/complete/cancel000066400000000000000000000000531474274247400210770ustar00rootroot00000000000000bcancel cancel CancelColor cancelto xcance vimtex-2.16/autoload/vimtex/complete/caption000066400000000000000000000005531474274247400213140ustar00rootroot00000000000000bothIfFirst bothIfSecond caption* captionlistentry captionof captionof* captionsetup clearcaptionsetup ContinuedFloat ContinuedFloat* DeclareCaptionFont DeclareCaptionFormat DeclareCaptionJustification DeclareCaptionLabelFormat DeclareCaptionLabelSeparator DeclareCaptionListFormat DeclareCaptionStyle DeclareCaptionTextFormat DeclareCaptionType showcaptionsetup vimtex-2.16/autoload/vimtex/complete/cases000066400000000000000000000000451474274247400207510ustar00rootroot00000000000000\begin{numcases} \begin{subnumcases} vimtex-2.16/autoload/vimtex/complete/chemformula000066400000000000000000000013041474274247400221540ustar00rootroot00000000000000#include:expl3 #include:xparse #include:l3keys2e #include:tikz #include:amstext #include:xfrac #include:nicefrac #include:scrlfile bond charrow chcpd chemformula chlewis chname chstoich DeclareChemAdditionSymbol DeclareChemArrow DeclareChemBond DeclareChemBondAlias DeclareChemCompoundProperty DeclareChemSymbol DeprecatedFormulaCommand NewChemAdditionSymbol NewChemArrow NewChemBond NewChemBondAlias NewChemCompoundProperty NewChemSymbol ProvideChemAdditionSymbol ProvideChemArrow ProvideChemBond ProvideChemCompoundProperty ProvideChemSymbol RemoveChemCompoundProperty RenewChemAdditionSymbol RenewChemArrow RenewChemBond RenewChemCompoundProperty RenewChemSymbol setchemformula ShowChemArrow ShowChemBond vimtex-2.16/autoload/vimtex/complete/chemstyle000066400000000000000000000003651474274247400216550ustar00rootroot00000000000000#include:SIunits #include:amstext #include:caption #include:chemscheme #include:siunitx #include:varioref #include:xspace cstsetup cubiccentimeter etal expandafter invacuo latin latinemphoff latinemphon mmHg molar Molar standardstate thebibnote vimtex-2.16/autoload/vimtex/complete/circuitikz000066400000000000000000000035601474274247400220400ustar00rootroot00000000000000#include:siunitx #include:tikz #include:xstring anchor anchorborder backgroundpath beforebackgroundpath beforeforegroundpath behindbackgroundpath behindforegroundpath circuitikzbasekey circuitikzset ctikzset ctikzsetvalof ctikzvalof deferredanchor drawpoles foregroundpath inheritanchor inheritanchorborder inheritbackgroundpath inheritbeforebackgroundpath inheritbeforeforegroundpath inheritbehindbackgroundpath inheritbehindforegroundpath inheritforegroundpath inheritlogicport inheritnodeparts inheritsavedanchors myfrac nodeparts pgfcircdeclarebipole pgfcircdeclareeurologicport pgfcircdeclarefet pgfcircdeclarelogicport pgfcircdeclaremos pgfcircdeclarequadpole pgfcircdeclaretransistor pgfcircmathresult pgfcircresetpath pgfcircversion pgfdeclaredecoration pgfdeclaremetadecoration pgfdeclaresnake pgfdecorateaftercode pgfdecoratebeforecode pgfdecoratecurrentpath pgfdecoratedpath pgfdecorateexisitingpath pgfdecoratepath pgfdecorationinputsegmentclosepath pgfdecorationinputsegmentcurveto pgfdecorationinputsegmentlast pgfdecorationinputsegmentlineto pgfdecorationinputsegmentmoveto pgfdecorationpath pgfdecorationsegmentangle pgfdecorationsegmentaspect pgfifdecoration pgfifmetadecoration pgfmathresult pgfmetadecorationsegmentamplitude pgfmetadecorationsegmentlength pgfpathsnakealongvector pgfpathsnakesto pgfpathsnaketo pgfpointdecoratedinputsegmentfirst pgfpointdecoratedinputsegmentlast pgfpointdecoratedpathfirst pgfpointdecoratedpathlast pgfsetdecorationsegmenttransformation pgfsetsnakesegmenttransformation pgfsnakeangle pgfsnakecompleteddistance pgfsnakeremainingdistance pgfsnakesegmentamplitude pgfsnakesegmentangle pgfsnakesegmentaspect pgfsnakesegmentlength pgfsnakesegmentobjectlength savedanchor saveddimen savedmacro startpgfdecoration startpgfmetadecoration state stoppgfdecoration stoppgfmetadecoration stretto \begin{circuitikz} \begin{pgfdecoration} \begin{pgfmetadecoration} vimtex-2.16/autoload/vimtex/complete/class-beamer000066400000000000000000000100251474274247400222100ustar00rootroot00000000000000#include:etoolbox #include:ifpdf #include:keyval #include:geometry #include:graphicx #include:graphics #include:infwarerr #include:ltxcmds #include:pgfsys #include:pgfrcs #include:everyshi #include:xcolor #include:xxcolor #include:atbegshi #include:hyperref #include:ifluatex #include:intcalc #include:etexcmds #include:kvsetkeys #include:kvdefinekeys #include:pdftexcmds #include:pdfescape #include:bigintcalc #include: bitset #include:uniquecounter #include:letltxmacro #include:hopatch #include:xcolor-patch #include:atveryend #include:refcount #include:hycolor #include:auxhook #include:kvoptions #include:url #include:rerunfilecheck #include:amssymb #include:amsfonts #include:sansmathaccent #include:filehook #include:translator #include:amsmath #include:amstext #include:amsgen #include:amsbsy #include:amsopn #include:amsthm #include:epstopdf-base #include:grfext #include:nameref #include:gettitlestring action addfootbox addheadbox addtobeamertemplate againframe alert animate animatevalue AtBeginLecture AtBeginNote AtBeginPart AtBeginSection AtBeginSubsection AtBeginSubsubsection AtEndNote beamerbutton beamerdefaultoverlayspecification beamergotobutton beamerreturnbutton beamerskipbutton column defbeamertemplate defbeamertemplatealias defbeamertemplateparent expandbeamertemplate framesubtitle frametitle framezoom hyperlink hyperlinkappendixend hyperlinkappendixstart hyperlinkdocumentend hyperlinkdocumentstart hyperlinkframeend hyperlinkframeendprev hyperlinkframestart hyperlinkframestartnext hyperlinkmute hyperlinkpresentationend hyperlinkpresentationstart hyperlinkslidenext hyperlinkslideprev hyperlinksound hypertarget ifbeamercolorempty ifbeamertemplateempty includeonlyframes includeonlylecture includeslide insertappendixendpage insertappendixstartpage insertbackfindforwardnavigationsymbol insertcaption insertcaptionname insertcaptionnumber insertdescriptionitem insertdocnavigationsymbol insertdocumentendpage insertdocumentstartpage insertenumlabel insertfootnotemark insertfootnotetext insertframeendpage insertframenavigationsymbol insertframenumber insertframestartpage insertinstitute insertlogo insertnavigation insertnote insertpagenumber insertpartendpage insertpartheadnumber insertpartstartpage insertpresentationendpage insertpresentationstartpage insertsection insertsectionendpage insertsectionhead insertsectionheadnumber insertsectionnavigation insertsectionnavigationhorizontal insertsectionnavigationsymbol insertsectionstartpage insertshortauthor insertshortdate insertshortinstitute insertshortpart insertshortsubtitle insertshorttitle insertslideintonotes insertslidenavigationsymbol insertsubsection insertsubsectionendpage insertsubsectionhead insertsubsectionheadnumber insertsubsectionnavigation insertsubsectionnavigationhorizontal insertsubsectionnavigationsymbol insertsubsectionstartpage insertsubsubenumlabel inserttheoremaddition inserttheoremheadfont inserttheoremname inserttheoremnumber inserttheorempunctuation inserttotalframenumber insertverticalnavigation inst institute invisible keywords lecture logo mode mode* multiinclude note only onslide onslide* opaqueness partpage pause resetcounteronoverlays resetcountonoverlays setbeamercolor setbeamercolor* setbeamercovered setbeamerfont setbeamerfont* setbeamersize setbeamertemplate setjobnamebeamerversion sound structure subject subtitle temporal titlegraphic titlepage transblindshorizontal transblindsvertical transboxin transboxout transdissolve transduration transglitter transsplithorizontalin transsplithorizontalout transsplitverticalin transsplitverticalout transwipe uncover usebeamercolor usebeamercolor* usebeamerfont usebeamerfont* usebeamertemplate usebeamertemplate* usecolortheme usefonttheme useinnertheme useoutertheme usetheme visible \begin{actionenv} \begin{alertblock} \begin{alertenv} \begin{altenv} \begin{beamerboxesrounded} \begin{beamercolorbox} \begin{block} \begin{column} \begin{columns} \begin{definition} \begin{example} \begin{exampleblock} \begin{frame} \begin{onlyenv} \begin{overlayarea} \begin{overprint} \begin{proof} \begin{semiverbatim} \begin{structureenv} vimtex-2.16/autoload/vimtex/complete/class-book000066400000000000000000000000421474274247400217050ustar00rootroot00000000000000backmatter frontmatter mainmatter vimtex-2.16/autoload/vimtex/complete/class-letter000066400000000000000000000001261474274247400222550ustar00rootroot00000000000000address closing encl location name opening signature subject telephone \begin{letter} vimtex-2.16/autoload/vimtex/complete/class-memoir000066400000000000000000000402621474274247400222530ustar00rootroot00000000000000#include:etex #include:ifetex #include:ifluatex #include:ifpdf #include:ifxetex #include:mempatch abnormalparskip abscolnamefont abscoltextfont abslabeldelim absleftindent absnamepos absparindent absparsep absrightindent abstitleskip abstractcol abstractintoc abstractnamefont abstractnum abstractrunin abstracttextfont addappheadtotoc added addlinespace addperiod addtodef addtoiargdef addtonotes addtopsmarks addtostream afterbookskip afterchapskip afterchapternum afterchaptertitle afterepigraphskip afterpartskip afterPoemTitle afterPoemTitlenum afterpoemtitleskip afterPoemTitleskip aliaspagestyle alsoname amname andnext anyptfilebase anyptsize appendixpage appendixpage* appendixpagename appendixrefname appendixtocname Aref arraybackslash arraytostring AtBeginClass AtBeginFile AtBeginPackage atcentercr AtEndClass AtEndFile AtEndPackage atendtheglossaryhook autocols autorows backmatter beforebookskip beforechapskip beforeepigraphskip beforepartskip beforepoemtitleskip beforePoemTitleskip begintheglossaryhook bibintoc bibitemsep biblistextra bibmark bibname bibsection bicaption bicontcaption binding bionenumcaption bitwonumcaption bktabrule blockdescriptionlabel book bookblankpage bookname booknamefont booknamenum booknumberline booknumberlinebox booknumberlinehook booknumfont bookpageend bookpagemark bookrefname booktitlefont bottomrule bottomsectionpenalty bottomsectionskip boxedverbatim boxedverbatiminput boxverbflag Bref bvbox bvboxsep bvendofpage bvendrulehook bvleftsidehook bvnumbersinside bvnumbersoutside bvnumlength bvrightsidehook bvsides bvtopandtail bvtopmidhook bvtopofpage bvtoprulehook calccentering captionsize captionwidth cardinal centerfloat centerlastline cftaddnumtitleline cftaddtitleline cftappendixname cftbeforebookskip cftbeforechapterskip cftbeforepartskip cftbookafterpnum cftbookaftersnum cftbookaftersnumb cftbookbreak cftbookdotsep cftbookfillnum cftbookfont cftbookformatpnum cftbookformatpnumhook cftbookleader cftbookname cftbookpagefont cftbookpresnum cftchapterafterpnum cftchapteraftersnum cftchapteraftersnumb cftchapterbreak cftchapterdotsep cftchapterfillnum cftchapterfont cftchapterformatpnum cftchapterformatpnumhook cftchapterindent cftchapterleader cftchaptername cftchapternumwidth cftchapterpagefont cftchapterpresnum cftdot cftdotfill cftdotsep cftinsert cftinsertcode cftinserthook cftlocalchange cftnodots cftparfillskip cftparskip cftpartafterpnum cftpartaftersnum cftpartaftersnumb cftpartbreak cftpartdotsep cftpartfillnum cftpartfont cftpartformatpnum cftpartformatpnumhook cftpartindent cftpartleader cftpartname cftpartnumwidth cftpartpagefont cftpartpresnum cftsetindents cftwhatismyname changecaptionwidth changed changeglossactual changeglossnum changeglossnumformat changeglossref changemarks chapindent chapnamefont chapnumfont chapterheadstart chapternamenum chapternumberline chapternumberlinebox chapternumberlinehook chapterprecis chapterprecishere chapterprecistoc chapterrefname chapterstyle chaptitlefont checkandfixthelayout checkarrayindex checkifinteger checkthelayout citeindexfile clearmark clearplainmark cleartoevenpage cleartooddpage cleartorecto cleartoverso closeinputstream closeoutputstream cmdprint cmidrule cmrsideswitch colorchapnum colorchaptitle commentsoff commentson contcaption continuousnotenums contsubbottom contsubcaption contsubtop copypagestyle counterwithin counterwithout cplabel createmark createplainmark Cref csname ctabsetlines ctabular defaultlists defaultsecnum deleted DeleteShortVerb DisemulatePackage doccoltocetc DoubleSpacing DoubleSpacing* dropchapter droptitle easypagecheck eminnershape EmulatedPackage EmulatedPackageWithOptions endarray endboxedverbatim endctabular endfboxverbatim enditemize endMakeFramed endminipage endnoteentry endnoteentryend endsidecaption endsidecontcaption endsidelegend endsidenamedlegend endtabular endtabularx endverbatim endverbatimoutput endwriteverbatim ensureonecol enumerate epigraph epigraphflush epigraphforheader epigraphhead epigraphpicture epigraphrule epigraphsize epigraphwidth expandafter extrafeetendmini extrafeetendminihook extrafeetins extrafeetinshook extrafeetminihook extrafeetreinshook extratabsurround fancybreak fboxverbatim fcardinal feetabovefloat feetbelowfloat figurerefname firmlist firmlists FirstFrameCommand firsthline fixdvipslayout fixheaderwidths fixpdflayout fixthelayout flagverse FloatBlock flushleftright fnumbersep footfootmark footfudgefiddle footinsdim footmarksep footmarkwidth footnoterule footnotesatfoot footnotesinmargin footparindent footref footruleheight footruleskip footscript foottextfont foottopagenote fordinal foremargin FrameCommand framed FrameHeightAdjust framepichead framepichook framepictextfoot FrameRestore fref frenchspacing frontmatter frontmatter* Ftrimpicbl futurenonspacelet getarrayelement getthelinenumber glossaryintoc glossarymark glossaryname glossaryspace glossitem gobm hangcaption hangfrom hangpara hangsecnum hangsubcaption hbadness headdrop headnameref headstyles headwidth hfuzz hideindexmarks hmpunct hyperlink hyperpage hyperspindexpage idtextinnotes ifonlyfloats IfStreamOpen ignorenoidxfile iiirdstring iindstring indentcaption indentpattern indexcolsep indexintoc indexmark indexrule insertchapterspace iscntrmod isopage iststring itemsepi itemsepii itemsepiii justlastraggedleft KeepFromToc keepthetitle killtitle LastFrameCommand lasthline lastlineparrule lastlinerulefill lcminusname leadpagetoclevel leavespergathering leftbar leftcenterright leftspringright legend letcountercounter linemodnum linenottooshort linenumberfrequency linespercol lofmark loosesubcaptions lotmark lowermargin Ltrimpicbl Ltrimpicbr Ltrimpictl Ltrimpictr lxvchars mainmatter mainmatter* makechapterstyle makeevenfoot makeevenhead makefootmark makefootmarkhook makefootrule MakeFramed makeheadfootruleprefix makeheadfootstrut makeheadfootvposition makeheadposition makeheadrule makeheadstyles makememglossaryhook makememindexhook makeoddfoot makeoddhead makepagenote makepagestyle makepsmarks makerunningfootwidth makerunningheadwidth makerunningwidth MakeShortVerb makesidefootmark makesidefootmarkhook MakeTextLowercase MakeTextUppercase makethanksmark makethanksmarkhook maketitlehooka maketitlehookb maketitlehookc maketitlehookd marginfloatmarginmacro marginparmargin maxsecnumdepth maxtocdepth medievalpage medspace memappchapinfo memappchapstarinfo memapppageinfo memapppagestarinfo membicaptioninfo membionenumcaptioninfo membitwonumcaptioninfo membookinfo membookstarinfo memcaptioninfo memchapinfo memchapstarinfo memcline memdskips memdskipstretch memendofchapterhook memfblineboxa memfblineboxtwo memfblistfixparams memfontenc memfontfamily memfontpack memglodesc memglofile memglonum memgloref memgloterm memgobble memhline memifmacroused memjustarg memleadpageinfo memleadpagestarinfo memlegendinfo memlettxttxt memlistsubcaptions memnamedlegendinfo memoirpostopthook memorigdbs memorigpar mempartinfo mempartstarinfo mempnofilewarn mempoeminfo mempoemstarinfo memPoemTitleinfo memPoemTitlestarinfo mempostaddapppagetotochook mempostaddbooktotochook mempostaddchaptertotochook mempostaddparttotochook mempreaddapppagetotochook mempreaddbooktotochook mempreaddchaptertotochook mempreaddparttotochook memRTLleftskip memRTLmainraggedleft memRTLmainraggedright memRTLraggedleft memRTLraggedright memRTLrightskip memRTLvleftskip memRTLvrightskip memsavefootnote memsavepagenote memsecinfo memsecstarinfo memsetcounter memsetlengthmax memsetlengthmin memsetmacrounused memsetmacroused memUChead memversion memwritetoglo mergepagefloatstyle midbookskip midchapskip MidFrameCommand midpartskip midPoemTitleskip midrule midsloppy miniscule minusname morecmidrules movetoevenpage movetooddpage mpjustification msdoublespacing mssinglespacing multfootsep multiplefootnotemarker namedlegend namedsubappendices namenumberand namenumbercomma nametest needspace Needspace newarray newcolumntype newcomment newfixedcaption newfloat newfootnoteseries newinputstream newleadpage newleadpage* newlistentry newlistof newloglike newoutputstream newpmemlabel newsubfloat next nexttoken nNamec nNamei nNameii nNameiii nNameiv nNameix nNamel nNamelx nNamelxx nNamelxxx nNamem nNamemm nNamemmm nNameo nNamev nNamevi nNamevii nNameviii nNamex nNamexc nNamexi nNamexii nNamexiii nNamexiv nNamexix nNamexl nNamexv nNamexvi nNamexvii nNamexviii nNamexx nNamexxx nobibintoc nobookblankpage nobvbox NoCaseChange nochangemarks noDisplayskipStretch noexpand noglossaryintoc noindexintoc nonzeroparskip nopartblankpage noprelistbreak normalbottomsection normalcaption normalcaptionwidth normalrulethickness normalsubcaption notedivision noteidinnotes noteinnotes notenuminnotes notenumintext notepageref notesname nthNamei nthNameii nthNameiii nthNameiv nthNameix nthNamel nthNamelx nthNamelxx nthNamelxxx nthNameo nthNamev nthNamevi nthNamevii nthNameviii nthNamexc nthNamexii nthNamexl nthNamexx nthNamexxx nthstring numberlinebox numberlinehook NumberPoemTitle numdigits onecolglossary onecolindex onecoltocetc OnehalfSpacing OnehalfSpacing* onelineskip openany openinputfile openleft openoutputfile openright ordinal ordscript ordstring overridescapmargin pageai pageaii pageaiii pageaiv pageao pageav pageavi pagebi pagebii pagebiii pagebiv pagebo pagebroadsheet pagebv pagebvi pagecrownvo pagedbill pagedemyvo pageexecutive pagefoolscapvo pageimperialvo pageinnotes pagelargecrownvo pagelargepostvo pageledger pagelegal pageletter pagemcrownvo pagemdemyvo pagemediumvo pagemlargecrownvo pagemsmallroyalvo pagenote pagenoteanchor pagenotehyperanchor pagenotesubhead pagenotesubheadstarred pageold pagepostvo pagepottvo pagerefname pageroyalvo pagesmalldemyvo pagesmallroyalvo pagestatement pagesuperroyalvo pagetofootnote paragraphfootnotes paragraphfootstyle paraheadstyle parahook paraindent parnopar parsepi parsepii partblankpage partmark partnamefont partnamenum partnumberline partnumberlinebox partnumberlinehook partnumfont partopsepii partopsepiii partpageend partrefname parttitlefont patchcmdError patchcommand pfbreak pfbreakdisplay pfbreakOutput pfbreakskip phantomsection plainbreak plainfancybreak plainfootnotes plainfootstyle PlainPoemTitle pmemlabel pmemlabelref pmname pnchap pnschap poemtitle PoemTitle poemtitlefont PoemTitlefont PoemTitleheadstart poemtitlemark PoemTitlenumfont poemtitlepstyle poemtitlestarmark poemtitlestarpstyle poemtoc postauthor postautotab postbibhook postchapterprecis postdate postnoteinnotes postnotetext posttitle preauthor preautotab prebibhook prechapterprecis precisfont precistocfont precistocformat precistoctext predate pref Pref preglossaryhook preindexhook prenoteinnotes prenotetext pretitle printbookname printbooknum printbooktitle printchaptername printchapternonum printchapternum printchaptertitle printglossary printindex printpageinnotes printpageinnoteshyperref printpagenotes printpartname printpartnum printparttitle printPoemTitlenonum printPoemTitlenum printPoemTitletitle printtime protect providecounter provideenvironment providefixedcaption providelength provideloglike qitem qitemlabel quarkmarks raggedbottomsection raggedrightthenleft raggedwrap raggedyright readaline readboxedverbatim readstream readverbatim registrationColour renewfixedcaption renewleadpage renewleadpage* reparticle reportnoidxfile RequireAtEndClass RequireAtEndPackage RequireXeTeX resetbvlinenumber restoreapp restorefromonecol restorepagenumber restoretrivseps russianpar savepagenumber savetrivseps saythanks secheadstyle sechook secindent sectionname sectionrefname seealso seename semiisopage setafterparaskip setaftersecskip setaftersubparaskip setaftersubsecskip setaftersubsubsecskip setarrayelement setbeforeparaskip setbeforesecskip setbeforesubparaskip setbeforesubsecskip setbeforesubsubsecskip setbiblabel setbinding setbvlinenums setcolsepandrule setDisplayskipStretch setfillsize setfloatadjustment setFloatBlockFor setfloatlocations setFloatSpacing setfootnoterule sethangfrom setheaderspaces setheadfoot setlrmargins setlrmarginsandblock setlxvchars setmarginfloatcaptionadjustment setmarginnotes setmpbools setmpjustification setnzplist setpagebl setpagebm setpagebr setpagecc setpageml setpagemr setPagenoteSpacing setpagetl setpagetm setpagetr setparaheadstyle setparahook setparaindent setpnumwidth setrectanglesize setrmarg setsecheadstyle setsechook setsecindent setsecnumdepth setsecnumformat setsidebarheight setsidebars setsidecappos setsidecaps setsidefeet setsidefootheight setSingleSpace setSpacing setspbools setspcode setstocksize setsubparaheadstyle setsubparahook setsubparaindent setsubsecheadstyle setsubsechook setsubsecindent setsubsubsecheadstyle setsubsubsechook setsubsubsecindent setthesection settocdepth settocpreprocessor settrimmedsize settrims settypeblocksize settypeoutlayoutunit setulmargins setulmarginsandblock setupcomment setverbatimbreak setverselinenums setxlvchars shaded shortsubcaption showcols showheadfootlocoff showheadfootlocon showindexmarks showtextblocklocoff showtextblocklocon showtrimsoff showtrimson sidebar sidebarfont sidebarform sidebarhsep sidebarmargin sidebartopsep sidebarvsep sidebarwidth sidecapfloatwidth sidecapmargin sidecapstyle sidecaption sidecontcaption sidecontents sidefootadjust sidefootcontents sidefootfootmark sidefootform sidefootheight sidefoothsep sidefootmargin sidefootmarksep sidefootmarkwidth sidefootnote sidefootnotemark sidefootnotetext sidefootparindent sidefootscript sidefoottextfont sidefootvsep sidefootwidth sidelegend sidenamedlegend sidepar sideparfont sideparform sideparmargin sideparvshift SingleSpacing sloppybottom snugshade sourceatright sourceflush specialindex specialrule spinemargin Sref stanzaskip startnoteentry startnoteentrystart stockai stockaii stockaiii stockaiv stockao stockav stockavi stockbi stockbii stockbiii stockbiv stockbo stockbroadsheet stockbv stockbvi stockcrownvo stockdbill stockdemyvo stockexecutive stockfoolscapvo stockheight stockimperialvo stocklargecrownvo stocklargepostvo stockledger stocklegal stockletter stockmcrownvo stockmdemyvo stockmediumvo stockmlargecrownvo stockmsmallroyalvo stockold stockpostvo stockpottvo stockroyalvo stocksmalldemyvo stocksmallroyalvo stockstatement stocksuperroyalvo stockwidth strictpagecheck stringtoarray subbottom subcaption subconcluded subparaheadstyle subparahook subparaindent subsecheadstyle subsechook subsecindent subsubsecheadstyle subsubsechook subsubsecindent subtop symboldef symbollabel symbolthanksmark tablerefname tabsoff tabson tabularnewline tabularxcolumn tamark teennumbername teenordinalname teenstring tensnumbername tensordinalname tensunitsep textflush thanksfootextra thanksfootmark thanksgap thanksheadextra thanksmark thanksmarksep thanksmarkseries thanksmarkstyle thanksmarkwidth thanksrule thanksscript theauthor thebook thebvlinectr thechrsinstr thedate theHbook theHpoem theHpoemline thelastpage thelastsheet themaxsecnumdepth thememfbvline thememfvsline thepagenote thepagenoteshadow thepoem thepoemline thesheetsequence thesidefootnote thesidempfn thestoredpagenumber thetitle theTitleReference theverse thevslineno threecolumnfootnotes threecolumnfootstyle tiethstring tightlist tightlists tightsubcaptions tmarkbl tmarkbm tmarkbr tmarkml tmarkmr tmarktl tmarktm tmarktr tocbaseline tocentryskip tocmark tocnameref tocskip toprule topsepi topsepii topsepiii tracingtabularx traditionalparskip tref trimedge trimFrame trimLmarks trimmark trimmarks trimmarkscolor trimNone trimtop trimXmarks twocolglossary twocolindex twocoltocetc twocolumnfootnotes twocolumnfootstyle typeoutlayout typeoutstandardlayout ucminusname unitnumbername unitordinalname unletcounter unnamedsubappendices uppermargin verbatimbreakchar verbatimindent verbatiminput verbatimoutput verbfootnote verselinebreak versewidth vgap vindent vinphantom vleftofline vleftskip vlvnumfont vrightskip wrappingoff wrappingon wrapright writeverbatim xindyindex xlvchars zerotrivseps \begin{adjustwidth} \begin{altverse} \begin{appendices} \begin{bibitemlist} \begin{blockdescription} \begin{DoubleSpace} \begin{DoubleSpace*} \begin{epigraphs} \begin{flexlabelled} \begin{framed} \begin{hangparas} \begin{labelled} \begin{leftbar} \begin{marginfigure} \begin{margintable} \begin{midsloppypar} \begin{onecolabstract} \begin{OnehalfSpace} \begin{OnehalfSpace*} \begin{patverse} \begin{qframe} \begin{qshade} \begin{shaded} \begin{SingleSpace} \begin{snugshade} \begin{Spacing} \begin{subappendices} \begin{subfloat} \begin{symbols} \begin{theglossary} \begin{titlingpage} \begin{titlingpage*} \begin{vminipage} \begin{vplace} vimtex-2.16/autoload/vimtex/complete/class-moderncv000066400000000000000000000007071474274247400226000ustar00rootroot00000000000000#include:xcolor #include:url #include:graphicx #include:fancyhdr #include:tweaklist #include:calc #include:xparse #include:microtype #include:hyperref address closing cvcolumn cvdoubleitem cventry cvitem cvitemwithcomment cvlistdoubleitem cvlistitem email enclosure extrainfo familyname firstname homepage makecvtitle makeletterclosing makelettertitle mobile moderncvcolor moderncvstyle nopagenumbers opening phone photo quote recipient \begin{cvcolumns} vimtex-2.16/autoload/vimtex/complete/class-scrartcl000066400000000000000000000000511474274247400225700ustar00rootroot00000000000000#include:class-scrartcl,scrreprt,scrbook vimtex-2.16/autoload/vimtex/complete/class-scrartcl,scrreprt,scrbook000066400000000000000000000025771474274247400261070ustar00rootroot00000000000000#include:scrpage2 addchap addchap* addpart addpart* addsec addsec* addtokomafont appendixmore areaset autodot backmatter capfont caplabelfont captionabove captionbelow captionformat chapapp chapappifchapterprefix chapterformat chaptermarkformat chapterpagestyle cleardoubleemptypage cleardoubleevenemptypage cleardoubleevenpage cleardoubleevenplainpage cleardoubleevenstandardpage cleardoubleevenusingstyle cleardoubleoddemptypage cleardoubleoddpage cleardoubleoddplainpage cleardoubleoddstandardpage cleardoubleoddusingstyle cleardoublepageusingstyle cleardoubleplainpage cleardoublestandardpage dedication deffootnotemark defpagestyle descfont dictum dictumauthorformat dictumwidth extratitle figureformat frontmatter ifpdfoutput ifthispageodd ifthispagewasodd indexpagestyle KOMAScript linespread lowertitleback mainmatter marginline markleft minisec newpagestyle othersectionlevelsformat partformat partpagestyle providepagestyle publishers raggeddictum raggeddictumauthor raggeddictumtext raggedsection renewpagestyle sectfont sectionmarkformat setbibpreamble setcaphanging setcapindent setcapindent* setcapmargin setcapmargin* setcapwidth setchapterpreamble SetDIVList setindexpreamble setkomafont setpartpreamble subject subsectionmarkformat subtitle tableformat titlehead titlepagestyle typearea uppertitleback usekomafont \begin{addmargin} \begin{addmargin*} \begin{captionbeside} \begin{labeling} vimtex-2.16/autoload/vimtex/complete/class-scrbook000066400000000000000000000000511474274247400224150ustar00rootroot00000000000000#include:class-scrartcl,scrreprt,scrbook vimtex-2.16/autoload/vimtex/complete/class-scrlttr2000066400000000000000000000017601474274247400225420ustar00rootroot00000000000000addrchar addrentry addtolengthplength addtoreffields adrchar adrentry AtBeginLetter bankname captionsamerican captionsaustrian captionsbritish captionscroatian captionsdutch captionsenglish captionsfinnish captionsfrench captionsgerman captionsitalian captionsngerman captionsspanish captionsUKenglish captionsUSenglish ccname closing customername dateamerican dateaustrian datebritish datecroatian datedutch dateenglish datefinnish datefrench dategerman dateitalian datename datengerman datespanish dateUKenglish dateUSenglish defaultreffields emailname encl enclname faxname firstfoot firsthead headfromname headtoname ifkomavarempty ifkomavarempty* invoicename KOMAoptions LetterOptionNeedsPapersize LoadLetterOption myrefname newcaptionname newkomavar newkomavar* nextfoot nexthead opening phonename providecaptionname raggedsignature removereffields renewcaptionname setkomavar setkomavar* setlengthtoplength subjectname usekomavar usekomavar* useplength wwwname yourmailname yourrefname \begin{letter} vimtex-2.16/autoload/vimtex/complete/class-scrreprt000066400000000000000000000000511474274247400226170ustar00rootroot00000000000000#include:class-scrartcl,scrreprt,scrbook vimtex-2.16/autoload/vimtex/complete/cleveref000066400000000000000000000007311474274247400214500ustar00rootroot00000000000000cpageref Cpageref cpagerefrange Cpagerefrange cref Cref cref* Cref* crefalias crefdefaultlabelformat crefformat Crefformat creflabelformat crefmultiformat Crefmultiformat crefname Crefname crefrange Crefrange crefrangeformat Crefrangeformat crefrangelabelformat crefrangemultiformat Crefrangemultiformat labelcpageref labelcref labelcrefformat labelcrefmultiformat labelcrefrangeformat labelcrefrangemultiformat lcnamecref lcnamecrefs namecref nameCref namecrefs nameCrefs vimtex-2.16/autoload/vimtex/complete/color000066400000000000000000000000711474274247400207700ustar00rootroot00000000000000color colorbox definecolor fcolorbox pagecolor textcolor vimtex-2.16/autoload/vimtex/complete/colortbl000066400000000000000000000001011474274247400214640ustar00rootroot00000000000000arrayrulecolor cellcolor columncolor doublerulesepcolor rowcolor vimtex-2.16/autoload/vimtex/complete/commath000066400000000000000000000002551474274247400213060ustar00rootroot00000000000000#include:amsmath #include:ifthen appref assref colref defnref envert enVert eval exref figref fullfunction intcc intco intoc intoo lemref propref remref secref sVert thmref vimtex-2.16/autoload/vimtex/complete/comment000066400000000000000000000001361474274247400213160ustar00rootroot00000000000000comment endcomment excludecoment includecomment processcomment specialcomment \begin{comment} vimtex-2.16/autoload/vimtex/complete/coordsys000066400000000000000000000003341474274247400215210ustar00rootroot00000000000000bcoordsys bcoordsys* coordgrid coordgrid* coordsys coordsys* fcoordsys fcoordsys* gridstyle htickratio numbline numbline* rescaleby sethlabel setvlabel ticklength tickstyle vnumbline vnumbline* vtickratio window window* vimtex-2.16/autoload/vimtex/complete/cquthesis000066400000000000000000000016431474274247400216700ustar00rootroot00000000000000#include:amsmath #include:array #include:booktabs #include:tabularx #include:longtable #include:multirow #include:diagbox #include:graphicx #include:hyperref #include:xparse #include:ntheorem #include:metalogo #include:xcolor #include:mhchem #include:siunitx #include:upgreek #include:subcaption backmatter bigcell ccwd colsep cquauthpage cqusetup cquthesis ctexset ding eqlist fangsong figref frontmatter headcell heiti inlinecite kaishu lishu listeq listofequations mainmatter makeabstract makecover onlinecite resetrownum resetxuhao rownum rownumseparator rownumtype setxuhao songti tabref version xuhao xuhaoseparator xuhaotype youyuan zihao \begin{assumption} \begin{axiom} \begin{cabstract} \begin{conjecture} \begin{corollary} \begin{Cplus} \begin{definition} \begin{denotation} \begin{eabstract} \begin{example} \begin{exercise} \begin{lemma} \begin{problem} \begin{proof} \begin{proposition} \begin{Python} \begin{remark} vimtex-2.16/autoload/vimtex/complete/csquotes000066400000000000000000000016441474274247400215270ustar00rootroot00000000000000blockcquote blockquote DeleteQuotes DisableQuotes EnableQuotes enquote enquote* foreignblockcquote foreignblockquote foreignblockquote* foreignquote foreignquote* foreigntextcquote foreigntextcquote* foreigntextquote foreigntextquote* hybridblockcquote hybridblockquote hybridblockquote* hyphenblockcquote hyphenblockquote hyphenblockquote* hyphenquote hyphenquote* hyphentextcquote hyphentextcquote* hyphentextquote hyphentextquote* MakeAutoQuote MakeAutoQuote* MakeBlockQuote MakeForeignBlockQuote MakeForeignQuote MakeForeignQuote* MakeHybridBlockQuote MakeHyphenBlockQuote MakeHyphenQuote MakeHyphenQuote* MakeInnerQuote MakeOuterQuote SetCiteCommand setquotestyle setquotestyle* textcquote textcquote* textelp textelp* textins textins* textquote textquote* VerbatimQuotes \begin{displaycquote} \begin{displayquote} \begin{foreigndisplaycquote} \begin{foreigndisplayquote} \begin{hyphendisplaycquote} \begin{hyphendisplayquote} vimtex-2.16/autoload/vimtex/complete/currvita000066400000000000000000000001741474274247400215150ustar00rootroot00000000000000cvbibname cvheadingfont cvlabelfont cvlabelsep cvlabelskip cvlabelwidth cvlistheadingfont cvplace \begin{cv} \begin{cvlist} vimtex-2.16/autoload/vimtex/complete/cyrillic000066400000000000000000000021421474274247400214650ustar00rootroot00000000000000cyra CYRA cyrabhch CYRABHCH cyrabhchdsc CYRABHCHDSC cyrabhdze CYRABHDZE cyrabhha CYRABHHA cyrae CYRAE cyrb CYRB cyrc CYRC cyrch CYRCH cyrchldsc CYRCHLDSC cyrchrdsc CYRCHRDSC cyrchvcrs CYRCHVCRS cyrd CYRD cyrdje CYRDJE cyrdze CYRDZE cyrdzhe CYRDZHE cyre CYRE cyrerev CYREREV cyrery CYRERY cyrf CYRF cyrg CYRG cyrghcrs CYRGHCRS cyrghk CYRGHK cyrgup CYRGUP cyrh CYRH cyrhdsc CYRHDSC cyrhrdsn CYRHRDSN cyri CYRI cyrie CYRIE cyrii CYRII cyrishrt CYRISHRT cyrje CYRJE cyrk CYRK cyrkdsc CYRKDSC cyrkhcrs CYRKHCRS cyrkhk CYRKHK cyrkvcrs CYRKVCRS cyrl CYRL cyrldsc CYRLDSC cyrlje CYRLJE cyrm CYRM cyrmdsc CYRMDSC cyrn CYRN cyrndsc CYRNDSC cyrng CYRNG cyrnhk CYRNHK cyrnje CYRNJE cyro CYRO cyrotld CYROTLD cyrp CYRP CYRpalochka cyrphk CYRPHK cyrr CYRR cyrrtick CYRRTICK cyrs CYRS cyrschwa CYRSCHWA cyrsdsc CYRSDSC cyrsemisftsn CYRSEMISFTSN cyrsftsn CYRSFTSN cyrsh CYRSH cyrshch CYRSHCH cyrshha CYRSHHA cyrt CYRT cyrtdsc CYRTDSC cyrtetse CYRTETSE cyrtshe CYRTSHE cyru CYRU cyrushrt CYRUSHRT cyrv CYRV cyry CYRY cyrya CYRYA cyryhcrs CYRYHCRS cyryi CYRYI cyryo CYRYO cyryu CYRYU cyrz CYRZ cyrzdsc CYRZDSC cyrzh CYRZH cyrzhdsc CYRZHDSC vimtex-2.16/autoload/vimtex/complete/datatool000066400000000000000000000045221474274247400214660ustar00rootroot00000000000000#include:datatool-base #include:etex #include:ifthen #include:substr #include:xfor #include:xkeyval datatoolparenstart datatoolpersoncomma datatoolplacecomma datatoolsubjectcomma dtladdalign DTLaddcolumn DTLaddentryforrow dtlaftercols dtlafterrow dtlappendentrytocurrentrow DTLappendtorow DTLassign DTLassignfirstmatch dtlbeforecols dtlbeforerow dtlbetweencols dtlbreak DTLcleardb DTLcolumncount dtlcolumnindex DTLcomputebounds dtlcurrencyalign dtlcurrencyformat DTLcurrencytype DTLcurrentindex dtldbname dtldefaultkey DTLdeletedb dtldisplayafterhead dtldisplaycr DTLdisplaydb dtldisplayendtab DTLdisplaylongdb dtldisplaystartrow dtldisplaystarttab dtldisplayvalign dtlexpandnewvalue DTLfetch dtlforcolumn dtlforcolumnidx DTLforeach DTLforeach* dtlforeachkey DTLforeachkeyinrow DTLgcleardb DTLgdeletedb DTLgetcolumnindex DTLgetdatatype dtlgetentryfromcurrentrow dtlgetentryfromrow DTLgetkeydata DTLgetkeyforcolumn DTLgetlocation dtlgetrow DTLgetrowforkey dtlgetrowforvalue dtlgetrowindex DTLgetrowindex DTLgetvalue DTLgetvalueforkey DTLgnewdb dtlheaderformat DTLifdbempty DTLifdbexists DTLiffirstrow DTLifhaskey DTLiflastrow DTLifnull DTLifnullorempty DTLifoddrow dtlintalign dtlintformat DTLinttype dtllastloadeddb DTLloaddb DTLloadrawdb DTLloadsbtex DTLmaxforcolumn DTLmaxforkeys DTLmeanforcolumn DTLmeanforkeys DTLminforcolumn DTLminforkeys DTLnewdb DTLnewdbentry DTLnewdbonloadfalse DTLnewdbonloadtrue DTLnewrow dtlnoexpandnewvalue dtlnovalue DTLnumbernull DTLpar DTLprotectedsaverawdb DTLrawmap dtlrealalign dtlrealformat DTLrealtype dtlrecombine dtlrecombineomitcurrent DTLremovecurrentrow DTLremoveentryfromrow dtlremoveentryincurrentrow DTLremoverow DTLreplaceentryforrow dtlreplaceentryincurrentrow DTLrowcount DTLsavedb DTLsavelastrowcount DTLsaverawdb DTLsavetexdb DTLsdforcolumn DTLsdforkeys DTLsetdelimiter DTLsetheader DTLsetseparator DTLsettabseparator dtlshowdb dtlshowdbkeys dtlshowtype dtlsort DTLsort DTLsort* dtlsplitrow dtlstringalign dtlstringformat DTLstringnull DTLstringtype DTLsumcolumn DTLsumforkeys dtlswapentriesincurrentrow dtlswaprows DTLswaprows DTLunsettype dtlupdateentryincurrentrow DTLvarianceforcolumn DTLvarianceforkeys dtlwordindexcompare edtlgetrowforvalue ifdtlnoheader ifdtlverbose theDTLrow theDTLrowi theDTLrowii theDTLrowiii theHDTLrow theHDTLrowi theHDTLrowii theHDTLrowiii xDTLassignfirstmatch \begin{DTLenvforeach} \begin{DTLenvforeach*} vimtex-2.16/autoload/vimtex/complete/datatool-base000066400000000000000000000040141474274247400223720ustar00rootroot00000000000000#include:amsmath #include:datatool-\@dtl@mathprocessor #include:etoolbox #include:ifthen #include:substr #include:xfor #include:xkeyval datatoolparenstart datatoolpersoncomma datatoolplacecomma datatoolsubjectcomma DTLabs DTLadd DTLaddall DTLafterinitialbeforehyphen DTLafterinitials DTLbetweeninitials dtlbreak DTLclip dtlcompare dtlcomparewords DTLconverttodecimal DTLdecimaltocurrency DTLdecimaltolocale DTLdiv dtlforint DTLgabs DTLgadd DTLgaddall DTLgclip DTLgdiv dtlgforint DTLgmax DTLgmaxall DTLgmeanforall DTLgmin DTLgminall DTLgmul DTLgneg DTLground DTLgsdforall DTLgsqrt DTLgsub DTLgtrunc DTLgvarianceforall dtlicompare dtlicomparewords DTLifAllLowerCase DTLifAllUpperCase dtlifcasechargroup DTLifcasedatatype DTLifclosedbetween DTLifclosedbetween* DTLifcurrency DTLifcurrencyunit DTLifeq DTLifeq* DTLifFPclosedbetween DTLifFPopenbetween DTLifgt DTLifgt* DTLifinlist DTLifint dtlifintclosedbetween dtlifintopenbetween DTLiflt DTLiflt* DTLifnumclosedbetween DTLifnumeq DTLifnumerical DTLifnumgt DTLifnumlt DTLifnumopenbetween DTLifopenbetween DTLifopenbetween* DTLifreal DTLifStartsWith DTLifstring DTLifstringclosedbetween DTLifstringclosedbetween* DTLifstringeq DTLifstringeq* DTLifstringgt DTLifstringgt* DTLifstringlt DTLifstringlt* DTLifstringopenbetween DTLifstringopenbetween* DTLifSubString DTLinitialhyphen DTLinitials DTLisclosedbetween DTLiscurrency DTLiscurrencyunit DTLiseq DTLisFPclosedbetween DTLisFPeq DTLisFPgt DTLisFPgteq DTLisFPlt DTLisFPlteq DTLisFPopenbetween DTLisgt DTLisiclosedbetween DTLisieq DTLisigt DTLisilt DTLisint DTLisiopenbetween DTLislt DTLisnumclosedbetween DTLisnumerical DTLisnumopenbetween DTLisopenbetween DTLisPrefix DTLisreal DTLisstring DTLisSubString dtlletterindexcompare DTLmax DTLmaxall DTLmeanforall DTLmin DTLminall DTLmul DTLneg DTLnewcurrencysymbol DTLnumitemsinlist dtlparsewords DTLround DTLsdforall DTLsetdefaultcurrency DTLsetnumberchars DTLsplitstring DTLsqrt DTLstoreinitials DTLsub DTLsubstitute DTLsubstituteall DTLtrunc DTLvarianceforall dtlwordindexcompare ifdtlverbose \begin{dtlenvgforint} vimtex-2.16/autoload/vimtex/complete/default000066400000000000000000000220161474274247400213010ustar00rootroot00000000000000abovecaptionskip abstractname acute ´ addcontentsline addpenalty addto addtocontents addtocounter addtolength addtoversion addvspace aleph ℵ Alph alph alpha α amalg ⨿ and angle ∠ appendix appendixname approx ≈ arabic arccos arcsin arctan arg arraycolsep arrayrulewidthL arraystretch Arrowvert ∥ arrowvert ⏐ ast ∗ asymp ≍ AtBeginDocument AtEndDocument AtEndOfClass AtEndOfPackage author backslash \ badness bar ¯ baselinestretch begin belowcaptionskip beta β bezier bfseries bibitem bibliography bibliographystyle Big big bigcap ⋂ bigcirc ○ bigcup ⋃ Bigg bigg Biggl biggl Biggm biggm Biggr biggr Bigl bigl Bigm bigm bigodot ⨀ bigoplus ⨁ bigotimes ⨂ Bigr bigr bigskip bigsqcup ⨆ bigtriangledown ▽ bigtriangleup △ biguplus ⨄ bigvee ⋁ bigwedge ⋀ binoppenalty boldmath bot ⊥ botfigrule bottomfraction bottomnumber bracevert ⎪ breve ˘ bullet ∙ cal cap ∩ caption cdot ⋅ cdots ⋯ chapter chapter* chaptermark chaptername check ˇ CheckCommand chi χ circ ∘ circle circle* cite ClassError ClassInfo ClassWarning cleardoublepage clearpage cline clubsuit ♣ colon : columnsepL columnseprule columnwidth#L columnwidthL cong ≅ contentsline contentsname coprod ∐ cos cosh cot coth csc cup ∪ CurrentOption dag † dagger † dashbox dashv ⊣ date dblfigrule dblfloatpagefraction dblfloatsep dbltextfloatsep dbltopfraction dbltopnumber ddag ‡ ddagger ‡ ddot ¨ ddots ⋱ DeclareFixedFont DeclareFontEncoding DeclareFontEncodingDefaults DeclareFontFamily DeclareFontShape DeclareMathAccent DeclareMathAlphabet DeclareMathDelimiter DeclareMathRadical DeclareMathSizes DeclareMathSymbol DeclareMathVersion DeclareOldFontCommand DeclareOption DeclareOption* DeclareRobustCommand DeclareSizeFunction DeclareSymbolFont DeclareSymbolFontAlphabet DeclareTextAccent DeclareTextCommand DeclareTextComposite DeclareTextCompositeCommand DeclareTextFontCommand DeclareTextSymbol defaultscriptratio defaultscriptscriptratio deffootnote deg Delta Δ delta δ depth descriptionlabel det dfrac diamond ⋄ diamondsuit ♢ dim div ÷ documentclass dot ˙ doteq ≐ doublerulesep Downarrow ⇓ downarrow ↓ ell ℓ emergencystretch emph emptyset ∅ end enlargethispage enlargethispage* ensuremath epsilon ∊ equiv ≡ eta η evensidemargin ExecuteOptions exists ∃ exp extracolsep family fbox fboxrule fboxsep figurename flat ♭ floatpagefraction floatsep flq flqq flushbottom flushleft flushright fnsymbol fontencoding fontfamily fontseries fontshape fontsize fontsubfuzz footheightL footnote footnotemark footnotesep footnotesize footnotetext footskip forall ∀ frac frac frame framebox frown ⌢ frq frqq Gamma Γ gamma γ gcd geq ≥ gets ← glossary glossaryentry glq glqq grave ` grq grqq hat ^ hbar ℏ headheightL headsepL heartsuit ♡ heightL hfill hline hlinefill hom hookleftarrow ↩ hookrightarrow ↪ hrule hrulefill hspace hspace* hss huge Huge hyphenation iff ⟺ IfFileExists imath 𝚤 include includeonly index indexname indexspace inf infty ∞ input InputIfFileExists inputlineno int ∫ int_ intextsep iota ι item itemindent itemsepL iterate itshape jmath 𝚥 kappa κ ker kill label labelenumi labelitemi labelitemii labelitemiii labelitemiv labelsepL labelwidthL Lambda Λ lambda λ land ∧ langle 〈 language LARGE Large large LastDeclaredEncoding LaTeX LaTeXe lbrace { lbrack [ lceil ⌈ ldots … left Leftarrow ⇐ leftarrow ← lefteqn leftharpoondown ↽ leftharpoonup ↼ lefthyphenmin leftmargin leftmargini leftmarginii leftmarginiii leftmarginiv leftmarginv leftmarginvi leftmark Leftrightarrow ⇔ leftrightarrow ↔ leq ≤ lfloor ⌊ lgroup ⟮ lim liminf limits limsup line linebreak lineskiplimits linethickness linewidth listfigurename listfiles listoffigures listoftables listparindent listtablename lmoustache ⎰ lnot ¬ LoadClass log Longleftarrow ⟸ longleftarrow ⟵ longleftrightarrow ⟷ Longleftrightarrow ⟺ longmapsto ⟼ Longrightarrow ⟹ longrightarrow ⟶ lor ∨ makeatletter makeatother makebox makeglossary makeindex makelabel makelabels MakeLowercase maketitle MakeUppercase mapsto ↦ marginpar marginparpush marginparsepL marginparwidthL markboth markright mathbb mathbf mathcal mathds mathellipsis … mathfrak mathgroup mathit mathnormal mathring ˚ mathrm mathscr mathsf mathsterling £ mathtt mathunderscore mathversion max mbox mdseries medskip mid ∣ min models ⊨ multicolumn multiput nabla ∇ natural ♮ nearrow ↗ NeedsTeXFormat neg ¬ neq ≠ newblock newcommand newcommand* newcounter newenvironment newfont newlabel newlength newline newpage newsavebox newtheorem newtheorem* nocite nocorr nocorrlist nofiles nolinebreak nonumber nopagebreak normalcolor normalfont normalmarginpar normalsize not / notin ∉ nouppercase null numberline nwarrow ↖ obeycr oddsidemargin odot ⊙ oint ∮ oldstylenums Omega Ω omega ω ominus ⊖ onecolumn oplus ⊕ OptionNotUsed oslash ⊘ otimes ⊗ oval overbrace ⏞ overleftarrow ← overline ¯ overrightarrow → PackageError PackageInfo PackageWarning PackageWarningNoLine pagebreak pagename pagenumbering pageref pagestyle pagetotal paperheightL paperwidthL paragraph paragraph* paragraphmark parallel ∥ parbox parsepL part part* partial 𝜕 partname partopsepL PassOptionsToClass PassOptionsToPackage pdfadjustspacing pdfcompresslevel pdfdecimaldigits pdfhorigin pdfimageresolution pdfinfo pdflinkmargin pdfminorversion pdfmovechars pdfoutput pdfpageheight pdfpagewidth pdfpkresolution pdfthreadmargin pdfvorigin perp ⊥ Phi Φ phi ϕ plus poptabs pounds £ prec ≺ preceq ⪯ prime ′ printindex#n ProcessOptions ProcessOptions* prod ∏ prod_ propto ∝ providecommand ProvidesClass ProvidesFile ProvidesPackage ProvideTextCommand Psi Ψ psi ψ pushtabs put qquad quad raisebox rangle 〉 rbrace } rbrack ] rceil ⌉ ref refname refstepcounter renewcommand renewcommand* renewenvironment RequirePackage restorecr reversemarginpar rfloor ⌋ rgroup ⟯ rho ρ right Rightarrow ⇒ rightarrow → rightharpoondown ⇁ rightharpoonup ⇀ righthyphenmin rightleftharpoons ⇌ rightmargin rightmark rmfamily rmoustache ⎱ Roman roman rule samepage savebox sbox scriptsize scshape searrow ↘ sec section § section* sectionmark selectfont setcounter setlanguage setlength setminus ∖ setpapersize settodepth settoheight settowidth sffamily sharp ♯ shortstack Sigma ∑ sigma σ sim ∼ simeq ≃ sin sinh slshape small smash smile ⌣ space ␣ spadesuit ♠ sqcup ⊔ sqrt √ sqsupseteq ⊒ stackrel star ⋆ stepcounter stop stretch subitem subparagraph subparagraph* subparagraphmark subsection subsection* subsectionmark subset ⊂ subseteq ⊆ subsubitem subsubsection subsubsection* subsubsectionmark succ ≻ succeq ⪰ sum ∑ sum_ sup suppressfloats supset ⊃ supseteq ⊇ surd √ swarrow ↙ symbol tabbingsep tabcolsep tablename tableofcontents tan tanh tau τ textasciicircum textasciitilde textasteriskcentered textbackslash textbar textbardbl textbf textbraceleft textbraceright textbullet textcircled textcompwordmark textcopyright textdagger textdaggerdbl textdollar textellipsis … textemdash textendash textexclamdown textfloatsepL textfraction textgreater textheight textit textless textmd textnormal textparagraph ¶ textperiodcentered · textquestiondown textquotedblleft textquotedblright textquoteleft textquoteright textregistered ® textrm textsc textsection textsf textsl textsterling textsubscript textsuperscript texttrademark ™ texttt textunderscore textup textvisiblespace textwidth thanks thechapter theenumi theenumiv theequation thefigure thefootnote thefootnotemark thehours theminutes thempfn thempfootnote thepage theparagraph thepart thesection thesubparagraph thesubsection thesubsubsection Theta Θ theta θ thetable thicklines thinlines thispagestyle tilde ~ time times × tiny title today top ⊤ topfigrule topfraction topmarginL topnumber topsepL totalheightL totalnumber triangle △ triangleleft ◁ triangleright ▷ ttfamily twocolumn typein typeout unboldmath underbrace ⏟ underline − Uparrow ⇑ uparrow ↑ Updownarrow ⇕ updownarrow ↕ uplus ⊎ upshape Upsilon Υ upsilon υ usebox usecounter usefont usepackage value varepsilon ε varphi φ varpi ϖ varrho ϱ varsigma ς vartheta ϑ vdash ⊢ vdots ⋮ vec ⃗ vector vee ∨ verb Vert ∥ vert ∣ vline vspace vspace* wedge ∧ widehat ˆ widetilde ˜ width zeta ζ \begin{abstract} \begin{alltt} \begin{array} \begin{bmatrix} \begin{Bmatrix} \begin{center} \begin{description} \begin{displaymath} \begin{document} \begin{enumerate} \begin{eqnarray} \begin{equation} \begin{figure} \begin{figure*} \begin{filecontents} \begin{filecontents*} \begin{flushleft} \begin{flushright} \begin{footnotesize} \begin{huge} \begin{Huge} \begin{itemize} \begin{large} \begin{Large} \begin{LARGE} \begin{list} \begin{lrbox} \begin{math} \begin{matrix} \begin{minipage} \begin{normalsize} \begin{picture} \begin{pmatrix} \begin{quotation} \begin{quote} \begin{scriptsize} \begin{small} \begin{tabbing} \begin{table} \begin{table*} \begin{tabular} \begin{tabular*} \begin{thebibliography} \begin{theindex} \begin{theorem} \begin{tiny} \begin{titlepage} \begin{trivlist} \begin{verbatim} \begin{verbatim*} \begin{verse} \begin{vmatrix} \begin{Vmatrix} vimtex-2.16/autoload/vimtex/complete/diagxy000066400000000000000000000004451474274247400211440ustar00rootroot00000000000000arrow Atriangle Atrianglepair bfig btriangle Ctriangle Ctrianglepair cube dtriangle Dtriangle Dtrianglepair efig epileft hsquares hSquares iiixii iiixiii Loop monleft morphism node place ptriangle pullback ⟓ qtriangle square □ Square toleft twoar vsquares vSquares Vtriangle Vtrianglepair vimtex-2.16/autoload/vimtex/complete/doi000066400000000000000000000000101474274247400204160ustar00rootroot00000000000000doitext vimtex-2.16/autoload/vimtex/complete/empheq000066400000000000000000000012501474274247400211310ustar00rootroot00000000000000DeclareLeftDelimiter DeclareRightDelimiter empheqbiglangle empheqbiglbrace empheqbiglbrack empheqbiglceil empheqbiglfloor empheqbiglparen empheqbiglvert empheqbiglVert empheqbigrangle empheqbigrbrace empheqbigrbrack empheqbigrceil empheqbigrfloor empheqbigrparen empheqbigrvert empheqbigrVert EmphEqdelimiterfactor EmphEqdelimitershortfall EmphEqdisplaydepth EmphEqdisplayheight empheqlangle empheqlbrace empheqlbrack empheqlceil empheqlfloor empheqlparen empheqlvert empheqlVert EmphEqMainEnv empheqrangle empheqrbrace empheqrbrack empheqrceil empheqrfloor empheqrparen empheqrvert empheqrVert empheqset endEmphEqMainEnv mintagvsep shadowbox* shoveleft shoveright \begin{empheq} vimtex-2.16/autoload/vimtex/complete/enumerate000066400000000000000000000000001474274247400216270ustar00rootroot00000000000000vimtex-2.16/autoload/vimtex/complete/epigraph000066400000000000000000000003041474274247400214500ustar00rootroot00000000000000afterepigraphskip beforeepigraphskip cleartoevenpage dropchapter epigraph epigraphflush epigraphhead epigraphrule epigraphsize epigraphwidth qitem sourceflush textflush undodrop \begin{epigraphs} vimtex-2.16/autoload/vimtex/complete/epstopdf000066400000000000000000000002471474274247400215030ustar00rootroot00000000000000AppendGraphicsExtensions DeclareGraphicsRule epstopdfcall epstopdfDeclareGraphicsRule epstopdfsetup noexpand OutputFile PrependGraphicsExtensions SourceExt SourceFile vimtex-2.16/autoload/vimtex/complete/etoolbox000066400000000000000000000031661474274247400215150ustar00rootroot00000000000000#include:etex AfterEndDocument AfterEndEnvironment AfterEndPreamble AfterPreamble appto apptocmd AtBeginEnvironment AtEndEnvironment AtEndPreamble BeforeBeginEnvironment boolfalse booltrue csappto csdef csdimdef csdimgdef cseappto csedef csepreto csexpandonce csgappto csgdef csgluedef csgluegdef csgpreto cslet csletcs csmudef csmugdef csname csnumdef csnumgdef cspreto csshow csundef csuse csxappto csxdef csxpreto DeclareListParser DeclareListParser* defcounter deflength dimdef dimgdef docsvlist dolistcsloop dolistloop eappto epreto expandonce forcsvlist forlistcsloop forlistloop gappto gluedef gluegdef gpreto ifblank ifbool ifboolexpe ifboolexpr ifcscounter ifcsdef ifcsdimen ifcsempty ifcsequal ifcslength ifcsltxprotect ifcsmacro ifcsparam ifcsprefix ifcsprotected ifcsstrequal ifcsstring ifcsundef ifcsvoid ifdef ifdefcounter ifdefdimen ifdefempty ifdefequal ifdeflength ifdefltxprotect ifdefmacro ifdefparam ifdefprefix ifdefprotected ifdefstrequal ifdefstring ifdefvoid ifdimcomp ifdimequal ifdimgreater ifdimless ifinlist ifinlistcs ifltxcounter ifnumcomp ifnumequal ifnumgreater ifnumless ifnumodd ifpatchable ifpatchable* ifrmnum ifstrempty ifstrequal iftoggle ifundef letcs listadd listbreak listcsadd listcseadd listcsgadd listcsxadd listeadd listgadd listxadd mudef mugdef newbool newrobustcmd newtoggle noexpand notblank notbool nottoggle numdef numgdef patchcmd preto pretocmd protecting providebool providerobustcmd providerobustcmd* providetoggle renewrobustcmd renewrobustcmd* rmntonum robustify setbool settoggle string togglefalse toggletrue tracingpatches undef unlessboolexpr whileboolexpr xappto xifinlist xifinlistcs xpreto vimtex-2.16/autoload/vimtex/complete/eurosym000066400000000000000000000000701474274247400213540ustar00rootroot00000000000000euro € geneuro geneuronarrow geneurowide officialeuro vimtex-2.16/autoload/vimtex/complete/fancybox000066400000000000000000000007511474274247400214700ustar00rootroot00000000000000boxput boxput* BVerbatimInput cornersize cornersize* doublebox fancypage fancyput fancyput* LVerbatimInput ovalbox Ovalbox shadowbox shadowsize TheSbox thisfancypage thisfancyput thisfancyput* Verb VerbatimInput VerbBox \begin{Bcenter} \begin{Bdescription} \begin{Benumerate} \begin{Beqnarray} \begin{Beqnarray*} \begin{Bflushleft} \begin{Bflushright} \begin{Bitemize} \begin{BVerbatim} \begin{landfloat} \begin{Landscape} \begin{LandScape} \begin{LVerbatim} \begin{Sbox} \begin{Verbatim} vimtex-2.16/autoload/vimtex/complete/fancyhdr000066400000000000000000000002671474274247400214570ustar00rootroot00000000000000cfoot chead fancyfoot fancyfootoffset fancyhead fancyheadoffset fancyhf fancyhfoffset fancypagestyle footrule footrulewidth headrule headrulewidth iffloatpage lfoot lhead rfoot rhead vimtex-2.16/autoload/vimtex/complete/fancyunits-base000066400000000000000000000022601474274247400227470ustar00rootroot00000000000000addunit ampere angstrom AstroE atomicmass atto attod barn bbar becquerel becquerelbase candela celsius celsiusbase centi centid coulomb coulombbase cubed cubic curie dday deca decad decaD deci decid degree ° degreecelsius degreecelsiusbase deka dekad derbecquerel dercelsius dercoulomb derdegreecelsius derfarad derGray derhenry derhertz derjoule derlumen derlux dernewton derohm derpascal derradian dersiemens dersievert dersteradian dertesla dervolt derwatt derweber electronvolt exad farad faradbase fempto femptod fourth giga gigad gram Gray Graybase hectare hecto hectod henry henrybase hertz hertzbase hour joule joulebase kelvin kilo kilod kilogram lightyear liter litre lumen lumenbase luxbase mega megad meter metre micro microd milli millid minute mole nano nanod newton newtonbase oersted ohmbase paminute parsec parsecond pascal pascalbase peta petad pico picod power radian radianbase reciprocal roentgen rpcubed rpcubic rpfourth rpsquare rpsquared second siemensbase sievert sievertbase Square Squared sterad steradian steradianbase tera terad tesla teslabase tonne ufrac Ufrac UFrac unit volt voltbase watt wattbase weber weberbase yocto yoctod yotta yottad zepto zeptod zetta zettad vimtex-2.16/autoload/vimtex/complete/fancyunits-np000066400000000000000000000023171474274247400224550ustar00rootroot00000000000000amperepermetrenp amperepersquaremetrenp candelapersquaremetrenp coulombpercubicmetrenp coulombperkilogramnp coulombpermolnp coulombpersquaremetrenp cubicmetreperkilogramnp cubicmetrepersecondnp faradpermetrenp Graypersecondnp henrypermetrenp joulepercubicmetrenp jouleperkelvinnp jouleperkilogramkelvinnp jouleperkilogramnp joulepermolekelvinnp joulepermolenp joulepersquaremetrenp jouleperteslanp kilogrammetrepersecondnp kilogrammetrepersquaresecondnp kilogrampercubicmetrecoulombnp kilogrampercubicmetrenp kilogramperkilomolenp kilogrampermetrenp kilogrampersecondcubicmetrenp kilogrampersecondnp kilogrampersquaremetrenp kilogrampersquaremetresecondnp kilogramsquaremetrenp kilogramsquaremetrepersecondnp metrepersecondnp metrepersquaresecondnp molepercubicmetrenp newtonmetrenp newtonpercubicmetrenp newtonperkilogramnp newtonpermetrenp newtonpersquaremetrenp pascalsecondnp persquaremetresecondnp radianpersecondnp radianpersquaresecondnp Squaremetrepercubicmetrenp Squaremetrepercubicsecondnp Squaremetreperkilogramnp Squaremetrepernewtonsecondnp Squaremetrepersecondnp Squaremetrepersquaresecondnp voltpermetrenp wattpercubicmetrenp wattperkilogramnp wattpermetrekelvinnp wattpersquaremetrenp wattpersquaremetresteradiannp vimtex-2.16/autoload/vimtex/complete/fancyunits-per000066400000000000000000000024411474274247400226240ustar00rootroot00000000000000amperemetresecond amperepermetre amperepersquaremetre candelapersquaremetre Celsius coulombpercubicmetre coulombperkilogram coulombpermol coulombpersquaremetre cubicmetre cubicmetreperkilogram cubicmetrepersecond faradpermetre Graypersecond henrypermetre joulepercubicmetre jouleperkelvin jouleperkilogram jouleperkilogramkelvin joulepermole joulepermolekelvin joulepersquaremetre joulepertesla kilogrammetrepersecond kilogrammetrepersquaresecond kilogrampercubicmetre kilogrampercubicmetrecoulomb kilogramperkilomole kilogrampermetre kilogrampersecond kilogrampersecondcubicmetre kilogrampersquaremetre kilogrampersquaremetresecond kilogramsquaremetre kilogramsquaremetrepersecond kilowatthour metrepersecond metrepersquaresecond molepercubicmetre newtonmetre newtonpercubicmetre newtonperkilogram newtonpermetre newtonpersquaremetre ohmmetre pascalsecond persquaremetresecond radianpersecond radianpersquaresecond rpcubicmetreperkilogram rpcubicmetrepersecond rpsquaremetreperkilogram rpsquaremetrepersecond rpsquaremetrepersquaresecond Squaremetre Squaremetrepercubicmetre Squaremetrepercubicsecond Squaremetreperkilogram Squaremetrepernewtonsecond Squaremetrepersecond Squaremetrepersquaresecond voltpermetre wattpercubicmetre wattperkilogram wattpermetrekelvin wattpersquaremetre wattpersquaremetresteradian vimtex-2.16/autoload/vimtex/complete/fancyunits_big-fractions000066400000000000000000000022531474274247400246500ustar00rootroot00000000000000amperepermetreUF amperepersquaremetreUF candelapersquaremetreUF coulombpercubicmetreUF coulombperkilogramUF coulombpermolUF coulombpersquaremetreUF cubicmetreperkilogramUF cubicmetrepersecondUF faradpermetreUF GraypersecondUF henrypermetreUF joulepercubicmetreUF jouleperkelvinUF jouleperkilogramkelvinUF jouleperkilogramUF joulepermolekelvinUF joulepermoleUF joulepersquaremetreUF jouleperteslaUF kilogrammetrepersecondUF kilogrammetrepersquaresecondUF kilogrampercubicmetrecoulombUF kilogrampercubicmetreUF kilogramperkilomoleUF kilogrampermetreUF kilogrampersecondcubicmetreUF kilogrampersecondUF kilogrampersquaremetresecondUF kilogrampersquaremetreUF kilogramsquaremetrepersecondUF metrepersecondUF metrepersquaresecondUF molepercubicmetreUF newtonpercubicmetreUF newtonperkilogramUF newtonpermetreUF newtonpersquaremetreUF pascalsecondUF persquaremetresecondUF radianpersecondUF radianpersquaresecondUF SquaremetrepercubicmetreUF SquaremetrepercubicsecondUF SquaremetreperkilogramUF SquaremetrepernewtonsecondUF SquaremetrepersecondUF SquaremetrepersquaresecondUF voltpermetreUF wattpercubicmetreUF wattperkilogramUF wattpermetrekelvinUF wattpersquaremetresteradianUF wattpersquaremetreUF vimtex-2.16/autoload/vimtex/complete/fancyunits_medium-fractions000066400000000000000000000022531474274247400253670ustar00rootroot00000000000000amperepermetreUf amperepersquaremetreUf candelapersquaremetreUf coulombpercubicmetreUf coulombperkilogramUf coulombpermolUf coulombpersquaremetreUf cubicmetreperkilogramUf cubicmetrepersecondUf faradpermetreUf GraypersecondUf henrypermetreUf joulepercubicmetreUf jouleperkelvinUf jouleperkilogramkelvinUf jouleperkilogramUf joulepermolekelvinUf joulepermoleUf joulepersquaremetreUf jouleperteslaUf kilogrammetrepersecondUf kilogrammetrepersquaresecondUf kilogrampercubicmetrecoulombUf kilogrampercubicmetreUf kilogramperkilomoleUf kilogrampermetreUf kilogrampersecondcubicmetreUf kilogrampersecondUf kilogrampersquaremetresecondUf kilogrampersquaremetreUf kilogramsquaremetrepersecondUf metrepersecondUf metrepersquaresecondUf molepercubicmetreUf newtonpercubicmetreUf newtonperkilogramUf newtonpermetreUf newtonpersquaremetreUf pascalsecondUf persquaremetresecondUf radianpersecondUf radianpersquaresecondUf SquaremetrepercubicmetreUf SquaremetrepercubicsecondUf SquaremetreperkilogramUf SquaremetrepernewtonsecondUf SquaremetrepersecondUf SquaremetrepersquaresecondUf voltpermetreUf wattpercubicmetreUf wattperkilogramUf wattpermetrekelvinUf wattpersquaremetresteradianUf wattpersquaremetreUf vimtex-2.16/autoload/vimtex/complete/fancyunits_small-fractions000066400000000000000000000022531474274247400252170ustar00rootroot00000000000000amperepermetreuf amperepersquaremetreuf candelapersquaremetreuf coulombpercubicmetreuf coulombperkilogramuf coulombpermoluf coulombpersquaremetreuf cubicmetreperkilogramuf cubicmetreperseconduf faradpermetreuf Grayperseconduf henrypermetreuf joulepercubicmetreuf jouleperkelvinuf jouleperkilogramkelvinuf jouleperkilogramuf joulepermolekelvinuf joulepermoleuf joulepersquaremetreuf jouleperteslauf kilogrammetreperseconduf kilogrammetrepersquareseconduf kilogrampercubicmetrecoulombuf kilogrampercubicmetreuf kilogramperkilomoleuf kilogrampermetreuf kilogrampersecondcubicmetreuf kilogramperseconduf kilogrampersquaremetreseconduf kilogrampersquaremetreuf kilogramsquaremetreperseconduf metreperseconduf metrepersquareseconduf molepercubicmetreuf newtonpercubicmetreuf newtonperkilogramuf newtonpermetreuf newtonpersquaremetreuf pascalseconduf persquaremetreseconduf radianperseconduf radianpersquareseconduf Squaremetrepercubicmetreuf Squaremetrepercubicseconduf Squaremetreperkilogramuf Squaremetrepernewtonseconduf Squaremetreperseconduf Squaremetrepersquareseconduf voltpermetreuf wattpercubicmetreuf wattperkilogramuf wattpermetrekelvinuf wattpersquaremetresteradianuf wattpersquaremetreuf vimtex-2.16/autoload/vimtex/complete/fancyvrb000066400000000000000000000002261474274247400214660ustar00rootroot00000000000000DefineShortVerb DefineVerbatimEnvironment UndefineShortVerb VerbatimFootnotes \begin{BVerbatim} \begin{BVerbatim*} \begin{Verbatim} \begin{Verbatim*} vimtex-2.16/autoload/vimtex/complete/fhgtechdoku_additional000066400000000000000000000001751474274247400243420ustar00rootroot00000000000000fulltextwidth setauthor setinstitute setpartner setpartnerlogo setsubtitle settitle \begin{fullwidth} \begin{innertitlepage} vimtex-2.16/autoload/vimtex/complete/fixme000066400000000000000000000004551474274247400207700ustar00rootroot00000000000000#include:ifthen #include:verbatim #include:xkeyval fxerror fxerror* fxfatal fxfatal* fxnote fxnote* fxsetup fxsetup* fxwarning fxwarning* listoffixmes \begin{anfxerror} \begin{anfxerror*} \begin{anfxfatal} \begin{anfxfatal*} \begin{anfxnote} \begin{anfxnote*} \begin{anfxwarning} \begin{anfxwarning*} vimtex-2.16/autoload/vimtex/complete/float000066400000000000000000000001011474274247400207510ustar00rootroot00000000000000floatname floatplacement floatstyle listof newfloat restylefloat vimtex-2.16/autoload/vimtex/complete/fontspec000066400000000000000000000004271474274247400215000ustar00rootroot00000000000000addfontfeatures aliasfontfeature aliasfontfeatureoption defaultfontfeatures fontspec newAATfeature newfeaturecode newfontface newfontfamily newfontfeature newfontlanguage newfontscript newICUfeature setboldmathrm setmainfont setmathrm setmathsf setmathtt setmonofont setsansfont vimtex-2.16/autoload/vimtex/complete/geometry000066400000000000000000000000771474274247400215130ustar00rootroot00000000000000geometry loadgeometry newgeometry restoregeometry savegeometry vimtex-2.16/autoload/vimtex/complete/german000066400000000000000000000000001474274247400211130ustar00rootroot00000000000000vimtex-2.16/autoload/vimtex/complete/glossaries000066400000000000000000000147471474274247400220440ustar00rootroot00000000000000#include:amsgen #include:etoolbox #include:ifthen #include:mfirstuc #include:translator #include:xfor #include:xkeyval acfp Acfp aclp Aclp acrfootnote acrfull Acrfull ACRfull acrfullformat acrfullpl Acrfullpl ACRfullpl acrlinkfootnote acrlinkfullformat acrlong Acrlong ACRlong acrlongpl Acrlongpl ACRlongpl acrnameformat acrnolinkfootnote acronymfont acronymname acronymtype acrpluralsuffix acrshort Acrshort ACRshort acrshortpl Acrshortpl ACRshortpl acsp Acsp addglossarytocaptions altnewglossary andname csname currentglssubentry CustomAcronymFields CustomNewAcronymDef DeclareAcronymList DefaultNewAcronymDef defglsdisplay defglsdisplayfirst DefineAcronymSynonyms delimN delimR DescriptionDUANewAcronymDef DescriptionFootnoteNewAcronymDef descriptionname DescriptionNewAcronymDef DUANewAcronymDef entryname equal = findrootlanguage firstacronymfont FootnoteNewAcronymDef forallglossaries forallglsentries forglsentries glolinkprefix GlossariesWarning GlossariesWarningNoLine glossaryentryfield glossaryentrynumbers glossaryheader glossarymark glossaryname glossarypostamble glossarypreamble glossarysection glossarystyle glossarysubentryfield glossarytitle glossarytoctitle glsacrdescriptionfalse glsacrdescriptiontrue glsacrduafalse glsacrduatrue glsacrfootnotefalse glsacrfootnotetrue glsacronymfalse glsacronymtrue glsacrshortcutsfalse glsacrshortcutstrue glsacrsmallcapsfalse glsacrsmallcapstrue glsacrsmallerfalse glsacrsmallertrue glsadd glsaddall GlsAddLetterGroup GlsAddSortRule GlsAddXdyAlphabet GlsAddXdyAttribute GlsAddXdyCounters GlsAddXdyLocation GlsAddXdyStyle glsautoprefix glsclearpage glsclosebrace glscompatible glscompositor glscounter glsdefaulttype glsdefmain glsdesc Glsdesc GLSdesc glsdescplural Glsdescplural GLSdescplural glsdisablehyper glsdisp glsdisplay glsdisplayfirst glsdisplaynumberlist glsdoifexists glsdoifnoexists glsenablehyper glsentrycounter glsentrycounterfalse glsentrycounterlabel glsentrycountertrue glsentrydesc Glsentrydesc glsentrydescplural Glsentrydescplural glsentryfirst Glsentryfirst glsentryfirstplural Glsentryfirstplural glsentryfull Glsentryfull glsentryfullpl Glsentryfullpl glsentryitem glsentrylong Glsentrylong glsentrylongpl Glsentrylongpl glsentryname Glsentryname glsentrynumberlist glsentryplural Glsentryplural glsentryshort Glsentryshort glsentryshortpl Glsentryshortpl glsentrysort glsentrysymbol Glsentrysymbol glsentrysymbolplural Glsentrysymbolplural glsentrytext Glsentrytext glsentrytype glsentryuseri Glsentryuseri glsentryuserii Glsentryuserii glsentryuseriii Glsentryuseriii glsentryuseriv Glsentryuseriv glsentryuserv Glsentryuserv glsentryuservi Glsentryuservi glsfirst Glsfirst GLSfirst glsfirstplural Glsfirstplural GLSfirstplural glsgetgrouplabel glsgetgrouptitle glsgroupheading glsgroupskip glshyperfirstfalse glshyperfirsttrue glshyperlink glshypernavsep glshypernumber glsIfListOfAcronyms glsindexonlyfirstfalse glsindexonlyfirsttrue glskeylisttok glslabel glslabeltok glslink glslocalreset glslocalresetall glslocalunset glslocalunsetall glslongkey glslongpluralkey glslongtok glsmoveentry glsname Glsname GLSname glsnamefont glsnavhyperlink glsnavhypertarget glsnavigation glsnextpages glsnonextpages glsnonumberlistfalse glsnonumberlisttrue glsnoxindywarning glsnumberformat glsnumberlinefalse glsnumberlinetrue glsnumbersgroupname glsnumlistlastsep glsnumlistsep glsopenbrace glsorder glspar glspl Glspl GLSpl glsplural Glsplural GLSplural glspluralsuffix glspostdescription glsquote glsrefentry glsreset glsresetall glsresetentrycounter glsresetentrylist glsresetsubentrycounter glssavenumberlistfalse glssavenumberlisttrue glssavewritesfalse glssavewritestrue glssee glsseeformat glsseeitem glsseeitemformat glsseelastsep glsseelist glsseesep glsSetAlphaCompositor glsSetCompositor glsSetSuffixF glsSetSuffixFF glssettoctitle glssetwidest GlsSetXdyCodePage GlsSetXdyFirstLetterAfterDigits GlsSetXdyLanguage GlsSetXdyLocationClassOrder GlsSetXdyMinRangeLength GlsSetXdyStyles glsshortkey glsshortpluralkey glsshorttok glssortnumberfmt glsstepentry glsstepsubentry glssubentrycounterfalse glssubentrycounterlabel glssubentrycountertrue glssubentryitem glssymbol Glssymbol GLSsymbol glssymbolnav glssymbolplural Glssymbolplural GLSsymbolplural glssymbolsgroupname glstarget glstext Glstext GLStext glstextformat glstocfalse glstoctrue glstranslatefalse glstranslatetrue glsucmarkfalse glsucmarktrue glsunset glsunsetall glsuseri Glsuseri GLSuseri glsuserii Glsuserii GLSuserii glsuseriii Glsuseriii GLSuseriii glsuseriv Glsuseriv GLSuseriv glsuserv Glsuserv GLSuserv glsuservi Glsuservi GLSuservi glswrite glswritefiles glsxindyfalse glsxindytrue hyperbf hyperemph hyperit hypermd hyperrm hypersc hypersf hypersl hypertt hyperup ifglossaryexists ifglsacrdescription ifglsacrdua ifglsacrfootnote ifglsacronym ifglsacrshortcuts ifglsacrsmallcaps ifglsacrsmaller ifglscompatible ifglsentrycounter ifglsentryexists ifglshaschildren ifglshasparent ifglshyperfirst ifglsindexonlyfirst ifglsnonumberlist ifglsnumberline ifglssavenumberlist ifglssavewrites ifglssubentrycounter ifglstoc ifglstranslate ifglsucmark ifglsused ifglsxindy isodd istfile istfilename isundefined languageattribute lengthtest loadglsentries longnewglossaryentry makeglossaries newacronym newacronymhook newglossary newglossaryentry newglossarystyle newterm noist nopostdesc oldacronym pagelistname printacronyms printglossaries printglossary printindex printnumbers printsymbols renewglossarystyle rootlanguagename seename SetAcronymLists setacronymstyle SetAcronymStyle SetCustomDisplayStyle SetCustomStyle SetDefaultAcronymDisplayStyle SetDefaultAcronymStyle SetDescriptionAcronymDisplayStyle SetDescriptionAcronymStyle SetDescriptionDUAAcronymDisplayStyle SetDescriptionDUAAcronymStyle SetDescriptionFootnoteAcronymDisplayStyle SetDescriptionFootnoteAcronymStyle SetDUADisplayStyle SetDUAStyle setentrycounter SetFootnoteAcronymDisplayStyle SetFootnoteAcronymStyle setglossarysection setglossarystyle SetSmallAcronymDisplayStyle SetSmallAcronymStyle setStyleFile showacronymlists showglocounter showglodesc showglodescplural showglofirst showglofirstpl showgloflag showgloindex showglolevel showgloname showgloparent showgloplural showglosort showglossaries showglossarycounter showglossaryentries showglossaryin showglossaryout showglossarytitle showglosymbol showglosymbolplural showglotext showglotype showglouseri showglouserii showglouseriii showglouseriv showglouserv showglouservi SmallNewAcronymDef stripldf symbolname theglossaryentry theglossarysubentry theHglossaryentry theHglossarysubentry theHglsentrycounter toks0 toks14 toks15 writeist \begin{theglossary} vimtex-2.16/autoload/vimtex/complete/glosstex000066400000000000000000000002601474274247400215220ustar00rootroot00000000000000acf* acl* acronym acronym* acs* glosstex glosstex* gls* glxheading glxitemorderdefault glxitemplacementdefault glxparendefault glxparenlistdefault glxref glxref* printglosstex vimtex-2.16/autoload/vimtex/complete/graphicx000066400000000000000000000002271474274247400214620ustar00rootroot00000000000000DeclareGraphicsExtensions DeclareGraphicsRule graphicspath includegraphics includegraphics* reflectbox resizebox resizebox* rotatebox scalebox setkeys vimtex-2.16/autoload/vimtex/complete/harvard000066400000000000000000000004701474274247400213040ustar00rootroot00000000000000#include:html #include:ifthen citationmode citationstyle citeaffixed citeasnoun citename citeyear harvardand harvardcite harvarditem harvardleft harvardparenthesis harvardpreambledefs harvardpreambletext harvardright harvardurl harvardyearleft harvardyearparenthesis harvardyearright next possessivecite protect vimtex-2.16/autoload/vimtex/complete/hyperref000066400000000000000000000007531474274247400215050ustar00rootroot00000000000000#include:nameref Acrobatmenu autopageref autopageref* autoref autoref* belowpdfbookmark CheckBox ChoiceMenu currentpdfbookmark href hyperbaseurl hypercalcbp hyperdef hyperimage hyperlink hyperref hypersetup hypertarget LayoutCheckField LayoutChoiceField LayoutTextField MakeButtonField MakeCheckField MakeChoiceField MakeRadioField MakeTextField nolinkurl pageref* pdfbookmark pdfstringdef phantomsection PushButton ref* Reset Submit subpdfbookmark texorpdfstring TextField thispdfpagelabel vimtex-2.16/autoload/vimtex/complete/ifluatex000066400000000000000000000000531474274247400214730ustar00rootroot00000000000000else ifluatex luatexrevision luatexversion vimtex-2.16/autoload/vimtex/complete/ifpdf000066400000000000000000000000131474274247400207360ustar00rootroot00000000000000else ifpdf vimtex-2.16/autoload/vimtex/complete/iftex000066400000000000000000000001101474274247400207630ustar00rootroot00000000000000else ifLuaTeX ifPDFTeX ifXeTeX RequireLuaTeX RequirePDFTeX RequireXeTeX vimtex-2.16/autoload/vimtex/complete/ifthen000066400000000000000000000001451474274247400211310ustar00rootroot00000000000000boolean equal = ifthenelse isodd isundefined lengthtest newboolean provideboolean setboolean whiledo vimtex-2.16/autoload/vimtex/complete/ifvtex000066400000000000000000000000761474274247400211640ustar00rootroot00000000000000else ifvtex ifvtexdvi ifvtexgex ifvtexhtml ifvtexpdf ifvtexps vimtex-2.16/autoload/vimtex/complete/ifxetex000066400000000000000000000000321474274247400213230ustar00rootroot00000000000000else ifxetex RequireXeTeX vimtex-2.16/autoload/vimtex/complete/import000066400000000000000000000001341474274247400211640ustar00rootroot00000000000000import import* includefrom includefrom* subimport subimport* subincludefrom subincludefrom* vimtex-2.16/autoload/vimtex/complete/jurabib000066400000000000000000000003371474274247400212750ustar00rootroot00000000000000cite* citefield citenotitlefortype citeswithoutentry citetitle citetitlefortype footcite footcite* footcitetitle footfullcite fullcite nextcitefull nextcitenotitle nextcitereset nextciteshort nobibliography noibidem noidem vimtex-2.16/autoload/vimtex/complete/kantlipsum000066400000000000000000000000761474274247400220460ustar00rootroot00000000000000#include:expl3 #include:xparse kantdef kantlipsum kantlipsum* vimtex-2.16/autoload/vimtex/complete/latex-209000066400000000000000000000000001474274247400212670ustar00rootroot00000000000000vimtex-2.16/autoload/vimtex/complete/latex-dev000066400000000000000000000004031474274247400215420ustar00rootroot00000000000000arrayrulewidth columnsep columnwidth footheight headheight headsep height itemsep labelsep labelwidth LoadClassWithOptions marginparsep marginparwidth paperheight paperwidth parsep partopsep RequirePackageWithOptions textfloatsep topmargin topsep totalheight vimtex-2.16/autoload/vimtex/complete/latex-document000066400000000000000000000000521474274247400226020ustar00rootroot00000000000000#include:latex-dev columnwidth printindex vimtex-2.16/autoload/vimtex/complete/latex-l2tabu000066400000000000000000000001361474274247400221600ustar00rootroot00000000000000centerline fussy sloppy \begin{appendix} \begin{eqnarray*} \begin{fussypar} \begin{sloppypar} vimtex-2.16/autoload/vimtex/complete/latex-mathsymbols000066400000000000000000000000001474274247400233170ustar00rootroot00000000000000vimtex-2.16/autoload/vimtex/complete/layout000066400000000000000000000000071474274247400211660ustar00rootroot00000000000000layout vimtex-2.16/autoload/vimtex/complete/letltxmacro000066400000000000000000000000361474274247400222110ustar00rootroot00000000000000GlobalLetLtxMacro LetLtxMacro vimtex-2.16/autoload/vimtex/complete/libertine000066400000000000000000000016321474274247400216330ustar00rootroot00000000000000biolinum biolinumGlyph biolinumKeyGlyph biolinumLF biolinumOsF libertine libertineGlyph libertineLF libertineOsF libertineSB liningnums liningnumsf LKey LKeyAlt LKeyAltF LKeyAltGr LKeyAltGrX LKeyAltX LKeyAt LKeyBack LKeyCapsLock LKeyCommand LKeyCtrl LKeyCtrlAltEnt LKeyCtrlAltF LKeyCtrlAltX LKeyCtrlX LKeyDel LKeyDown LKeyEinf LKeyEnd LKeyEnde LKeyEnter LKeyEntf LKeyEsc LKeyF LKeyFn LKeyGNU LKeyHome LKeyIns LKeyLeer LKeyLeft LKeyMenu LKeyOptionKey LKeyPad LKeyPageDown LKeyPageUp LKeyPgDown LKeyPgUp LKeyPos LKeyReset LKeyRight LKeyScreenDown LKeyScreenUp LKeyShift LKeyShiftAltGrX LKeyShiftAltX LKeyShiftCtrlX LKeyShiftStrgX LKeyShiftX LKeySpace LKeyStrg LKeyStrgAltEnt LKeyStrgAltF LKeyStrgAltX LKeyStrgX LKeyTab LKeyTux LKeyUp LKeyWin LMouseEmpty LMouseIIEmpty LMouseIIL LMouseIILR LMouseIIN LMouseIIR LMouseL LMouseLR LMouseM LMouseN LMouseR oldstylenumsf proportionalnums proportionalnumsf tabularnums tabularnumsf vimtex-2.16/autoload/vimtex/complete/lipsum000066400000000000000000000000601474274247400211610ustar00rootroot00000000000000ChangeLipsumPar lipsum lipsum* setlipsumdefault vimtex-2.16/autoload/vimtex/complete/listings000066400000000000000000000002721474274247400215110ustar00rootroot00000000000000lstalias lstdefinelanguage lstdefinestyle lstinline lstinputlisting lstlistingname lstlistlistingname lstlistoflistings lstname lstnewenvironment lstset thelstlisting \begin{lstlisting} vimtex-2.16/autoload/vimtex/complete/logsys000066400000000000000000000003051474274247400211720ustar00rootroot00000000000000interval intervalthickness loggrid loggrid* logline logline* logloggrid logloggrid* loglogsys loglogsys* logsys logsys* semiloggrid semiloggrid* semilogsys semilogsys* vinterval vlogline vlogline* vimtex-2.16/autoload/vimtex/complete/longtable000066400000000000000000000002251474274247400216220ustar00rootroot00000000000000caption* endfirstfoot endfirsthead endfoot endhead endlastfoot LTcapwidth LTleft LTpost LTpre LTright setlongtables tabularnewline \begin{longtable} vimtex-2.16/autoload/vimtex/complete/lscape000066400000000000000000000000221474274247400211150ustar00rootroot00000000000000\begin{landscape} vimtex-2.16/autoload/vimtex/complete/ltxtable000066400000000000000000000000561474274247400214740ustar00rootroot00000000000000#include:longtable #include:tabularx LTXtable vimtex-2.16/autoload/vimtex/complete/luatex000066400000000000000000000013761474274247400211650ustar00rootroot00000000000000alignmark aligntab catcodetable clearmarks directlua formatname gleaders initcatcodetable latelua luaescapestring luatexalignmark luatexaligntab luatexcatcodetable luatexclearmarks luatexdirectlua luatexformatname luatexgleaders luatexinitcatcodetable luatexlatelua luatexluaescapestring luatexnokerns luatexnoligs luatexoutputbox luatexpdflastxform luatexpdflastximage luatexpdfrefxform luatexpdfrefximage luatexsavecatcodetable luatexscantextokens luatexsuppressfontnotfounderror luatexsuppressifcsnameerror luatexsuppresslongerror luatexsuppressoutererror luatexversion nokerns noligs outputbox pdflastxform pdflastximage pdfrefxform pdfrefximage savecatcodetable scantextokens suppressfontnotfounderror suppressifcsnameerror suppresslongerror suppressoutererror vimtex-2.16/autoload/vimtex/complete/luatodonotes000066400000000000000000000000371474274247400223740ustar00rootroot00000000000000listoftodos missingfigure todo vimtex-2.16/autoload/vimtex/complete/manyfoot000066400000000000000000000002701474274247400215070ustar00rootroot00000000000000DeclareNewFootnote defaultfootnoterule extrafootnoterule ExtraParaSkip Footnote Footnotemark footnoterulepriority Footnotetext newfootnote SelectFootnoteRule SetFootnoteHook SplitNote vimtex-2.16/autoload/vimtex/complete/marvosym000066400000000000000000000040511474274247400215310ustar00rootroot00000000000000AngleSign Ankh Aquarius Aries arrowOver ArrowOver AtForty AtNinetyFive AtSixty barOver BarOver Beam Bearing Bicycle Biohazard Bleech BOLogo BOLogoL BOLogoP Bouquet BSEFree Cancer Capricorn CeltCross CESign Checkedbox CircledA CircPipe CircSteel CleaningA CleaningF CleaningFF CleaningP CleaningPP ClockLogo Coffeecup ComputerMouse Conclusion Congruent Corresponds Cross CrossedBox CutLeft CutLine CutRight CuttingLine Deleatur Denarius Divides DividesNot Dontwash Earth Ecommerce Email EmailCT Equivalence Estatically EstimatedSign EurCr EURcr EurDig EURdig EurHv EURhv EurTm EURtm Explosionsafe EyesDollar Faxmachine Female FEMALE FemaleFemale FemaleMale FHBOlogo FHBOLOGO FixedBearing FlatSteel Florin Football Force Forward ForwardToEnd ForwardToIndex Frowny FullFHBO Gemini Gentsroom HandWash Heart Hermaphrodite ⚥ HERMAPHRODITE HexaSteel HollowBox Industry Info IroningI IroningII IroningIII Jupiter Keyboard Kutline Ladiesroom LargerOrEqual Laserbeam LeftScissors LeftTorque LessOrEqual Letter Libra Lightning Lineload LooseBearing LSteel Male MALE MaleMale ManFace Mars MartinVogel Mercury MineSign Mobilefone Moon MoveDown MoveUp MultiplicationDot Mundus MVArrowDown MVAt MVComma MVDivision MVEight MVFive MVFour MVLeftBracket MVMinus MVMultiplication MVNine MVOne MVPeriod MVPlus MVRightArrow MVRightBracket MVSeven MVSix MVThree MVTwo MVZero Neptune Neutral NoBleech NoChemicalCleaning NoIroning NotCongruent NoTumbler NoWash Octosteel OktoSteel PackingWaste ParallelPort PeaceDove Pfund Pickup Pisces Pluto PointingHand Printer Radioactivity RectPipe RectSteel Recycling Rewind RewindToIndex RewindToStart RightScissors RightTorque RoundedLSteel RoundedTSteel RoundedTTSteel Sagittarius Saturn Scorpio SerialInterface SerialPort Shilling ShortFifty ShortForty ShortNinetyFive ShortSixty ShortThirty Smiley SpecialForty Squaredot SquarePipe SquareSteel Stopsign StrikingThrough Taurus Telefon ToBottom ToTop TSteel TTSteel Tumbler Uranus Valve Vectorarrow Vectorarrowhigh Venus Virgo WashCotton WashSynthetics WashWool Wheelchair Womanface WomanFace WritingHand YinYang Zodiac vimtex-2.16/autoload/vimtex/complete/mathtools000066400000000000000000000030511474274247400216650ustar00rootroot00000000000000#include:amsmath Aboxed adjustlimits ArrowBetweenLines ArrowBetweenLines* bigtimes ⨉ clap colonapprox Colonapprox coloneq ≔ Coloneq ⩴ coloneqq Coloneqq colonsim Colonsim cramped crampedclap crampedllap crampedrlap dblcolon DeclarePairedDelimiter DeclarePairedDelimiterX DeclarePairedDelimiterXPP endlinechar eqcolon ≕ Eqcolon eqqcolon Eqqcolon intertext LaTeXoverbrace LaTeXunderbrace lparen ( mathclap mathllap mathmakebox mathmbox mathrlap mathtoolsset MoveEqLeft MTFlushSpaceAbove MTFlushSpaceBelow ndownarrow newgathered newtagform noeqref nuparrow ordinarycolon overbracket ⎴ prescript reDeclarePairedDelimiterInnerWrapper refeq renewgathered renewtagform rparen ) shortintertext shortvdotswithin shortvdotswithin* shoveleft shoveright smashoperator splitdfrac splitfrac SwapAboveDisplaySkip underbracket ⎵ usetagform vcentcolon vdotswithin xhookleftarrow xhookrightarrow xLeftarrow xleftharpoondown xleftharpoonup xleftrightarrow xLeftrightarrow xleftrightharpoons xmapsto xRightarrow xrightharpoondown xrightharpoonup xrightleftharpoons \begin{bmatrix*} \begin{Bmatrix*} \begin{bsmallmatrix} \begin{Bsmallmatrix} \begin{bsmallmatrix*} \begin{Bsmallmatrix*} \begin{cases*} \begin{dcases} \begin{dcases*} \begin{drcases} \begin{drcases*} \begin{lgathered} \begin{matrix*} \begin{multlined} \begin{pmatrix*} \begin{psmallmatrix} \begin{psmallmatrix*} \begin{rcases} \begin{rcases*} \begin{rgathered} \begin{smallmatrix*} \begin{spreadlines} \begin{vmatrix*} \begin{Vmatrix*} \begin{vsmallmatrix} \begin{Vsmallmatrix} \begin{vsmallmatrix*} \begin{Vsmallmatrix*} vimtex-2.16/autoload/vimtex/complete/mdframed000066400000000000000000000001451474274247400214330ustar00rootroot00000000000000mdfapptodefinestyle mdfdefinestyle mdflength mdfsetup newmdenv surroundwithmdframed \begin{mdframed} vimtex-2.16/autoload/vimtex/complete/mdwlist000066400000000000000000000002151474274247400213350ustar00rootroot00000000000000desclabelstyle desclabelwidth multilinelabel nextlinelabel pushlabel resume suspend \begin{description*} \begin{enumerate*} \begin{itemize*} vimtex-2.16/autoload/vimtex/complete/memhfixc000066400000000000000000000003451474274247400214560ustar00rootroot00000000000000bookautorefname booknumberline chapternumberline endsidecaption endsidecontcaption endsubappendices nameref pagenoteanchor partnumberline printpageinnotes theHchapter theHmemhycontfloat theHpagenote theHsection thememhycontfloat vimtex-2.16/autoload/vimtex/complete/menukeys000066400000000000000000000010331474274247400215110ustar00rootroot00000000000000AltGr arrowkey arrowkeydown arrowkeyleft arrowkeyright arrowkeyup backspace capslock changemenucolor changemenucolortheme changemenuelement changemenuelement* copymenucolortheme copymenustyle ctrl ctrlname CurrentMenuElement delname directory drawtikzfolder enter keys menu newmenucolortheme newmenumacro newmenustyle newmenustyle* newmenustylesimple newmenustylesimple* providemenumacro providemenustyle providemenustylesimple renewmenucolortheme renewmenumacro renewmenustyle renewmenustylesimple return shift Space usemenucolor winmenu vimtex-2.16/autoload/vimtex/complete/metrix000066400000000000000000000001651474274247400211660ustar00rootroot00000000000000acct metrics metricsymbols metricsymbols* setmetrixvar usemetrixvar verseref \begin{metricverses} \begin{symbolline} vimtex-2.16/autoload/vimtex/complete/mhchem000066400000000000000000000002651474274247400211200ustar00rootroot00000000000000#include:amsmath #include:calc #include:graphics #include:ifthen #include:keyval #include:pgf #include:tikz #include:twoopt bond cmath dbond hyphen mhchem mhchemoptions sbond tbond vimtex-2.16/autoload/vimtex/complete/microtype000066400000000000000000000005611474274247400216710ustar00rootroot00000000000000DeclareCharacterInheritance DeclareMicrotypeAlias DeclareMicrotypeBabelHook DeclareMicrotypeSet DeclareMicrotypeSetDefault DeclareMicrotypeVariants DisableLigatures LoadMicrotypeFile lslig lsstyle microtypecontext microtypesetup SetExpansion SetExtraKerning SetExtraSpacing SetProtrusion SetTracking textls textmicrotypecontext UseMicrotypeSet \begin{microtypecontext} vimtex-2.16/autoload/vimtex/complete/minted000066400000000000000000000004531474274247400211360ustar00rootroot00000000000000#include:calc #include:fancyvrb #include:float #include:ifplatform #include:ifthen #include:keyval #include:xcolor DeleteFile inputminted listingscaption listoflistings listoflistingscaption mint mintinline newmint newminted newmintedfile TestAppExists usemintedstyle \begin{listing} \begin{minted} vimtex-2.16/autoload/vimtex/complete/multicol000066400000000000000000000001521474274247400215020ustar00rootroot00000000000000columnbreak multicolsep multicoltolerance postmulticols premulticols \begin{multicols} \begin{multicols*} vimtex-2.16/autoload/vimtex/complete/multido000066400000000000000000000000101474274247400213200ustar00rootroot00000000000000multido vimtex-2.16/autoload/vimtex/complete/multimedia000066400000000000000000000000251474274247400220030ustar00rootroot00000000000000hyperlinkmovie movie vimtex-2.16/autoload/vimtex/complete/multirow000066400000000000000000000000111474274247400215260ustar00rootroot00000000000000multirow vimtex-2.16/autoload/vimtex/complete/nameref000066400000000000000000000000201474274247400212610ustar00rootroot00000000000000nameref Nameref vimtex-2.16/autoload/vimtex/complete/natbib000066400000000000000000000003761474274247400211210ustar00rootroot00000000000000citealp Citealp citealp* Citealp* citealt Citealt citealt* Citealt* citeauthor Citeauthor citeauthor* Citeauthor* citefullauthor citenum citep Citep citep* Citep* citepalias citet Citet citet* Citet* citetalias citetext citeyear citeyearpar defcitealias vimtex-2.16/autoload/vimtex/complete/needspace000066400000000000000000000000371474274247400216030ustar00rootroot00000000000000needspace Needspace Needspace* vimtex-2.16/autoload/vimtex/complete/newclude000066400000000000000000000004041474274247400214600ustar00rootroot00000000000000AtBeginInclude AtEndInclude DeclareFormattingPackage DefaultIncludeSurround Disable DisableAll IfAllowed ifSkipPreamble include* includeall includedoc includedoc* includeenv includeenv* IncludeName IncludeSurround ParentName SkipPreamblefalse SkipPreambletrue vimtex-2.16/autoload/vimtex/complete/ngerman000066400000000000000000000000001474274247400212710ustar00rootroot00000000000000vimtex-2.16/autoload/vimtex/complete/nicefrac000066400000000000000000000000111474274247400214160ustar00rootroot00000000000000nicefrac vimtex-2.16/autoload/vimtex/complete/nomencl000066400000000000000000000001701474274247400213050ustar00rootroot00000000000000makenomenclature nomenclature nomnorefeq nomnorefeqpage nomnorefpage nomrefeq nomrefeqpage nomrefpage printnomenclature vimtex-2.16/autoload/vimtex/complete/paracol000066400000000000000000000004221474274247400212730ustar00rootroot00000000000000addcontentsonly columnratio definethecounter flushpage globalcounter switchcolumn syncallcounters synccounter \begin{column} \begin{column*} \begin{leftcolumn} \begin{leftcolumn*} \begin{nthcolumn} \begin{nthcolumn*} \begin{paracol} \begin{rightcolumn} \begin{rightcolumn*} vimtex-2.16/autoload/vimtex/complete/parskip000066400000000000000000000000001474274247400213130ustar00rootroot00000000000000vimtex-2.16/autoload/vimtex/complete/pdfpages000066400000000000000000000002361474274247400214460ustar00rootroot00000000000000#include:graphicx #include:calc #include:count1to #include:eso-pic #include:ifthen #include:pdflscape includepdf includepdfmerge includepdfset threadinfodict vimtex-2.16/autoload/vimtex/complete/pgf000066400000000000000000000000411474274247400204230ustar00rootroot00000000000000#include:pgfrcs #include:pgfcore vimtex-2.16/autoload/vimtex/complete/pgfcore000066400000000000000000000110241474274247400212770ustar00rootroot00000000000000#include:graphicx #include:pgfsys #include:keyval #include:xcolor breakforeach csname dpthimport endangle endpgfinterruptboundingbox endpgfinterruptpath endpgfinterruptpicture endpgflowlevelscope endpgfonlayer endpgfpicture endpgfscope endpgftransparencygroup expandafter foreach noexpand pgfaliasimage pgfaliasshading pgfalternateextension pgfarrowsdeclare pgfarrowsdeclarealias pgfarrowsdeclarecombine pgfarrowsdeclaredouble pgfarrowsdeclarereversed pgfarrowsdeclaretriple pgfarrowsleftextend pgfarrowsrightextend pgfdeclarefading pgfdeclarefunctionalshading pgfdeclarehorizontalshading pgfdeclareimage pgfdeclarelayer pgfdeclaremask pgfdeclarepatternformonly pgfdeclarepatterninherentlycolored pgfdeclareradialshading pgfdeclareverticalshading pgfdefobject pgfexternaldepth pgfexternalreaddpth pgfexternalstorecommand pgfexternaltrimleft pgfexternaltrimright pgfextractx pgfextracty pgfgetarrowoptions pgfgetlastxy pgfgettransform pgfgettransformentries pgfimage pgfincludeexternalgraphics pgfinnerlinewidth pgfinnerstrokecolor pgfinterruptboundingbox pgfinterruptpath pgfinterruptpicture pgflowlevel pgflowlevelobj pgflowlevelscope pgflowlevelsynccm pgfmathaddtocount pgfmathaddtocounter pgfmathaddtolength pgfmathanglebetweenlines pgfmathanglebetweenpoints pgfmathangleonellipse pgfmathbasetobase pgfmathbasetoBase pgfmathbasetodec pgfmathbreakloop pgfmathcounter pgfmathdeclarefunction pgfmathdeclareoperator pgfmathdeclarepseudoconstant pgfmathdeclarerandomlist pgfmathdectobase pgfmathdectoBase pgfmathgeneratepseudorandomnumber pgfmathincluded pgfmathloop pgfmathmakecounterglobal pgfmathmax pgfmathmin pgfmathnewcounter pgfmathparse pgfmathpointintersectionoflineandarc pgfmathprint pgfmathqparse pgfmathrandominteger pgfmathrandomitem pgfmathredeclarefunction pgfmathredeclarepseudoconstant pgfmathreflectpointalongaxis pgfmathresult pgfmathresultunitscale pgfmathrotatepointaround pgfmathscaleresult pgfmathscientific pgfmathsetbasenumberlength pgfmathsetcount pgfmathsetcounter pgfmathsetlength pgfmathsetlengthmacro pgfmathsetmacro pgfmathsetresultunitscale pgfmathsetseed pgfmathsincos pgfmathtruncatemacro pgfmorphaddpost pgfmorphaddpre pgfonlayer pgfpatharc pgfpatharcaxes pgfpatharcto pgfpatharctomaxstepsize pgfpatharctoprecomputed pgfpathcircle pgfpathclose pgfpathcosine pgfpathcurvebetweentime pgfpathcurvebetweentimecontinue pgfpathcurveto pgfpathellipse pgfpathgrid pgfpathlineto pgfpathmoveto pgfpathparabola pgfpathqcircle pgfpathqcurveto pgfpathqlineto pgfpathqmoveto pgfpathquadraticcurveto pgfpathrectangle pgfpathrectanglecorners pgfpathsine pgfpatternreleasename pgfpicture pgfpoint pgfpointadd pgfpointborderellipse pgfpointborderrectangle pgfpointcurveattime pgfpointcylindrical pgfpointdiff pgfpointfirstonpath pgfpointintersectionofcircles pgfpointintersectionoflines pgfpointlastonpath pgfpointlineatdistance pgfpointlineattime pgfpointnormalised pgfpointorigin pgfpointpolar pgfpointpolarxy pgfpointscale pgfpointsecondonpath pgfpointspherical pgfpointtransformed pgfpointxy pgfpointxyz pgfprocesscheckclosed pgfprocesspathextractpoints pgfprocesspathreplacestartandend pgfprocessround pgfqbox pgfqboxsynced pgfqpoint pgfqpointpolar pgfqpointscale pgfqpointxy pgfqpointxyz pgfrealjobname pgfresetboundingbox pgfscope pgfsetadditionalshadetransform pgfsetarrowoptions pgfsetarrows pgfsetarrowsend pgfsetarrowsstart pgfsetbaseline pgfsetbaselinepointlater pgfsetbaselinepointnow pgfsetbeveljoin pgfsetbuttcap pgfsetcolor pgfsetcornersarced pgfsetdash pgfseteorule pgfsetfading pgfsetfadingforcurrentpath pgfsetfillcolor pgfsetfillopacity pgfsetfillpattern pgfsetinnerlinewidth pgfsetinnerstrokecolor pgfsetlayers pgfsetlinewidth pgfsetmiterjoin pgfsetmiterlimit pgfsetnonzerorule pgfsetrectcap pgfsetroundcap pgfsetroundjoin pgfsetshortenend pgfsetshortenstart pgfsetstrokecolor pgfsetstrokeopacity pgfsettransform pgfsettransformentries pgfsettrimleft pgfsettrimleftpointlater pgfsettrimleftpointnow pgfsettrimright pgfsettrimrightpointlater pgfsettrimrightpointnow pgfsetxvec pgfsetyvec pgfsetzvec pgfshadecolortorgb pgfshadepath pgftext pgftransformarrow pgftransformcm pgftransformcurveattime pgftransforminvert pgftransformlineattime pgftransformreset pgftransformresetnontranslations pgftransformrotate pgftransformscale pgftransformshift pgftransformtriangle pgftransformxscale pgftransformxshift pgftransformxslant pgftransformyscale pgftransformyshift pgftransformyslant pgftransparencygroup pgfuseimage pgfuseobject pgfuseobjectmagnify pgfusepath pgfusepathqclip pgfusepathqfill pgfusepathqfillstroke pgfusepathqstroke pgfuseshading relax shipout startangle write \begin{pgfonlayer} vimtex-2.16/autoload/vimtex/complete/pgfplots000066400000000000000000000001711474274247400215110ustar00rootroot00000000000000addplot legend pgfplotsset \begin{axis} \begin{loglogaxis} \begin{semilogxaxis} \begin{semilogyaxis} \begin{tikzpicture} vimtex-2.16/autoload/vimtex/complete/physics000066400000000000000000000025011474274247400213340ustar00rootroot00000000000000abs* absolutevalue acomm acomm* acos acosecant acosine acot acotangent acsc anticommutator arccosecant arccosine arccot arccotangent arccsc arcsec arcsecant arcsine arctangent asec asecant asin asine atan atangent bmqty bqty Bqty bra* braket braket* comm comm* commutator cosecant cosine cotangent cross crossproduct csch curl curl* derivative determinant differential div* divergence divisionsymbol dotproduct dyad dyad* eval eval* evaluated expectationvalue exponential expval expval* fdv* flatfrac functionalderivative grad grad* gradient hypcosecant hypcosine hypcotangent hypsecant hypsine hyptangent imaginary innerproduct ket* ketbra ketbra* laplacian laplacian* logarithm matrixdeterminant matrixel matrixel* matrixelement matrixelement* matrixquantity mdet mel* mqty mqty* naturallogarithm norm norm* order order* outerproduct partialderivative pderivative pdv* pmqty Pmqty poissonbracket pqty Probability qall qall* qand qand* qas* qassume qassume* qcc* qcomma qelse qelse* qeven qeven* qfor qfor* qgiven qgiven* qif* qin* qinteger qinteger* qlet qlet* qodd qodd* qor* qotherwise qotherwise* qsince qsince* qthen qthen* quantity qunless qunless* qusing qusing* rank real sbmqty secant sech sine smallmatrixquantity smdet smqty smqty* spmqty sPmqty svmqty tangent trace Trace variation vdot vectorarrow vectorbold vectorunit vmqty vqty vimtex-2.16/autoload/vimtex/complete/pifont000066400000000000000000000001751474274247400211560ustar00rootroot00000000000000ding dingfill dingline Pifill Pifont Piline Pisymbol \begin{dingautolist} \begin{dinglist} \begin{Piautolist} \begin{Pilist} vimtex-2.16/autoload/vimtex/complete/placeins000066400000000000000000000000151474274247400214460ustar00rootroot00000000000000FloatBarrier vimtex-2.16/autoload/vimtex/complete/psfrag000066400000000000000000000000721474274247400211350ustar00rootroot00000000000000psfrag psfrag* psfragscanoff psfragscanon \begin{psfrags} vimtex-2.16/autoload/vimtex/complete/pst-3d000066400000000000000000000000531474274247400207640ustar00rootroot00000000000000psshadow psshadow* pstilt psTilt ThreeDput vimtex-2.16/autoload/vimtex/complete/pst-blur000066400000000000000000000000121474274247400214150ustar00rootroot00000000000000psblurbox vimtex-2.16/autoload/vimtex/complete/pst-char000066400000000000000000000001371474274247400213760ustar00rootroot00000000000000endpscharclip pscharclip pscharclip* pscharpath pscharpath* \begin{charclip} \begin{charclip*} vimtex-2.16/autoload/vimtex/complete/pst-coil000066400000000000000000000000611474274247400214030ustar00rootroot00000000000000pscoil psCoil pscoil* psCoil* pszigzag pszigzag* vimtex-2.16/autoload/vimtex/complete/pst-eps000066400000000000000000000000571474274247400212510ustar00rootroot00000000000000endTeXtoEPS PSTtoEPS TeXtoEPS \begin{TeXtoEPS} vimtex-2.16/autoload/vimtex/complete/pst-fill000066400000000000000000000000241474274247400214020ustar00rootroot00000000000000psboxfill PstTiling vimtex-2.16/autoload/vimtex/complete/pst-node000066400000000000000000000013141474274247400214040ustar00rootroot00000000000000circlenode circlenode* cnode Cnode cnode* Cnode* cnodeput cnodeput* dianode dianode* dotnode dotnode* fnode fnode* naput naput* nbput nbput* ncangle ncangle* ncangles ncangles* ncarc ncarc* ncarcbox ncarcbox* ncbar ncbar* ncbox ncbox* nccircle nccircle* nccoil nccoil* nccurve nccurve* ncdiag ncdiag* ncdiagg ncdiagg* ncline ncLine ncline* ncLine* ncloop ncloop* ncput ncput* nczigzag nczigzag* nput nput* ovalnode ovalnode* pcangle pcangle* pcarc pcarc* pcarcbox pcarcbox* pcbar pcbar* pcbox pcbox* pccoil pccoil* pccurve pccurve* pcdiag pcdiag* pcline pcline* pcloop pcloop* pczigzag pczigzag* pnode rnode Rnode Rnode* taput taput* tbput tbput* thput thput* tlput tlput* trinode trinode* trput trput* tvput tvput* vimtex-2.16/autoload/vimtex/complete/pst-plot000066400000000000000000000002541474274247400214370ustar00rootroot00000000000000dataplot dataplot* fileplot fileplot* listplot listplot* parametricplot parametricplot* psaxes psaxes* pshlabel psplot psplot* psvlabel psxlabel psylabel readdata savedata vimtex-2.16/autoload/vimtex/complete/pst-text000066400000000000000000000000131474274247400214360ustar00rootroot00000000000000pstextpath vimtex-2.16/autoload/vimtex/complete/pst-tree000066400000000000000000000002711474274247400214170ustar00rootroot00000000000000psedge pspred pssucc pstree skiplevel skiplevel* skiplevels skiplevels* Tcircle TCircle Tcircle* TCircle* Tdia Tdia* Tdot Tdot* Tfan Tfan* Toval Toval* tspace Ttri Ttri* \begin{psTree} vimtex-2.16/autoload/vimtex/complete/pstricks000066400000000000000000000022311474274247400215140ustar00rootroot00000000000000arrows clipbox closedshadow closepath code coor cput cput* curveto degrees endoverlaybox endpsclip everypsbox file fill grestore gsave lineto movepath moveto mrestore msave multips multirput multirput* newcmykcolor newgray newhsbcolor newpath newpsobject newpsstyle newrgbcolor NormalCoor openshadow overlaybox parabola parabola* psaddtolength psarc psarc* psarcn psarcn* psbezier psbezier* psccurve psccurve* pscircle pscircle* pscirclebox pscirclebox* psclip pscurve pscurve* pscustom pscustom* psdblframebox psdblframebox* psdiabox psdiabox* psdiamond psdiamond* psdot psdot* psdots psdots* psecurve psecurve* psellipse psellipse* psframe psframe* psframebox psframebox* psgrid pslabelsep pslbrace psline psline* pslongbox psmathboxfalse psmathboxtrue psovalbox psovalbox* psoverlay pspolygon pspolygon* psrbrace psset pssetlength psshadowbox psshadowbox* pstriangle pstriangle* pstribox pstribox* psverbboxfalse psverbboxtrue pswedge pswedge* putoverlaybox qdisk qline radians rcoor rcurveto rlineto rotate rotatedown rotateleft rotateright rput rput* scale scalebox scaleboxto setcolor SpecialCoor stroke swapaxes translate uput uput* \begin{pspicture} \begin{pspicture*} vimtex-2.16/autoload/vimtex/complete/rotating000066400000000000000000000000551474274247400215030ustar00rootroot00000000000000\begin{sidewaysfigure} \begin{sidewaystable} vimtex-2.16/autoload/vimtex/complete/scraddr000066400000000000000000000001621474274247400212750ustar00rootroot00000000000000addrentry Address adrentry Comment FirstName FreeI FreeII FreeIII FreeIV InputAddressFile LastName Name Telephone vimtex-2.16/autoload/vimtex/complete/scrdate000066400000000000000000000000231474274247400212740ustar00rootroot00000000000000nameday todaysname vimtex-2.16/autoload/vimtex/complete/scrlfile000066400000000000000000000001411474274247400214530ustar00rootroot00000000000000AfterClass AfterClass* AfterFile AfterPackage AfterPackage* BeforeClass BeforeFile BeforePackage vimtex-2.16/autoload/vimtex/complete/scrpage2000066400000000000000000000004661474274247400213700ustar00rootroot00000000000000automark cefoot cehead cfoot chead clearscrheadfoot clearscrheadings clearscrplain cofoot cohead headfont headmark ifoot ihead lefoot lehead lofoot lohead manualmark ofoot ohead pagemark pnumfont refoot rehead rofoot rohead setfootbotline setfootsepline setfootwidth setheadsepline setheadtopline setheadwidth vimtex-2.16/autoload/vimtex/complete/scrtime000066400000000000000000000000331474274247400213160ustar00rootroot00000000000000settime thistime thistime* vimtex-2.16/autoload/vimtex/complete/secsty000066400000000000000000000003171474274247400211670ustar00rootroot00000000000000allsectionsfont chapterfont chapternumberfont chaptertitlefont minisecfont nohang paragraphfont partfont partnumberfont parttitlefont sectionfont subparagrahfont subsectionfont subsubsectionfont ulemheading vimtex-2.16/autoload/vimtex/complete/setspace000066400000000000000000000002221474274247400214570ustar00rootroot00000000000000doublespacing onehalfspacing SetSinglespace setstretch singlespacing \begin{doublespace} \begin{onehalfspace} \begin{singlespace} \begin{spacing} vimtex-2.16/autoload/vimtex/complete/siunitx000066400000000000000000000017671474274247400213720ustar00rootroot00000000000000ampere angstrom arcminute arcsecond astronomicalunit atomicmassunit atto barn becquerel bohr byte cancel candela celsius centi clight cmclight color coulomb cubed cubic dalton deca deci decibel DeclareBinaryPrefix DeclareSIPostPower DeclareSIPrefix DeclareSIPrePower DeclareSIQualifier DeclareSIUnit degreeCelsius deka electronmass electronvolt elementarycharge exbi farad femto fmol gibi giga gray hartree hectare hecto henry hertz highlight hour joule katal kelvin kibi kilo kilogram kmol knot kohm liter litre mebi mega meter metre micro milli minute mmHg mmol mohm Mohm mole nano nauticalmile neper newton nmol numlist numrange pascal pebi percent peta pico planckbar pmol radian raiseto second SendSettingsToPgf siemens sievert SIlist SIrange sisetup SIUnitSymbolAngstrom SIUnitSymbolArcminute SIUnitSymbolArcsecond SIUnitSymbolCelsius SIUnitSymbolDegree SIUnitSymbolMicro SIUnitSymbolOhm square □ squared steradian tablenum tebi tera tesla tonne tothe umol volt watt weber yobi yocto yotta zebi zepto zetta vimtex-2.16/autoload/vimtex/complete/siunitx-special000066400000000000000000000002141474274247400227720ustar00rootroot00000000000000attobarn byte clight dalton eVperc femtobarn gauss lightyear micron mmHg molar Molar mrad nanobarn parsec picobarn torr yoctobarn zeptobarn vimtex-2.16/autoload/vimtex/complete/subcaption000066400000000000000000000001701474274247400220210ustar00rootroot00000000000000#include:caption captionsetup phantomsubcaption subcaption subcaption* subcaptionbox \begin{subfigure} \begin{subtable} vimtex-2.16/autoload/vimtex/complete/subfig000066400000000000000000000001531474274247400211320ustar00rootroot00000000000000captionsetup ContinuedFloat DeclareCaptionListOfFormat listsubcaptions newsubfloat subfloat subref subref* vimtex-2.16/autoload/vimtex/complete/subfigure000066400000000000000000000003671474274247400216550ustar00rootroot00000000000000listsubcaptions subcapfont subcaplabelfont subcapsize subfigbottomskip subfigcapmargin subfigcapskip subfigcaptopadj subfiglabelskip subfigtopskip subfigure subref Subref theHsubfigure theHsubtable thelofdepth thelotdepth thesubfigure thesubtable vimtex-2.16/autoload/vimtex/complete/subfiles000066400000000000000000000000321474274247400214630ustar00rootroot00000000000000#include:verbatim subfile vimtex-2.16/autoload/vimtex/complete/supertabular000066400000000000000000000003121474274247400223610ustar00rootroot00000000000000bottomcaption setSTheight shrinkheight tablecaption tablefirsthead tablehead tablelasttail tabletail topcaption \begin{mpsupertabular} \begin{mpsupertabular*} \begin{supertabular} \begin{supertabular*} vimtex-2.16/autoload/vimtex/complete/svn-multi000066400000000000000000000006561474274247400216210ustar00rootroot00000000000000svn* svnauthor svndate svnday svnfileauthor svnfiledate svnfileday svnfilehour svnfileminute svnfilemonth svnfilerev svnfilesecond svnfiletimezone svnfileyear svnFullAuthor svnFullAuthor* svnFullRevision svnFullRevision* svnhour svnid svnidlong svnkw svnkwdef svnkwsave svnmainfilename svnmainurl svnminute svnmonth svnnolinkurl svnpdfdate svnRegisterAuthor svnRegisterRevision svnrev svnsecond svnsetmainfile svntimezone svnyear vimtex-2.16/autoload/vimtex/complete/svninfo000066400000000000000000000003021474274247400213310ustar00rootroot00000000000000svnId svnInfo svnInfoDate svnInfoDay svnInfoFile svnInfoLongDate svnInfoMaxRevision svnInfoMaxToday svnInfoMinRevision svnInfoMonth svnInfoOwner svnInfoRevision svnInfoTime svnInfoYear svnToday vimtex-2.16/autoload/vimtex/complete/tabu000066400000000000000000000003561474274247400206130ustar00rootroot00000000000000abovetabulinesep belowtabulinesep everyrow extrarowsep newtabulinestyle preamble rowfont savetabu tabucline tabudecimal tabulinesep tabulinestyle tabuphantomline tabureset taburowcolors taburulecolor usetabu \begin{longtabu} \begin{tabu} vimtex-2.16/autoload/vimtex/complete/tabularx000066400000000000000000000000771474274247400215020ustar00rootroot00000000000000arraybackslash tabularxcolumn tracingtabularx \begin{tabularx} vimtex-2.16/autoload/vimtex/complete/tabulary000066400000000000000000000000211474274247400214700ustar00rootroot00000000000000\begin{tabulary} vimtex-2.16/autoload/vimtex/complete/tex000066400000000000000000000072201474274247400204550ustar00rootroot00000000000000above abovedisplayshortskip abovedisplayskip abovewithdelims accent active adjdemerits advance advancepageno afterassignment aftergroup allowbreak allowhyphens annotations atop atopwithdelims baselineskip batchmode begingroup belowdisplayshortskip belowdisplayskip bgroup bigbreak bigskipamount bordermatrix botmark boxmaxdepth brokenpenalty buildrel cases { catcode centering char chardef choose cleaders cleartabs closein closeout closing clubpenalty columns copy copyright © count countdef crcr csname danger ☡ dash deadcycles defaulthyphenchar defaultskewchar delcode delimiter delimiterfactor delimitershortfall dimen dimendef discretionary displayindent displaylimits displaylines displaystyle displaywidowpenalty displaywidth divide dotfill dots … doublehyphendemerits edef egroup eject else empty endcsname endgraf endgroup endinput endlinechar enskip enspace eqalign eqalignno eqno errhelp errmessage errorstopmode escapechar everycr everydisplay everyhbox everyjob everymath everypar everyvbox exhyphenpenalty expandafter fill finalhypendemerits firstmark floatingpenalty folio font fontdimen fontname footins footnoterule frenchspacing futurelet gdef global globaldefs halign hangafter hangindent hbadness hbox hfil hfilneg hfuzz hoffset hphantom hsize hskip hyphenchar hyphenpenalty ifcase ifcat ifdefined ifdim ifeof iffalse ifhbox ifhmode ifinner ifmmode ifnum ifodd iftrue ifundefined ifvbox ifvmode ifvoid ignorespaces immediate indent insert insertpenalties interdisplaylinepenalty interfootnotelinepenalty interlinepenalty jobname joinrel kern lastbox lastkern lastpenalty lastskip lccode leaders leavevmode leftskip leqno linepenalty lineskip lineskiplimit llap long looseness lower lowercase magnification magstep margin mark mathaccent mathbin mathchar mathchardef mathchoice mathclose mathcode mathinner mathop mathopen mathord mathpunct mathrel mathstrut mathsurround matrix maxdeadcycles maxdepth maxdimen meaning medbreak medmuskip medskipamount message mkern month moveleft moveright mskip multiply multispan muskip muskipdef negthinspace newbox newcount newdimen newhelp newif newlinechar newmuskip newread newskip newtoks newwrite noalign nobreak noexpand noindent nointerlineskip nolimits nonfrenchspacing nonscript nonstopmode nopagenumbers nulldelimiterspace nullfont number obeylines obeyspaces offinterlineskip omit openin openout outer output outputpenalty over overfullrule overwithdelims pagedepth pagefilllstretch pagefillstretch pagefilstretch pagegoal pageinsert pageno pageshrink pagestretch parfillskip parindent parshape parskip patterns pausing penalty phantom pmatrix postdisplaypenalty predisplaypenalty predisplaysize pretolerance prevdepth prevgraf proclaim protect radical raggedbottom raggedcenter raggedleft raggedright raise read relax relpenalty removelastskip repeat rightskip rlap romannumeral scriptfont scriptscriptfont scriptscriptstyle scriptspace scriptstyle scrollmode setbox sfcode shipout show showbox showboxbreadth showboxdepth showhyphens showlists showthe skew skewchar skip skipdef slash smallbreak smallskip smallskipamount spacefactor spaceskip span special splitbotmark splitfirstmark splitmaxdepth splittopskip string strut tabskip textfont textindent textstyle thickmuskip thinmuskip thinspace toks toksdef tolerance topins topmark topskip tracingcommands tracingfonts tracinglostchars tracingmacros tracingonline tracingoutput tracingpages tracingparagraphs tracingrestores tracingstats uccode uchyph underbar unhbox unhcopy unitlength unkern unpenalty unskip unvbox unvcopy uppercase vadjust valign vbadness vbox vcenter vfil vfill vfilll vfilneg vfuzz voffset vphantom vrule vsize vskip vsplit vtop widowpenalty write xdef xleaders xspaceskip year vimtex-2.16/autoload/vimtex/complete/textcomp000066400000000000000000000027631474274247400215270ustar00rootroot00000000000000capitalacute capitalbreve capitalcaron capitalcedilla capitalcircumflex capitaldieresis capitaldotaccent capitalgrave capitalhungarumlaut capitalnewtie capitalogonek capitalring capitaltie capitaltilde newtie textacutedbl textascendercompwordmark textasciiacute textasciibreve textasciicaron textasciidieresis textasciigrave textasciimacron textbaht textbigcircle textblank textborn textbrokenbar textcapitalcompwordmark textcelsius textcent textcolonmonetary textcopyleft textcurrency textdblhyphen textdblhyphenchar textdegree textdied textdiscount textdiv textdivorced textdollaroldstyle textdong textdownarrow texteightoldstyle textestimated texteuro textfiveoldstyle textflorin textfouroldstyle textfractionsolidus textgravedbl textguarani textinterrobang textinterrobangdown textlangle textlbrackdbl textleaf textleftarrow textlira textlnot textlquill textmarried textmho textminus textmu textmusicalnote textnaira textnineoldstyle textnumero textohm textonehalf textoneoldstyle textonequarter textonesuperior textopenbullet textordfeminine textordmasculine textpertenthousand textperthousand textpeso textpilcrow textpm textquotesingle textquotestraightbase textquotestraightdblbase textrangle textrbrackdbl textrecipe textreferencemark textrightarrow textrquill textservicemark textsevenoldstyle textsixoldstyle textsurd textthreeoldstyle textthreequarters textthreequartersemdash textthreesuperior texttildelow texttimes texttwelveudash texttwooldstyle texttwosuperior textuparrow textwon textyen textzerooldstyle vimtex-2.16/autoload/vimtex/complete/theorem000066400000000000000000000001321474274247400213130ustar00rootroot00000000000000theorembodyfont theoremheaderfont theorempostskipamount theorempreskipamount theoremstyle vimtex-2.16/autoload/vimtex/complete/tikz000066400000000000000000000012401474274247400206320ustar00rootroot00000000000000#include:pgfcore calendar clip coordinate csname datavisualization draw endtikzpicture expandafter fill filldraw graph matrix node noexpand path pattern pgfextra pgfmatrixbegincode pgfmatrixcolumnsep pgfmatrixemptycode pgfmatrixendcode pgfmatrixrowsep pgfplotlastpoint pgfstrokehook shade shadedraw tikz tikzaddafternodepathoption tikzaddtikzonlycommandshortcutdef tikzaddtikzonlycommandshortcutlet tikzaliascoordinatesystem tikzchildanchor tikzdeclarecoordinatesystem tikzexternalize tikzifinpicture tikzoption tikzparentanchor tikzpicture tikzset tikzsetexternalprefix tikzstyle tikztonodes tikztotarget useasboundingbox usetikzlibrary \begin{scope} \begin{tikzpicture} vimtex-2.16/autoload/vimtex/complete/tikz-cd000066400000000000000000000000441474274247400212170ustar00rootroot00000000000000#include: tikz arrow \begin{tikzcd} vimtex-2.16/autoload/vimtex/complete/tikz-timing000066400000000000000000000010161474274247400221200ustar00rootroot00000000000000#include:tikz background bgstyle charb charc code coldist dslope endbackground expandafter extracode fwidth gslope height list lslope newdraw newdrawns nrows nstyle rowdist slope style tableheader tablerules texttiming tikztimingchar tikztimingcpy tikztimingdef tikztimingecopy tikztiminglet tikztimingmetachar tikztimingsetdslope tikztimingsetslope tikztimingsetwscale tikztimingsetzslope tikztiminguse tikztimingwidth timing timingheight timingwidth twidth vertlines wscale zslope \begin{pgfonlayer} \begin{tikztimingtable} vimtex-2.16/autoload/vimtex/complete/titlesec000066400000000000000000000011341474274247400214670ustar00rootroot00000000000000assignpagestyle chaptertitlename chaptertolists contentpush contentslabel contentsmargin contentspage contentsuse dottecontents filcenter filinner fillast filleft filouter filright iftitlemeasuring paragraphbreak printcontents printlist resumecontents resumelist sectionbreak startcontents startlist stopcontents stoplist subparagraphbreak subsectionbreak subsubparagraphbreak subsubsectionbreak thecontentslabel thecontentspage thesubchapter thesubsubparagraph titleclass titlecontents titlecontents* titleformat titleformat* titlelabel titleline titlerule titlerule* titlespacing titlespacing* wordsep vimtex-2.16/autoload/vimtex/complete/tocbibind000066400000000000000000000002421474274247400216070ustar00rootroot00000000000000restorechapter setindexname setlofname setlotname settocbibname settocname simplechapter simplechapterdelim tocbibname tocchapter tocfile tocotherhead tocsection vimtex-2.16/autoload/vimtex/complete/tocloft000066400000000000000000000046301474274247400213310ustar00rootroot00000000000000cftafterloftitle cftafterloftitleskip cftafterlottitle cftafterlottitleskip cftaftertoctitle cftaftertoctitleskip cftbeforechapskip cftbeforefigskip cftbeforeloftitleskip cftbeforelottitleskip cftbeforeparaskip cftbeforepartskip cftbeforesecskip cftbeforesubfigskip cftbeforesubparaskip cftbeforesubsecskip cftbeforesubsubsecskip cftbeforesubtabskip cftbeforetabskip cftbeforetoctitleskip cftchapafterpnum cftchapaftersnum cftchapaftersnumb cftchapdotsep cftchapfont cftchapindent cftchapleader cftchapnumwidth cftchappagefont cftchappresnum cftdot cftdotfill cftdotsep cftfigafterpnum cftfigaftersnum cftfigaftersnumb cftfigdotsep cftfigfont cftfigindent cftfigleader cftfignumwidth cftfigpagefont cftfigpresnum cftloftitlefont cftlottitlefont cftmarklof cftmarklot cftmarktoc cftnodots cftpagenumbersoff cftpagenumberson cftparaafterpnum cftparaaftersnum cftparaaftersnumb cftparadotsep cftparafont cftparaindent cftparaleader cftparanumwidth cftparapagefont cftparapresnum cftparskip cftpartafterpnum cftpartaftersnum cftpartaftersnumb cftpartdotsep cftpartfont cftpartindent cftpartleader cftpartnumwidth cftpartpagefont cftpartpresnum cftsecafterpnum cftsecaftersnum cftsecaftersnumb cftsecdotsep cftsecfont cftsecindent cftsecleader cftsecnumwidth cftsecpagefont cftsecpresnum cftsetindents cftsetpnumwidth cftsetrmarg cftsubfigafterpnum cftsubfigaftersnum cftsubfigaftersnumb cftsubfigdotsep cftsubfigfont cftsubfigindent cftsubfigleader cftsubfignumwidth cftsubfigpagefont cftsubfigpresnum cftsubparaafterpnum cftsubparaaftersnum cftsubparaaftersnumb cftsubparadotsep cftsubparafont cftsubparaindent cftsubparaleader cftsubparanumwidth cftsubparapagefont cftsubparapresnum cftsubsecafterpnum cftsubsecaftersnum cftsubsecaftersnumb cftsubsecdotsep cftsubsecfont cftsubsecindent cftsubsecleader cftsubsecnumwidth cftsubsecpagefont cftsubsecpresnum cftsubsubsecafterpnum cftsubsubsecaftersnum cftsubsubsecaftersnumb cftsubsubsecdotsep cftsubsubsecfont cftsubsubsecindent cftsubsubsecleader cftsubsubsecnumwidth cftsubsubsecpagefont cftsubsubsecpresnum cftsubtabafterpnum cftsubtabaftersnum cftsubtabaftersnumb cftsubtabdotsep cftsubtabfont cftsubtabindent cftsubtableader cftsubtabnumwidth cftsubtabpagefont cftsubtabpresnum cfttabafterpnum cfttabaftersnum cfttabaftersnumb cfttabdotsep cfttabfont cfttabindent cfttableader cfttabnumwidth cfttabpagefont cfttabpresnum cfttoctitlefont lofdepth lotdepth newlistentry newlistof tocdepth tocloftpagestyle vimtex-2.16/autoload/vimtex/complete/todonotes000066400000000000000000000000371474274247400216720ustar00rootroot00000000000000listoftodos missingfigure todo vimtex-2.16/autoload/vimtex/complete/tools/000077500000000000000000000000001474274247400210715ustar00rootroot00000000000000vimtex-2.16/autoload/vimtex/complete/tools/convert-cwl000077500000000000000000000032531474274247400232650ustar00rootroot00000000000000#!/usr/bin/env python """Convert texstudio cwl files to VimTeX format""" import os import re with open('tools/symbols') as f: SYMBOLS = dict([line.strip().split(' ') for line in f.readlines()]) with open('default') as f: DEFAULT = [line.strip().split(' ')[0] for line in f.readlines()] RE_CMD = re.compile(r'\w+\*?') RE_ENV = re.compile(r'\\begin\{(\w+\*?)\}') files = [['texstudio-cwls/' + f, os.path.splitext(f)[0]] for f in os.listdir('texstudio-cwls')] for infile, outfile in files: with open(infile, encoding='latin1') as f: lines = f.readlines() includes = [line for line in lines if line[0:4] == '#inc'] commands = sorted(set([RE_CMD.search(line).group(0) for line in lines if line[0] == '\\']), key=lambda l: (l.lower(), l.swapcase())) commands = [cmd for cmd in commands if cmd not in DEFAULT] commands = [cmd for cmd in commands if len(cmd) > 3] commands = [[cmd, SYMBOLS.get(cmd, '')] for cmd in commands] commands = [' '.join(cmd).strip() + '\n' for cmd in commands] environs = sorted(set([res.group(1) for res in [RE_ENV.search(line) for line in lines if line[0] == '\\'] if res is not None]), key=lambda l: (l.lower(), l.swapcase())) environs = [r'\begin{'+env+'}' for env in environs] environs = [env for env in environs if env not in DEFAULT] environs = [env+'\n' for env in environs] with open(outfile, 'w') as f: for line in includes + commands + environs: f.write(line) vimtex-2.16/autoload/vimtex/complete/tools/symbols000066400000000000000000001072621474274247400225140ustar00rootroot00000000000000accurrent ⏦ acidfree ♾ acute ´ acwcirclearrow ⥀ acwgapcirclearrow ⟲ acwleftarcarrow ⤹ acwopencirclearrow ↺ acwoverarcarrow ⤺ acwunderarcarrow ⤻ adots ⋰ aleph ℵ alpha α amalg ⨿ And & angdnr ⦟ angle ∠ angles ⦞ angleubar ⦤ Angstrom Å APLboxquestion ⍰ APLboxupcaret ⍓ APLnotbackslash ⍀ APLnotslash ⌿ approx ≈ approxeq ≊ approxeqq ⩰ approxident ≋ arceq ≘ Arrowvert ∥ arrowvert ⏐ assert ⊦ ast ∗ asteq ⩮ astrosun ☉ asymp ≍ awint ⨑ backcong ≌ backdprime ‶ backepsilon ∍ backprime ‵ backsim ∽ backsimeq ⋍ backslash \ backtrprime ‷ bagmember ⋿ bar ¯ barcap ⩃ barcup ⩂ bardownharpoonleft ⥡ bardownharpoonright ⥝ barleftarrow ⇤ barleftarrowrightarrowbar ↹ barleftharpoondown ⥖ barleftharpoonup ⥒ barovernorthwestarrow ↸ barrightarrowdiamond ⤠ barrightharpoondown ⥟ barrightharpoonup ⥛ baruparrow ⤒ barupharpoonleft ⥘ barupharpoonright ⥔ Barv ⫧ barV ⫪ barvee ⊽ barwedge ⊼ BbbA 𝔸 Bbba 𝕒 BbbB 𝔹 Bbbb 𝕓 BbbC ℂ Bbbc 𝕔 BbbD 𝔻 Bbbd 𝕕 BbbE 𝔼 Bbbe 𝕖 Bbbeight 𝟠 BbbF 𝔽 Bbbf 𝕗 Bbbfive 𝟝 Bbbfour 𝟜 BbbG 𝔾 Bbbg 𝕘 Bbbgamma ℽ BbbGamma ℾ BbbH ℍ Bbbh 𝕙 BbbI 𝕀 Bbbi 𝕚 BbbJ 𝕁 Bbbj 𝕛 Bbbk k BbbK 𝕂 Bbbk 𝕜 BbbL 𝕃 Bbbl 𝕝 BbbM 𝕄 Bbbm 𝕞 BbbN ℕ Bbbn 𝕟 Bbbnine 𝟡 BbbO 𝕆 Bbbo 𝕠 Bbbone 𝟙 BbbP ℙ Bbbp 𝕡 Bbbpi ℼ BbbPi ℿ BbbQ ℚ Bbbq 𝕢 BbbR ℝ Bbbr 𝕣 BbbS 𝕊 Bbbs 𝕤 Bbbseven 𝟟 Bbbsix 𝟞 Bbbsum ⅀ BbbT 𝕋 Bbbt 𝕥 Bbbthree 𝟛 Bbbtwo 𝟚 BbbU 𝕌 Bbbu 𝕦 BbbV 𝕍 Bbbv 𝕧 BbbW 𝕎 Bbbw 𝕨 BbbX 𝕏 Bbbx 𝕩 BbbY 𝕐 Bbby 𝕪 BbbZ ℤ Bbbz 𝕫 Bbbzero 𝟘 bbrktbrk ⎶ bdtriplevdash ┆ because ∵ benzenr ⏣ beta β beth ℶ between ≬ bigblacktriangledown ▼ bigblacktriangleup ▲ bigbot ⟘ bigcap ⋂ bigcirc ○ bigcup ⋃ bigcupdot ⨃ biginterleave ⫼ bigodot ⨀ bigoplus ⨁ bigotimes ⨂ bigslopedvee ⩗ bigslopedwedge ⩘ bigsqcap ⨅ bigsqcup ⨆ bigstar ★ bigtalloblong ⫿ bigtimes ⨉ bigtop ⟙ bigtriangledown ▽ bigtriangleleft ⨞ bigtriangleup △ biguplus ⨄ bigvee ⋁ bigwedge ⋀ bigwhitestar ☆ blackcircledownarrow ⧭ blackcircledrightdot ⚈ blackcircledtwodots ⚉ blackcircleulquadwhite ◕ blackdiamonddownarrow ⧪ blackhourglass ⧗ blackinwhitediamond ◈ blackinwhitesquare ▣ blacklefthalfcircle ◖ blacklozenge ◆ blackpointerleft ◄ blackpointerright ► blackrighthalfcircle ◗ blacksmiley ☻ blacksquare ■ blacktriangle ▲ blacktriangledown ▼ blacktriangleleft ◀ blacktriangleright ▶ blkhorzoval ⬬ blkvertoval ⬮ blockfull █ blockhalfshaded ▒ blocklefthalf ▌ blocklowhalf ▄ blockqtrshaded ░ blockrighthalf ▐ blockthreeqtrshaded ▓ blockuphalf ▀ bNot ⫭ bot ⊥ botsemicircle ◡ bowtie ⋈ Box □ boxast ⧆ boxbar ◫ boxbox ⧈ boxbslash ⧅ boxcircle ⧇ boxdiag ⧄ boxdot ⊡ boxminus ⊟ boxonbox ⧉ boxplus ⊞ boxtimes ⊠ bracevert ⎪ breve ˘ bsimilarleftarrow ⭁ bsimilarrightarrow ⭇ bsolhsub ⟈ btimes ⨲ bullet ∙ bullseye ◎ Bumpeq ≎ bumpeq ≏ bumpeqq ⪮ cap ∩ Cap ⋒ capbarcup ⩉ capdot ⩀ capovercup ⩇ capwedge ⩄ caretinsert ‸ carriagereturn ↵ cases { ccwundercurvearrow ⤿ cdot ⋅ cdotp · cdotp ⋅ cdots ⋯ centerdot ⋅ cents ¢ check ˇ checkmark ✓ chi χ cirbot ⟟ circ ∘ circeq ≗ circlearrowleft ↺ circlearrowright ↻ circlebottomhalfblack ◒ circledast ⊛ circledbullet ⦿ circledcirc ⊚ circleddash ⊝ circledequal ⊜ circledownarrow ⧬ circledparallel ⦷ circledR ® circledrightdot ⚆ circledS Ⓢ circledstar ✪ circledtwodots ⚇ circledvert ⦶ circledwhitebullet ⦾ circlehbar ⦵ circlelefthalfblack ◐ circlellquad ◵ circlelrquad ◶ circleonleftarrow ⬰ circleonrightarrow ⇴ circlerighthalfblack ◑ circletophalfblack ◓ circleulquad ◴ circleurquad ◷ circleurquadblack ◔ circlevertfill ◍ cirE ⧃ cirfnint ⨐ cirmid ⫯ cirscir ⧂ closedvarcap ⩍ closedvarcup ⩌ closedvarcupsmashprod ⩐ closure ⁐ clubsuit ♣ colon : Colon ∷ coloneq ≔ Coloneq ⩴ commaminus ⨩ complement ∁ concavediamond ⟡ concavediamondtickleft ⟢ concavediamondtickright ⟣ cong ≅ congdot ⩭ conictaper ⌲ conjquant ⨇ coprod ∐ copyright © csub ⫏ csube ⫑ csup ⫐ csupe ⫒ cuberoot ∛ cup ∪ Cup ⋓ cupbarcap ⩈ cupdot ⊍ cupleftarrow ⊌ cupovercap ⩆ cupvee ⩅ curlyeqprec ⋞ curlyeqsucc ⋟ curlyvee ⋎ curlywedge ⋏ curvearrowleft ↶ curvearrowleftplus ⤽ curvearrowright ↷ curvearrowrightminus ⤼ cwcirclearrow ⥁ cwgapcirclearrow ⟳ cwopencirclearrow ↻ cwrightarcarrow ⤸ cwundercurvearrow ⤾ dag † dagger † daleth ℸ danger ☡ dashcolon ∹ dashleftarrow ⇠ dashleftharpoondown ⥫ dashrightarrow ⇢ dashrightharpoondown ⥭ dashv ⊣ dashV ⫣ Dashv ⫤ DashV ⫥ DashVDash ⟚ dashVdash ⟛ dbkarrow ⤏ ddag ‡ ddagger ‡ ddot ¨ ddots ⋱ ddotseq ⩷ DDownarrow ⟱ Ddownarrow ⤋ degree ° Delta Δ delta δ diagdown ╲ diagup ╱ diameter ⌀ diamond ⋄ Diamond ◇ diamondbotblack ⬙ diamondcdot ⟐ diamondleftarrow ⤝ diamondleftarrowbar ⤟ diamondleftblack ⬖ diamondrightblack ⬗ diamondsuit ♢ diamondtopblack ⬘ dicei ⚀ diceii ⚁ diceiii ⚂ diceiv ⚃ dicev ⚄ dicevi ⚅ digamma Ϝ digamma ϝ dingasterisk ✽ disin ⋲ disjquant ⨈ div ÷ divideontimes ⋇ divslash ∕ dot ˙ doteq ≐ Doteq ≑ doteqdot ≑ dotequiv ⩧ dotminus ∸ dotplus ∔ dots … dotsb ⋯ dotsc … dotsi ⋯ dotsim ⩪ dotsm ⋯ dotsminusdots ∺ dotso … dottedcircle ◌ dottedsquare ⬚ dottimes ⨰ doublebarvee ⩢ doublebarwedge ⩞ doublecap ⋒ doublecup ⋓ doubleplus ⧺ downarrow ↓ Downarrow ⇓ downarrowbar ⤓ downarrowbarred ⤈ downdasharrow ⇣ downdownarrows ⇊ downfishtail ⥿ downharpoonleft ⇃ downharpoonleftbar ⥙ downharpoonright ⇂ downharpoonrightbar ⥕ downharpoonsleftright ⥥ downrightcurvedarrow ⤵ downtriangleleftblack ⧨ downtrianglerightblack ⧩ downuparrows ⇵ downupharpoonsleftright ⥯ downwhitearrow ⇩ downzigzagarrow ↯ dprime ″ draftingarrow ➛ drbkarrow ⤐ dsol ⧶ dsub ⩤ dualmap ⧟ egsdot ⪘ eighthnote ♪ elinters ⏧ ell ℓ elsdot ⪗ emptyset ∅ emptysetoarr ⦳ emptysetoarrl ⦴ emptysetobar ⦱ emptysetocirc ⦲ enleadertwodots ‥ eparsl ⧣ epsilon ϵ epsilon ∊ eqcirc ≖ eqcolon ≕ eqdef ≝ eqdot ⩦ eqeq ⩵ eqeqeq ⩶ eqgtr ⋝ eqless ⋜ eqqgtr ⪚ eqqless ⪙ eqqplus ⩱ eqqsim ⩳ eqqslantgtr ⪜ eqqslantless ⪛ eqsim ≂ eqslantgtr ⪖ eqslantless ⪕ equal = equalleftarrow ⭀ equalparallel ⋕ equalrightarrow ⥱ equiv ≡ Equiv ≣ equivDD ⩸ equivVert ⩨ equivVvert ⩩ eqvparsl ⧥ errbarblackcircle ⧳ errbarblackdiamond ⧱ errbarblacksquare ⧯ errbarcircle ⧲ errbardiamond ⧰ errbarsquare ⧮ eta η eth ð Eulerconst ℇ euro € Exclam ‼ exists ∃ fallingdotseq ≒ fbowtie ⧓ fcmp ⨾ fdiagovnearrow ⤯ fdiagovrdiag ⤬ female ♀ fint ⨏ Finv Ⅎ fisheye ◉ flat ♭ fltns ⏥ forall ∀ forks ⫝̸ forksnot ⫝ forkv ⫙ fourthroot ∜ fourvdots ⦙ fracslash ⁄ frown ⌢ fullouterjoin ⟗ Game ⅁ Gamma Γ gamma γ ge ≥ geq ≥ geqq ≧ geqqslant ⫺ geqslant ⩾ gescc ⪩ gesdot ⪀ gesdoto ⪂ gesdotol ⪄ gesles ⪔ gets ← gg ≫ ggg ⋙ gggnest ⫸ gggtr ⋙ gimel ℷ gla ⪥ glE ⪒ gleichstark ⧦ glj ⪤ gnapprox ⪊ gneq ⪈ gneqq ≩ gnsim ⋧ grave ` greater > gsime ⪎ gsiml ⪐ Gt ⪢ gtcc ⪧ gtcir ⩺ gtlpar ⦠ gtquest ⩼ gtrapprox ⪆ gtrarr ⥸ gtrdot ⋗ gtreqless ⋛ gtreqqless ⪌ gtrless ≷ gtrsim ≳ gvertneqq  harrowextender ⎯ hat ^ hatapprox ⩯ hbar ℏ hbar ℏ heartsuit ♡ Hermaphrodite ⚥ hermitmatrix ⊹ hexagon ⎔ hexagonblack ⬣ hknearrow ⤤ hknwarrow ⤣ hksearrow ⤥ hkswarrow ⤦ hookleftarrow ↩ hookrightarrow ↪ horizbar ― hourglass ⧖ house ⌂ hrectangle ▭ hrectangleblack ▬ hslash ℏ hyphenbullet ⁃ hzigzag 〰 iff ⟺ iiiint ⨌ iiint ∭ iinfin ⧜ iint ∬ Im ℑ imageof ⊷ imath ı imath 𝚤 impliedby ⟸ implies ⇒ in ∈ increment ∆ infty ∞ int ∫ intbar ⨍ intBar ⨎ intbottom ⌡ intcap ⨙ intclockwise ∱ intcup ⨚ intercal ⊺ interleave ⫴ intextender ⎮ intlarhk ⨗ intop ∫ intprod ⨼ intprodr ⨽ inttop ⌠ intx ⨘ inversebullet ◘ inversewhitecircle ◙ invlazys ∾ invnot ⌐ invwhitelowerhalfcircle ◛ invwhiteupperhalfcircle ◚ iota ι isindot ⋵ isinE ⋹ isinobar ⋷ isins ⋴ isinvb ⋸ jmath ȷ jmath 𝚥 Join ⋈ kappa κ kernelcontraction ∻ Lambda Λ lambda λ land ∧ langle 〈 lAngle ⟪ langledot ⦑ laplac ⧠ lat ⪫ late ⪭ lbag ⟅ lblkbrbrak ⦗ lbrace { lBrace ⦃ lbracelend ⎩ lbracemid ⎨ lbraceuend ⎧ lbrack [ lBrack ⟦ lbrackextender ⎢ lbracklend ⎣ lbracklltick ⦏ lbrackubar ⦋ lbrackuend ⎡ lbrackultick ⦍ lbrbrak ❲ Lbrbrak ⟬ lceil ⌈ lcurvyangle ⧼ ldotp . ldots … Ldsh ↲ le ≤ leadsto ↝ leftarrow ← Leftarrow ⇐ leftarrowapprox ⭊ leftarrowbackapprox ⭂ leftarrowbsimilar ⭋ leftarrowless ⥷ leftarrowonoplus ⬲ leftarrowplus ⥆ leftarrowshortrightarrow ⥃ leftarrowsimilar ⥳ leftarrowsubset ⥺ leftarrowtail ↢ leftarrowtriangle ⇽ leftarrowx ⬾ leftbkarrow ⤌ leftcurvedarrow ⬿ leftdasharrow ⇠ leftdbkarrow ⤎ leftdbltail ⤛ leftdotarrow ⬸ leftdowncurvedarrow ⤶ leftfishtail ⥼ leftharpoondown ↽ leftharpoondownbar ⥞ leftharpoonsupdown ⥢ leftharpoonup ↼ leftharpoonupbar ⥚ leftharpoonupdash ⥪ leftleftarrows ⇇ leftmoon ☾ leftouterjoin ⟕ leftrightarrow ↔ Leftrightarrow ⇔ leftrightarrowcircle ⥈ leftrightarrows ⇆ leftrightarrowtriangle ⇿ leftrightharpoondowndown ⥐ leftrightharpoondownup ⥋ leftrightharpoons ⇋ leftrightharpoonsdown ⥧ leftrightharpoonsup ⥦ leftrightharpoonupdown ⥊ leftrightharpoonupup ⥎ leftrightsquigarrow ↭ leftsquigarrow ⇜ lefttail ⤙ leftthreearrows ⬱ leftthreetimes ⋋ leftwavearrow ↜ leftwhitearrow ⇦ leq ≤ leqq ≦ leqqslant ⫹ leqslant ⩽ lescc ⪨ lesdot ⩿ lesdoto ⪁ lesdotor ⪃ lesges ⪓ less < lessapprox ⪅ lessdot ⋖ lesseqgtr ⋚ lesseqqgtr ⪋ lessgtr ≶ lesssim ≲ lfbowtie ⧑ lfloor ⌊ lftimes ⧔ lgblkcircle ⬤ lgblksquare ⬛ lgE ⪑ lgroup ⟮ lgwhtcircle ◯ lgwhtsquare ⬜ lhd ⊲ linefeed ↴ ll ≪ llangle ⦉ llarc ◟ llblacktriangle ◣ llcorner ⌞ llcorner └ Lleftarrow ⇚ LLeftarrow ⭅ lll ⋘ llless ⋘ lllnest ⫷ llparenthesis ⦇ lltriangle ◺ lmoustache ⎰ lnapprox ⪉ lneq ⪇ lneqq ≨ lnot ¬ lnsim ⋦ longdashv ⟞ longdivision ⟌ longleftarrow ⟵ Longleftarrow ⟸ longleftrightarrow ⟷ Longleftrightarrow ⟺ longleftsquigarrow ⬳ longmapsfrom ⟻ Longmapsfrom ⟽ longmapsto ⟼ Longmapsto ⟾ longrightarrow ⟶ Longrightarrow ⟹ longrightsquigarrow ⟿ looparrowleft ↫ looparrowright ↬ lor ∨ lowint ⨜ lozenge ◊ lozengeminus ⟠ lparen ( lParen ⦅ lparenextender ⎜ Lparengtr ⦕ lparenlend ⎝ lparenless ⦓ lparenuend ⎛ lrarc ◞ lrblacktriangle ◢ lrcorner ⌟ lrcorner ┘ lrtriangle ◿ lrtriangleeq ⧡ Lsh ↰ lsime ⪍ lsimg ⪏ lsqhook ⫍ Lt ⪡ ltcc ⪦ ltcir ⩹ ltimes ⋉ ltlarr ⥶ ltquest ⩻ ltrivb ⧏ lvboxline ⎸ lvert ∣ lVert ∥ lvertneqq  lvzigzag ⧘ Lvzigzag ⧚ male ♂ maltese ✠ mapsdown ↧ mapsfrom ↤ Mapsfrom ⤆ mapsto ↦ Mapsto ⤇ mapsup ↥ mathampersand & mathatsign @ mathcolon ∶ mathcomma , mathdollar $ mathellipsis … matheth ð mathexclam ! mathoctothorpe # mathparagraph ¶ mathpercent % mathperiod . mathplus + mathquestion ? mathratio ∶ mathring ˚ mathsemicolon ; mathslash / mathsterling £ mathvisiblespace ␣ mathyen ¥ mbfA 𝐀 mbfa 𝐚 mbfAlpha 𝚨 mbfalpha 𝜶 mbfB 𝐁 mbfb 𝐛 mbfBeta 𝚩 mbfbeta 𝜷 mbfC 𝐂 mbfc 𝐜 mbfChi 𝚾 mbfchi 𝝌 mbfD 𝐃 mbfd 𝐝 mbfDelta 𝚫 mbfdelta 𝜹 mbfDigamma 𝟊 mbfdigamma 𝟋 mbfE 𝐄 mbfe 𝐞 mbfeight 𝟖 mbfEpsilon 𝚬 mbfepsilon 𝜺 mbfEta 𝚮 mbfeta 𝜼 mbfF 𝐅 mbff 𝐟 mbffive 𝟓 mbffour 𝟒 mbffrakA 𝕬 mbffraka 𝖆 mbffrakB 𝕭 mbffrakb 𝖇 mbffrakC 𝕮 mbffrakc 𝖈 mbffrakD 𝕯 mbffrakd 𝖉 mbffrakE 𝕰 mbffrake 𝖊 mbffrakF 𝕱 mbffrakf 𝖋 mbffrakG 𝕲 mbffrakg 𝖌 mbffrakH 𝕳 mbffrakh 𝖍 mbffrakI 𝕴 mbffraki 𝖎 mbffrakJ 𝕵 mbffrakj 𝖏 mbffrakK 𝕶 mbffrakk 𝖐 mbffrakL 𝕷 mbffrakl 𝖑 mbffrakM 𝕸 mbffrakm 𝖒 mbffrakN 𝕹 mbffrakn 𝖓 mbffrakO 𝕺 mbffrako 𝖔 mbffrakP 𝕻 mbffrakp 𝖕 mbffrakQ 𝕼 mbffrakq 𝖖 mbffrakR 𝕽 mbffrakr 𝖗 mbffrakS 𝕾 mbffraks 𝖘 mbffrakT 𝕿 mbffrakt 𝖙 mbffrakU 𝖀 mbffraku 𝖚 mbffrakV 𝖁 mbffrakv 𝖛 mbffrakW 𝖂 mbffrakw 𝖜 mbffrakX 𝖃 mbffrakx 𝖝 mbffrakY 𝖄 mbffraky 𝖞 mbffrakZ 𝖅 mbffrakz 𝖟 mbfG 𝐆 mbfg 𝐠 mbfGamma 𝚪 mbfgamma 𝜸 mbfH 𝐇 mbfh 𝐡 mbfI 𝐈 mbfi 𝐢 mbfIota 𝚰 mbfiota 𝜾 mbfitA 𝐀 mbfita 𝐚 mbfitAlpha 𝚨 mbfitalpha 𝜶 mbfitB 𝐁 mbfitb 𝐛 mbfitBeta 𝚩 mbfitbeta 𝜷 mbfitC 𝐂 mbfitc 𝐜 mbfitChi 𝚾 mbfitchi 𝝌 mbfitD 𝐃 mbfitd 𝐝 mbfitDelta 𝚫 mbfitdelta 𝜹 mbfitE 𝐄 mbfite 𝐞 mbfitEpsilon 𝚬 mbfitepsilon 𝜺 mbfitEta 𝚮 mbfiteta 𝜼 mbfitF 𝐅 mbfitf 𝐟 mbfitG 𝐆 mbfitg 𝐠 mbfitGamma 𝚪 mbfitgamma 𝜸 mbfitH 𝐇 mbfith 𝐡 mbfitI 𝐈 mbfiti 𝐢 mbfitIota 𝚰 mbfitiota 𝜾 mbfitJ 𝐉 mbfitj 𝐣 mbfitK 𝐊 mbfitk 𝐤 mbfitKappa 𝚱 mbfitkappa 𝜿 mbfitL 𝐋 mbfitl 𝐥 mbfitLambda 𝚲 mbfitlambda 𝝀 mbfitM 𝐌 mbfitm 𝐦 mbfitMu 𝚳 mbfitmu 𝝁 mbfitN 𝐍 mbfitn 𝐧 mbfitnabla 𝛁 mbfitNu 𝚴 mbfitnu 𝝂 mbfitO 𝐎 mbfito 𝐨 mbfitOmega 𝛀 mbfitomega 𝝎 mbfitOmicron 𝚶 mbfitomicron 𝝄 mbfitP 𝐏 mbfitp 𝐩 mbfitpartial 𝝏 mbfitPhi 𝚽 mbfitphi 𝝋 mbfitPi 𝚷 mbfitpi 𝝅 mbfitPsi 𝚿 mbfitpsi 𝝍 mbfitQ 𝐐 mbfitq 𝐪 mbfitR 𝐑 mbfitr 𝐫 mbfitRho 𝚸 mbfitrho 𝝆 mbfitS 𝐒 mbfits 𝐬 mbfitsansA 𝗔 mbfitsansa 𝗮 mbfitsansAlpha 𝝖 mbfitsansalpha 𝝰 mbfitsansB 𝗕 mbfitsansb 𝗯 mbfitsansBeta 𝝗 mbfitsansbeta 𝝱 mbfitsansC 𝗖 mbfitsansc 𝗰 mbfitsansChi 𝝬 mbfitsanschi 𝞆 mbfitsansD 𝗗 mbfitsansd 𝗱 mbfitsansDelta 𝝙 mbfitsansdelta 𝝳 mbfitsansE 𝗘 mbfitsanse 𝗲 mbfitsansEpsilon 𝝚 mbfitsansepsilon 𝝴 mbfitsansEta 𝝜 mbfitsanseta 𝝶 mbfitsansF 𝗙 mbfitsansf 𝗳 mbfitsansG 𝗚 mbfitsansg 𝗴 mbfitsansGamma 𝝘 mbfitsansgamma 𝝲 mbfitsansH 𝗛 mbfitsansh 𝗵 mbfitsansI 𝗜 mbfitsansi 𝗶 mbfitsansIota 𝝞 mbfitsansiota 𝝸 mbfitsansJ 𝗝 mbfitsansj 𝗷 mbfitsansK 𝗞 mbfitsansk 𝗸 mbfitsansKappa 𝝟 mbfitsanskappa 𝝹 mbfitsansL 𝗟 mbfitsansl 𝗹 mbfitsansLambda 𝝠 mbfitsanslambda 𝝺 mbfitsansM 𝗠 mbfitsansm 𝗺 mbfitsansMu 𝝡 mbfitsansmu 𝝻 mbfitsansN 𝗡 mbfitsansn 𝗻 mbfitsansnabla 𝝯 mbfitsansNu 𝝢 mbfitsansnu 𝝼 mbfitsansO 𝗢 mbfitsanso 𝗼 mbfitsansOmega 𝝮 mbfitsansomega 𝞈 mbfitsansOmicron 𝝤 mbfitsansomicron 𝝾 mbfitsansP 𝗣 mbfitsansp 𝗽 mbfitsanspartial 𝟃 mbfitsansPhi 𝝫 mbfitsansphi 𝞅 mbfitsansPi 𝝥 mbfitsanspi 𝝿 mbfitsansPsi 𝝭 mbfitsanspsi 𝞇 mbfitsansQ 𝗤 mbfitsansq 𝗾 mbfitsansR 𝗥 mbfitsansr 𝗿 mbfitsansRho 𝝦 mbfitsansrho 𝞀 mbfitsansS 𝗦 mbfitsanss 𝘀 mbfitsansSigma 𝝨 mbfitsanssigma 𝞂 mbfitsansT 𝗧 mbfitsanst 𝘁 mbfitsansTau 𝝩 mbfitsanstau 𝞃 mbfitsansTheta 𝝝 mbfitsanstheta 𝝷 mbfitsansU 𝗨 mbfitsansu 𝘂 mbfitsansUpsilon 𝝪 mbfitsansupsilon 𝞄 mbfitsansV 𝗩 mbfitsansv 𝘃 mbfitsansvarepsilon 𝞊 mbfitsansvarkappa 𝞌 mbfitsansvarphi 𝞍 mbfitsansvarpi 𝞏 mbfitsansvarrho 𝞎 mbfitsansvarsigma 𝞁 mbfitsansvarTheta 𝝧 mbfitsansvartheta 𝞋 mbfitsansW 𝗪 mbfitsansw 𝘄 mbfitsansX 𝗫 mbfitsansx 𝘅 mbfitsansXi 𝝣 mbfitsansxi 𝝽 mbfitsansY 𝗬 mbfitsansy 𝘆 mbfitsansZ 𝗭 mbfitsansz 𝘇 mbfitsansZeta 𝝛 mbfitsanszeta 𝝵 mbfitSigma 𝚺 mbfitsigma 𝝈 mbfitT 𝐓 mbfitt 𝐭 mbfitTau 𝚻 mbfittau 𝝉 mbfitTheta 𝚯 mbfittheta 𝜽 mbfitU 𝐔 mbfitu 𝐮 mbfitUpsilon 𝚼 mbfitupsilon 𝝊 mbfitV 𝐕 mbfitv 𝐯 mbfitvarepsilon 𝝐 mbfitvarkappa 𝝒 mbfitvarphi 𝝓 mbfitvarpi 𝝕 mbfitvarrho 𝝔 mbfitvarsigma 𝝇 mbfitvarTheta 𝚹 mbfitvartheta 𝝑 mbfitW 𝐖 mbfitw 𝐰 mbfitX 𝐗 mbfitx 𝐱 mbfitXi 𝚵 mbfitxi 𝝃 mbfitY 𝐘 mbfity 𝐲 mbfitZ 𝐙 mbfitz 𝐳 mbfitZeta 𝚭 mbfitzeta 𝜻 mbfJ 𝐉 mbfj 𝐣 mbfK 𝐊 mbfk 𝐤 mbfKappa 𝚱 mbfkappa 𝜿 mbfL 𝐋 mbfl 𝐥 mbfLambda 𝚲 mbflambda 𝝀 mbfM 𝐌 mbfm 𝐦 mbfMu 𝚳 mbfmu 𝝁 mbfN 𝐍 mbfn 𝐧 mbfnabla 𝛁 mbfnine 𝟗 mbfNu 𝚴 mbfnu 𝝂 mbfO 𝐎 mbfo 𝐨 mbfOmega 𝛀 mbfomega 𝝎 mbfOmicron 𝚶 mbfomicron 𝝄 mbfone 𝟏 mbfP 𝐏 mbfp 𝐩 mbfpartial 𝝏 mbfPhi 𝚽 mbfphi 𝝓 mbfPi 𝚷 mbfpi 𝝅 mbfPsi 𝚿 mbfpsi 𝝍 mbfQ 𝐐 mbfq 𝐪 mbfR 𝐑 mbfr 𝐫 mbfRho 𝚸 mbfrho 𝝆 mbfS 𝐒 mbfs 𝐬 mbfsansA 𝗔 mbfsansa 𝗮 mbfsansAlpha 𝝖 mbfsansalpha 𝝰 mbfsansB 𝗕 mbfsansb 𝗯 mbfsansBeta 𝝗 mbfsansbeta 𝝱 mbfsansC 𝗖 mbfsansc 𝗰 mbfsansChi 𝝬 mbfsanschi 𝞆 mbfsansD 𝗗 mbfsansd 𝗱 mbfsansDelta 𝝙 mbfsansdelta 𝝳 mbfsansE 𝗘 mbfsanse 𝗲 mbfsanseight 𝟴 mbfsansEpsilon 𝝚 mbfsansepsilon 𝝴 mbfsansEta 𝝜 mbfsanseta 𝝶 mbfsansF 𝗙 mbfsansf 𝗳 mbfsansfive 𝟱 mbfsansfour 𝟰 mbfsansG 𝗚 mbfsansg 𝗴 mbfsansGamma 𝝘 mbfsansgamma 𝝲 mbfsansH 𝗛 mbfsansh 𝗵 mbfsansI 𝗜 mbfsansi 𝗶 mbfsansIota 𝝞 mbfsansiota 𝝸 mbfsansJ 𝗝 mbfsansj 𝗷 mbfsansK 𝗞 mbfsansk 𝗸 mbfsansKappa 𝝟 mbfsanskappa 𝝹 mbfsansL 𝗟 mbfsansl 𝗹 mbfsansLambda 𝝠 mbfsanslambda 𝝺 mbfsansM 𝗠 mbfsansm 𝗺 mbfsansMu 𝝡 mbfsansmu 𝝻 mbfsansN 𝗡 mbfsansn 𝗻 mbfsansnabla 𝝯 mbfsansnine 𝟵 mbfsansNu 𝝢 mbfsansnu 𝝼 mbfsansO 𝗢 mbfsanso 𝗼 mbfsansOmega 𝝮 mbfsansomega 𝞈 mbfsansOmicron 𝝤 mbfsansomicron 𝝾 mbfsansone 𝟭 mbfsansP 𝗣 mbfsansp 𝗽 mbfsanspartial 𝟃 mbfsansPhi 𝝫 mbfsansphi 𝞅 mbfsansPi 𝝥 mbfsanspi 𝝿 mbfsansPsi 𝝭 mbfsanspsi 𝞇 mbfsansQ 𝗤 mbfsansq 𝗾 mbfsansR 𝗥 mbfsansr 𝗿 mbfsansRho 𝝦 mbfsansrho 𝞀 mbfsansS 𝗦 mbfsanss 𝘀 mbfsansseven 𝟳 mbfsansSigma 𝝨 mbfsanssigma 𝞂 mbfsanssix 𝟲 mbfsansT 𝗧 mbfsanst 𝘁 mbfsansTau 𝝩 mbfsanstau 𝞃 mbfsansTheta 𝝝 mbfsanstheta 𝝷 mbfsansthree 𝟯 mbfsanstwo 𝟮 mbfsansU 𝗨 mbfsansu 𝘂 mbfsansUpsilon 𝝪 mbfsansupsilon 𝞄 mbfsansV 𝗩 mbfsansv 𝘃 mbfsansvarepsilon 𝞊 mbfsansvarkappa 𝞌 mbfsansvarphi 𝞍 mbfsansvarpi 𝞏 mbfsansvarrho 𝞎 mbfsansvarsigma 𝞁 mbfsansvarTheta 𝝧 mbfsansvartheta 𝞋 mbfsansW 𝗪 mbfsansw 𝘄 mbfsansX 𝗫 mbfsansx 𝘅 mbfsansXi 𝝣 mbfsansxi 𝝽 mbfsansY 𝗬 mbfsansy 𝘆 mbfsansZ 𝗭 mbfsansz 𝘇 mbfsanszero 𝟬 mbfsansZeta 𝝛 mbfsanszeta 𝝵 mbfscrA 𝓐 mbfscra 𝓪 mbfscrB 𝓑 mbfscrb 𝓫 mbfscrC 𝓒 mbfscrc 𝓬 mbfscrD 𝓓 mbfscrd 𝓭 mbfscrE 𝓔 mbfscre 𝓮 mbfscrF 𝓕 mbfscrf 𝓯 mbfscrG 𝓖 mbfscrg 𝓰 mbfscrH 𝓗 mbfscrh 𝓱 mbfscrI 𝓘 mbfscri 𝓲 mbfscrJ 𝓙 mbfscrj 𝓳 mbfscrK 𝓚 mbfscrk 𝓴 mbfscrL 𝓛 mbfscrl 𝓵 mbfscrM 𝓜 mbfscrm 𝓶 mbfscrN 𝓝 mbfscrn 𝓷 mbfscrO 𝓞 mbfscro 𝓸 mbfscrP 𝓟 mbfscrp 𝓹 mbfscrQ 𝓠 mbfscrq 𝓺 mbfscrR 𝓡 mbfscrr 𝓻 mbfscrS 𝓢 mbfscrs 𝓼 mbfscrT 𝓣 mbfscrt 𝓽 mbfscrU 𝓤 mbfscru 𝓾 mbfscrV 𝓥 mbfscrv 𝓿 mbfscrW 𝓦 mbfscrw 𝔀 mbfscrX 𝓧 mbfscrx 𝔁 mbfscrY 𝓨 mbfscry 𝔂 mbfscrZ 𝓩 mbfscrz 𝔃 mbfseven 𝟕 mbfSigma 𝚺 mbfsigma 𝝈 mbfsix 𝟔 mbfT 𝐓 mbft 𝐭 mbfTau 𝚻 mbftau 𝝉 mbfTheta 𝚯 mbftheta 𝜽 mbfthree 𝟑 mbftwo 𝟐 mbfU 𝐔 mbfu 𝐮 mbfUpsilon 𝚼 mbfupsilon 𝝊 mbfV 𝐕 mbfv 𝐯 mbfvarepsilon 𝝐 mbfvarkappa 𝝒 mbfvarphi 𝝋 mbfvarpi 𝝕 mbfvarrho 𝝔 mbfvarsigma 𝝇 mbfvarTheta 𝚹 mbfvartheta 𝝑 mbfW 𝐖 mbfw 𝐰 mbfX 𝐗 mbfx 𝐱 mbfXi 𝚵 mbfxi 𝝃 mbfY 𝐘 mbfy 𝐲 mbfZ 𝐙 mbfz 𝐳 mbfzero 𝟎 mbfZeta 𝚭 mbfzeta 𝜻 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 ⊾ medblackstar ⭑ medwhitestar ⭐ mfrakA 𝔄 mfraka 𝔞 mfrakB 𝔅 mfrakb 𝔟 mfrakC ℭ mfrakc 𝔠 mfrakD 𝔇 mfrakd 𝔡 mfrakE 𝔈 mfrake 𝔢 mfrakF 𝔉 mfrakf 𝔣 mfrakG 𝔊 mfrakg 𝔤 mfrakH ℌ mfrakh 𝔥 mfraki 𝔦 mfrakJ 𝔍 mfrakj 𝔧 mfrakK 𝔎 mfrakk 𝔨 mfrakL 𝔏 mfrakl 𝔩 mfrakM 𝔐 mfrakm 𝔪 mfrakN 𝔑 mfrakn 𝔫 mfrakO 𝔒 mfrako 𝔬 mfrakP 𝔓 mfrakp 𝔭 mfrakQ 𝔔 mfrakq 𝔮 mfrakr 𝔯 mfrakS 𝔖 mfraks 𝔰 mfrakT 𝔗 mfrakt 𝔱 mfrakU 𝔘 mfraku 𝔲 mfrakV 𝔙 mfrakv 𝔳 mfrakW 𝔚 mfrakw 𝔴 mfrakX 𝔛 mfrakx 𝔵 mfrakY 𝔜 mfraky 𝔶 mfrakZ ℨ mfrakz 𝔷 mho ℧ mid ∣ midbarvee ⩝ midbarwedge ⩜ midcir ⫰ minus − minusdot ⨪ minusfdots ⨫ minusrdots ⨬ mitA 𝐴 mita 𝑎 mitAlpha Α mitalpha 𝛼 mitB 𝐵 mitb 𝑏 mitBbbD ⅅ mitBbbd ⅆ mitBbbe ⅇ mitBbbi ⅈ mitBbbj ⅉ mitBeta Β mitbeta 𝛽 mitC 𝐶 mitc 𝑐 mitChi Χ mitchi 𝜒 mitD 𝐷 mitd 𝑑 mitDelta Δ mitdelta 𝛿 mitE 𝐸 mite 𝑒 mitEpsilon Ε mitepsilon 𝜀 mitEta Η miteta 𝜂 mitF 𝐹 mitf 𝑓 mitG 𝐺 mitg 𝑔 mitGamma Γ mitgamma 𝛾 mitH 𝐻 mitI 𝐼 miti 𝑖 mitIota Ι mitiota 𝜄 mitJ 𝐽 mitj 𝑗 mitK 𝐾 mitk 𝑘 mitKappa Κ mitkappa 𝜅 mitL 𝐿 mitl 𝑙 mitLambda Λ mitlambda 𝜆 mitM 𝑀 mitm 𝑚 mitMu Μ mitmu 𝜇 mitN 𝑁 mitn 𝑛 mitnabla ∇ mitNu Ν mitnu 𝜈 mitO 𝑂 mito 𝑜 mitOmega Ω mitomega 𝜔 mitOmicron Ο mitomicron 𝜊 mitP 𝑃 mitp 𝑝 mitpartial 𝜕 mitPhi Φ mitphi 𝜑 mitPi Π mitpi 𝜋 mitPsi Ψ mitpsi 𝜓 mitQ 𝑄 mitq 𝑞 mitR 𝑅 mitr 𝑟 mitRho Ρ mitrho 𝜌 mitS 𝑆 mits 𝑠 mitsansA 𝖠 mitsansa 𝖺 mitsansB 𝖡 mitsansb 𝖻 mitsansC 𝖢 mitsansc 𝖼 mitsansD 𝖣 mitsansd 𝖽 mitsansE 𝖤 mitsanse 𝖾 mitsansF 𝖥 mitsansf 𝖿 mitsansG 𝖦 mitsansg 𝗀 mitsansH 𝖧 mitsansh 𝗁 mitsansI 𝖨 mitsansi 𝗂 mitsansJ 𝖩 mitsansj 𝗃 mitsansK 𝖪 mitsansk 𝗄 mitsansL 𝖫 mitsansl 𝗅 mitsansM 𝖬 mitsansm 𝗆 mitsansN 𝖭 mitsansn 𝗇 mitsansO 𝖮 mitsanso 𝗈 mitsansP 𝖯 mitsansp 𝗉 mitsansQ 𝖰 mitsansq 𝗊 mitsansR 𝖱 mitsansr 𝗋 mitsansS 𝖲 mitsanss 𝗌 mitsansT 𝖳 mitsanst 𝗍 mitsansU 𝖴 mitsansu 𝗎 mitsansV 𝖵 mitsansv 𝗏 mitsansW 𝖶 mitsansw 𝗐 mitsansX 𝖷 mitsansx 𝗑 mitsansY 𝖸 mitsansy 𝗒 mitsansZ 𝖹 mitsansz 𝗓 mitSigma Σ mitsigma 𝜎 mitT 𝑇 mitt 𝑡 mitTau Τ mittau 𝜏 mitTheta Θ mittheta 𝜃 mitU 𝑈 mitu 𝑢 mitUpsilon Υ mitupsilon 𝜐 mitV 𝑉 mitv 𝑣 mitvarepsilon 𝜖 mitvarkappa 𝜘 mitvarphi 𝜙 mitvarpi 𝜛 mitvarrho 𝜚 mitvarsigma 𝜍 mitvarTheta ϴ mitvartheta 𝜗 mitW 𝑊 mitw 𝑤 mitX 𝑋 mitx 𝑥 mitXi Ξ mitxi 𝜉 mitY 𝑌 mity 𝑦 mitZ 𝑍 mitz 𝑧 mitZeta Ζ mitzeta 𝜁 mlcp ⫛ models ⊨ modtwosum ⨊ mp ∓ msansA 𝖠 msansa 𝖺 msansB 𝖡 msansb 𝖻 msansC 𝖢 msansc 𝖼 msansD 𝖣 msansd 𝖽 msansE 𝖤 msanse 𝖾 msanseight 𝟪 msansF 𝖥 msansf 𝖿 msansfive 𝟧 msansfour 𝟦 msansG 𝖦 msansg 𝗀 msansH 𝖧 msansh 𝗁 msansI 𝖨 msansi 𝗂 msansJ 𝖩 msansj 𝗃 msansK 𝖪 msansk 𝗄 msansL 𝖫 msansl 𝗅 msansM 𝖬 msansm 𝗆 msansN 𝖭 msansn 𝗇 msansnine 𝟫 msansO 𝖮 msanso 𝗈 msansone 𝟣 msansP 𝖯 msansp 𝗉 msansQ 𝖰 msansq 𝗊 msansR 𝖱 msansr 𝗋 msansS 𝖲 msanss 𝗌 msansseven 𝟩 msanssix 𝟨 msansT 𝖳 msanst 𝗍 msansthree 𝟥 msanstwo 𝟤 msansU 𝖴 msansu 𝗎 msansV 𝖵 msansv 𝗏 msansW 𝖶 msansw 𝗐 msansX 𝖷 msansx 𝗑 msansY 𝖸 msansy 𝗒 msansZ 𝖹 msansz 𝗓 msanszero 𝟢 mscrA 𝒜 mscra 𝒶 mscrB ℬ mscrb 𝒷 mscrC 𝒞 mscrc 𝒸 mscrD 𝒟 mscrd 𝒹 mscre ℯ mscrE ℰ mscrF ℱ mscrf 𝒻 mscrg ℊ mscrG 𝒢 mscrH ℋ mscrh 𝒽 mscrI ℐ mscri 𝒾 mscrJ 𝒥 mscrj 𝒿 mscrK 𝒦 mscrk 𝓀 mscrL ℒ mscrl 𝓁 mscrM ℳ mscrm 𝓂 mscrN 𝒩 mscrn 𝓃 mscro ℴ mscrO 𝒪 mscrP 𝒫 mscrp 𝓅 mscrQ 𝒬 mscrq 𝓆 mscrR ℛ mscrr 𝓇 mscrS 𝒮 mscrs 𝓈 mscrT 𝒯 mscrt 𝓉 mscrU 𝒰 mscru 𝓊 mscrV 𝒱 mscrv 𝓋 mscrW 𝒲 mscrw 𝓌 mscrX 𝒳 mscrx 𝓍 mscrY 𝒴 mscry 𝓎 mscrZ 𝒵 mscrz 𝓏 mttA 𝙰 mtta 𝚊 mttB 𝙱 mttb 𝚋 mttC 𝙲 mttc 𝚌 mttD 𝙳 mttd 𝚍 mttE 𝙴 mtte 𝚎 mtteight 𝟾 mttF 𝙵 mttf 𝚏 mttfive 𝟻 mttfour 𝟺 mttG 𝙶 mttg 𝚐 mttH 𝙷 mtth 𝚑 mttI 𝙸 mtti 𝚒 mttJ 𝙹 mttj 𝚓 mttK 𝙺 mttk 𝚔 mttL 𝙻 mttl 𝚕 mttM 𝙼 mttm 𝚖 mttN 𝙽 mttn 𝚗 mttnine 𝟿 mttO 𝙾 mtto 𝚘 mttone 𝟷 mttP 𝙿 mttp 𝚙 mttQ 𝚀 mttq 𝚚 mttR 𝚁 mttr 𝚛 mttS 𝚂 mtts 𝚜 mttseven 𝟽 mttsix 𝟼 mttT 𝚃 mttt 𝚝 mttthree 𝟹 mtttwo 𝟸 mttU 𝚄 mttu 𝚞 mttV 𝚅 mttv 𝚟 mttW 𝚆 mttw 𝚠 mttX 𝚇 mttx 𝚡 mttY 𝚈 mtty 𝚢 mttZ 𝚉 mttz 𝚣 mttzero 𝟶 mu μ multimap ⊸ multimap ⊸ multimap ⊸ multimapinv ⟜ mupAlpha Α mupalpha 𝛼 mupBeta Β mupbeta 𝛽 mupChi Χ mupchi 𝜒 mupDelta Δ mupdelta 𝛿 mupEpsilon Ε mupepsilon 𝜀 mupEta Η mupeta 𝜂 mupGamma Γ mupgamma 𝛾 mupIota Ι mupiota 𝜄 mupKappa Κ mupkappa 𝜅 mupLambda Λ muplambda 𝜆 mupMu Μ mupmu 𝜇 mupNu Ν mupnu 𝜈 mupOmega Ω mupomega 𝜔 mupOmicron Ο mupomicron 𝜊 mupPhi Φ mupphi 𝜙 mupPi Π muppi 𝜋 mupPsi Ψ muppsi 𝜓 mupRho Ρ muprho 𝜌 mupSigma Σ mupsigma 𝜎 mupTau Τ muptau 𝜏 mupTheta Θ muptheta 𝜃 mupUpsilon Υ mupupsilon 𝜐 mupvarbeta ϐ mupvarepsilon 𝜖 mupvarkappa 𝜘 mupvarphi 𝜑 mupvarpi 𝜛 mupvarrho 𝜚 mupvarsigma 𝜍 mupvarTheta ϴ mupvartheta 𝜗 mupXi Ξ mupxi 𝜉 mupZeta Ζ mupzeta 𝜁 nabla ∇ napprox ≉ nasymp ≭ natural ♮ ncong ≆ ne ≠ nearrow ↗ Nearrow ⇗ neg ¬ neovnwarrow ⤱ neovsearrow ⤮ neq ≠ nequiv ≢ neswarrow ⤢ neuter ⚲ nexists ∄ ngeq ≱ ngeqq  ngeqslant  ngtr ≯ ngtrless ≹ ngtrsim ≵ nHdownarrow ⇟ nhpar ⫲ nHuparrow ⇞ nhVvert ⫵ ni ∋ niobar ⋾ nis ⋼ nisd ⋺ nleftarrow ↚ nLeftarrow ⇍ nleftrightarrow ↮ nLeftrightarrow ⇎ nleq ≰ nleqq  nleqslant  nless ≮ nlessgtr ≸ nlesssim ≴ nmid ∤ nni ∌ not / Not ⫬ notChar ⧸ notin ∉ nparallel ∦ npolint ⨔ nprec ⊀ npreccurlyeq ⋠ npreceq ⋠ nrightarrow ↛ nRightarrow ⇏ nshortmid  nshortparallel  nsim ≁ nsime ≄ nsqsubseteq ⋢ nsqsupseteq ⋣ nsubset ⊄ nsubseteq ⊈ nsubseteqq  nsucc ⊁ nsucccurlyeq ⋡ nsucceq ⋡ nsupset ⊅ nsupseteq ⊉ nsupseteqq  ntriangleleft ⋪ ntrianglelefteq ⋬ ntriangleright ⋫ ntrianglerighteq ⋭ nu ν nvartriangleleft ⋪ nvartriangleright ⋫ nvdash ⊬ nvDash ⊭ nVdash ⊮ nVDash ⊯ nvinfty ⧞ nvleftarrow ⇷ nVleftarrow ⇺ nvLeftarrow ⤂ nvleftarrowtail ⬹ nVleftarrowtail ⬺ nvleftrightarrow ⇹ nVleftrightarrow ⇼ nvLeftrightarrow ⤄ nvrightarrow ⇸ nVrightarrow ⇻ nvRightarrow ⤃ nvrightarrowtail ⤔ nVrightarrowtail ⤕ nvtwoheadleftarrow ⬴ nVtwoheadleftarrow ⬵ nvtwoheadleftarrowtail ⬼ nVtwoheadleftarrowtail ⬽ nvtwoheadrightarrow ⤀ nVtwoheadrightarrow ⤁ nvtwoheadrightarrowtail ⤗ nVtwoheadrightarrowtail ⤘ nwarrow ↖ Nwarrow ⇖ nwovnearrow ⤲ nwsearrow ⤡ obar ⌽ obot ⦺ obrbrak ⏠ obslash ⦸ odiv ⨸ odot ⊙ odotslashdot ⦼ ogreaterthan ⧁ oiiint ∰ oiint ∯ oint ∮ ointctrclockwise ∳ olcross ⦻ olessthan ⧀ Omega Ω omega ω omicron o ominus ⊖ operp ⦹ oplus ⊕ opluslhrim ⨭ oplusrhrim ⨮ origof ⊶ oslash ⊘ otimes ⊗ Otimes ⨷ otimeshat ⨶ otimeslhrim ⨴ otimesrhrim ⨵ overbrace ⏞ overbracket ⎴ overleftarrow ← overleftrightarrow ↔ overline ¯ overparen ⌢ overrightarrow → owns ∋ parallel ∥ parallelogram ▱ parallelogramblack ▰ parsim ⫳ partial ∂ partial 𝜕 partialmeetcontraction ⪣ pentagon ⬠ pentagonblack ⬟ perp ⊥ perps ⫡ Phi Φ phi ϕ Pi Π pi π pilcrow ¶ pitchfork ⋔ pitchfork ⋔ pitchfork ⋔ Planckconst ℎ plusdot ⨥ pluseqq ⩲ plushat ⨣ plussim ⨦ plussubtwo ⨧ plustrif ⨨ pm ± pointint ⨕ postalmark 〒 pound £ pounds £ prec ≺ Prec ⪻ precapprox ⪷ preccurlyeq ≼ preceq ⪯ preceqq ⪳ precnapprox ⪹ precneq ⪱ precneqq ⪵ precnsim ⋨ precsim ≾ prime ′ prod ∏ profline ⌒ profsurf ⌓ PropertyLine ⅊ propto ∝ prurel ⊰ Psi Ψ psi ψ pullback ⟓ pushout ⟔ QED ∎ qprime ⁗ quarternote ♩ questeq ≟ Question ⁇ rangle 〉 rAngle ⟫ rangledot ⦒ rangledownzigzagarrow ⍼ rbag ⟆ rblkbrbrak ⦘ rbrace } rBrace ⦄ rbracelend ⎭ rbracemid ⎬ rbraceuend ⎫ rbrack ] rBrack ⟧ rbrackextender ⎥ rbracklend ⎦ rbracklrtick ⦎ rbrackubar ⦌ rbrackuend ⎤ rbrackurtick ⦐ rbrbrak ❳ Rbrbrak ⟭ rceil ⌉ rcurvyangle ⧽ rdiagovfdiag ⤫ rdiagovsearrow ⤰ Rdsh ↳ Re ℜ registered ® restriction ↾ revangle ⦣ revangleubar ⦥ revemptyset ⦰ revnmid ⫮ rfbowtie ⧒ rfloor ⌋ rftimes ⧕ rgroup ⟯ rhd ⊳ rho ρ rightangle ∟ rightanglemdot ⦝ rightanglesqr ⦜ rightarrow → Rightarrow ⇒ rightarrowapprox ⥵ rightarrowbackapprox ⭈ rightarrowbar ⇥ rightarrowbsimilar ⭌ rightarrowdiamond ⤞ rightarrowgtr ⭃ rightarrowonoplus ⟴ rightarrowplus ⥅ rightarrowshortleftarrow ⥂ rightarrowsimilar ⥴ rightarrowsupset ⭄ rightarrowtail ↣ rightarrowtriangle ⇾ rightarrowx ⥇ rightbkarrow ⤍ rightcurvedarrow ⤳ rightdasharrow ⇢ rightdbltail ⤜ rightdotarrow ⤑ rightdowncurvedarrow ⤷ rightfishtail ⥽ rightharpoondown ⇁ rightharpoondownbar ⥗ rightharpoonsupdown ⥤ rightharpoonup ⇀ rightharpoonupbar ⥓ rightharpoonupdash ⥬ rightimply ⥰ rightleftarrows ⇄ rightleftharpoons ⇌ rightleftharpoonsdown ⥩ rightleftharpoonsup ⥨ rightmoon ☽ rightouterjoin ⟖ rightpentagon ⭔ rightpentagonblack ⭓ rightrightarrows ⇉ rightsquigarrow ⇝ righttail ⤚ rightthreearrows ⇶ rightthreetimes ⋌ rightwavearrow ↝ rightwhitearrow ⇨ ringplus ⨢ risingdotseq ≓ rmoustache ⎱ rparen ) rParen ⦆ rparenextender ⎟ rparengtr ⦔ rparenlend ⎠ Rparenless ⦖ rparenuend ⎞ rppolint ⨒ rrangle ⦊ Rrightarrow ⇛ RRightarrow ⭆ rrparenthesis ⦈ Rsh ↱ rsolbar ⧷ rsqhook ⫎ rsub ⩥ rtimes ⋊ rtriltri ⧎ ruledelayed ⧴ rvboxline ⎹ rvert ∣ rVert ∥ rvzigzag ⧙ Rvzigzag ⧛ sansLmirrored ⅃ sansLturned ⅂ scpolint ⨓ scurel ⊱ searrow ↘ Searrow ⇘ section § seovnearrow ⤭ setminus ∖ sharp ♯ shortdowntack ⫟ shortlefttack ⫞ shortmid ∣ shortparallel ∥ shortrightarrowleftarrow ⥄ shortuptack ⫠ shuffle ⧢ Sigma Σ sigma σ sigma σ Sigma ∑ sim ∼ simeq ≃ simgE ⪠ simgtr ⪞ similarleftarrow ⭉ similarrightarrow ⥲ simlE ⪟ simless ⪝ simminussim ⩬ simneqq ≆ simplus ⨤ simrdots ⩫ sinewave ∿ smallblacktriangleleft ◂ smallblacktriangleright ▸ smallfrown ⌢ smallin ∊ smallint ∫ smallni ∍ smallsetminus ∖ smallsmile ⌣ smalltriangleleft ◃ smalltriangleright ▹ smashtimes ⨳ smblkcircle • smblkdiamond ⬩ smblklozenge ⬪ smblksquare ▪ smeparsl ⧤ smile ⌣ smt ⪪ smte ⪬ smwhitestar ⭒ smwhtcircle ◦ smwhtdiamond ⋄ smwhtlozenge ⬫ smwhtsquare ▫ space ␣ spadesuit ♠ sphericalangle ∢ sphericalangleup ⦡ sqcap ⊓ Sqcap ⩎ sqcup ⊔ Sqcup ⩏ sqint ⨖ sqlozenge ⌑ sqrt √ sqrtbottom ⎷ sqsubset ⊏ sqsubseteq ⊑ sqsubsetneq ⋤ sqsupset ⊐ sqsupseteq ⊒ sqsupsetneq ⋥ square □ squarebotblack ⬓ squarecrossfill ▩ squarehfill ▤ squarehvfill ▦ squareleftblack ◧ squarellblack ⬕ squarellquad ◱ squarelrblack ◪ squarelrquad ◲ squareneswfill ▨ squarenwsefill ▧ squarerightblack ◨ squaretopblack ⬒ squareulblack ◩ squareulquad ◰ squareurblack ⬔ squareurquad ◳ squarevfill ▥ squoval ▢ sslash ⫽ star ⋆ stareq ≛ strns ⏤ subedot ⫃ submult ⫁ subrarr ⥹ subset ⊂ Subset ⋐ subsetapprox ⫉ subsetcirc ⟃ subsetdot ⪽ subseteq ⊆ subseteqq ⫅ subsetneq ⊊ subsetneqq ⫋ subsetplus ⪿ subsim ⫇ subsub ⫕ subsup ⫓ succ ≻ Succ ⪼ succapprox ⪸ succcurlyeq ≽ succeq ⪰ succeqq ⪴ succnapprox ⪺ succneq ⪲ succneqq ⪶ succnsim ⋩ succsim ≿ sum ∑ sumbottom ⎳ sumint ⨋ sumtop ⎲ sun ☼ supdsub ⫘ supedot ⫄ suphsol ⟉ suphsub ⫗ suplarr ⥻ supmult ⫂ supset ⊃ Supset ⋑ supsetapprox ⫊ supsetcirc ⟄ supsetdot ⪾ supseteq ⊇ supseteqq ⫆ supsetneq ⊋ supsetneqq ⫌ supsetplus ⫀ supsim ⫈ supsub ⫔ supsup ⫖ surd √ swarrow ↙ Swarrow ⇙ talloblong ⫾ tau τ textellipsis … textparagraph ¶ textperiodcentered · textregistered ® texttrademark ™ therefore ∴ thermod ⧧ Theta Θ theta θ thickapprox ≈ thicksim ∼ threedangle ⟀ threedotcolon ⫶ tieconcat ⁀ tieinfty ⧝ tilde ~ times × timesbar ⨱ tminus ⧿ toea ⤨ tona ⤧ top ⊤ topbot ⌶ topcir ⫱ topfork ⫚ topsemicircle ◠ tosa ⤩ towa ⤪ tplus ⧾ trademark ™ trapezium ⏢ triangle △ trianglecdot ◬ triangledown ▽ triangleleft ◁ triangleleftblack ◭ trianglelefteq ⊴ triangleminus ⨺ triangleodot ⧊ triangleplus ⨹ triangleq ≜ triangleright ▷ trianglerightblack ◮ trianglerighteq ⊵ triangles ⧌ triangleserifs ⧍ triangletimes ⨻ triangleubar ⧋ tripleplus ⧻ trprime ‴ trslash ⫻ turnangle ⦢ turnediota ℩ turnednot ⌙ twocaps ⩋ twocups ⩊ twoheaddownarrow ↡ twoheadleftarrow ↞ twoheadleftarrowtail ⬻ twoheadleftdbkarrow ⬷ twoheadmapsfrom ⬶ twoheadmapsto ⤅ twoheadrightarrow ↠ twoheadrightarrowtail ⤖ twoheaduparrow ↟ twoheaduparrowcircle ⥉ twolowline ‗ twonotes ♫ typecolon ⦂ ubrbrak ⏡ ularc ◜ ulblacktriangle ◤ ulcorner ⌜ ulcorner ┌ ultriangle ◸ uminus ⩁ underbrace ⏟ underbracket ⎵ underleftarrow ← underleftrightarrow ↔ underline − underparen ⌣ underrightarrow → unicode 𐀀 unicodecdots ⋯ unicodeellipsis … unlhd ⊴ unrhd ⊵ upand ⅋ uparrow ↑ Uparrow ⇑ uparrowbarred ⤉ uparrowoncircle ⦽ upbackepsilon ϶ updasharrow ⇡ upDigamma Ϝ updigamma ϝ updownarrow ↕ Updownarrow ⇕ updownarrowbar ↨ updownarrows ⇅ updownharpoonleftleft ⥑ updownharpoonleftright ⥍ updownharpoonrightleft ⥌ updownharpoonrightright ⥏ updownharpoonsleftright ⥮ upfishtail ⥾ upharpoonleft ↿ upharpoonleftbar ⥠ upharpoonright ↾ upharpoonrightbar ⥜ upharpoonsleftright ⥣ upin ⟒ upint ⨛ upKoppa Ϟ upkoppa ϟ uplus ⊎ upoldKoppa Ϙ upoldkoppa ϙ uprightcurvearrow ⤴ upSampi Ϡ upsampi ϡ Upsilon Υ upsilon υ upStigma Ϛ upstigma ϛ upuparrows ⇈ upwhitearrow ⇧ urarc ◝ urblacktriangle ◥ urcorner ⌝ urcorner ┐ urtriangle ◹ UUparrow ⟰ Uuparrow ⤊ vanothing ∅ varbarwedge ⌅ varcarriagereturn ⏎ varclubsuit ♧ varDelta Δ vardiamondsuit ♦ vardoublebarwedge ⌆ varepsilon ε varGamma Γ varheartsuit ♥ varhexagon ⬡ varhexagonblack ⬢ varhexagonlrbonds ⌬ varisinobar ⋶ varisins ⋳ varkappa ϰ varLambda Λ varlrtriangle ⊿ varniobar ⋽ varnis ⋻ varnothing ∅ varointclockwise ∲ varOmega Ω varPhi Φ varphi φ varphi φ varPi Π varpi ϖ varpropto ∝ varPsi Ψ varrho ϱ varSigma Σ varsigma ς varspadesuit ♤ varstar ✶ varsubsetneq  varsubsetneqq  varsupsetneq  varsupsetneqq  varTheta Θ vartheta ϑ vartriangle △ vartriangleleft ⊲ vartriangleright ⊳ varUpsilon Υ varVdash ⫦ varveebar ⩡ varXi Ξ vBar ⫨ Vbar ⫫ vBarv ⫩ vbraceextender ⎪ vbrtri ⧐ vdash ⊢ vDash ⊨ Vdash ⊩ VDash ⊫ vDdash ⫢ vdots ⋮ vec ⃗ vectimes ⨯ vee ∨ Vee ⩔ veebar ⊻ veedot ⟇ veedoublebar ⩣ veeeq ≚ veemidvert ⩛ veeodot ⩒ veeonvee ⩖ veeonwedge ⩙ vert | vert ∣ Vert ∥ viewdata ⌗ vlongdash ⟝ vrectangle ▯ vrectangleblack ▮ Vvdash ⊪ Vvert ⦀ vysmblkcircle ∙ vysmblksquare ⬝ vysmwhtcircle ∘ vysmwhtsquare ⬞ vzigzag ⦚ wedge ∧ Wedge ⩓ wedgebar ⩟ wedgedot ⟑ wedgedoublebar ⩠ wedgemidvert ⩚ wedgeodot ⩑ wedgeonwedge ⩕ wedgeq ≙ whitearrowupfrombar ⇪ whiteinwhitetriangle ⟁ whitepointerleft ◅ whitepointerright ▻ whitesquaretickleft ⟤ whitesquaretickright ⟥ whthorzoval ⬭ whtvertoval ⬯ wideangledown ⦦ wideangleup ⦧ widehat ˆ widetilde ˜ wp ℘ wr ≀ xbsol ⧹ Xi Ξ xi ξ xleftarrow ← xrightarrow → xsol ⧸ yen ¥ Yup ⅄ Zbar Ƶ zcmp ⨟ zeta ζ zpipe ⨠ zproject ⨡ vimtex-2.16/autoload/vimtex/complete/tools/symbols-collected000066400000000000000000000102261474274247400244410ustar00rootroot00000000000000aleph ℵ alpha α angle ∠ approx ≈ approxeq ≊ ast ∗ asymp ≍ backepsilon ∍ backprime ‵ backsim ∽ barwedge ⊼ because ∵ beta β beth ℶ between ≬ bigcap ⋂ bigcirc ○ bigcup ⋃ bigodot ⨀ bigoplus ⨁ bigotimes ⨂ bigsqcup ⨆ bigstar ★ bigtriangledown ▽ bigtriangleup △ biguplus ⨄ bigvee ⋁ bigwedge ⋀ blacklozenge ◆ blacksquare ■ blacktriangle ▲ blacktriangledown ▼ blacktriangleleft ◀ blacktriangleright ▶ bot ⊥ bowtie ⋈ Box □ boxdot ⊡ boxminus ⊟ boxplus ⊞ boxtimes ⊠ bullet ∙ Bumpeq ≎ bumpeq ≏ cap ∩ Cap ⋒ cdot ⋅ cdots ⋯ centerdot ⋅ cents ¢ chi χ circ ∘ circeq ≗ circlearrowleft ↺ circlearrowright ↻ circledast ⊛ circledcirc ⊚ circleddash ⊝ circledS Ⓢ clubsuit ♣ colon : complement ∁ cong ≅ coprod ∐ copyright © cup ∪ Cup ⋓ curlyeqprec ⋞ curlyeqsucc ⋟ curlyvee ⋎ curlywedge ⋏ curvearrowleft ↶ curvearrowright ↷ dagger † daleth ℸ dashleftarrow ⇠ dashrightarrow ⇢ dashv ⊣ ddagger ‡ ddots ⋱ degree ° Delta Δ delta δ diamond ⋄ Diamond ◇ diamondsuit ♢ digamma Ϝ div ÷ divideontimes ⋇ doteq ≐ doteqdot ≑ dotplus ∔ dots … downarrow ↓ Downarrow ⇓ downdownarrows ⇊ downharpoonleft ⇃ downharpoonright ⇂ ell ℓ emptyset ∅ epsilon ∊ eqcirc ≖ equiv ≡ eta η eth ð euro € exists ∃ fallingdotseq ≒ Finv Ⅎ flat ♭ forall ∀ frown ⌢ Gamma Γ gamma γ ge ≥ geq ≥ geqq ≧ gg ≫ ggg ⋙ gimel ℷ gtrdot ⋗ gtreqless ⋛ gtrless ≷ gtrsim ≳ hbar ℏ hbar ℏ heartsuit ♡ hookleftarrow ↩ hookrightarrow ↪ hslash ℏ Im ℑ implies ⇒ in ∈ infty ∞ int ∫ intercal ⊺ iota ι Join ⋈ kappa κ Lambda Λ lambda λ langle 〈 lceil ⌈ le ≤ leadsto ↝ leftarrow ← Leftarrow ⇐ leftarrowtail ↢ leftharpoondown ↽ leftharpoonup ↼ leftleftarrows ⇇ leftrightarrow ↔ Leftrightarrow ⇔ leftrightarrows ⇆ leftrightharpoons ⇋ leftrightsquigarrow ↭ leftthreetimes ⋋ leq ≤ leqq ≦ leqslant ⩽ lessdot ⋖ lesseqgtr ⋚ lessgtr ≶ lesssim ≲ lfloor ⌊ lhd ⊲ ll ≪ Lleftarrow ⇚ lll ⋘ longleftarrow ⟵ Longleftarrow ⟸ longleftrightarrow ⟷ Longleftrightarrow ⟺ longmapsto ⟼ longrightarrow ⟶ Longrightarrow ⟹ looparrowleft ↫ looparrowright ↬ lozenge ◊ Lsh ↰ ltimes ⋉ mapsto ↦ measuredangle ∡ mho ℧ mid ∣ models ⊨ mp ∓ mu μ multimap ⊸ nabla ∇ natural ♮ nearrow ↗ neg ¬ neq ≠ nexists ∄ ni ∋ notin ∉ nu ν nwarrow ↖ odot ⊙ oint ∮ Omega Ω omega ω ominus ⊖ oplus ⊕ oslash ⊘ otimes ⊗ parallel ∥ partial ∂ perp ⊥ Phi Φ phi ϕ Pi Π pi π pilcrow ¶ pitchfork ⋔ pm ± pound £ prec ≺ preccurlyeq ≼ preceq ⪯ precsim ≾ prime ′ prod ∏ propto ∝ Psi Ψ psi ψ rangle 〉 rceil ⌉ Re ℜ registered ® rfloor ⌋ rhd ⊳ rho ρ rightarrow → Rightarrow ⇒ rightarrowtail ↣ rightharpoondown ⇁ rightharpoonup ⇀ rightleftarrows ⇄ rightleftharpoons ⇌ rightrightarrows ⇉ rightsquigarrow ⇝ rightthreetimes ⋌ risingdotseq ≓ Rrightarrow ⇛ Rsh ↱ rtimes ⋊ searrow ↘ section § setminus ∖ sharp ♯ shortparallel ∥ sigma σ Sigma ∑ sim ∼ simeq ≃ smallfrown ⌢ smallsetminus ∖ smallsmile ⌣ smile ⌣ space ␣ spadesuit ♠ sphericalangle ∢ sqcap ⊓ sqcup ⊔ sqsubset ⊏ sqsubseteq ⊑ sqsupset ⊐ sqsupseteq ⊒ square □ star ⋆ subset ⊂ Subset ⋐ subseteq ⊆ succ ≻ succcurlyeq ≽ succeq ⪰ succsim ≿ sum ∑ supset ⊃ Supset ⋑ supseteq ⊇ surd √ swarrow ↙ tau τ textregistered ® texttrademark ™ therefore ∴ Theta Θ theta θ thickapprox ≈ thicksim ∼ times × top ⊤ trademark ™ triangle △ triangledown ▽ triangleleft ◁ trianglelefteq ⊴ triangleq ≜ triangleright ▷ trianglerighteq ⊵ twoheadleftarrow ↞ twoheadrightarrow ↠ unlhd ⊴ unrhd ⊵ uparrow ↑ Uparrow ⇑ updownarrow ↕ Updownarrow ⇕ upharpoonleft ↿ upharpoonright ↾ uplus ⊎ Upsilon Υ upsilon υ upuparrows ⇈ varepsilon ε varkappa ϰ varnothing ∅ varphi φ varpi ϖ varpropto ∝ varrho ϱ varsigma ς vartheta ϑ vartriangle △ vartriangleleft ⊲ vartriangleright ⊳ vdash ⊢ vDash ⊨ Vdash ⊩ vdots ⋮ vee ∨ veebar ⊻ Vvdash ⊪ wedge ∧ wp ℘ wr ≀ Xi Ξ xi ξ zeta ζ vimtex-2.16/autoload/vimtex/complete/tools/symbols-generated000066400000000000000000001024171474274247400244450ustar00rootroot00000000000000accurrent ⏦ acidfree ♾ acwcirclearrow ⥀ acwgapcirclearrow ⟲ acwleftarcarrow ⤹ acwopencirclearrow ↺ acwoverarcarrow ⤺ acwunderarcarrow ⤻ adots ⋰ aleph ℵ amalg ⨿ angdnr ⦟ angle ∠ angles ⦞ angleubar ⦤ Angstrom Å APLboxquestion ⍰ APLboxupcaret ⍓ APLnotbackslash ⍀ APLnotslash ⌿ approx ≈ approxeq ≊ approxeqq ⩰ approxident ≋ arceq ≘ assert ⊦ ast ∗ asteq ⩮ astrosun ☉ asymp ≍ awint ⨑ backcong ≌ backdprime ‶ backprime ‵ backsim ∽ backsimeq ⋍ backslash \ backtrprime ‷ bagmember ⋿ barcap ⩃ barcup ⩂ bardownharpoonleft ⥡ bardownharpoonright ⥝ barleftarrow ⇤ barleftarrowrightarrowbar ↹ barleftharpoondown ⥖ barleftharpoonup ⥒ barovernorthwestarrow ↸ barrightarrowdiamond ⤠ barrightharpoondown ⥟ barrightharpoonup ⥛ baruparrow ⤒ barupharpoonleft ⥘ barupharpoonright ⥔ Barv ⫧ barV ⫪ barvee ⊽ barwedge ⊼ BbbA 𝔸 Bbba 𝕒 BbbB 𝔹 Bbbb 𝕓 BbbC ℂ Bbbc 𝕔 BbbD 𝔻 Bbbd 𝕕 BbbE 𝔼 Bbbe 𝕖 Bbbeight 𝟠 BbbF 𝔽 Bbbf 𝕗 Bbbfive 𝟝 Bbbfour 𝟜 BbbG 𝔾 Bbbg 𝕘 Bbbgamma ℽ BbbGamma ℾ BbbH ℍ Bbbh 𝕙 BbbI 𝕀 Bbbi 𝕚 BbbJ 𝕁 Bbbj 𝕛 BbbK 𝕂 Bbbk 𝕜 BbbL 𝕃 Bbbl 𝕝 BbbM 𝕄 Bbbm 𝕞 BbbN ℕ Bbbn 𝕟 Bbbnine 𝟡 BbbO 𝕆 Bbbo 𝕠 Bbbone 𝟙 BbbP ℙ Bbbp 𝕡 Bbbpi ℼ BbbPi ℿ BbbQ ℚ Bbbq 𝕢 BbbR ℝ Bbbr 𝕣 BbbS 𝕊 Bbbs 𝕤 Bbbseven 𝟟 Bbbsix 𝟞 Bbbsum ⅀ BbbT 𝕋 Bbbt 𝕥 Bbbthree 𝟛 Bbbtwo 𝟚 BbbU 𝕌 Bbbu 𝕦 BbbV 𝕍 Bbbv 𝕧 BbbW 𝕎 Bbbw 𝕨 BbbX 𝕏 Bbbx 𝕩 BbbY 𝕐 Bbby 𝕪 BbbZ ℤ Bbbz 𝕫 Bbbzero 𝟘 bbrktbrk ⎶ bdtriplevdash ┆ because ∵ benzenr ⏣ beth ℶ between ≬ bigblacktriangledown ▼ bigblacktriangleup ▲ bigbot ⟘ bigcap ⋂ bigcup ⋃ bigcupdot ⨃ biginterleave ⫼ bigodot ⨀ bigoplus ⨁ bigotimes ⨂ bigslopedvee ⩗ bigslopedwedge ⩘ bigsqcap ⨅ bigsqcup ⨆ bigstar ★ bigtalloblong ⫿ bigtimes ⨉ bigtop ⟙ bigtriangledown ▽ bigtriangleleft ⨞ bigtriangleup △ biguplus ⨄ bigvee ⋁ bigwedge ⋀ bigwhitestar ☆ blackcircledownarrow ⧭ blackcircledrightdot ⚈ blackcircledtwodots ⚉ blackcircleulquadwhite ◕ blackdiamonddownarrow ⧪ blackhourglass ⧗ blackinwhitediamond ◈ blackinwhitesquare ▣ blacklefthalfcircle ◖ blackpointerleft ◄ blackpointerright ► blackrighthalfcircle ◗ blacksmiley ☻ blacktriangle ▴ blacktriangledown ▾ blacktriangleleft ◀ blacktriangleright ▶ blkhorzoval ⬬ blkvertoval ⬮ blockfull █ blockhalfshaded ▒ blocklefthalf ▌ blocklowhalf ▄ blockqtrshaded ░ blockrighthalf ▐ blockthreeqtrshaded ▓ blockuphalf ▀ bNot ⫭ bot ⊥ botsemicircle ◡ bowtie ⋈ boxast ⧆ boxbar ◫ boxbox ⧈ boxbslash ⧅ boxcircle ⧇ boxdiag ⧄ boxdot ⊡ boxminus ⊟ boxonbox ⧉ boxplus ⊞ boxtimes ⊠ bsimilarleftarrow ⭁ bsimilarrightarrow ⭇ bsolhsub ⟈ btimes ⨲ bullseye ◎ Bumpeq ≎ bumpeq ≏ bumpeqq ⪮ cap ∩ Cap ⋒ capbarcup ⩉ capdot ⩀ capovercup ⩇ capwedge ⩄ caretinsert ‸ carriagereturn ↵ ccwundercurvearrow ⤿ cdot ⋅ cdotp · checkmark ✓ cirbot ⟟ circeq ≗ circlebottomhalfblack ◒ circledast ⊛ circledbullet ⦿ circledcirc ⊚ circleddash ⊝ circledequal ⊜ circledownarrow ⧬ circledparallel ⦷ circledrightdot ⚆ circledstar ✪ circledtwodots ⚇ circledvert ⦶ circledwhitebullet ⦾ circlehbar ⦵ circlelefthalfblack ◐ circlellquad ◵ circlelrquad ◶ circleonleftarrow ⬰ circleonrightarrow ⇴ circlerighthalfblack ◑ circletophalfblack ◓ circleulquad ◴ circleurquad ◷ circleurquadblack ◔ circlevertfill ◍ cirE ⧃ cirfnint ⨐ cirmid ⫯ cirscir ⧂ closedvarcap ⩍ closedvarcup ⩌ closedvarcupsmashprod ⩐ closure ⁐ clubsuit ♣ Colon ∷ coloneq ≔ Coloneq ⩴ commaminus ⨩ complement ∁ concavediamond ⟡ concavediamondtickleft ⟢ concavediamondtickright ⟣ cong ≅ congdot ⩭ conictaper ⌲ conjquant ⨇ coprod ∐ csub ⫏ csube ⫑ csup ⫐ csupe ⫒ cuberoot ∛ cup ∪ Cup ⋓ cupbarcap ⩈ cupdot ⊍ cupleftarrow ⊌ cupovercap ⩆ cupvee ⩅ curlyeqprec ⋞ curlyeqsucc ⋟ curlyvee ⋎ curlywedge ⋏ curvearrowleft ↶ curvearrowleftplus ⤽ curvearrowright ↷ curvearrowrightminus ⤼ cwcirclearrow ⥁ cwgapcirclearrow ⟳ cwopencirclearrow ↻ cwrightarcarrow ⤸ cwundercurvearrow ⤾ dagger † daleth ℸ danger ☡ dashcolon ∹ dashleftharpoondown ⥫ dashrightharpoondown ⥭ dashv ⊣ dashV ⫣ Dashv ⫤ DashV ⫥ DashVDash ⟚ dashVdash ⟛ dbkarrow ⤏ ddagger ‡ ddots ⋱ ddotseq ⩷ DDownarrow ⟱ Ddownarrow ⤋ diameter ⌀ diamondbotblack ⬙ diamondcdot ⟐ diamondleftarrow ⤝ diamondleftarrowbar ⤟ diamondleftblack ⬖ diamondrightblack ⬗ diamondsuit ♢ diamondtopblack ⬘ dicei ⚀ diceii ⚁ diceiii ⚂ diceiv ⚃ dicev ⚄ dicevi ⚅ dingasterisk ✽ disin ⋲ disjquant ⨈ div ÷ divideontimes ⋇ divslash ∕ doteq ≐ Doteq ≑ dotequiv ⩧ dotminus ∸ dotplus ∔ dotsim ⩪ dotsminusdots ∺ dottedcircle ◌ dottedsquare ⬚ dottimes ⨰ doublebarvee ⩢ doublebarwedge ⩞ doubleplus ⧺ downarrow ↓ Downarrow ⇓ downarrowbar ⤓ downarrowbarred ⤈ downdasharrow ⇣ downdownarrows ⇊ downfishtail ⥿ downharpoonleft ⇃ downharpoonleftbar ⥙ downharpoonright ⇂ downharpoonrightbar ⥕ downharpoonsleftright ⥥ downrightcurvedarrow ⤵ downtriangleleftblack ⧨ downtrianglerightblack ⧩ downuparrows ⇵ downupharpoonsleftright ⥯ downwhitearrow ⇩ downzigzagarrow ↯ dprime ″ draftingarrow ➛ drbkarrow ⤐ dsol ⧶ dsub ⩤ dualmap ⧟ egsdot ⪘ eighthnote ♪ elinters ⏧ ell ℓ elsdot ⪗ emptysetoarr ⦳ emptysetoarrl ⦴ emptysetobar ⦱ emptysetocirc ⦲ enleadertwodots ‥ eparsl ⧣ eqcirc ≖ eqcolon ≕ eqdef ≝ eqdot ⩦ eqeq ⩵ eqeqeq ⩶ eqgtr ⋝ eqless ⋜ eqqgtr ⪚ eqqless ⪙ eqqplus ⩱ eqqsim ⩳ eqqslantgtr ⪜ eqqslantless ⪛ eqsim ≂ eqslantgtr ⪖ eqslantless ⪕ equal = equalleftarrow ⭀ equalparallel ⋕ equalrightarrow ⥱ equiv ≡ Equiv ≣ equivDD ⩸ equivVert ⩨ equivVvert ⩩ eqvparsl ⧥ errbarblackcircle ⧳ errbarblackdiamond ⧱ errbarblacksquare ⧯ errbarcircle ⧲ errbardiamond ⧰ errbarsquare ⧮ Eulerconst ℇ euro € Exclam ‼ exists ∃ fallingdotseq ≒ fbowtie ⧓ fcmp ⨾ fdiagovnearrow ⤯ fdiagovrdiag ⤬ female ♀ fint ⨏ Finv Ⅎ fisheye ◉ flat ♭ fltns ⏥ forall ∀ forks ⫝̸ forksnot ⫝ forkv ⫙ fourthroot ∜ fourvdots ⦙ fracslash ⁄ frown ⌢ fullouterjoin ⟗ Game ⅁ geq ≥ geqq ≧ geqqslant ⫺ geqslant ⩾ gescc ⪩ gesdot ⪀ gesdoto ⪂ gesdotol ⪄ gesles ⪔ gg ≫ ggg ⋙ gggnest ⫸ gimel ℷ gla ⪥ glE ⪒ gleichstark ⧦ glj ⪤ gnapprox ⪊ gneq ⪈ gneqq ≩ gnsim ⋧ greater > gsime ⪎ gsiml ⪐ Gt ⪢ gtcc ⪧ gtcir ⩺ gtlpar ⦠ gtquest ⩼ gtrapprox ⪆ gtrarr ⥸ gtrdot ⋗ gtreqless ⋛ gtreqqless ⪌ gtrless ≷ gtrsim ≳ harrowextender ⎯ hatapprox ⩯ heartsuit ♡ Hermaphrodite ⚥ hermitmatrix ⊹ hexagon ⎔ hexagonblack ⬣ hknearrow ⤤ hknwarrow ⤣ hksearrow ⤥ hkswarrow ⤦ hookleftarrow ↩ hookrightarrow ↪ horizbar ― hourglass ⧖ house ⌂ hrectangle ▭ hrectangleblack ▬ hslash ℏ hyphenbullet ⁃ hzigzag 〰 iiiint ⨌ iiint ∭ iinfin ⧜ iint ∬ Im ℑ imageof ⊷ imath 𝚤 in ∈ increment ∆ infty ∞ int ∫ intbar ⨍ intBar ⨎ intbottom ⌡ intcap ⨙ intclockwise ∱ intcup ⨚ intercal ⊺ interleave ⫴ intextender ⎮ intlarhk ⨗ intprod ⨼ intprodr ⨽ inttop ⌠ intx ⨘ inversebullet ◘ inversewhitecircle ◙ invlazys ∾ invnot ⌐ invwhitelowerhalfcircle ◛ invwhiteupperhalfcircle ◚ isindot ⋵ isinE ⋹ isinobar ⋷ isins ⋴ isinvb ⋸ jmath 𝚥 Join ⨝ kernelcontraction ∻ langle ⟨ lAngle ⟪ langledot ⦑ laplac ⧠ lat ⪫ late ⪭ lbag ⟅ lblkbrbrak ⦗ lbrace { lBrace ⦃ lbracelend ⎩ lbracemid ⎨ lbraceuend ⎧ lbrack [ lBrack ⟦ lbrackextender ⎢ lbracklend ⎣ lbracklltick ⦏ lbrackubar ⦋ lbrackuend ⎡ lbrackultick ⦍ lbrbrak ❲ Lbrbrak ⟬ lceil ⌈ lcurvyangle ⧼ Ldsh ↲ leftarrow ← Leftarrow ⇐ leftarrowapprox ⭊ leftarrowbackapprox ⭂ leftarrowbsimilar ⭋ leftarrowless ⥷ leftarrowonoplus ⬲ leftarrowplus ⥆ leftarrowshortrightarrow ⥃ leftarrowsimilar ⥳ leftarrowsubset ⥺ leftarrowtail ↢ leftarrowtriangle ⇽ leftarrowx ⬾ leftbkarrow ⤌ leftcurvedarrow ⬿ leftdasharrow ⇠ leftdbkarrow ⤎ leftdbltail ⤛ leftdotarrow ⬸ leftdowncurvedarrow ⤶ leftfishtail ⥼ leftharpoondown ↽ leftharpoondownbar ⥞ leftharpoonsupdown ⥢ leftharpoonup ↼ leftharpoonupbar ⥚ leftharpoonupdash ⥪ leftleftarrows ⇇ leftmoon ☾ leftouterjoin ⟕ leftrightarrow ↔ Leftrightarrow ⇔ leftrightarrowcircle ⥈ leftrightarrows ⇆ leftrightarrowtriangle ⇿ leftrightharpoondowndown ⥐ leftrightharpoondownup ⥋ leftrightharpoons ⇋ leftrightharpoonsdown ⥧ leftrightharpoonsup ⥦ leftrightharpoonupdown ⥊ leftrightharpoonupup ⥎ leftrightsquigarrow ↭ leftsquigarrow ⇜ lefttail ⤙ leftthreearrows ⬱ leftthreetimes ⋋ leftwavearrow ↜ leftwhitearrow ⇦ leq ≤ leqq ≦ leqqslant ⫹ leqslant ⩽ lescc ⪨ lesdot ⩿ lesdoto ⪁ lesdotor ⪃ lesges ⪓ less < lessapprox ⪅ lessdot ⋖ lesseqgtr ⋚ lesseqqgtr ⪋ lessgtr ≶ lesssim ≲ lfbowtie ⧑ lfloor ⌊ lftimes ⧔ lgblkcircle ⬤ lgblksquare ⬛ lgE ⪑ lgroup ⟮ lgwhtcircle ◯ lgwhtsquare ⬜ linefeed ↴ ll ≪ llangle ⦉ llarc ◟ llblacktriangle ◣ llcorner ⌞ Lleftarrow ⇚ LLeftarrow ⭅ lll ⋘ lllnest ⫷ llparenthesis ⦇ lltriangle ◺ lmoustache ⎰ lnapprox ⪉ lneq ⪇ lneqq ≨ lnsim ⋦ longdashv ⟞ longdivision ⟌ longleftarrow ⟵ Longleftarrow ⟸ longleftrightarrow ⟷ Longleftrightarrow ⟺ longleftsquigarrow ⬳ longmapsfrom ⟻ Longmapsfrom ⟽ longmapsto ⟼ Longmapsto ⟾ longrightarrow ⟶ Longrightarrow ⟹ longrightsquigarrow ⟿ looparrowleft ↫ looparrowright ↬ lowint ⨜ lozengeminus ⟠ lparen ( lParen ⦅ lparenextender ⎜ Lparengtr ⦕ lparenlend ⎝ lparenless ⦓ lparenuend ⎛ lrarc ◞ lrblacktriangle ◢ lrcorner ⌟ lrtriangle ◿ lrtriangleeq ⧡ Lsh ↰ lsime ⪍ lsimg ⪏ lsqhook ⫍ Lt ⪡ ltcc ⪦ ltcir ⩹ ltimes ⋉ ltlarr ⥶ ltquest ⩻ ltrivb ⧏ lvboxline ⎸ lvzigzag ⧘ Lvzigzag ⧚ male ♂ maltese ✠ mapsdown ↧ mapsfrom ↤ Mapsfrom ⤆ mapsto ↦ Mapsto ⤇ mapsup ↥ mathampersand & mathatsign @ mathcolon ∶ mathcomma , mathdollar $ matheth ð mathexclam ! mathoctothorpe # mathpercent % mathperiod . mathplus + mathquestion ? mathratio ∶ mathsemicolon ; mathslash / mathsterling £ mathvisiblespace ␣ mathyen ¥ mbfA 𝐀 mbfa 𝐚 mbfAlpha 𝚨 mbfalpha 𝜶 mbfB 𝐁 mbfb 𝐛 mbfBeta 𝚩 mbfbeta 𝜷 mbfC 𝐂 mbfc 𝐜 mbfChi 𝚾 mbfchi 𝝌 mbfD 𝐃 mbfd 𝐝 mbfDelta 𝚫 mbfdelta 𝜹 mbfDigamma 𝟊 mbfdigamma 𝟋 mbfE 𝐄 mbfe 𝐞 mbfeight 𝟖 mbfEpsilon 𝚬 mbfepsilon 𝜺 mbfEta 𝚮 mbfeta 𝜼 mbfF 𝐅 mbff 𝐟 mbffive 𝟓 mbffour 𝟒 mbffrakA 𝕬 mbffraka 𝖆 mbffrakB 𝕭 mbffrakb 𝖇 mbffrakC 𝕮 mbffrakc 𝖈 mbffrakD 𝕯 mbffrakd 𝖉 mbffrakE 𝕰 mbffrake 𝖊 mbffrakF 𝕱 mbffrakf 𝖋 mbffrakG 𝕲 mbffrakg 𝖌 mbffrakH 𝕳 mbffrakh 𝖍 mbffrakI 𝕴 mbffraki 𝖎 mbffrakJ 𝕵 mbffrakj 𝖏 mbffrakK 𝕶 mbffrakk 𝖐 mbffrakL 𝕷 mbffrakl 𝖑 mbffrakM 𝕸 mbffrakm 𝖒 mbffrakN 𝕹 mbffrakn 𝖓 mbffrakO 𝕺 mbffrako 𝖔 mbffrakP 𝕻 mbffrakp 𝖕 mbffrakQ 𝕼 mbffrakq 𝖖 mbffrakR 𝕽 mbffrakr 𝖗 mbffrakS 𝕾 mbffraks 𝖘 mbffrakT 𝕿 mbffrakt 𝖙 mbffrakU 𝖀 mbffraku 𝖚 mbffrakV 𝖁 mbffrakv 𝖛 mbffrakW 𝖂 mbffrakw 𝖜 mbffrakX 𝖃 mbffrakx 𝖝 mbffrakY 𝖄 mbffraky 𝖞 mbffrakZ 𝖅 mbffrakz 𝖟 mbfG 𝐆 mbfg 𝐠 mbfGamma 𝚪 mbfgamma 𝜸 mbfH 𝐇 mbfh 𝐡 mbfI 𝐈 mbfi 𝐢 mbfIota 𝚰 mbfiota 𝜾 mbfitA 𝐀 mbfita 𝐚 mbfitAlpha 𝚨 mbfitalpha 𝜶 mbfitB 𝐁 mbfitb 𝐛 mbfitBeta 𝚩 mbfitbeta 𝜷 mbfitC 𝐂 mbfitc 𝐜 mbfitChi 𝚾 mbfitchi 𝝌 mbfitD 𝐃 mbfitd 𝐝 mbfitDelta 𝚫 mbfitdelta 𝜹 mbfitE 𝐄 mbfite 𝐞 mbfitEpsilon 𝚬 mbfitepsilon 𝜺 mbfitEta 𝚮 mbfiteta 𝜼 mbfitF 𝐅 mbfitf 𝐟 mbfitG 𝐆 mbfitg 𝐠 mbfitGamma 𝚪 mbfitgamma 𝜸 mbfitH 𝐇 mbfith 𝐡 mbfitI 𝐈 mbfiti 𝐢 mbfitIota 𝚰 mbfitiota 𝜾 mbfitJ 𝐉 mbfitj 𝐣 mbfitK 𝐊 mbfitk 𝐤 mbfitKappa 𝚱 mbfitkappa 𝜿 mbfitL 𝐋 mbfitl 𝐥 mbfitLambda 𝚲 mbfitlambda 𝝀 mbfitM 𝐌 mbfitm 𝐦 mbfitMu 𝚳 mbfitmu 𝝁 mbfitN 𝐍 mbfitn 𝐧 mbfitnabla 𝛁 mbfitNu 𝚴 mbfitnu 𝝂 mbfitO 𝐎 mbfito 𝐨 mbfitOmega 𝛀 mbfitomega 𝝎 mbfitOmicron 𝚶 mbfitomicron 𝝄 mbfitP 𝐏 mbfitp 𝐩 mbfitpartial 𝝏 mbfitPhi 𝚽 mbfitphi 𝝋 mbfitPi 𝚷 mbfitpi 𝝅 mbfitPsi 𝚿 mbfitpsi 𝝍 mbfitQ 𝐐 mbfitq 𝐪 mbfitR 𝐑 mbfitr 𝐫 mbfitRho 𝚸 mbfitrho 𝝆 mbfitS 𝐒 mbfits 𝐬 mbfitsansA 𝗔 mbfitsansa 𝗮 mbfitsansAlpha 𝝖 mbfitsansalpha 𝝰 mbfitsansB 𝗕 mbfitsansb 𝗯 mbfitsansBeta 𝝗 mbfitsansbeta 𝝱 mbfitsansC 𝗖 mbfitsansc 𝗰 mbfitsansChi 𝝬 mbfitsanschi 𝞆 mbfitsansD 𝗗 mbfitsansd 𝗱 mbfitsansDelta 𝝙 mbfitsansdelta 𝝳 mbfitsansE 𝗘 mbfitsanse 𝗲 mbfitsansEpsilon 𝝚 mbfitsansepsilon 𝝴 mbfitsansEta 𝝜 mbfitsanseta 𝝶 mbfitsansF 𝗙 mbfitsansf 𝗳 mbfitsansG 𝗚 mbfitsansg 𝗴 mbfitsansGamma 𝝘 mbfitsansgamma 𝝲 mbfitsansH 𝗛 mbfitsansh 𝗵 mbfitsansI 𝗜 mbfitsansi 𝗶 mbfitsansIota 𝝞 mbfitsansiota 𝝸 mbfitsansJ 𝗝 mbfitsansj 𝗷 mbfitsansK 𝗞 mbfitsansk 𝗸 mbfitsansKappa 𝝟 mbfitsanskappa 𝝹 mbfitsansL 𝗟 mbfitsansl 𝗹 mbfitsansLambda 𝝠 mbfitsanslambda 𝝺 mbfitsansM 𝗠 mbfitsansm 𝗺 mbfitsansMu 𝝡 mbfitsansmu 𝝻 mbfitsansN 𝗡 mbfitsansn 𝗻 mbfitsansnabla 𝝯 mbfitsansNu 𝝢 mbfitsansnu 𝝼 mbfitsansO 𝗢 mbfitsanso 𝗼 mbfitsansOmega 𝝮 mbfitsansomega 𝞈 mbfitsansOmicron 𝝤 mbfitsansomicron 𝝾 mbfitsansP 𝗣 mbfitsansp 𝗽 mbfitsanspartial 𝟃 mbfitsansPhi 𝝫 mbfitsansphi 𝞅 mbfitsansPi 𝝥 mbfitsanspi 𝝿 mbfitsansPsi 𝝭 mbfitsanspsi 𝞇 mbfitsansQ 𝗤 mbfitsansq 𝗾 mbfitsansR 𝗥 mbfitsansr 𝗿 mbfitsansRho 𝝦 mbfitsansrho 𝞀 mbfitsansS 𝗦 mbfitsanss 𝘀 mbfitsansSigma 𝝨 mbfitsanssigma 𝞂 mbfitsansT 𝗧 mbfitsanst 𝘁 mbfitsansTau 𝝩 mbfitsanstau 𝞃 mbfitsansTheta 𝝝 mbfitsanstheta 𝝷 mbfitsansU 𝗨 mbfitsansu 𝘂 mbfitsansUpsilon 𝝪 mbfitsansupsilon 𝞄 mbfitsansV 𝗩 mbfitsansv 𝘃 mbfitsansvarepsilon 𝞊 mbfitsansvarkappa 𝞌 mbfitsansvarphi 𝞍 mbfitsansvarpi 𝞏 mbfitsansvarrho 𝞎 mbfitsansvarsigma 𝞁 mbfitsansvarTheta 𝝧 mbfitsansvartheta 𝞋 mbfitsansW 𝗪 mbfitsansw 𝘄 mbfitsansX 𝗫 mbfitsansx 𝘅 mbfitsansXi 𝝣 mbfitsansxi 𝝽 mbfitsansY 𝗬 mbfitsansy 𝘆 mbfitsansZ 𝗭 mbfitsansz 𝘇 mbfitsansZeta 𝝛 mbfitsanszeta 𝝵 mbfitSigma 𝚺 mbfitsigma 𝝈 mbfitT 𝐓 mbfitt 𝐭 mbfitTau 𝚻 mbfittau 𝝉 mbfitTheta 𝚯 mbfittheta 𝜽 mbfitU 𝐔 mbfitu 𝐮 mbfitUpsilon 𝚼 mbfitupsilon 𝝊 mbfitV 𝐕 mbfitv 𝐯 mbfitvarepsilon 𝝐 mbfitvarkappa 𝝒 mbfitvarphi 𝝓 mbfitvarpi 𝝕 mbfitvarrho 𝝔 mbfitvarsigma 𝝇 mbfitvarTheta 𝚹 mbfitvartheta 𝝑 mbfitW 𝐖 mbfitw 𝐰 mbfitX 𝐗 mbfitx 𝐱 mbfitXi 𝚵 mbfitxi 𝝃 mbfitY 𝐘 mbfity 𝐲 mbfitZ 𝐙 mbfitz 𝐳 mbfitZeta 𝚭 mbfitzeta 𝜻 mbfJ 𝐉 mbfj 𝐣 mbfK 𝐊 mbfk 𝐤 mbfKappa 𝚱 mbfkappa 𝜿 mbfL 𝐋 mbfl 𝐥 mbfLambda 𝚲 mbflambda 𝝀 mbfM 𝐌 mbfm 𝐦 mbfMu 𝚳 mbfmu 𝝁 mbfN 𝐍 mbfn 𝐧 mbfnabla 𝛁 mbfnine 𝟗 mbfNu 𝚴 mbfnu 𝝂 mbfO 𝐎 mbfo 𝐨 mbfOmega 𝛀 mbfomega 𝝎 mbfOmicron 𝚶 mbfomicron 𝝄 mbfone 𝟏 mbfP 𝐏 mbfp 𝐩 mbfpartial 𝝏 mbfPhi 𝚽 mbfphi 𝝓 mbfPi 𝚷 mbfpi 𝝅 mbfPsi 𝚿 mbfpsi 𝝍 mbfQ 𝐐 mbfq 𝐪 mbfR 𝐑 mbfr 𝐫 mbfRho 𝚸 mbfrho 𝝆 mbfS 𝐒 mbfs 𝐬 mbfsansA 𝗔 mbfsansa 𝗮 mbfsansAlpha 𝝖 mbfsansalpha 𝝰 mbfsansB 𝗕 mbfsansb 𝗯 mbfsansBeta 𝝗 mbfsansbeta 𝝱 mbfsansC 𝗖 mbfsansc 𝗰 mbfsansChi 𝝬 mbfsanschi 𝞆 mbfsansD 𝗗 mbfsansd 𝗱 mbfsansDelta 𝝙 mbfsansdelta 𝝳 mbfsansE 𝗘 mbfsanse 𝗲 mbfsanseight 𝟴 mbfsansEpsilon 𝝚 mbfsansepsilon 𝝴 mbfsansEta 𝝜 mbfsanseta 𝝶 mbfsansF 𝗙 mbfsansf 𝗳 mbfsansfive 𝟱 mbfsansfour 𝟰 mbfsansG 𝗚 mbfsansg 𝗴 mbfsansGamma 𝝘 mbfsansgamma 𝝲 mbfsansH 𝗛 mbfsansh 𝗵 mbfsansI 𝗜 mbfsansi 𝗶 mbfsansIota 𝝞 mbfsansiota 𝝸 mbfsansJ 𝗝 mbfsansj 𝗷 mbfsansK 𝗞 mbfsansk 𝗸 mbfsansKappa 𝝟 mbfsanskappa 𝝹 mbfsansL 𝗟 mbfsansl 𝗹 mbfsansLambda 𝝠 mbfsanslambda 𝝺 mbfsansM 𝗠 mbfsansm 𝗺 mbfsansMu 𝝡 mbfsansmu 𝝻 mbfsansN 𝗡 mbfsansn 𝗻 mbfsansnabla 𝝯 mbfsansnine 𝟵 mbfsansNu 𝝢 mbfsansnu 𝝼 mbfsansO 𝗢 mbfsanso 𝗼 mbfsansOmega 𝝮 mbfsansomega 𝞈 mbfsansOmicron 𝝤 mbfsansomicron 𝝾 mbfsansone 𝟭 mbfsansP 𝗣 mbfsansp 𝗽 mbfsanspartial 𝟃 mbfsansPhi 𝝫 mbfsansphi 𝞅 mbfsansPi 𝝥 mbfsanspi 𝝿 mbfsansPsi 𝝭 mbfsanspsi 𝞇 mbfsansQ 𝗤 mbfsansq 𝗾 mbfsansR 𝗥 mbfsansr 𝗿 mbfsansRho 𝝦 mbfsansrho 𝞀 mbfsansS 𝗦 mbfsanss 𝘀 mbfsansseven 𝟳 mbfsansSigma 𝝨 mbfsanssigma 𝞂 mbfsanssix 𝟲 mbfsansT 𝗧 mbfsanst 𝘁 mbfsansTau 𝝩 mbfsanstau 𝞃 mbfsansTheta 𝝝 mbfsanstheta 𝝷 mbfsansthree 𝟯 mbfsanstwo 𝟮 mbfsansU 𝗨 mbfsansu 𝘂 mbfsansUpsilon 𝝪 mbfsansupsilon 𝞄 mbfsansV 𝗩 mbfsansv 𝘃 mbfsansvarepsilon 𝞊 mbfsansvarkappa 𝞌 mbfsansvarphi 𝞍 mbfsansvarpi 𝞏 mbfsansvarrho 𝞎 mbfsansvarsigma 𝞁 mbfsansvarTheta 𝝧 mbfsansvartheta 𝞋 mbfsansW 𝗪 mbfsansw 𝘄 mbfsansX 𝗫 mbfsansx 𝘅 mbfsansXi 𝝣 mbfsansxi 𝝽 mbfsansY 𝗬 mbfsansy 𝘆 mbfsansZ 𝗭 mbfsansz 𝘇 mbfsanszero 𝟬 mbfsansZeta 𝝛 mbfsanszeta 𝝵 mbfscrA 𝓐 mbfscra 𝓪 mbfscrB 𝓑 mbfscrb 𝓫 mbfscrC 𝓒 mbfscrc 𝓬 mbfscrD 𝓓 mbfscrd 𝓭 mbfscrE 𝓔 mbfscre 𝓮 mbfscrF 𝓕 mbfscrf 𝓯 mbfscrG 𝓖 mbfscrg 𝓰 mbfscrH 𝓗 mbfscrh 𝓱 mbfscrI 𝓘 mbfscri 𝓲 mbfscrJ 𝓙 mbfscrj 𝓳 mbfscrK 𝓚 mbfscrk 𝓴 mbfscrL 𝓛 mbfscrl 𝓵 mbfscrM 𝓜 mbfscrm 𝓶 mbfscrN 𝓝 mbfscrn 𝓷 mbfscrO 𝓞 mbfscro 𝓸 mbfscrP 𝓟 mbfscrp 𝓹 mbfscrQ 𝓠 mbfscrq 𝓺 mbfscrR 𝓡 mbfscrr 𝓻 mbfscrS 𝓢 mbfscrs 𝓼 mbfscrT 𝓣 mbfscrt 𝓽 mbfscrU 𝓤 mbfscru 𝓾 mbfscrV 𝓥 mbfscrv 𝓿 mbfscrW 𝓦 mbfscrw 𝔀 mbfscrX 𝓧 mbfscrx 𝔁 mbfscrY 𝓨 mbfscry 𝔂 mbfscrZ 𝓩 mbfscrz 𝔃 mbfseven 𝟕 mbfSigma 𝚺 mbfsigma 𝝈 mbfsix 𝟔 mbfT 𝐓 mbft 𝐭 mbfTau 𝚻 mbftau 𝝉 mbfTheta 𝚯 mbftheta 𝜽 mbfthree 𝟑 mbftwo 𝟐 mbfU 𝐔 mbfu 𝐮 mbfUpsilon 𝚼 mbfupsilon 𝝊 mbfV 𝐕 mbfv 𝐯 mbfvarepsilon 𝝐 mbfvarkappa 𝝒 mbfvarphi 𝝋 mbfvarpi 𝝕 mbfvarrho 𝝔 mbfvarsigma 𝝇 mbfvarTheta 𝚹 mbfvartheta 𝝑 mbfW 𝐖 mbfw 𝐰 mbfX 𝐗 mbfx 𝐱 mbfXi 𝚵 mbfxi 𝝃 mbfY 𝐘 mbfy 𝐲 mbfZ 𝐙 mbfz 𝐳 mbfzero 𝟎 mbfZeta 𝚭 mbfzeta 𝜻 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 ⊾ medblackstar ⭑ medwhitestar ⭐ mfrakA 𝔄 mfraka 𝔞 mfrakB 𝔅 mfrakb 𝔟 mfrakC ℭ mfrakc 𝔠 mfrakD 𝔇 mfrakd 𝔡 mfrakE 𝔈 mfrake 𝔢 mfrakF 𝔉 mfrakf 𝔣 mfrakG 𝔊 mfrakg 𝔤 mfrakH ℌ mfrakh 𝔥 mfraki 𝔦 mfrakJ 𝔍 mfrakj 𝔧 mfrakK 𝔎 mfrakk 𝔨 mfrakL 𝔏 mfrakl 𝔩 mfrakM 𝔐 mfrakm 𝔪 mfrakN 𝔑 mfrakn 𝔫 mfrakO 𝔒 mfrako 𝔬 mfrakP 𝔓 mfrakp 𝔭 mfrakQ 𝔔 mfrakq 𝔮 mfrakr 𝔯 mfrakS 𝔖 mfraks 𝔰 mfrakT 𝔗 mfrakt 𝔱 mfrakU 𝔘 mfraku 𝔲 mfrakV 𝔙 mfrakv 𝔳 mfrakW 𝔚 mfrakw 𝔴 mfrakX 𝔛 mfrakx 𝔵 mfrakY 𝔜 mfraky 𝔶 mfrakZ ℨ mfrakz 𝔷 mho ℧ mid ∣ midbarvee ⩝ midbarwedge ⩜ midcir ⫰ minus − minusdot ⨪ minusfdots ⨫ minusrdots ⨬ mitA 𝐴 mita 𝑎 mitAlpha Α mitalpha 𝛼 mitB 𝐵 mitb 𝑏 mitBbbD ⅅ mitBbbd ⅆ mitBbbe ⅇ mitBbbi ⅈ mitBbbj ⅉ mitBeta Β mitbeta 𝛽 mitC 𝐶 mitc 𝑐 mitChi Χ mitchi 𝜒 mitD 𝐷 mitd 𝑑 mitDelta Δ mitdelta 𝛿 mitE 𝐸 mite 𝑒 mitEpsilon Ε mitepsilon 𝜀 mitEta Η miteta 𝜂 mitF 𝐹 mitf 𝑓 mitG 𝐺 mitg 𝑔 mitGamma Γ mitgamma 𝛾 mitH 𝐻 mitI 𝐼 miti 𝑖 mitIota Ι mitiota 𝜄 mitJ 𝐽 mitj 𝑗 mitK 𝐾 mitk 𝑘 mitKappa Κ mitkappa 𝜅 mitL 𝐿 mitl 𝑙 mitLambda Λ mitlambda 𝜆 mitM 𝑀 mitm 𝑚 mitMu Μ mitmu 𝜇 mitN 𝑁 mitn 𝑛 mitnabla ∇ mitNu Ν mitnu 𝜈 mitO 𝑂 mito 𝑜 mitOmega Ω mitomega 𝜔 mitOmicron Ο mitomicron 𝜊 mitP 𝑃 mitp 𝑝 mitpartial 𝜕 mitPhi Φ mitphi 𝜑 mitPi Π mitpi 𝜋 mitPsi Ψ mitpsi 𝜓 mitQ 𝑄 mitq 𝑞 mitR 𝑅 mitr 𝑟 mitRho Ρ mitrho 𝜌 mitS 𝑆 mits 𝑠 mitsansA 𝖠 mitsansa 𝖺 mitsansB 𝖡 mitsansb 𝖻 mitsansC 𝖢 mitsansc 𝖼 mitsansD 𝖣 mitsansd 𝖽 mitsansE 𝖤 mitsanse 𝖾 mitsansF 𝖥 mitsansf 𝖿 mitsansG 𝖦 mitsansg 𝗀 mitsansH 𝖧 mitsansh 𝗁 mitsansI 𝖨 mitsansi 𝗂 mitsansJ 𝖩 mitsansj 𝗃 mitsansK 𝖪 mitsansk 𝗄 mitsansL 𝖫 mitsansl 𝗅 mitsansM 𝖬 mitsansm 𝗆 mitsansN 𝖭 mitsansn 𝗇 mitsansO 𝖮 mitsanso 𝗈 mitsansP 𝖯 mitsansp 𝗉 mitsansQ 𝖰 mitsansq 𝗊 mitsansR 𝖱 mitsansr 𝗋 mitsansS 𝖲 mitsanss 𝗌 mitsansT 𝖳 mitsanst 𝗍 mitsansU 𝖴 mitsansu 𝗎 mitsansV 𝖵 mitsansv 𝗏 mitsansW 𝖶 mitsansw 𝗐 mitsansX 𝖷 mitsansx 𝗑 mitsansY 𝖸 mitsansy 𝗒 mitsansZ 𝖹 mitsansz 𝗓 mitSigma Σ mitsigma 𝜎 mitT 𝑇 mitt 𝑡 mitTau Τ mittau 𝜏 mitTheta Θ mittheta 𝜃 mitU 𝑈 mitu 𝑢 mitUpsilon Υ mitupsilon 𝜐 mitV 𝑉 mitv 𝑣 mitvarepsilon 𝜖 mitvarkappa 𝜘 mitvarphi 𝜙 mitvarpi 𝜛 mitvarrho 𝜚 mitvarsigma 𝜍 mitvarTheta ϴ mitvartheta 𝜗 mitW 𝑊 mitw 𝑤 mitX 𝑋 mitx 𝑥 mitXi Ξ mitxi 𝜉 mitY 𝑌 mity 𝑦 mitZ 𝑍 mitz 𝑧 mitZeta Ζ mitzeta 𝜁 mlcp ⫛ models ⊧ modtwosum ⨊ mp ∓ msansA 𝖠 msansa 𝖺 msansB 𝖡 msansb 𝖻 msansC 𝖢 msansc 𝖼 msansD 𝖣 msansd 𝖽 msansE 𝖤 msanse 𝖾 msanseight 𝟪 msansF 𝖥 msansf 𝖿 msansfive 𝟧 msansfour 𝟦 msansG 𝖦 msansg 𝗀 msansH 𝖧 msansh 𝗁 msansI 𝖨 msansi 𝗂 msansJ 𝖩 msansj 𝗃 msansK 𝖪 msansk 𝗄 msansL 𝖫 msansl 𝗅 msansM 𝖬 msansm 𝗆 msansN 𝖭 msansn 𝗇 msansnine 𝟫 msansO 𝖮 msanso 𝗈 msansone 𝟣 msansP 𝖯 msansp 𝗉 msansQ 𝖰 msansq 𝗊 msansR 𝖱 msansr 𝗋 msansS 𝖲 msanss 𝗌 msansseven 𝟩 msanssix 𝟨 msansT 𝖳 msanst 𝗍 msansthree 𝟥 msanstwo 𝟤 msansU 𝖴 msansu 𝗎 msansV 𝖵 msansv 𝗏 msansW 𝖶 msansw 𝗐 msansX 𝖷 msansx 𝗑 msansY 𝖸 msansy 𝗒 msansZ 𝖹 msansz 𝗓 msanszero 𝟢 mscrA 𝒜 mscra 𝒶 mscrB ℬ mscrb 𝒷 mscrC 𝒞 mscrc 𝒸 mscrD 𝒟 mscrd 𝒹 mscre ℯ mscrE ℰ mscrF ℱ mscrf 𝒻 mscrg ℊ mscrG 𝒢 mscrH ℋ mscrh 𝒽 mscrI ℐ mscri 𝒾 mscrJ 𝒥 mscrj 𝒿 mscrK 𝒦 mscrk 𝓀 mscrL ℒ mscrl 𝓁 mscrM ℳ mscrm 𝓂 mscrN 𝒩 mscrn 𝓃 mscro ℴ mscrO 𝒪 mscrP 𝒫 mscrp 𝓅 mscrQ 𝒬 mscrq 𝓆 mscrR ℛ mscrr 𝓇 mscrS 𝒮 mscrs 𝓈 mscrT 𝒯 mscrt 𝓉 mscrU 𝒰 mscru 𝓊 mscrV 𝒱 mscrv 𝓋 mscrW 𝒲 mscrw 𝓌 mscrX 𝒳 mscrx 𝓍 mscrY 𝒴 mscry 𝓎 mscrZ 𝒵 mscrz 𝓏 mttA 𝙰 mtta 𝚊 mttB 𝙱 mttb 𝚋 mttC 𝙲 mttc 𝚌 mttD 𝙳 mttd 𝚍 mttE 𝙴 mtte 𝚎 mtteight 𝟾 mttF 𝙵 mttf 𝚏 mttfive 𝟻 mttfour 𝟺 mttG 𝙶 mttg 𝚐 mttH 𝙷 mtth 𝚑 mttI 𝙸 mtti 𝚒 mttJ 𝙹 mttj 𝚓 mttK 𝙺 mttk 𝚔 mttL 𝙻 mttl 𝚕 mttM 𝙼 mttm 𝚖 mttN 𝙽 mttn 𝚗 mttnine 𝟿 mttO 𝙾 mtto 𝚘 mttone 𝟷 mttP 𝙿 mttp 𝚙 mttQ 𝚀 mttq 𝚚 mttR 𝚁 mttr 𝚛 mttS 𝚂 mtts 𝚜 mttseven 𝟽 mttsix 𝟼 mttT 𝚃 mttt 𝚝 mttthree 𝟹 mtttwo 𝟸 mttU 𝚄 mttu 𝚞 mttV 𝚅 mttv 𝚟 mttW 𝚆 mttw 𝚠 mttX 𝚇 mttx 𝚡 mttY 𝚈 mtty 𝚢 mttZ 𝚉 mttz 𝚣 mttzero 𝟶 multimap ⊸ multimapinv ⟜ mupAlpha Α mupalpha 𝛼 mupBeta Β mupbeta 𝛽 mupChi Χ mupchi 𝜒 mupDelta Δ mupdelta 𝛿 mupEpsilon Ε mupepsilon 𝜀 mupEta Η mupeta 𝜂 mupGamma Γ mupgamma 𝛾 mupIota Ι mupiota 𝜄 mupKappa Κ mupkappa 𝜅 mupLambda Λ muplambda 𝜆 mupMu Μ mupmu 𝜇 mupNu Ν mupnu 𝜈 mupOmega Ω mupomega 𝜔 mupOmicron Ο mupomicron 𝜊 mupPhi Φ mupphi 𝜙 mupPi Π muppi 𝜋 mupPsi Ψ muppsi 𝜓 mupRho Ρ muprho 𝜌 mupSigma Σ mupsigma 𝜎 mupTau Τ muptau 𝜏 mupTheta Θ muptheta 𝜃 mupUpsilon Υ mupupsilon 𝜐 mupvarbeta ϐ mupvarepsilon 𝜖 mupvarkappa 𝜘 mupvarphi 𝜑 mupvarpi 𝜛 mupvarrho 𝜚 mupvarsigma 𝜍 mupvarTheta ϴ mupvartheta 𝜗 mupXi Ξ mupxi 𝜉 mupZeta Ζ mupzeta 𝜁 nabla ∇ napprox ≉ nasymp ≭ natural ♮ ncong ≇ ne ≠ nearrow ↗ Nearrow ⇗ neg ¬ neovnwarrow ⤱ neovsearrow ⤮ nequiv ≢ neswarrow ⤢ neuter ⚲ nexists ∄ ngeq ≱ ngtr ≯ ngtrless ≹ ngtrsim ≵ nHdownarrow ⇟ nhpar ⫲ nHuparrow ⇞ nhVvert ⫵ ni ∋ niobar ⋾ nis ⋼ nisd ⋺ nleftarrow ↚ nLeftarrow ⇍ nleftrightarrow ↮ nLeftrightarrow ⇎ nleq ≰ nless ≮ nlessgtr ≸ nlesssim ≴ nmid ∤ nni ∌ Not ⫬ notin ∉ nparallel ∦ npolint ⨔ nprec ⊀ npreccurlyeq ⋠ nrightarrow ↛ nRightarrow ⇏ nsim ≁ nsime ≄ nsqsubseteq ⋢ nsqsupseteq ⋣ nsubset ⊄ nsubseteq ⊈ nsucc ⊁ nsucccurlyeq ⋡ nsupset ⊅ nsupseteq ⊉ ntrianglelefteq ⋬ ntrianglerighteq ⋭ nvartriangleleft ⋪ nvartriangleright ⋫ nvdash ⊬ nvDash ⊭ nVdash ⊮ nVDash ⊯ nvinfty ⧞ nvleftarrow ⇷ nVleftarrow ⇺ nvLeftarrow ⤂ nvleftarrowtail ⬹ nVleftarrowtail ⬺ nvleftrightarrow ⇹ nVleftrightarrow ⇼ nvLeftrightarrow ⤄ nvrightarrow ⇸ nVrightarrow ⇻ nvRightarrow ⤃ nvrightarrowtail ⤔ nVrightarrowtail ⤕ nvtwoheadleftarrow ⬴ nVtwoheadleftarrow ⬵ nvtwoheadleftarrowtail ⬼ nVtwoheadleftarrowtail ⬽ nvtwoheadrightarrow ⤀ nVtwoheadrightarrow ⤁ nvtwoheadrightarrowtail ⤗ nVtwoheadrightarrowtail ⤘ nwarrow ↖ Nwarrow ⇖ nwovnearrow ⤲ nwsearrow ⤡ obar ⌽ obot ⦺ obrbrak ⏠ obslash ⦸ odiv ⨸ odot ⊙ odotslashdot ⦼ ogreaterthan ⧁ oiiint ∰ oiint ∯ oint ∮ ointctrclockwise ∳ olcross ⦻ olessthan ⧀ ominus ⊖ operp ⦹ oplus ⊕ opluslhrim ⨭ oplusrhrim ⨮ origof ⊶ oslash ⊘ otimes ⊗ Otimes ⨷ otimeshat ⨶ otimeslhrim ⨴ otimesrhrim ⨵ overbrace ⏞ overbracket ⎴ overparen ⏜ parallel ∥ parallelogram ▱ parallelogramblack ▰ parsim ⫳ partial 𝜕 partialmeetcontraction ⪣ pentagon ⬠ pentagonblack ⬟ perp ⟂ perps ⫡ pitchfork ⋔ Planckconst ℎ plusdot ⨥ pluseqq ⩲ plushat ⨣ plussim ⨦ plussubtwo ⨧ plustrif ⨨ pm ± pointint ⨕ postalmark 〒 prec ≺ Prec ⪻ precapprox ⪷ preccurlyeq ≼ preceq ⪯ preceqq ⪳ precnapprox ⪹ precneq ⪱ precneqq ⪵ precnsim ⋨ precsim ≾ prime ′ prod ∏ profline ⌒ profsurf ⌓ PropertyLine ⅊ propto ∝ prurel ⊰ pullback ⟓ pushout ⟔ QED ∎ qprime ⁗ quarternote ♩ questeq ≟ Question ⁇ rangle ⟩ rAngle ⟫ rangledot ⦒ rangledownzigzagarrow ⍼ rbag ⟆ rblkbrbrak ⦘ rbrace } rBrace ⦄ rbracelend ⎭ rbracemid ⎬ rbraceuend ⎫ rbrack ] rBrack ⟧ rbrackextender ⎥ rbracklend ⎦ rbracklrtick ⦎ rbrackubar ⦌ rbrackuend ⎤ rbrackurtick ⦐ rbrbrak ❳ Rbrbrak ⟭ rceil ⌉ rcurvyangle ⧽ rdiagovfdiag ⤫ rdiagovsearrow ⤰ Rdsh ↳ Re ℜ revangle ⦣ revangleubar ⦥ revemptyset ⦰ revnmid ⫮ rfbowtie ⧒ rfloor ⌋ rftimes ⧕ rgroup ⟯ rightangle ∟ rightanglemdot ⦝ rightanglesqr ⦜ rightarrow → Rightarrow ⇒ rightarrowapprox ⥵ rightarrowbackapprox ⭈ rightarrowbar ⇥ rightarrowbsimilar ⭌ rightarrowdiamond ⤞ rightarrowgtr ⭃ rightarrowonoplus ⟴ rightarrowplus ⥅ rightarrowshortleftarrow ⥂ rightarrowsimilar ⥴ rightarrowsupset ⭄ rightarrowtail ↣ rightarrowtriangle ⇾ rightarrowx ⥇ rightbkarrow ⤍ rightcurvedarrow ⤳ rightdasharrow ⇢ rightdbltail ⤜ rightdotarrow ⤑ rightdowncurvedarrow ⤷ rightfishtail ⥽ rightharpoondown ⇁ rightharpoondownbar ⥗ rightharpoonsupdown ⥤ rightharpoonup ⇀ rightharpoonupbar ⥓ rightharpoonupdash ⥬ rightimply ⥰ rightleftarrows ⇄ rightleftharpoons ⇌ rightleftharpoonsdown ⥩ rightleftharpoonsup ⥨ rightmoon ☽ rightouterjoin ⟖ rightpentagon ⭔ rightpentagonblack ⭓ rightrightarrows ⇉ rightsquigarrow ⇝ righttail ⤚ rightthreearrows ⇶ rightthreetimes ⋌ rightwavearrow ↝ rightwhitearrow ⇨ ringplus ⨢ risingdotseq ≓ rmoustache ⎱ rparen ) rParen ⦆ rparenextender ⎟ rparengtr ⦔ rparenlend ⎠ Rparenless ⦖ rparenuend ⎞ rppolint ⨒ rrangle ⦊ Rrightarrow ⇛ RRightarrow ⭆ rrparenthesis ⦈ Rsh ↱ rsolbar ⧷ rsqhook ⫎ rsub ⩥ rtimes ⋊ rtriltri ⧎ ruledelayed ⧴ rvboxline ⎹ rvzigzag ⧙ Rvzigzag ⧛ sansLmirrored ⅃ sansLturned ⅂ scpolint ⨓ scurel ⊱ searrow ↘ Searrow ⇘ seovnearrow ⤭ setminus ⧵ sharp ♯ shortdowntack ⫟ shortlefttack ⫞ shortrightarrowleftarrow ⥄ shortuptack ⫠ shuffle ⧢ sim ∼ simeq ≃ simgE ⪠ simgtr ⪞ similarleftarrow ⭉ similarrightarrow ⥲ simlE ⪟ simless ⪝ simminussim ⩬ simneqq ≆ simplus ⨤ simrdots ⩫ sinewave ∿ smallblacktriangleleft ◂ smallblacktriangleright ▸ smallin ∊ smallni ∍ smallsetminus ∖ smalltriangleleft ◃ smalltriangleright ▹ smashtimes ⨳ smblkcircle • smblkdiamond ⬩ smblklozenge ⬪ smblksquare ▪ smeparsl ⧤ smile ⌣ smt ⪪ smte ⪬ smwhitestar ⭒ smwhtcircle ◦ smwhtdiamond ⋄ smwhtlozenge ⬫ smwhtsquare ▫ spadesuit ♠ sphericalangle ∢ sphericalangleup ⦡ sqcap ⊓ Sqcap ⩎ sqcup ⊔ Sqcup ⩏ sqint ⨖ sqlozenge ⌑ sqrt √ sqrtbottom ⎷ sqsubset ⊏ sqsubseteq ⊑ sqsubsetneq ⋤ sqsupset ⊐ sqsupseteq ⊒ sqsupsetneq ⋥ squarebotblack ⬓ squarecrossfill ▩ squarehfill ▤ squarehvfill ▦ squareleftblack ◧ squarellblack ⬕ squarellquad ◱ squarelrblack ◪ squarelrquad ◲ squareneswfill ▨ squarenwsefill ▧ squarerightblack ◨ squaretopblack ⬒ squareulblack ◩ squareulquad ◰ squareurblack ⬔ squareurquad ◳ squarevfill ▥ squoval ▢ sslash ⫽ star ⋆ stareq ≛ strns ⏤ subedot ⫃ submult ⫁ subrarr ⥹ subset ⊂ Subset ⋐ subsetapprox ⫉ subsetcirc ⟃ subsetdot ⪽ subseteq ⊆ subseteqq ⫅ subsetneq ⊊ subsetneqq ⫋ subsetplus ⪿ subsim ⫇ subsub ⫕ subsup ⫓ succ ≻ Succ ⪼ succapprox ⪸ succcurlyeq ≽ succeq ⪰ succeqq ⪴ succnapprox ⪺ succneq ⪲ succneqq ⪶ succnsim ⋩ succsim ≿ sum ∑ sumbottom ⎳ sumint ⨋ sumtop ⎲ sun ☼ supdsub ⫘ supedot ⫄ suphsol ⟉ suphsub ⫗ suplarr ⥻ supmult ⫂ supset ⊃ Supset ⋑ supsetapprox ⫊ supsetcirc ⟄ supsetdot ⪾ supseteq ⊇ supseteqq ⫆ supsetneq ⊋ supsetneqq ⫌ supsetplus ⫀ supsim ⫈ supsub ⫔ supsup ⫖ swarrow ↙ Swarrow ⇙ talloblong ⫾ therefore ∴ thermod ⧧ threedangle ⟀ threedotcolon ⫶ tieconcat ⁀ tieinfty ⧝ times × timesbar ⨱ tminus ⧿ toea ⤨ tona ⤧ top ⊤ topbot ⌶ topcir ⫱ topfork ⫚ topsemicircle ◠ tosa ⤩ towa ⤪ tplus ⧾ trapezium ⏢ trianglecdot ◬ triangledown ▿ triangleleft ◁ triangleleftblack ◭ trianglelefteq ⊴ triangleminus ⨺ triangleodot ⧊ triangleplus ⨹ triangleq ≜ triangleright ▷ trianglerightblack ◮ trianglerighteq ⊵ triangles ⧌ triangleserifs ⧍ triangletimes ⨻ triangleubar ⧋ tripleplus ⧻ trprime ‴ trslash ⫻ turnangle ⦢ turnediota ℩ turnednot ⌙ twocaps ⩋ twocups ⩊ twoheaddownarrow ↡ twoheadleftarrow ↞ twoheadleftarrowtail ⬻ twoheadleftdbkarrow ⬷ twoheadmapsfrom ⬶ twoheadmapsto ⤅ twoheadrightarrow ↠ twoheadrightarrowtail ⤖ twoheaduparrow ↟ twoheaduparrowcircle ⥉ twolowline ‗ twonotes ♫ typecolon ⦂ ubrbrak ⏡ ularc ◜ ulblacktriangle ◤ ulcorner ⌜ ultriangle ◸ uminus ⩁ underbrace ⏟ underbracket ⎵ underparen ⏝ unicodecdots ⋯ unicodeellipsis … upand ⅋ uparrow ↑ Uparrow ⇑ uparrowbarred ⤉ uparrowoncircle ⦽ upbackepsilon ϶ updasharrow ⇡ upDigamma Ϝ updigamma ϝ updownarrow ↕ Updownarrow ⇕ updownarrowbar ↨ updownarrows ⇅ updownharpoonleftleft ⥑ updownharpoonleftright ⥍ updownharpoonrightleft ⥌ updownharpoonrightright ⥏ updownharpoonsleftright ⥮ upfishtail ⥾ upharpoonleft ↿ upharpoonleftbar ⥠ upharpoonright ↾ upharpoonrightbar ⥜ upharpoonsleftright ⥣ upin ⟒ upint ⨛ upKoppa Ϟ upkoppa ϟ uplus ⊎ upoldKoppa Ϙ upoldkoppa ϙ uprightcurvearrow ⤴ upSampi Ϡ upsampi ϡ upStigma Ϛ upstigma ϛ upuparrows ⇈ upwhitearrow ⇧ urarc ◝ urblacktriangle ◥ urcorner ⌝ urtriangle ◹ UUparrow ⟰ Uuparrow ⤊ varbarwedge ⌅ varcarriagereturn ⏎ varclubsuit ♧ vardiamondsuit ♦ vardoublebarwedge ⌆ varheartsuit ♥ varhexagon ⬡ varhexagonblack ⬢ varhexagonlrbonds ⌬ varisinobar ⋶ varisins ⋳ varlrtriangle ⊿ varniobar ⋽ varnis ⋻ varnothing ∅ varointclockwise ∲ varspadesuit ♤ varstar ✶ vartriangle ▵ vartriangleleft ⊲ vartriangleright ⊳ varVdash ⫦ varveebar ⩡ vBar ⫨ Vbar ⫫ vBarv ⫩ vbraceextender ⎪ vbrtri ⧐ vdash ⊢ vDash ⊨ Vdash ⊩ VDash ⊫ vDdash ⫢ vdots ⋮ vectimes ⨯ vee ∨ Vee ⩔ veebar ⊻ veedot ⟇ veedoublebar ⩣ veeeq ≚ veemidvert ⩛ veeodot ⩒ veeonvee ⩖ veeonwedge ⩙ vert | Vert ‖ viewdata ⌗ vlongdash ⟝ vrectangle ▯ vrectangleblack ▮ Vvdash ⊪ Vvert ⦀ vysmblkcircle ∙ vysmblksquare ⬝ vysmwhtcircle ∘ vysmwhtsquare ⬞ vzigzag ⦚ wedge ∧ Wedge ⩓ wedgebar ⩟ wedgedot ⟑ wedgedoublebar ⩠ wedgemidvert ⩚ wedgeodot ⩑ wedgeonwedge ⩕ wedgeq ≙ whitearrowupfrombar ⇪ whiteinwhitetriangle ⟁ whitepointerleft ◅ whitepointerright ▻ whitesquaretickleft ⟤ whitesquaretickright ⟥ whthorzoval ⬭ whtvertoval ⬯ wideangledown ⦦ wideangleup ⦧ wp ℘ wr ≀ xbsol ⧹ xsol ⧸ Yup ⅄ Zbar Ƶ zcmp ⨟ zpipe ⨠ zproject ⨡ vimtex-2.16/autoload/vimtex/complete/tools/symbols-json000066400000000000000000000142571474274247400234640ustar00rootroot00000000000000acute ´ aleph ℵ alpha α amalg ⨿ And & angle ∠ approx ≈ approxeq ≊ Arrowvert ∥ arrowvert ⏐ ast ∗ asymp ≍ backepsilon ∍ backprime ‵ backsim ∽ backsimeq ⋍ backslash \ bar ¯ barwedge ⊼ Bbbk k because ∵ beta β beth ℶ between ≬ bigcap ⋂ bigcirc ◯ bigcup ⋃ bigodot ⨀ bigoplus ⨁ bigotimes ⨂ bigsqcup ⨆ bigstar ★ bigtriangledown ▽ bigtriangleup △ biguplus ⨄ bigvee ⋁ bigwedge ⋀ blacklozenge ⧫ blacksquare ■ blacktriangle ▲ blacktriangledown ▼ blacktriangleleft ◀ blacktriangleright ▶ bot ⊥ bowtie ⋈ Box □ boxdot ⊡ boxminus ⊟ boxplus ⊞ boxtimes ⊠ bracevert ⎪ breve ˘ bullet ∙ Bumpeq ≎ bumpeq ≏ cap ∩ Cap ⋒ cases { cdot ⋅ cdotp ⋅ cdots ⋯ centerdot ⋅ check ˇ checkmark ✓ chi χ circ ∘ circeq ≗ circlearrowleft ↺ circlearrowright ↻ circledast ⊛ circledcirc ⊚ circleddash ⊝ circledR ® circledS Ⓢ clubsuit ♣ colon : complement ∁ cong ≅ coprod ∐ cup ∪ Cup ⋓ curlyeqprec ⋞ curlyeqsucc ⋟ curlyvee ⋎ curlywedge ⋏ curvearrowleft ↶ curvearrowright ↷ dag † dagger † daleth ℸ dashleftarrow ⇠ dashrightarrow ⇢ dashv ⊣ ddag ‡ ddagger ‡ ddot ¨ ddots ⋱ degree ° Delta Δ delta δ diagdown ╲ diagup ╱ diamond ⋄ Diamond ◊ diamondsuit ♢ digamma ϝ div ÷ divideontimes ⋇ dot ˙ doteq ≐ Doteq ≑ doteqdot ≑ dotplus ∔ dots … dotsb ⋯ dotsc … dotsi ⋯ dotsm ⋯ dotso … doublebarwedge ⩞ doublecap ⋒ doublecup ⋓ downarrow ↓ Downarrow ⇓ downdownarrows ⇊ downharpoonleft ⇃ downharpoonright ⇂ ell ℓ emptyset ∅ epsilon ϵ eqcirc ≖ eqsim ≂ eqslantgtr ⪖ eqslantless ⪕ equiv ≡ eta η eth ð exists ∃ fallingdotseq ≒ Finv Ⅎ flat ♭ forall ∀ frown ⌢ Game ⅁ Gamma Γ gamma γ geq ≥ geqq ≧ geqslant ⩾ gets ← ggg ⋙ gggtr ⋙ gimel ℷ gnapprox ⪊ gneq ⪈ gneqq ≩ gnsim ⋧ grave ` gtrapprox ⪆ gtrdot ⋗ gtreqless ⋛ gtreqqless ⪌ gtrless ≷ gtrsim ≳ gvertneqq  hat ^ hbar ℏ heartsuit ♡ hookleftarrow ↩ hookrightarrow ↪ hslash ℏ iff ⟺ iiint ∭ iint ∬ imath ı impliedby ⟸ implies ⟹ infty ∞ int ∫ intercal ⊺ intop ∫ iota ι jmath ȷ Join ⋈ kappa κ Lambda Λ lambda λ land ∧ langle ⟨ lbrace { lbrack [ lceil ⌈ ldotp . ldots … leadsto ⇝ leftarrow ← Leftarrow ⇐ leftarrowtail ↢ leftharpoondown ↽ leftharpoonup ↼ leftleftarrows ⇇ leftrightarrow ↔ Leftrightarrow ⇔ leftrightarrows ⇆ leftrightharpoons ⇋ leftrightsquigarrow ↭ leftthreetimes ⋋ leq ≤ leqq ≦ leqslant ⩽ lessapprox ⪅ lessdot ⋖ lesseqgtr ⋚ lesseqqgtr ⪋ lessgtr ≶ lesssim ≲ lfloor ⌊ lgroup ⟮ lhd ⊲ llcorner └ Lleftarrow ⇚ lll ⋘ llless ⋘ lmoustache ⎰ lnapprox ⪉ lneq ⪇ lneqq ≨ lnot ¬ lnsim ⋦ longleftarrow ⟵ Longleftarrow ⟸ longleftrightarrow ⟷ Longleftrightarrow ⟺ longmapsto ⟼ longrightarrow ⟶ Longrightarrow ⟹ looparrowleft ↫ looparrowright ↬ lor ∨ lozenge ◊ lrcorner ┘ Lsh ↰ ltimes ⋉ lvert ∣ lVert ∥ lvertneqq  maltese ✠ mapsto ↦ mathellipsis … mathparagraph ¶ mathring ˚ measuredangle ∡ mho ℧ mid ∣ models ⊨ multimap ⊸ nabla ∇ natural ♮ ncong ≆ nearrow ↗ neg ¬ neq ≠ nexists ∄ ngeq ≱ ngeqq  ngeqslant  ngtr ≯ nleftarrow ↚ nLeftarrow ⇍ nleftrightarrow ↮ nLeftrightarrow ⇎ nleq ≰ nleqq  nleqslant  nless ≮ nmid ∤ not / notChar ⧸ notin ∉ nparallel ∦ nprec ⊀ npreceq ⋠ nrightarrow ↛ nRightarrow ⇏ nshortmid  nshortparallel  nsim ≁ nsubseteq ⊈ nsubseteqq  nsucc ⊁ nsucceq ⋡ nsupseteq ⊉ nsupseteqq  ntriangleleft ⋪ ntrianglelefteq ⋬ ntriangleright ⋫ ntrianglerighteq ⋭ nvdash ⊬ nvDash ⊭ nVdash ⊮ nVDash ⊯ nwarrow ↖ odot ⊙ oint ∮ Omega Ω omega ω omicron o ominus ⊖ oplus ⊕ oslash ⊘ otimes ⊗ overleftarrow ← overleftrightarrow ↔ overline ¯ overparen ⌢ overrightarrow → owns ∋ parallel ∥ partial ∂ perp ⊥ Phi Φ phi ϕ pitchfork ⋔ pounds £ prec ≺ precapprox ⪷ preccurlyeq ≼ preceq ⪯ precnapprox ⪹ precneqq ⪵ precnsim ⋨ precsim ≾ prime ′ prod ∏ propto ∝ Psi Ψ psi ψ rangle ⟩ rbrace } rbrack ] rceil ⌉ restriction ↾ revemptyset ⦰ rfloor ⌋ rgroup ⟯ rhd ⊳ rho ρ rightarrow → Rightarrow ⇒ rightarrowtail ↣ rightharpoondown ⇁ rightharpoonup ⇀ rightleftarrows ⇄ rightleftharpoons ⇌ rightrightarrows ⇉ rightsquigarrow ⇝ rightthreetimes ⋌ risingdotseq ≓ rmoustache ⎱ Rrightarrow ⇛ Rsh ↱ rtimes ⋊ rvert ∣ rVert ∥ searrow ↘ setminus ∖ sharp ♯ shortmid ∣ shortparallel ∥ Sigma Σ sigma σ sim ∼ simeq ≃ smallfrown ⌢ smallint ∫ smallsetminus ∖ smallsmile ⌣ smile ⌣ space   spadesuit ♠ sphericalangle ∢ sqcap ⊓ sqcup ⊔ sqrt √ sqsubset ⊏ sqsubseteq ⊑ sqsupset ⊐ sqsupseteq ⊒ square □ star ⋆ subset ⊂ Subset ⋐ subseteq ⊆ subseteqq ⫅ subsetneq ⊊ subsetneqq ⫋ succ ≻ succapprox ⪸ succcurlyeq ≽ succeq ⪰ succnapprox ⪺ succneqq ⪶ succnsim ⋩ succsim ≿ sum ∑ supset ⊃ Supset ⋑ supseteq ⊇ supseteqq ⫆ supsetneq ⊋ supsetneqq ⫌ surd √ swarrow ↙ tau τ textellipsis … textparagraph ¶ textperiodcentered · texttrademark ™ therefore ∴ Theta Θ theta θ thickapprox ≈ thicksim ∼ tilde ~ times × top ⊤ triangle △ triangledown ▽ triangleleft ◃ trianglelefteq ⊴ triangleq ≜ triangleright ▹ trianglerighteq ⊵ twoheadleftarrow ↞ twoheadrightarrow ↠ ulcorner ┌ underleftarrow ← underleftrightarrow ↔ underline − underparen ⌣ underrightarrow → unicode 𐀀 unlhd ⊴ unrhd ⊵ uparrow ↑ Uparrow ⇑ updownarrow ↕ Updownarrow ⇕ upharpoonleft ↿ upharpoonright ↾ uplus ⊎ Upsilon Υ upsilon υ upuparrows ⇈ urcorner ┐ vanothing ∅ varDelta Δ varepsilon ε varGamma Γ varkappa ϰ varLambda Λ varnothing ∅ varOmega Ω varPhi Φ varphi φ varPi Π varpi ϖ varpropto ∝ varPsi Ψ varrho ϱ varSigma Σ varsigma ς varsubsetneq  varsubsetneqq  varsupsetneq  varsupsetneqq  varTheta Θ vartheta ϑ vartriangle △ vartriangleleft ⊲ vartriangleright ⊳ varUpsilon Υ varXi Ξ vdash ⊢ vDash ⊨ Vdash ⊩ vdots ⋮ vec ⃗ vee ∨ veebar ⊻ vert ∣ Vert ∥ Vvdash ⊪ wedge ∧ widehat ˆ widetilde ˜ xleftarrow ← xrightarrow → yen ¥ zeta ζ vimtex-2.16/autoload/vimtex/complete/tools/symbols-merge.py000077500000000000000000000015441474274247400242370ustar00rootroot00000000000000#!/usr/bin/env python """Add symbols to complete files""" import os with open('tools/symbols') as f: D = dict([line.strip().split(' ') for line in f.readlines()]) def merge(filename): """Do the actions""" changed = False lines = [] with open(filename) as f: for line in f.readlines(): parts = line.strip().split() if len(parts) > 0: command = parts[0] symbol = D.get(command, '') if symbol: changed = True symbol = ' ' + symbol lines.append(command + symbol + "\n") if changed: print('Updated: ',filename) with open(filename, 'w') as f: for line in lines: f.write(line) files = [f for f in os.listdir('.') if os.path.isfile(f)] for f in files: merge(f) vimtex-2.16/autoload/vimtex/complete/tools/symbols-parse-json.py000077500000000000000000000007451474274247400252230ustar00rootroot00000000000000"""Blahrg.""" import json with open('symbols.json') as fin: with open('symbols-json', 'w') as fout: for vals in json.load(fin).values(): if 'commands' in vals: for k, v in vals['commands'].items(): if (v['symbol'] is not None and len(k) > 3 and len(v['symbol']) == 1): fout.write( k[1:] + ' ' + v['symbol'] + "\n") vimtex-2.16/autoload/vimtex/complete/tools/symbols.json000066400000000000000000035143241474274247400234700ustar00rootroot00000000000000{"abntcite":{"commands":{"\\bibliographystyle":{"info":"\\bibliographystyle{style}\nSee \"\\bibliographystyle\" in latexrefman (Using BibTeX).","meta":{},"mode":["text"],"sig":"\\bibliographystyle{style}","symbol":null},"\\bibtextitlecommand":{"meta":{},"mode":["text"],"sig":"\\bibtextitlecommand{entry}{text}","symbol":null},"\\cite":{"info":"\\cite{bibid}\nSee \"\\cite\" in latexrefman (\\cite).","meta":{"classifiers":"c"},"mode":["text"],"sig":"\\cite{bibid}","symbol":null},"\\citeauthor":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\citeauthor{bibid}","symbol":null},"\\citeauthoronline":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\citeauthoronline{bibid}","symbol":null},"\\citeonline":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\citeonline{bibid}","symbol":null},"\\citeoptions":{"meta":{},"mode":["text"],"sig":"\\citeoptions{options}","symbol":null},"\\citeyear":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\citeyear{bibid}","symbol":null},"\\leftovercite":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\rightovercite":{"meta":{},"mode":["text"],"sig":null,"symbol":null}},"environments":null,"options":{}},"acro":{"commands":{"\\Ac":{"meta":{},"mode":["text"],"sig":"\\Ac{id}","symbol":null},"\\Ac*":{"meta":{},"mode":["text"],"sig":"\\Ac*{id}","symbol":null},"\\Acf":{"meta":{},"mode":["text"],"sig":"\\Acf{id}","symbol":null},"\\Acf*":{"meta":{},"mode":["text"],"sig":"\\Acf*{id}","symbol":null},"\\Acfp":{"meta":{},"mode":["text"],"sig":"\\Acfp{id}","symbol":null},"\\Acfp*":{"meta":{},"mode":["text"],"sig":"\\Acfp*{id}","symbol":null},"\\Acl":{"meta":{},"mode":["text"],"sig":"\\Acl{id}","symbol":null},"\\Acl*":{"meta":{},"mode":["text"],"sig":"\\Acl*{id}","symbol":null},"\\Aclp":{"meta":{},"mode":["text"],"sig":"\\Aclp{id}","symbol":null},"\\Aclp*":{"meta":{},"mode":["text"],"sig":"\\Aclp*{id}","symbol":null},"\\Acp":{"meta":{},"mode":["text"],"sig":"\\Acp{id}","symbol":null},"\\Acp*":{"meta":{},"mode":["text"],"sig":"\\Acp*{id}","symbol":null},"\\DeclareAcronym":{"meta":{},"mode":["text"],"sig":"\\DeclareAcronym{id}{short = , long = }","symbol":null},"\\ac":{"meta":{},"mode":["text"],"sig":"\\ac{id}","symbol":null},"\\ac*":{"meta":{},"mode":["text"],"sig":"\\ac*{id}","symbol":null},"\\aca":{"meta":{},"mode":["text"],"sig":"\\aca{id}","symbol":null},"\\aca*":{"meta":{},"mode":["text"],"sig":"\\aca*{id}","symbol":null},"\\acap":{"meta":{},"mode":["text"],"sig":"\\acap{id}","symbol":null},"\\acap*":{"meta":{},"mode":["text"],"sig":"\\acap*{id}","symbol":null},"\\acf":{"meta":{},"mode":["text"],"sig":"\\acf{id}","symbol":null},"\\acf*":{"meta":{},"mode":["text"],"sig":"\\acf*{id}","symbol":null},"\\acfirstupper":{"meta":{},"mode":["text"],"sig":"\\acfirstupper{token list}","symbol":null},"\\acflike":{"meta":{},"mode":["text"],"sig":"\\acflike{id}{instead of long form}","symbol":null},"\\acflike*":{"meta":{},"mode":["text"],"sig":"\\acflike*{id}{instead of long form}","symbol":null},"\\acfp":{"meta":{},"mode":["text"],"sig":"\\acfp{id}","symbol":null},"\\acfp*":{"meta":{},"mode":["text"],"sig":"\\acfp*{id}","symbol":null},"\\acfplike":{"meta":{},"mode":["text"],"sig":"\\acfplike{id}{instead of long form}","symbol":null},"\\acfplike*":{"meta":{},"mode":["text"],"sig":"\\acfplike*{id}{instead of long form}","symbol":null},"\\acifused":{"meta":{},"mode":["text"],"sig":"\\acifused{id}{true}{false}","symbol":null},"\\acl":{"meta":{},"mode":["text"],"sig":"\\acl{id}","symbol":null},"\\acl*":{"meta":{},"mode":["text"],"sig":"\\acl*{id}","symbol":null},"\\aclp":{"meta":{},"mode":["text"],"sig":"\\aclp{id}","symbol":null},"\\aclp*":{"meta":{},"mode":["text"],"sig":"\\aclp*{id}","symbol":null},"\\acp":{"meta":{},"mode":["text"],"sig":"\\acp{id}","symbol":null},"\\acp*":{"meta":{},"mode":["text"],"sig":"\\acp*{id}","symbol":null},"\\acreset":{"meta":{},"mode":["text"],"sig":"\\acreset{comma separated list of id}","symbol":null},"\\acresetall":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\acs":{"meta":{},"mode":["text"],"sig":"\\acs{id}","symbol":null},"\\acs*":{"meta":{},"mode":["text"],"sig":"\\acs*{id}","symbol":null},"\\acsetup":{"meta":{},"mode":["text"],"sig":"\\acsetup{options}","symbol":null},"\\acsp":{"meta":{},"mode":["text"],"sig":"\\acsp{id}","symbol":null},"\\acsp*":{"meta":{},"mode":["text"],"sig":"\\acsp*{id}","symbol":null},"\\acuse":{"meta":{},"mode":["text"],"sig":"\\acuse{comma separated list of ids}","symbol":null},"\\acuseall":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\printacronyms":{"meta":{},"mode":["text"],"sig":"\\printacronyms[options]","symbol":null}},"environments":null,"options":{}},"acronym":{"commands":{"\\ac":{"meta":{},"mode":["text"],"sig":"\\ac{acronym}","symbol":null},"\\ac*":{"meta":{},"mode":["text"],"sig":"\\ac*{acronym}","symbol":null},"\\acf":{"meta":{},"mode":["text"],"sig":"\\acf{acronym}","symbol":null},"\\acf*":{"meta":{},"mode":["text"],"sig":"\\acf*{acronym}","symbol":null},"\\acffont":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\acfi":{"meta":{},"mode":["text"],"sig":"\\acfi{acronym}","symbol":null},"\\acfi*":{"meta":{},"mode":["text"],"sig":"\\acfi*{acronym}","symbol":null},"\\acfp":{"meta":{},"mode":["text"],"sig":"\\acfp{acronym}","symbol":null},"\\acfp*":{"meta":{},"mode":["text"],"sig":"\\acfp*{acronym}","symbol":null},"\\acfsfont":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\acl":{"meta":{},"mode":["text"],"sig":"\\acl{acronym}","symbol":null},"\\acl*":{"meta":{},"mode":["text"],"sig":"\\acl*{acronym}","symbol":null},"\\aclp":{"meta":{},"mode":["text"],"sig":"\\aclp{acronym}","symbol":null},"\\aclp*":{"meta":{},"mode":["text"],"sig":"\\aclp*{acronym}","symbol":null},"\\aclu":{"meta":{},"mode":["text"],"sig":"\\aclu{acronym}","symbol":null},"\\aclu*":{"meta":{},"mode":["text"],"sig":"\\aclu*{acronym}","symbol":null},"\\acp":{"meta":{},"mode":["text"],"sig":"\\acp{acronym}","symbol":null},"\\acp*":{"meta":{},"mode":["text"],"sig":"\\acp*{acronym}","symbol":null},"\\acresetall":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\acro":{"meta":{},"mode":["text"],"sig":"\\acro{acronym}[short name]{full name}","symbol":null},"\\acrodef":{"meta":{},"mode":["text"],"sig":"\\acrodef{acronym}[short name]{full name}","symbol":null},"\\acrodefplural":{"meta":{},"mode":["text"],"sig":"\\acrodefplural{acronym}[short plural name]{full plural name}","symbol":null},"\\acroextra":{"meta":{},"mode":["text"],"sig":"\\acroextra{additional info}","symbol":null},"\\acroplural":{"meta":{},"mode":["text"],"sig":"\\acroplural{acronym}[short plural name]{full plural name}","symbol":null},"\\acs":{"meta":{},"mode":["text"],"sig":"\\acs{acronym}","symbol":null},"\\acs*":{"meta":{},"mode":["text"],"sig":"\\acs*{acronym}","symbol":null},"\\acsfont":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\acsp":{"meta":{},"mode":["text"],"sig":"\\acsp{acronym}","symbol":null},"\\acsp*":{"meta":{},"mode":["text"],"sig":"\\acsp*{acronym}","symbol":null},"\\acsu":{"meta":{},"mode":["text"],"sig":"\\acsu{acronym}","symbol":null},"\\acsu*":{"meta":{},"mode":["text"],"sig":"\\acsu*{acronym}","symbol":null},"\\acused":{"meta":{},"mode":["text"],"sig":"\\acused{acronym}","symbol":null},"\\newacro":{"meta":{},"mode":["text"],"sig":"\\newacro{acronym}[short name]{full name}","symbol":null},"\\newacroplural":{"meta":{},"mode":["text"],"sig":"\\newacroplural{acronym}[short plural name]{full plural name}","symbol":null}},"environments":{"acronym":{"meta":{},"mode":["text"],"sig":"\\begin{acronym}[longest]"}},"options":{}},"afterpage":{"commands":{"\\afterpage":{"meta":{},"mode":["text"],"sig":"\\afterpage{command%plain}","symbol":null}},"environments":null,"options":{}},"algorithm2e":{"commands":{"\\AlCapFnt":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\AlCapNameFnt":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\AlCapNameSty":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\AlCapNameSty{arg1}","symbol":null},"\\AlCapSty":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\AlCapSty{arg1}","symbol":null},"\\AlFnt":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\AlTitleFnt":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\AlTitleSty":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\AlTitleSty{arg1}","symbol":null},"\\AlgoLineautorefname":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\ArgSty":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\ArgSty{arg1}","symbol":null},"\\Begin":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\Begin(begin-comment){block-inside}","symbol":null},"\\BlankLine":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\Case":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\Case(case-comment){case}{case-block}","symbol":null},"\\CommentSty":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\CommentSty{arg1}","symbol":null},"\\DataSty":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\DataSty{arg1}","symbol":null},"\\DecMargin":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\DecMargin{arg1}","symbol":null},"\\DontPrintSemicolon":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\Else":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\Else(else-comment){else-block}","symbol":null},"\\ElseIf":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\ElseIf(elseif-comment){elseif-block}","symbol":null},"\\For":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\For(for-comment){condition}{for-block}","symbol":null},"\\ForAll":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\ForAll(forall-comment){condition}{forall-block}","symbol":null},"\\ForEach":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\ForEach(foreach-comment){condition}{foreach-block}","symbol":null},"\\FuncSty":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\FuncSty{arg1}","symbol":null},"\\Hlne":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\If":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\If(then-comment){condition}{then-block}","symbol":null},"\\InOutSizeDefined":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\IncMargin":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\IncMargin{arg1}","symbol":null},"\\Indentp":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\Indentp{arg1}","symbol":null},"\\Indm":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\Indmm":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\Indp":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\Indpp":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\KwData":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\KwData{input}","symbol":null},"\\KwIn":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\KwIn{input}","symbol":null},"\\KwOut":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\KwOut{output}","symbol":null},"\\KwResult":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\KwResult{output}","symbol":null},"\\KwRet":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\KwRet{value}","symbol":null},"\\KwSty":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\KwSty{arg1}","symbol":null},"\\KwTo":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":null,"symbol":null},"\\LinesNotNumbered":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\LinesNumbered":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\LinesNumberedHidden":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\NlSty":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\NlSty{arg1}","symbol":null},"\\NoCaptionOfAlgo":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\Other":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\Other(otherwise-comment){otherwise-block}","symbol":null},"\\PrintSemicolon":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ProcArgFnt":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ProcArgSty":{"meta":{},"mode":["text"],"sig":"\\ProcArgSty{arg1}","symbol":null},"\\ProcFnt":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ProcNameFnt":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ProcNameSty":{"meta":{},"mode":["text"],"sig":"\\ProcNameSty{arg1}","symbol":null},"\\ProcSty":{"meta":{},"mode":["text"],"sig":"\\ProcSty{arg1}","symbol":null},"\\Repeat":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\Repeat(repeat-comment){end-condition}{repeat-block}(until-comment)","symbol":null},"\\ResetInOut":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\ResetInOut{arg1}","symbol":null},"\\RestoreCaptionOfAlgo":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\RestyleAlgo":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\RestyleAlgo{arg1}","symbol":null},"\\Return":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\Return{value}","symbol":null},"\\SetAlCapFnt":{"meta":{},"mode":["text"],"sig":"\\SetAlCapFnt{arg1}","symbol":null},"\\SetAlCapHSkip":{"meta":{},"mode":["text"],"sig":"\\SetAlCapHSkip{arg1}","symbol":null},"\\SetAlCapNameFnt":{"meta":{},"mode":["text"],"sig":"\\SetAlCapNameFnt{arg1}","symbol":null},"\\SetAlCapNameSty":{"meta":{},"mode":["text"],"sig":"\\SetAlCapNameSty{arg1}","symbol":null},"\\SetAlCapSkip":{"meta":{},"mode":["text"],"sig":"\\SetAlCapSkip{arg1}","symbol":null},"\\SetAlCapSty":{"meta":{},"mode":["text"],"sig":"\\SetAlCapSty{arg1}","symbol":null},"\\SetAlFnt":{"meta":{},"mode":["text"],"sig":"\\SetAlFnt{arg1}","symbol":null},"\\SetAlTitleFnt":{"meta":{},"mode":["text"],"sig":"\\SetAlTitleFnt{arg1}","symbol":null},"\\SetAlTitleSty":{"meta":{},"mode":["text"],"sig":"\\SetAlTitleSty{arg1}","symbol":null},"\\SetAlgoCaptionLayout":{"meta":{},"mode":["text"],"sig":"\\SetAlgoCaptionLayout{arg1}","symbol":null},"\\SetAlgoCaptionSeparator":{"meta":{},"mode":["text"],"sig":"\\SetAlgoCaptionSeparator{arg1}","symbol":null},"\\SetAlgoFuncName":{"meta":{},"mode":["text"],"sig":"\\SetAlgoFuncName{arg1}{arg2}","symbol":null},"\\SetAlgoInsideSkip":{"meta":{},"mode":["text"],"sig":"\\SetAlgoInsideSkip{arg1}","symbol":null},"\\SetAlgoLined":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetAlgoLongEnd":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetAlgoNlRelativeSize":{"meta":{},"mode":["text"],"sig":"\\SetAlgoNlRelativeSize{arg1}","symbol":null},"\\SetAlgoNoEnd":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetAlgoNoLine":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetAlgoProcName":{"meta":{},"mode":["text"],"sig":"\\SetAlgoProcName{arg1}{arg2}","symbol":null},"\\SetAlgoRefName":{"meta":{},"mode":["text"],"sig":"\\SetAlgoRefName{arg1}","symbol":null},"\\SetAlgoRefRelativeSize":{"meta":{},"mode":["text"],"sig":"\\SetAlgoRefRelativeSize{arg1}","symbol":null},"\\SetAlgoShortEnd":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetAlgoSkip":{"meta":{},"mode":["text"],"sig":"\\SetAlgoSkip{arg1}","symbol":null},"\\SetAlgoVlined":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetAlgorithmName":{"meta":{},"mode":["text"],"sig":"\\SetAlgorithmName{arg1}{arg2}{arg3}","symbol":null},"\\SetArgSty":{"meta":{},"mode":["text"],"sig":"\\SetArgSty{arg1}","symbol":null},"\\SetCommentSty":{"meta":{},"mode":["text"],"sig":"\\SetCommentSty{arg1}","symbol":null},"\\SetDataSty":{"meta":{},"mode":["text"],"sig":"\\SetDataSty{arg1}","symbol":null},"\\SetEndCharOfAlgoLine":{"meta":{},"mode":["text"],"sig":"\\SetEndCharOfAlgoLine{arg1}","symbol":null},"\\SetFillComment":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetFuncSty":{"meta":{},"mode":["text"],"sig":"\\SetFuncSty{arg1}","symbol":null},"\\SetInd":{"meta":{},"mode":["text"],"sig":"\\SetInd{arg1}{arg2}","symbol":null},"\\SetKw":{"meta":{},"mode":["text"],"sig":"\\SetKw{arg1}{arg2}","symbol":null},"\\SetKwArray":{"meta":{},"mode":["text"],"sig":"\\SetKwArray{arg1}{arg2}","symbol":null},"\\SetKwBlock":{"meta":{},"mode":["text"],"sig":"\\SetKwBlock{arg1}{arg2}{arg3}","symbol":null},"\\SetKwComment":{"meta":{},"mode":["text"],"sig":"\\SetKwComment{arg1}{arg2}{arg3}","symbol":null},"\\SetKwData":{"meta":{},"mode":["text"],"sig":"\\SetKwData{arg1}{arg2}","symbol":null},"\\SetKwFor":{"meta":{},"mode":["text"],"sig":"\\SetKwFor{arg1}{arg2}{arg3}{arg4}","symbol":null},"\\SetKwFunction":{"meta":{},"mode":["text"],"sig":"\\SetKwFunction{arg1}{arg2}","symbol":null},"\\SetKwHangingKw":{"meta":{},"mode":["text"],"sig":"\\SetKwHangingKw{arg1}{arg2}","symbol":null},"\\SetKwIF":{"meta":{},"mode":["text"],"sig":"\\SetKwIF{arg1}{arg2}{arg3}{arg4}{arg5}{arg6}{arg7}{arg8}","symbol":null},"\\SetKwInOut":{"meta":{},"mode":["text"],"sig":"\\SetKwInOut{arg1}{arg2}","symbol":null},"\\SetKwInput":{"meta":{},"mode":["text"],"sig":"\\SetKwInput{arg1}{arg2}","symbol":null},"\\SetKwRepeat":{"meta":{},"mode":["text"],"sig":"\\SetKwRepeat{arg1}{arg2}{arg3}","symbol":null},"\\SetKwSty":{"meta":{},"mode":["text"],"sig":"\\SetKwSty{arg1}","symbol":null},"\\SetKwSwitch":{"meta":{},"mode":["text"],"sig":"\\SetKwSwitch{arg1}{arg2}{arg3}{arg4}{arg5}{arg6}{arg7}{arg8}","symbol":null},"\\SetLine":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetNlSkip":{"meta":{},"mode":["text"],"sig":"\\SetNlSkip{arg1}","symbol":null},"\\SetNlSty":{"meta":{},"mode":["text"],"sig":"\\SetNlSty{arg1}{arg2}{arg3}","symbol":null},"\\SetNoFillComment":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetNoLine":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetNothing":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetProcArgFnt":{"meta":{},"mode":["text"],"sig":"\\SetProcArgFnt{arg1}","symbol":null},"\\SetProcArgSty":{"meta":{},"mode":["text"],"sig":"\\SetProcArgSty{arg1}","symbol":null},"\\SetProcFnt":{"meta":{},"mode":["text"],"sig":"\\SetProcFnt{arg1}","symbol":null},"\\SetProcNameFnt":{"meta":{},"mode":["text"],"sig":"\\SetProcNameFnt{arg1}","symbol":null},"\\SetProcNameSty":{"meta":{},"mode":["text"],"sig":"\\SetProcNameSty{arg1}","symbol":null},"\\SetProcSty":{"meta":{},"mode":["text"],"sig":"\\SetProcSty{arg1}","symbol":null},"\\SetSideCommentLeft":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetSideCommentRight":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetTitleSty":{"meta":{},"mode":["text"],"sig":"\\SetTitleSty{arg1}{arg2}","symbol":null},"\\SetVline":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\SetVlineSkip":{"meta":{},"mode":["text"],"sig":"\\SetVlineSkip{arg1}","symbol":null},"\\Setnlskip":{"meta":{},"mode":["text"],"sig":"\\Setnlskip{arg1}","symbol":null},"\\Setnlsty":{"meta":{},"mode":["text"],"sig":"\\Setnlsty{arg1}{arg2}{arg3}","symbol":null},"\\ShowLn":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ShowLnLabel":{"meta":{},"mode":["text"],"sig":"\\ShowLnLabel{arg1}","symbol":null},"\\Switch":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\Switch(switch-comment){condition}{switch-block}","symbol":null},"\\TitleOfAlgo":{"meta":{},"mode":["text"],"sig":"\\TitleOfAlgo{arg1}","symbol":null},"\\TitleSty":{"meta":{},"mode":["text"],"sig":"\\TitleSty{arg1}","symbol":null},"\\Titleofalgo":{"meta":{},"mode":["text"],"sig":"\\Titleofalgo{arg1}","symbol":null},"\\While":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\While(while-comment){condition}{while-block}","symbol":null},"\\algocfautorefname":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\algocffuncautorefname":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\algocfprocautorefname":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\algoendfloat":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\algoheightrule":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\algoheightruledefault":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\algoplace":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\algorithmautorefname":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\algorithmcflinename":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\algorithmcfname":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\algotitleheightrule":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\algotitleheightruledefault":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\decmargin":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\decmargin{arg1}","symbol":null},"\\dontprintsemicolon":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\eIf":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\eIf(then-comment){condition}{then-block}(else-comment){else-block}","symbol":null},"\\enl":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\functionautorefname":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\incmargin":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\incmargin{arg1}","symbol":null},"\\l":{"info":"See \"\\l\" in latexrefman (Additional Latin letters).","meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\lCase":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lCase(case-comment){case}{case-line}","symbol":null},"\\lElse":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lElse(else-comment){else-line}","symbol":null},"\\lElseIf":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lElseIf{elseif-line}","symbol":null},"\\lElseif":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lElseif(elseif-line){elseif-block}","symbol":null},"\\lFor":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lFor(for-comment){condition}{for-line}","symbol":null},"\\lForAll":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lForAll(forall-comment){condition}{forall-line}","symbol":null},"\\lForEach":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lForEach(foreach-comment){condition}{foreach-line}","symbol":null},"\\lIf":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lIf(if-comment){condition}{then-line}","symbol":null},"\\lOther":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lOther(otherwise-comment){otherwise-line}","symbol":null},"\\lRepeat":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lRepeat(repeat-comment){end-condition}{repeat-line}","symbol":null},"\\lWhile":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\lWhile(while-comment){condition}{while-line}","symbol":null},"\\leIf":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\leIf(comment){condition}{then-line}{else-line}","symbol":null},"\\linesnotnumbered":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\linesnumbered":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\linesnumberedhidden":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\listalgorithmcfname":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\listofalgocfs":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\lnl":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\lnl{arg1}","symbol":null},"\\lnlset":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\lnlset{arg1}{arg2}","symbol":null},"\\next":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\nl":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":null,"symbol":null},"\\nlSty":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\nlSty{arg1}","symbol":null},"\\nllabel":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\nllabel{arg1}","symbol":null},"\\nlset":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\nlset{arg1}","symbol":null},"\\nocaptionofalgo":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\printsemicolon":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\procedureautorefname":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\relsize":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\relsize{arg1}","symbol":null},"\\restorecaptionofalgo":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\restylealgo":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\restylealgo{arg1}","symbol":null},"\\setLeftLinesNumbers":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\setRightLinesNumbers":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\setalcaphskip":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\setalcaphskip{arg1}","symbol":null},"\\setalcapskip":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\setalcapskip{arg1}","symbol":null},"\\setnlskip":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\setnlskip{arg1}","symbol":null},"\\showln":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\showlnlabel":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\showlnlabel{arg1}","symbol":null},"\\tcc":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\tcc{lines-of-comments}","symbol":null},"\\tcc*":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":["\\tcc*[f]{right-justified-side-comment-without-line-ending}","\\tcc*[h]{left-justified-side-comment-without-line-ending}","\\tcc*[l]{left-justified-side-comment-with-line-ending}","\\tcc*[r]{right-justified-side-comment-with-line-ending}","\\tcc*{right-justified-side-comment}"],"symbol":null},"\\tcp":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\tcp{lines-of-comments}","symbol":null},"\\tcp*":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":["\\tcp*[f]{right-justified-side-comment-without-line-ending}","\\tcp*[h]{left-justified-side-comment-without-line-ending}","\\tcp*[l]{left-justified-side-comment-with-line-ending}","\\tcp*[r]{right-justified-side-comment-with-line-ending}","\\tcp*{right-justified-side-comment}"],"symbol":null},"\\test":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\theAlgoLine":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\theHAlgoLine":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\theHalgocf":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\theHalgocffunc":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\theHalgocfproc":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\thealgocf":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\thealgocfline":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\thealgocfproc":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\thepostalgo":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\uCase":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\uCase(case-comment){case}{case-block-without-end}","symbol":null},"\\uElse":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\uElse(else-block-comment){else-block-without-end}","symbol":null},"\\uElseIf":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\uElseIf(elseif-comment){elseif-block-without-end}","symbol":null},"\\uIf":{"meta":{"classifiers":"/algorithm,algorithm*,procedure,procedure*,function,function*","environments":["algorithm","algorithm*","procedure","procedure*","function","function*"]},"mode":["text"],"sig":"\\uIf(then-comment){condition}{then-block-without-end}","symbol":null},"\\vespace":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null}},"environments":{"algocf":{"meta":{},"mode":["text"],"sig":null},"algorithm":{"meta":{},"mode":["text"],"sig":null},"algorithm*":{"meta":{},"mode":["text"],"sig":null},"function":{"meta":{},"mode":["text"],"sig":null},"function*":{"meta":{},"mode":["text"],"sig":null},"procedure":{"meta":{},"mode":["text"],"sig":null},"procedure*":{"meta":{},"mode":["text"],"sig":null}},"includes":["color","endfloat","ifthen","relsize","tocbibind","xspace"],"options":{}},"allrunes":{"commands":{"\\arafamily":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\arcfamily":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\arlfamily":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\armfamily":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\arnfamily":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\artfamily":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\curvedtwigs":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\hflip":{"meta":{},"mode":["text"],"sig":"\\hflip{rune}","symbol":null},"\\hightwigs":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\lfseries":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\lowtwigs":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\roundedtwigs":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\straighttwigs":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\textara":{"meta":{},"mode":["text"],"sig":"\\textara{text}","symbol":null},"\\textarc":{"meta":{},"mode":["text"],"sig":"\\textarc{text}","symbol":null},"\\textarl":{"meta":{},"mode":["text"],"sig":"\\textarl{text}","symbol":null},"\\textarm":{"meta":{},"mode":["text"],"sig":"\\textarm{text}","symbol":null},"\\textarn":{"meta":{},"mode":["text"],"sig":"\\textarn{text}","symbol":null},"\\textart":{"meta":{},"mode":["text"],"sig":"\\textart{text}","symbol":null},"\\textcu":{"meta":{},"mode":["text"],"sig":"\\textcu{text}","symbol":null},"\\texthi":{"meta":{},"mode":["text"],"sig":"\\texthi{text}","symbol":null},"\\textlf":{"meta":{},"mode":["text"],"sig":"\\textlf{text}","symbol":null},"\\textlo":{"meta":{},"mode":["text"],"sig":"\\textlo{text}","symbol":null},"\\textro":{"meta":{},"mode":["text"],"sig":"\\textro{text}","symbol":null},"\\textst":{"meta":{},"mode":["text"],"sig":"\\textst{text}","symbol":null},"\\textwil":{"meta":{},"mode":["text"],"sig":"\\textwil{text}","symbol":null},"\\textwol":{"meta":{},"mode":["text"],"sig":"\\textwol{text}","symbol":null},"\\turn":{"meta":{},"mode":["text"],"sig":"\\turn{rune}","symbol":null},"\\vflip":{"meta":{},"mode":["text"],"sig":"\\vflip{rune}","symbol":null},"\\withlines":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\withoutlines":{"meta":{},"mode":["text"],"sig":null,"symbol":null}},"environments":null,"options":{}},"amsbsy":{"commands":{"\\boldsymbol":{"info":null,"meta":{},"mode":["math"],"sig":"\\boldsymbol{symbol}","symbol":null},"\\pmb":{"info":null,"meta":{},"mode":["math"],"sig":"\\pmb{symbol}","symbol":null}},"environments":null,"options":{}},"amsfonts":{"commands":{"\\angle":{"info":"See \"\\angle\" in latexrefman (Math symbols).","meta":{},"mode":["math"],"sig":null,"symbol":"\u2220"},"\\dashleftarrow":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u21e0"},"\\dashrightarrow":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u21e2"},"\\hbar":{"info":"See \"\\hbar\" in latexrefman (Math symbols).","meta":{},"mode":["math"],"sig":null,"symbol":"\u210f"},"\\lhd":{"info":"See \"\\lhd\" in latexrefman (Math symbols).","meta":{},"mode":["math"],"sig":null,"symbol":"\u22b2"},"\\llcorner":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u2514"},"\\lozenge":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u25ca"},"\\lrcorner":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u2518"},"\\mathbb":{"info":null,"meta":{},"mode":["math"],"sig":"\\mathbb{text}","symbol":null},"\\mathbf":{"info":"\\mathbf{text}\nSee \"\\mathbf\" in latexrefman (Font styles).","meta":{},"mode":["math","text"],"sig":"\\mathbf{text}","symbol":null},"\\mathfrak":{"info":null,"meta":{},"mode":["math"],"sig":"\\mathfrak{text}","symbol":null},"\\mho":{"info":"See \"\\mho\" in latexrefman (Math symbols).","meta":{},"mode":["math"],"sig":null,"symbol":"\u2127"},"\\rhd":{"info":"See \"\\rhd\" in latexrefman (Math symbols).","meta":{},"mode":["math"],"sig":null,"symbol":"\u22b3"},"\\rightleftharpoons":{"info":"See \"\\rightleftharpoons\" in latexrefman (Math symbols).","meta":{},"mode":["math"],"sig":null,"symbol":"\u21cc"},"\\rightsquigarrow":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u21dd"},"\\sqsubset":{"info":"See \"\\sqsubset\" in latexrefman (Math symbols).","meta":{},"mode":["math"],"sig":null,"symbol":"\u228f"},"\\sqsupset":{"info":"See \"\\sqsupset\" in latexrefman (Math symbols).","meta":{},"mode":["math"],"sig":null,"symbol":"\u2290"},"\\square":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u25a1"},"\\trianglelefteq":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u22b4"},"\\trianglerighteq":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u22b5"},"\\ulcorner":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u250c"},"\\unlhd":{"info":"See \"\\unlhd\" in latexrefman (Math symbols).","meta":{},"mode":["math"],"sig":null,"symbol":"\u22b4"},"\\unrhd":{"info":"See \"\\unrhd\" in latexrefman (Math symbols).","meta":{},"mode":["math"],"sig":null,"symbol":"\u22b5"},"\\urcorner":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u2510"},"\\vartriangleleft":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u22b2"},"\\vartriangleright":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u22b3"},"\\widehat":{"info":"\\widehat{letter}\nSee \"\\widehat\" in latexrefman (Math accents).","meta":{},"mode":["math"],"sig":"\\widehat{letter}","symbol":"\u02c6"},"\\widetilde":{"info":"\\widetilde{letter}\nSee \"\\widetilde\" in latexrefman (Math accents).","meta":{},"mode":["math"],"sig":"\\widetilde{letter}","symbol":"\u02dc"}},"environments":null,"options":{}},"amsmath":{"commands":{"\\AmS":{"meta":{},"mode":["math","text"],"sig":null,"symbol":null},"\\AmSfont":{"meta":{},"mode":["math","text"],"sig":null,"symbol":null},"\\DeclareMathOperator":{"info":null,"meta":{"classifiers":"nd"},"mode":["math"],"sig":"\\DeclareMathOperator{command}{definition}","symbol":null},"\\DeclareMathOperator*":{"meta":{"classifiers":"nd"},"mode":["math","text"],"sig":"\\DeclareMathOperator*{command}{definition}","symbol":null},"\\allowdisplaybreaks":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":null},"\\binom":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\binom{above}{below}","symbol":null},"\\bmod":{"info":"See \"\\bmod\" in latexrefman (Math functions).","meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"mod"},"\\boldsymbol":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\boldsymbol{argument}","symbol":null},"\\boxed":{"info":null,"meta":{},"mode":["math"],"sig":"\\boxed{argument}","symbol":null},"\\cfrac":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\cfrac[align]{%}{%}","symbol":null},"\\dbinom":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\dbinom{above}{below}","symbol":null},"\\ddddot":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\ddddot{text}","symbol":"...."},"\\dddot":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\dddot{text}","symbol":"..."},"\\dfrac":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\dfrac{%}{%}","symbol":null},"\\displaybreak":{"info":null,"meta":{},"mode":["math"],"sig":"\\displaybreak[value]","symbol":null},"\\dotsb":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ef"},"\\dotsc":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2026"},"\\dotsi":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ef"},"\\dotsm":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ef"},"\\dotso":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2026"},"\\eqref":{"info":null,"meta":{"classifiers":"r"},"mode":["math","text"],"sig":"\\eqref{label}","symbol":null},"\\hdotsfor":{"info":null,"meta":{},"mode":["math"],"sig":"\\hdotsfor[multiplier]{columns}","symbol":null},"\\idotsint":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u222b\u22ef\u222b"},"\\iiiint":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u222c\u222c"},"\\iiint":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u222d"},"\\iint":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u222c"},"\\impliedby":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u27f8"},"\\implies":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u27f9"},"\\intertext":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\intertext{word or phrase}","symbol":null},"\\lVert":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2225"},"\\leftroot":{"info":null,"meta":{},"mode":["math"],"sig":"\\leftroot{argument}","symbol":null},"\\lvert":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2223"},"\\medspace":{"info":"See \"\\medspace\" in latexrefman (Spacing in math mode).","meta":{},"mode":["math"],"sig":null,"symbol":null},"\\mod":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"mod"},"\\mspace":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\mspace{dimen}","symbol":null},"\\negmedspace":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":null},"\\negthickspace":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":null},"\\negthinspace":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":null},"\\nobreakdash":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":null},"\\notag":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":null},"\\operatorname":{"info":null,"meta":{},"mode":["math"],"sig":"\\operatorname{name}","symbol":null},"\\operatornamewithlimits":{"meta":{},"mode":["math","text"],"sig":"\\operatornamewithlimits{name}","symbol":null},"\\overleftrightarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\overleftrightarrow{argument}","symbol":"\u2194"},"\\overset":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\overset{superscript}{argument}","symbol":null},"\\pmod":{"info":"See \"\\pmod\" in latexrefman (Math functions).","meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"(mod)"},"\\pod":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":null},"\\rVert":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2225"},"\\raisetag":{"info":null,"meta":{},"mode":["math"],"sig":"\\raisetag{dimen}","symbol":null},"\\rvert":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2223"},"\\sideset":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\sideset{left}{right}{symbol}","symbol":null},"\\smash":{"info":null,"meta":{},"mode":["math"],"sig":"\\smash[valign]{argument}","symbol":null},"\\substack":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\substack{argument}","symbol":null},"\\tag":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\tag{label}","symbol":null},"\\tag*":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\tag*{label}","symbol":null},"\\tbinom":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\tbinom{above}{below}","symbol":null},"\\text":{"info":null,"meta":{},"mode":["math"],"sig":"\\text{word or phrase}","symbol":null},"\\tfrac":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\tfrac{%}{%}","symbol":null},"\\thickspace":{"info":"See \"\\thickspace\" in latexrefman (Spacing in math mode).","meta":{},"mode":["math"],"sig":null,"symbol":null},"\\thinspace":{"info":"See \"\\thinspace\" in latexrefman (\\thinspace).","meta":{},"mode":["math"],"sig":null,"symbol":null},"\\underleftarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\underleftarrow{argument}","symbol":"\u2190"},"\\underleftrightarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\underleftrightarrow{argument}","symbol":"\u2194"},"\\underrightarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\underrightarrow{argument}","symbol":"\u2192"},"\\underset":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\underset{subscript}{argument}","symbol":null},"\\uproot":{"info":null,"meta":{},"mode":["math"],"sig":"\\uproot{argument}","symbol":null},"\\varDelta":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u0394"},"\\varGamma":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u0393"},"\\varLambda":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u039b"},"\\varOmega":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u03a9"},"\\varPhi":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u03a6"},"\\varPi":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u03a0"},"\\varPsi":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u03a8"},"\\varSigma":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u03a3"},"\\varTheta":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u0398"},"\\varUpsilon":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u03a5"},"\\varXi":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u039e"},"\\xleftarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\xleftarrow[subscript]{superscript}","symbol":"\u2190"},"\\xrightarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\xrightarrow[subscript]{superscript}","symbol":"\u2192"}},"environments":{"Bmatrix":{"info":null,"meta":{"classifiers":"m\\array"},"mode":["math","text"],"sig":null},"Vmatrix":{"info":null,"meta":{"classifiers":"m\\array"},"mode":["math","text"],"sig":null},"align":{"info":null,"meta":{"classifiers":"\\math,array","env_aliases":["math","array"]},"mode":["math","text"],"sig":null},"align*":{"info":null,"meta":{"classifiers":"\\math,array","env_aliases":["math","array"]},"mode":["math"],"sig":null},"alignat":{"info":null,"meta":{"classifiers":"\\math,array","env_aliases":["math","array"]},"mode":["math","text"],"sig":"\\begin{alignat}[alignment]{ncols}"},"alignat*":{"info":null,"meta":{"classifiers":"\\math,array","env_aliases":["math","array"]},"mode":["math"],"sig":"\\begin{alignat*}[alignment]{ncols}"},"aligned":{"info":null,"meta":{},"mode":["text"],"sig":"\\begin{aligned}[alignment]"},"alignedat":{"info":null,"meta":{},"mode":["text"],"sig":null},"bmatrix":{"info":null,"meta":{"classifiers":"m\\array"},"mode":["math","text"],"sig":null},"cases":{"info":null,"meta":{"classifiers":"\\array","env_aliases":["array"]},"mode":["math","text"],"sig":null},"equation*":{"info":null,"meta":{"classifiers":"\\math","env_aliases":["math"]},"mode":["math","text"],"sig":null},"flalign":{"meta":{"classifiers":"\\math,array","env_aliases":["math","array"]},"mode":["math"],"sig":null},"flalign*":{"meta":{"classifiers":"\\math,array","env_aliases":["math","array"]},"mode":["math"],"sig":null},"gather":{"info":null,"meta":{"classifiers":"\\math","env_aliases":["math"]},"mode":["math","text"],"sig":null},"gather*":{"info":null,"meta":{"classifiers":"\\math","env_aliases":["math"]},"mode":["math"],"sig":null},"gathered":{"info":null,"meta":{"classifiers":"\\math","env_aliases":["math"]},"mode":["math","text"],"sig":"\\begin{gathered}[alignment]"},"matrix":{"info":null,"meta":{"classifiers":"m\\array"},"mode":["math","text"],"sig":null},"multline":{"info":null,"meta":{"classifiers":"\\math","env_aliases":["math"]},"mode":["math","text"],"sig":null},"multline*":{"info":null,"meta":{"classifiers":"\\math","env_aliases":["math"]},"mode":["math"],"sig":null},"pmatrix":{"info":null,"meta":{"classifiers":"m\\array"},"mode":["math","text"],"sig":null},"smallmatrix":{"info":null,"meta":{"classifiers":"m\\array"},"mode":["text"],"sig":null},"split":{"info":null,"meta":{"classifiers":"\\array","env_aliases":["array"]},"mode":["text"],"sig":null},"subarray":{"info":null,"meta":{},"mode":["text"],"sig":"\\begin{subarray}[align]"},"subequations":{"info":null,"meta":{},"mode":["text"],"sig":null},"vmatrix":{"info":null,"meta":{"classifiers":"m\\array"},"mode":["math","text"],"sig":null},"xalignat":{"meta":{},"mode":["text"],"sig":null},"xalignat*":{"meta":{},"mode":["text"],"sig":null},"xxalignat":{"meta":{},"mode":["text"],"sig":null}},"options":{"\\usepackage":{"alignedleftspaceno":null,"alignedleftspaceyes":null,"alignedleftspaceyesifneg":null,"centertags":null,"intlimits":null,"namelimits":null,"nointlimits":null,"nonamelimits":null,"nosumlimits":null,"reqno":null,"sumlimits":null,"tbtags":null}}},"amsopn":{"commands":{"\\Pr":{"info":"See \"\\Pr\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"Pr"},"\\arccos":{"info":"See \"\\arccos\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"arccos"},"\\arcsin":{"info":"See \"\\arcsin\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"arcsin"},"\\arctan":{"info":"See \"\\arctan\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"arctan"},"\\arg":{"info":"See \"\\arg\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"arg"},"\\cos":{"info":"See \"\\cos\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"cos"},"\\cosh":{"info":"See \"\\cosh\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"cosh"},"\\cot":{"info":"See \"\\cot\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"cot"},"\\coth":{"info":"See \"\\coth\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"coth"},"\\csc":{"info":"See \"\\csc\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"csc"},"\\deg":{"info":"See \"\\deg\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"deg"},"\\det":{"info":"See \"\\det\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"det"},"\\dim":{"info":"See \"\\dim\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"dim"},"\\exp":{"info":"See \"\\exp\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"exp"},"\\gcd":{"info":"See \"\\gcd\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"gcd"},"\\hom":{"info":"See \"\\hom\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"hom"},"\\inf":{"info":"See \"\\inf\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"inf"},"\\injlim":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"injlim"},"\\ker":{"info":"See \"\\ker\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"ker"},"\\lg":{"info":"See \"\\lg\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"lg"},"\\lim":{"info":"See \"\\lim\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"lim"},"\\liminf":{"info":"See \"\\liminf\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"liminf"},"\\limsup":{"info":"See \"\\limsup\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"limsup"},"\\ln":{"info":"See \"\\ln\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"ln"},"\\log":{"info":"See \"\\log\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"log"},"\\max":{"info":"See \"\\max\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"max"},"\\min":{"info":"See \"\\min\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"min"},"\\nolimits":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":null},"\\operatornamewithlimits":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\projlim":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"projlim"},"\\sec":{"info":"See \"\\sec\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"sec"},"\\sin":{"info":"See \"\\sin\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"sin"},"\\sinh":{"info":"See \"\\sinh\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"sinh"},"\\sup":{"info":"See \"\\sup\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"sup"},"\\tan":{"info":"See \"\\tan\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"tan"},"\\tanh":{"info":"See \"\\tanh\" in latexrefman (Math functions).","meta":{},"mode":["math"],"sig":null,"symbol":"tanh"},"\\varinjlim":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"lim\u2212\u2192"},"\\varliminf":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"lim\u2212\u2212\u2212"},"\\varlimsup":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"\u00af\u00af\u00af\u00af\u00af\u00af\u00af\u00aflim"},"\\varprojlim":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":"lim\u2190\u2212"}},"environments":null,"options":{}},"amssymb":{"commands":{"\\Bbbk":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"k"},"\\Box":{"info":"See \"\\Box\" in latexrefman (Math symbols).","meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u25a1"},"\\Bumpeq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u224e"},"\\Cap":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22d2"},"\\Cup":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22d3"},"\\Finv":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2132"},"\\Game":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2141"},"\\Lleftarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21da"},"\\Lsh":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21b0"},"\\Rrightarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21db"},"\\Rsh":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21b1"},"\\Subset":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22d0"},"\\Supset":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22d1"},"\\Vdash":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22a9"},"\\Vvdash":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22aa"},"\\approxeq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u224a"},"\\backepsilon":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u220d"},"\\backprime":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2035"},"\\backsim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u223d"},"\\backsimeq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22cd"},"\\barwedge":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22bc"},"\\because":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2235"},"\\beth":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2136"},"\\between":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u226c"},"\\bigstar":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2605"},"\\blacklozenge":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u29eb"},"\\blacksquare":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u25a0"},"\\blacktriangle":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u25b2"},"\\blacktriangledown":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u25bc"},"\\blacktriangleleft":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u25c0"},"\\blacktriangleright":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u25b6"},"\\boxdot":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22a1"},"\\boxminus":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u229f"},"\\boxplus":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u229e"},"\\boxtimes":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22a0"},"\\bumpeq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u224f"},"\\centerdot":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22c5"},"\\checkmark":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2713"},"\\circeq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2257"},"\\circlearrowleft":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21ba"},"\\circlearrowright":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21bb"},"\\circledS":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u24c8"},"\\circledast":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u229b"},"\\circledcirc":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u229a"},"\\circleddash":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u229d"},"\\complement":{"info":"See \"\\complement\" in latexrefman (Math symbols).","meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2201"},"\\curlyeqprec":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22de"},"\\curlyeqsucc":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22df"},"\\curlyvee":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ce"},"\\curlywedge":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22cf"},"\\curvearrowleft":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21b6"},"\\curvearrowright":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21b7"},"\\daleth":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2138"},"\\diagdown":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2572"},"\\diagup":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2571"},"\\digamma":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u03dd"},"\\divideontimes":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22c7"},"\\doteqdot":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2251"},"\\dotplus":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2214"},"\\doublebarwedge":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a5e"},"\\downdownarrows":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21ca"},"\\downharpoonleft":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21c3"},"\\downharpoonright":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21c2"},"\\eqcirc":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2256"},"\\eqsim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2242"},"\\eqslantgtr":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a96"},"\\eqslantless":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a95"},"\\eth":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u00f0"},"\\fallingdotseq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2252"},"\\geqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2267"},"\\geqslant":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a7e"},"\\ggg":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22d9"},"\\gimel":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2137"},"\\gnapprox":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a8a"},"\\gneq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a88"},"\\gneqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2269"},"\\gnsim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22e7"},"\\gtrapprox":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a86"},"\\gtrdot":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22d7"},"\\gtreqless":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22db"},"\\gtreqqless":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a8c"},"\\gtrless":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2277"},"\\gtrsim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2273"},"\\gvertneqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue00d"},"\\hslash":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u210f"},"\\intercal":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ba"},"\\leftarrowtail":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21a2"},"\\leftleftarrows":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21c7"},"\\leftrightarrows":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21c6"},"\\leftrightharpoons":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21cb"},"\\leftrightsquigarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21ad"},"\\leftthreetimes":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22cb"},"\\leqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2266"},"\\leqslant":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a7d"},"\\lessapprox":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a85"},"\\lessdot":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22d6"},"\\lesseqgtr":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22da"},"\\lesseqqgtr":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a8b"},"\\lessgtr":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2276"},"\\lesssim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2272"},"\\lll":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22d8"},"\\lnapprox":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a89"},"\\lneq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2a87"},"\\lneqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2268"},"\\lnsim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22e6"},"\\looparrowleft":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21ab"},"\\looparrowright":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21ac"},"\\lozenge":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u25ca"},"\\ltimes":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22c9"},"\\lvertneqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue00c"},"\\maltese":{"info":null,"meta":{"classifiers":"m"},"mode":["math","text"],"sig":null,"symbol":"\u2720"},"\\mathbb":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\mathbb{text}","symbol":null},"\\mathfrak":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":"\\mathfrak{text}","symbol":null},"\\measuredangle":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2221"},"\\multimap":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22b8"},"\\nLeftarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21cd"},"\\nLeftrightarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21ce"},"\\nRightarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21cf"},"\\nVDash":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22af"},"\\nVdash":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ae"},"\\ncong":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2246"},"\\nexists":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2204"},"\\ngeq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2271"},"\\ngeqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue00e"},"\\ngeqslant":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue00f"},"\\ngtr":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u226f"},"\\nleftarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u219a"},"\\nleftrightarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21ae"},"\\nleq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2270"},"\\nleqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue011"},"\\nleqslant":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue010"},"\\nless":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u226e"},"\\nmid":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2224"},"\\nparallel":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2226"},"\\nprec":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2280"},"\\npreceq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22e0"},"\\nrightarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u219b"},"\\nshortmid":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue006"},"\\nshortparallel":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue007"},"\\nsim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2241"},"\\nsubseteq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2288"},"\\nsubseteqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue016"},"\\nsucc":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2281"},"\\nsucceq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22e1"},"\\nsupseteq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2289"},"\\nsupseteqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue018"},"\\ntriangleleft":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ea"},"\\ntrianglelefteq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ec"},"\\ntriangleright":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22eb"},"\\ntrianglerighteq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ed"},"\\nvDash":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ad"},"\\nvdash":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ac"},"\\pitchfork":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22d4"},"\\precapprox":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2ab7"},"\\preccurlyeq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u227c"},"\\precnapprox":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2ab9"},"\\precneqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2ab5"},"\\precnsim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22e8"},"\\precsim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u227e"},"\\rightarrowtail":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21a3"},"\\rightleftarrows":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21c4"},"\\rightrightarrows":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21c9"},"\\rightsquigarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21dd"},"\\rightthreetimes":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22cc"},"\\risingdotseq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2253"},"\\rtimes":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22ca"},"\\shortmid":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2223"},"\\shortparallel":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2225"},"\\smallfrown":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2322"},"\\smallsetminus":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2216"},"\\smallsmile":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2323"},"\\sphericalangle":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2222"},"\\square":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u25a1"},"\\subseteqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2ac5"},"\\subsetneq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u228a"},"\\subsetneqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2acb"},"\\succapprox":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2ab8"},"\\succcurlyeq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u227d"},"\\succnapprox":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2aba"},"\\succneqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2ab6"},"\\succnsim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22e9"},"\\succsim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u227f"},"\\supseteqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2ac6"},"\\supsetneq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u228b"},"\\supsetneqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2acc"},"\\therefore":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2234"},"\\thickapprox":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2248"},"\\thicksim":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u223c"},"\\triangledown":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u25bd"},"\\trianglelefteq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22b4"},"\\triangleq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u225c"},"\\trianglerighteq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22b5"},"\\twoheadleftarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u219e"},"\\twoheadrightarrow":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21a0"},"\\upharpoonleft":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21bf"},"\\upharpoonright":{"info":"See \"\\upharpoonright\" in latexrefman (Math symbols).","meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21be"},"\\upuparrows":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u21c8"},"\\vDash":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22a8"},"\\varkappa":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u03f0"},"\\varnothing":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u2205"},"\\varpropto":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u221d"},"\\varsubsetneq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue01a"},"\\varsubsetneqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue017"},"\\varsupsetneq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue01b"},"\\varsupsetneqq":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\ue019"},"\\vartriangle":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u25b3"},"\\vartriangleleft":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22b2"},"\\vartriangleright":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22b3"},"\\veebar":{"info":null,"meta":{"classifiers":"m"},"mode":["math"],"sig":null,"symbol":"\u22bb"}},"environments":null,"options":{}},"amsthm":{"commands":{"\\newtheorem":{"info":"\\newtheorem{envname}{caption}[within]\n\\newtheorem{envname}[numberedlike]{caption}\nSee \"\\newtheorem\" in latexrefman (\\newtheorem).","meta":{"classifiers":"N"},"mode":["math","text"],"sig":["\\newtheorem{envname}{caption}[within]","\\newtheorem{envname}[numberedlike]{caption}"],"symbol":null},"\\newtheorem*":{"meta":{"classifiers":"N"},"mode":["text"],"sig":["\\newtheorem*{envname}{caption}[within]","\\newtheorem*{envname}[numberedlike]{caption}"],"symbol":null},"\\newtheoremstyle":{"meta":{},"mode":["text"],"sig":"\\newtheoremstyle{stylename}{spaceabove}{spacebelow}{bodyfont}{indentamt}{headfont}{headpunct}{headspace}{headspec}","symbol":null},"\\qed":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\qedhere":{"info":null,"meta":{},"mode":["math"],"sig":null,"symbol":null},"\\qedsymbol":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\swapnumbers":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\theoremstyle":{"info":null,"meta":{},"mode":["math"],"sig":"\\theoremstyle{style}","symbol":null}},"environments":{"proof":{"info":null,"meta":{},"mode":["math"],"sig":"\\begin{proof}[caption]"}},"options":{}},"appendix":{"commands":{"\\addappheadtotoc":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendicestocpagenum":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendix":{"info":"See \"\\appendix\" in latexrefman (Sectioning).","meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixheaderoff":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixheaderon":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixpage":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixpagename":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixpageoff":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixpageon":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixtitleoff":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixtitleon":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixtitletocoff":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixtitletocon":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixtocname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixtocoff":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixtocon":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\noappendicestocpagenum":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\restoreapp":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\setthesection":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\setthesubsection":{"meta":{},"mode":["text"],"sig":null,"symbol":null}},"environments":{"appendices":{"meta":{},"mode":["text"],"sig":null},"subappendices":{"meta":{},"mode":["text"],"sig":null}},"options":{}},"array":{"commands":{"\\arraybackslash":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\extrarowheight":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\extratabsurround":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\firsthline":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\lasthline":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\newcolumntype":{"meta":{},"mode":["text"],"sig":"\\newcolumntype{name}{argument}","symbol":null},"\\showcols":{"meta":{},"mode":["text"],"sig":null,"symbol":null}},"environments":null,"options":{}},"attachfile":{"commands":{"\\attachfile":{"meta":{},"mode":["text"],"sig":"\\attachfile[options]{filename}","symbol":null},"\\attachfilesetup":{"meta":{},"mode":["text"],"sig":"\\attachfilesetup{options}","symbol":null},"\\noattachfile":{"meta":{},"mode":["text"],"sig":"\\noattachfile[options]","symbol":null},"\\notextattachfile":{"meta":{},"mode":["text"],"sig":"\\notextattachfile[options]{text}","symbol":null},"\\textattachfile":{"meta":{},"mode":["text"],"sig":"\\textattachfile[options]{filename}{text}","symbol":null}},"environments":null,"options":{}},"babel":{"commands":{"\\DecimalMathComma":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\Fcolonspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\FrenchEnumerate":{"meta":{},"mode":["text"],"sig":"\\FrenchEnumerate{arg}","symbol":null},"\\Fthinspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\No":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\NoAutoSpacing":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\Nos":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\StandardFootnotes":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\StandardMathComma":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\abstractname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\aliasshorthand":{"meta":{},"mode":["text"],"sig":"\\aliasshorthand{character}{shorthand}","symbol":null},"\\alsoname":{"info":"See \"\\alsoname\" in latexrefman (Indexes).","meta":{},"mode":["text"],"sig":null,"symbol":null},"\\appendixname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\babelhyphenation":{"meta":{},"mode":["text"],"sig":"\\babelhyphenation[language, ...]{hyphenations}","symbol":null},"\\bibname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bsc":{"meta":{},"mode":["text"],"sig":"\\bsc{arg}","symbol":null},"\\captionsfrench":{"meta":{},"mode":["text"],"sig":"\\captionsfrench{arg}","symbol":null},"\\ccname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\chaptername":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\contentsname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\defineshorthand":{"meta":{},"mode":["text"],"sig":"\\defineshorthand{characters}{action}","symbol":null},"\\degres":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\dotFFN":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\enclname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\extrasfrenchb":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\fg":{"meta":{},"mode":["text"],"sig":"\\fg{}","symbol":null},"\\figurename":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\foreignlanguage":{"meta":{},"mode":["text"],"sig":"\\foreignlanguage{language}{text}","symbol":null},"\\frenchabstractname":{"meta":{},"mode":["text"],"sig":"\\frenchabstractname{arg}","symbol":null},"\\frenchalsoname":{"meta":{},"mode":["text"],"sig":"\\frenchalsoname{arg}","symbol":null},"\\frenchappendixname":{"meta":{},"mode":["text"],"sig":"\\frenchappendixname{arg}","symbol":null},"\\frenchbibname":{"meta":{},"mode":["text"],"sig":"\\frenchbibname{arg}","symbol":null},"\\frenchbsetup":{"meta":{},"mode":["text"],"sig":"\\frenchbsetup{arg}","symbol":null},"\\frenchccname":{"meta":{},"mode":["text"],"sig":"\\frenchccname{arg}","symbol":null},"\\frenchchaptername":{"meta":{},"mode":["text"],"sig":"\\frenchchaptername{arg}","symbol":null},"\\frenchcontentsname":{"meta":{},"mode":["text"],"sig":"\\frenchcontentsname{arg}","symbol":null},"\\frenchenclname":{"meta":{},"mode":["text"],"sig":"\\frenchenclname{arg}","symbol":null},"\\frenchfigurename":{"meta":{},"mode":["text"],"sig":"\\frenchfigurename{arg}","symbol":null},"\\frenchglossaryname":{"meta":{},"mode":["text"],"sig":"\\frenchglossaryname{arg}","symbol":null},"\\frenchheadtoname":{"meta":{},"mode":["text"],"sig":"\\frenchheadtoname{arg}","symbol":null},"\\frenchindexname":{"meta":{},"mode":["text"],"sig":"\\frenchindexname{arg}","symbol":null},"\\frenchlistfigurename":{"meta":{},"mode":["text"],"sig":"\\frenchlistfigurename{arg}","symbol":null},"\\frenchlisttablename":{"meta":{},"mode":["text"],"sig":"\\frenchlisttablename{arg}","symbol":null},"\\frenchpagename":{"meta":{},"mode":["text"],"sig":"\\frenchpagename{arg}","symbol":null},"\\frenchpartname":{"meta":{},"mode":["text"],"sig":"\\frenchpartname{arg}","symbol":null},"\\frenchprefacename":{"meta":{},"mode":["text"],"sig":"\\frenchprefacename{arg}","symbol":null},"\\frenchproofname":{"meta":{},"mode":["text"],"sig":"\\frenchproofname{arg}","symbol":null},"\\frenchrefname":{"meta":{},"mode":["text"],"sig":"\\frenchrefname{arg}","symbol":null},"\\frenchseename":{"meta":{},"mode":["text"],"sig":"\\frenchseename{arg}","symbol":null},"\\frenchspacing":{"info":"See \"\\frenchspacing\" in latexrefman (\\frenchspacing).","meta":{},"mode":["text"],"sig":null,"symbol":null},"\\frenchtablename":{"meta":{},"mode":["text"],"sig":"\\frenchtablename{arg}","symbol":null},"\\fup":{"meta":{},"mode":["text"],"sig":"\\fup{arg}","symbol":null},"\\glossaryname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\headtoname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ieme":{"meta":{},"mode":["text"],"sig":"\\ieme{}","symbol":null},"\\iemes":{"meta":{},"mode":["text"],"sig":"\\iemes{}","symbol":null},"\\ier":{"meta":{},"mode":["text"],"sig":"\\ier{}","symbol":null},"\\iere":{"meta":{},"mode":["text"],"sig":"\\iere{}","symbol":null},"\\ieres":{"meta":{},"mode":["text"],"sig":"\\ieres{}","symbol":null},"\\iers":{"meta":{},"mode":["text"],"sig":"\\iers{}","symbol":null},"\\iflanguage":{"meta":{},"mode":["text"],"sig":"\\iflanguage{language}{if true}{if false}","symbol":null},"\\indexname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\kernFFN":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\languageattribute":{"meta":{},"mode":["text"],"sig":"\\languageattribute{language}{list of attributes}","symbol":null},"\\languagename":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\languageshorthands":{"meta":{},"mode":["text"],"sig":"\\languageshorthands{language}","symbol":null},"\\listfigurename":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\listtablename":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\no":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\noextrasfrenchb":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\nombre":{"info":null,"meta":{},"mode":["text"],"sig":"\\nombre{arg}","symbol":null},"\\nonfrenchspacing":{"info":"See \"\\nonfrenchspacing\" in latexrefman (\\frenchspacing).","meta":{},"mode":["text"],"sig":null,"symbol":null},"\\nos":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\og":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pagename":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\parindentFFN":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\partname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\prefacename":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\primo":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\proofname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\quarto":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\refname":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\secundo":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\seename":{"info":"See \"\\seename\" in latexrefman (Indexes).","meta":{},"mode":["text"],"sig":null,"symbol":null},"\\selectlanguage":{"info":null,"meta":{},"mode":["text"],"sig":"\\selectlanguage{language}","symbol":null},"\\shorthandoff":{"info":null,"meta":{},"mode":["text"],"sig":"\\shorthandoff{characters}","symbol":null},"\\shorthandon":{"meta":{},"mode":["text"],"sig":"\\shorthandon{characters}","symbol":null},"\\tablename":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\tertio":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\up":{"meta":{},"mode":["text"],"sig":"\\up{arg}","symbol":null},"\\useshorthands":{"meta":{},"mode":["text"],"sig":"\\useshorthands{character}","symbol":null}},"environments":{"hypenrules":{"meta":{},"mode":["text"],"sig":"\\begin{hypenrules}{option}"},"hyphenrules":{"meta":{},"mode":["text"],"sig":"\\end{hyphenrules}"},"otherlanguage":{"meta":{},"mode":["text"],"sig":"\\begin{otherlanguage}{language}"},"otherlanguage*":{"meta":{},"mode":["text"],"sig":"\\begin{otherlanguage*}{language}"}},"info":"See \"babel\" in latexrefman (Accents).","options":{}},"beamerfoils":{"commands":{"\\FoilTeX":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\LogoOff":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\LogoOn":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\MyLogo":{"meta":{},"mode":["text"],"sig":"\\MyLogo{logo text}","symbol":null},"\\bm":{"meta":{},"mode":["text"],"sig":"\\bm{text}","symbol":null},"\\bmstyle":{"meta":{},"mode":["text"],"sig":"\\bmstyle{text}{more text}","symbol":null},"\\foilhead":{"meta":{},"mode":["text"],"sig":"\\foilhead[dimension]{frame title}","symbol":null},"\\rotatefoilhead":{"meta":{},"mode":["text"],"sig":"\\rotatefoilhead[dimension]{frame title}","symbol":null}},"environments":{"boldequation":{"meta":{},"mode":["text"],"sig":"\\begin{boldequation}*"}},"options":{}},"beamerprosper":{"commands":{"\\FromSlide":{"meta":{},"mode":["text"],"sig":"\\FromSlide{slide number}","symbol":null},"\\Logo":{"meta":{},"mode":["text"],"sig":"\\Logo(x,y){logo}","symbol":null},"\\OnlySlide":{"meta":{},"mode":["text"],"sig":"\\OnlySlide{slide number}","symbol":null},"\\PDForPS":{"meta":{},"mode":["text"],"sig":"\\PDForPS{PostScript text}{PDF text}","symbol":null},"\\PDFtransition":{"meta":{},"mode":["text"],"sig":"\\PDFtransition{prosper transition}","symbol":null},"\\UntilSlide":{"meta":{},"mode":["text"],"sig":"\\UntilSlide{slide number}","symbol":null},"\\dualslide":{"meta":{},"mode":["text"],"sig":"\\dualslide[x][y][z]{options}{left column}{right column}","symbol":null},"\\email":{"meta":{},"mode":["text"],"sig":"\\email{text}","symbol":null},"\\fontText":{"meta":{},"mode":["text"],"sig":"\\fontText{text}","symbol":null},"\\fontTitle":{"meta":{},"mode":["text"],"sig":"\\fontTitle{text}","symbol":null},"\\fromSlide":{"meta":{},"mode":["text"],"sig":"\\fromSlide{slide number}{text}","symbol":null},"\\fromSlide*":{"meta":{},"mode":["text"],"sig":"\\fromSlide*{slide number}{text}","symbol":null},"\\hiddenitem":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\institution":{"meta":{},"mode":["text"],"sig":"\\institution{text}","symbol":null},"\\onlyInPDF":{"meta":{},"mode":["text"],"sig":"\\onlyInPDF","symbol":null},"\\onlyInPS":{"meta":{},"mode":["text"],"sig":"\\onlyInPS","symbol":null},"\\onlySlide":{"meta":{},"mode":["text"],"sig":"\\onlySlide{slide number}{text}","symbol":null},"\\onlySlide*":{"meta":{},"mode":["text"],"sig":"\\onlySlide*{slide number}{text}","symbol":null},"\\overlays":{"meta":{},"mode":["text"],"sig":"\\overlays{number}{slide environment}","symbol":null},"\\prosperpart":{"meta":{},"mode":["text"],"sig":"\\prosperpart[options]{text}","symbol":null},"\\slideCaption":{"meta":{},"mode":["text"],"sig":"\\slideCaption{text}","symbol":null},"\\tsection":{"meta":{},"mode":["text"],"sig":"\\tsection{section name}","symbol":null},"\\tsection*":{"meta":{},"mode":["text"],"sig":"\\tsection*{section name}","symbol":null},"\\tsectionandpart":{"meta":{},"mode":["text"],"sig":"\\tsectionandpart{part text}","symbol":null},"\\tsectionandpart*":{"meta":{},"mode":["text"],"sig":"\\tsectionandpart*{part text}","symbol":null},"\\untilSlide":{"meta":{},"mode":["text"],"sig":"\\untilSlide{slide number}{text}","symbol":null},"\\untilsSlide":{"meta":{},"mode":["text"],"sig":"\\untilsSlide{slide number}{text}","symbol":null},"\\untilsSlide*":{"meta":{},"mode":["text"],"sig":"\\untilsSlide*{slide number}{text}","symbol":null}},"environments":{"Itemize":{"meta":{},"mode":["text"],"sig":"\\begin{Itemize}\\item"},"enumstep":{"meta":{},"mode":["text"],"sig":"\\begin{enumstep}\\item"},"itemstep":{"meta":{},"mode":["text"],"sig":"\\begin{itemstep}\\item"},"notes":{"meta":{},"mode":["text"],"sig":"\\begin{notes}{title}"},"slides":{"meta":{},"mode":["text"],"sig":"\\begin{slides}[options]{frame title}"}},"options":{}},"beamerseminar":{"commands":{"\\blue":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\green":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ifarticle":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ifportrait":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ifslide":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ifslidesonly":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\overlay":{"meta":{},"mode":["text"],"sig":"\\overlay{number}","symbol":null},"\\red":{"meta":{},"mode":["text"],"sig":null,"symbol":null}},"environments":{"slide":{"meta":{},"mode":["text"],"sig":"\\begin{slide}*"}},"options":{}},"beamertexpower":{"commands":{"\\boxedsteps":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bstep":{"meta":{},"mode":["text"],"sig":"\\bstep{text}","symbol":null},"\\code":{"meta":{},"mode":["text"],"sig":"\\code{text}","symbol":null},"\\codeswitch":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\dstep":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\liststepwise":{"meta":{},"mode":["text"],"sig":"\\liststepwise{text}","symbol":null},"\\nonboxedsteps":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\parstepwise":{"meta":{},"mode":["text"],"sig":"\\parstepwise{text}","symbol":null},"\\rebstep":{"meta":{},"mode":["text"],"sig":"\\rebstep","symbol":null},"\\redstep":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\restep":{"meta":{},"mode":["text"],"sig":"\\restep{text}","symbol":null},"\\reswitch":{"meta":{},"mode":["text"],"sig":"\\reswitch{alternate text}","symbol":null},"\\revstep":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\step":{"meta":{},"mode":["text"],"sig":"\\step{text}","symbol":null},"\\steponce":{"meta":{},"mode":["text"],"sig":"\\steponce{text}","symbol":null},"\\stepwise":{"meta":{},"mode":["text"],"sig":"\\stepwise{text}","symbol":null},"\\switch":{"meta":{},"mode":["text"],"sig":"\\switch{alternate text}{text}","symbol":null},"\\vstep":{"meta":{},"mode":["text"],"sig":null,"symbol":null}},"environments":null,"options":{}},"beamerthemeFhG":{"commands":{"\\boxitem":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\cdotitem":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\fhgpaperwidth":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\fhgtextwidth":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\insertframepart":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\insertframesection":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\insertframesubsection":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\questionitem":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\setinstitute":{"meta":{},"mode":["text"],"sig":"\\setinstitute{arg1}","symbol":null},"\\splitvnext":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\splitvvnext":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\titleframe":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\triangledownitem":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\triangleleftitem":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\trianglerightitem":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\triangleupitem":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\vdotsitem":{"meta":{},"mode":["text"],"sig":null,"symbol":null}},"environments":{"splitv":{"meta":{},"mode":["text"],"sig":null},"splitvv":{"meta":{},"mode":["text"],"sig":null},"titleframe":{"meta":{},"mode":["text"],"sig":null}},"includes":["euler","fhginstitutes","graphicx","pgf","textcomp"],"options":{}},"biblatex":{"commands":{"\\Autocite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Autocite[prenote][postnote]{bibid}","symbol":null},"\\Autocite*":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Autocite*[prenote][postnote]{bibid}","symbol":null},"\\Autocites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Autocites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\Avolcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\Avolcite[prenote]{volume}[page]{bibid}"],"symbol":null},"\\Cite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Cite[prenote][postnote]{bibid}","symbol":null},"\\Citeauthor":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Citeauthor[prenote][postnote]{bibid}","symbol":null},"\\Cites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Cites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\DeclareBibliographyCategory":{"meta":{},"mode":["text"],"sig":"\\DeclareBibliographyCategory{category}","symbol":null},"\\DeclareFieldAlias":{"meta":{},"mode":["text"],"sig":"\\DeclareFieldAlias[entry type]{alias}[format entry type]{format}","symbol":null},"\\DeclareFieldFormat":{"meta":{},"mode":["text"],"sig":"\\DeclareFieldFormat[entrytype, ...]{format}{code}","symbol":null},"\\DeclareFieldFormat*":{"meta":{},"mode":["text"],"sig":"\\DeclareFieldFormat*{format}{code}","symbol":null},"\\DeclareIndexFieldAlias":{"meta":{},"mode":["text"],"sig":"\\DeclareIndexFieldAlias[entry type]{alias}[format entry type]{format}","symbol":null},"\\DeclareIndexFieldFormat":{"meta":{},"mode":["text"],"sig":"\\DeclareIndexFieldFormat[entrytype, ...]{format}{code}","symbol":null},"\\DeclareIndexFieldFormat*":{"meta":{},"mode":["text"],"sig":"\\DeclareIndexFieldFormat*{format}{code}","symbol":null},"\\DeclareIndexListAlias":{"meta":{},"mode":["text"],"sig":"\\DeclareIndexListAlias[entry type]{alias}[format entry type]{format}","symbol":null},"\\DeclareIndexListFormat":{"meta":{},"mode":["text"],"sig":"\\DeclareIndexListFormat[entrytype, ...]{format}{code}","symbol":null},"\\DeclareIndexListFormat*":{"meta":{},"mode":["text"],"sig":"\\DeclareIndexListFormat*{format}{code}","symbol":null},"\\DeclareIndexNameAlias":{"meta":{},"mode":["text"],"sig":"\\DeclareIndexNameAlias[entry type]{alias}[format entry type]{format}","symbol":null},"\\DeclareIndexNameFormat":{"meta":{},"mode":["text"],"sig":"\\DeclareIndexNameFormat[entrytype, ...]{format}{code}","symbol":null},"\\DeclareIndexNameFormat*":{"meta":{},"mode":["text"],"sig":"\\DeclareIndexNameFormat*{format}{code}","symbol":null},"\\DeclareListAlias":{"meta":{},"mode":["text"],"sig":"\\DeclareListAlias[entry type]{alias}[format entry type]{format}","symbol":null},"\\DeclareListFormat":{"meta":{},"mode":["text"],"sig":"\\DeclareListFormat[entrytype, ...]{format}{code}","symbol":null},"\\DeclareListFormat*":{"meta":{},"mode":["text"],"sig":"\\DeclareListFormat*{format}{code}","symbol":null},"\\DeclareNameAlias":{"meta":{},"mode":["text"],"sig":"\\DeclareNameAlias[entry type]{alias}[format entry type]{format}","symbol":null},"\\DeclareNameFormat":{"meta":{},"mode":["text"],"sig":"\\DeclareNameFormat[entrytype, ...]{format}{code}","symbol":null},"\\DeclareNameFormat*":{"meta":{},"mode":["text"],"sig":"\\DeclareNameFormat*{format}{code}","symbol":null},"\\DefineBibliographyExtras":{"meta":{},"mode":["text"],"sig":"\\DefineBibliographyExtras{language}{code}","symbol":null},"\\DefineBibliographyStrings":{"meta":{},"mode":["text"],"sig":"\\DefineBibliographyStrings{language}{definitions}","symbol":null},"\\DefineHyphenationExceptions":{"meta":{},"mode":["text"],"sig":"\\DefineHyphenationExceptions{language}{text}","symbol":null},"\\ExecuteBibliographyOptions":{"meta":{},"mode":["text"],"sig":"\\ExecuteBibliographyOptions{key=value, ...}","symbol":null},"\\Footcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Footcite[prenote][postnote]{bibid}","symbol":null},"\\Footcites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Footcites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\NewBibliographyString":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\NewBibliographyString{bibid}","symbol":null},"\\Notecite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\Notecite[prenote]{volume}[postnote]{bibid}"],"symbol":null},"\\Parencite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Parencite[prenote][postnote]{bibid}","symbol":null},"\\Parencites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Parencites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\Pnotecite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\Pnotecite[prenote]{volume}[postnote]{bibid}"],"symbol":null},"\\RN":{"meta":{},"mode":["text"],"sig":"\\RN{integer}","symbol":null},"\\Rn":{"meta":{},"mode":["text"],"sig":"\\Rn{integer}","symbol":null},"\\Smartcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Smartcite[prenote][postnote]{bibid}","symbol":null},"\\Smartcites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Smartcites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\Svolcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\Svolcite[prenote]{volume}[page]{bibid}"],"symbol":null},"\\Textcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Textcite[prenote][postnote]{bibid}","symbol":null},"\\Textcites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\Textcites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\Tvolcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\Tvolcite[prenote]{volume}[page]{bibid}"],"symbol":null},"\\UndefineBibliographyExtras":{"meta":{},"mode":["text"],"sig":"\\UndefineBibliographyExtras{language}{code}","symbol":null},"\\addabbrvspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addabthinspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addbibresource":{"meta":{"classifiers":"b"},"mode":["text"],"sig":"\\addbibresource[options]{bibliographic resource}","symbol":null},"\\adddotspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addglobalbib":{"meta":{},"mode":["text"],"sig":"\\addglobalbib[options]{resource}","symbol":null},"\\addhighpenspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addhpthinspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addlowpenspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addlpthinspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addnbspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addnbthinspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addsectionbib":{"meta":{},"mode":["text"],"sig":"\\addsectionbib[options]{resource}","symbol":null},"\\addslash":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addthinspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\addtocategory":{"meta":{},"mode":["text"],"sig":"\\addtocategory{category}{bibid}","symbol":null},"\\andmoredelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\andothersdelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\autocap":{"meta":{},"mode":["text"],"sig":"\\autocap{character}","symbol":null},"\\autocite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\autocite[prenote][postnote]{bibid}","symbol":null},"\\autocite*":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\autocite*[prenote][postnote]{bibid}","symbol":null},"\\autocites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\autocites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\avolcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\avolcite[prenote]{volume}[page]{bibid}"],"symbol":null},"\\bibbycategory":{"meta":{},"mode":["text"],"sig":"\\bibbycategory[key=value, ...]","symbol":null},"\\bibbysection":{"meta":{},"mode":["text"],"sig":"\\bibbysection[key=value, ...]","symbol":null},"\\bibbysegment":{"meta":{},"mode":["text"],"sig":"\\bibbysegment[key=value, ...]","symbol":null},"\\bibcplstring":{"meta":{},"mode":["text"],"sig":"\\bibcplstring{string key}","symbol":null},"\\bibcpsstring":{"meta":{},"mode":["text"],"sig":"\\bibcpsstring{string key}","symbol":null},"\\bibcpstring":{"meta":{},"mode":["text"],"sig":"\\bibcpstring{string key}","symbol":null},"\\bibdatelong":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibdateshort":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibellipsis":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibfont":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibhang":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibitemextrasep":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibitemsep":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\biblabelsep":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\biblclstring":{"meta":{},"mode":["text"],"sig":"\\biblclstring{string key}","symbol":null},"\\biblcsstring":{"meta":{},"mode":["text"],"sig":"\\biblcsstring{string key}","symbol":null},"\\biblcstring":{"meta":{},"mode":["text"],"sig":"\\biblcstring{string key}","symbol":null},"\\bibleftbracket":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibleftparen":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibliography":{"info":"\\bibliography{bib files}\nSee \"\\bibliography\" in latexrefman (Using BibTeX).","meta":{},"mode":["text"],"sig":"\\bibliography{bib files}","symbol":null},"\\biblstring":{"meta":{},"mode":["text"],"sig":"\\biblstring{string key}","symbol":null},"\\bibnamedash":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibpagespunct":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibparsep":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibrangedash":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibrightbracket":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibrightparen":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibsetup":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibsstring":{"meta":{},"mode":["text"],"sig":"\\bibsstring{string key}","symbol":null},"\\bibstring":{"meta":{},"mode":["text"],"sig":"\\bibstring{string key}","symbol":null},"\\bibuclstring":{"meta":{},"mode":["text"],"sig":"\\bibuclstring{string key}","symbol":null},"\\bibucstring":{"meta":{},"mode":["text"],"sig":"\\bibucstring{string key}","symbol":null},"\\biburldatelong":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\biburldateshort":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bibuscstring":{"meta":{},"mode":["text"],"sig":"\\bibuscstring{string key}","symbol":null},"\\bibxlstring":{"meta":{},"mode":["text"],"sig":"\\bibxlstring{string key}","symbol":null},"\\bibxsstring":{"meta":{},"mode":["text"],"sig":"\\bibxsstring{string key}","symbol":null},"\\bibxstring":{"meta":{},"mode":["text"],"sig":"\\bibxstring{string key}","symbol":null},"\\category":{"meta":{},"mode":["text"],"sig":"\\category{category}","symbol":null},"\\cite":{"info":"\\cite[prenote][postnote]{bibid}\nSee \"\\cite\" in latexrefman (\\cite).","meta":{"classifiers":"c"},"mode":["text"],"sig":"\\cite[prenote][postnote]{bibid}","symbol":null},"\\cite*":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\cite*[prenote][postnote]{bibid}","symbol":null},"\\citeauthor":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\citeauthor[prenote][postnote]{bibid}","symbol":null},"\\citedate":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\citedate[prenote][postnote]{bibid}","symbol":null},"\\citefield":{"meta":{},"mode":["text"],"sig":"\\citefield[prenote][postnote]{bibid}[format]{field}","symbol":null},"\\citelist":{"meta":{},"mode":["text"],"sig":["\\citelist[postnote]{bibid}[format]{literal list}","\\citelist[prenote][postnote]{bibid}[format]{literallist}","\\citelist{bibid}[format]{literal list}"],"symbol":null},"\\citename":{"meta":{},"mode":["text"],"sig":"\\citename[prenote][postnote]{bibid}[format]{name list}","symbol":null},"\\citereset":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\citereset*":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\cites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\cites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\citesetup":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\citetitle":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\citetitle[prenote][postnote]{bibid}","symbol":null},"\\citetitle*":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\citetitle*[prenote][postnote]{bibid}","symbol":null},"\\citeurl":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\citeurl[prenote][postnote]{bibid}","symbol":null},"\\citeyear":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\citeyear[prenote][postnote]{bibid}","symbol":null},"\\compcitedelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\defbibfilter":{"meta":{},"mode":["text"],"sig":"\\defbibfilter{name}{code}","symbol":null},"\\defbibheading":{"meta":{},"mode":["text"],"sig":"\\defbibheading{name}{code}","symbol":null},"\\defbibnote":{"meta":{},"mode":["text"],"sig":"\\defbibnote{name}{text}","symbol":null},"\\finalandcomma":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\finallistdelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\finalnamedelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\finentrypunct":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\fnotecite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\fnotecite[prenote]{volume}[postnote]{bibid}"],"symbol":null},"\\footcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\footcite[prenote][postnote]{bibid}","symbol":null},"\\footcites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\footcites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\footfullcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\footfullcite[prenote][postnote]{bibid}","symbol":null},"\\forceE":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\forceY":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\fullcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\fullcite[prenote][postnote]{bibid}","symbol":null},"\\hyphen":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\hyphenate":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ifkomabibtotoc":{"meta":{},"mode":["text"],"sig":"\\ifkomabibtotoc{true}{false}","symbol":null},"\\ifkomabibtotocnumbered":{"meta":{},"mode":["text"],"sig":"\\ifkomabibtotocnumbered{true}{false}","symbol":null},"\\ifmemoirbibintoc":{"meta":{},"mode":["text"],"sig":"\\ifmemoirbibintoc{true}{false}","symbol":null},"\\keyword":{"meta":{},"mode":["text"],"sig":"\\keyword{keyword}","symbol":null},"\\labelalphaothers":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\labelnamepunct":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\mainlang":{"meta":{},"mode":["text"],"sig":"\\mainlang{string key}","symbol":null},"\\mancite":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\mkbibacro":{"meta":{},"mode":["text"],"sig":"\\mkbibacro{text}","symbol":null},"\\mkbibbold":{"meta":{},"mode":["text"],"sig":"\\mkbibbold{text}","symbol":null},"\\mkbibbrackets":{"meta":{},"mode":["text"],"sig":"\\mkbibbrackets{text}","symbol":null},"\\mkbibemph":{"meta":{},"mode":["text"],"sig":"\\mkbibemph{text}","symbol":null},"\\mkbibendnote":{"meta":{},"mode":["text"],"sig":"\\mkbibendnote{text}","symbol":null},"\\mkbibendnotetext":{"meta":{},"mode":["text"],"sig":"\\mkbibendnotetext{text}","symbol":null},"\\mkbibfemord":{"meta":{},"mode":["text"],"sig":"\\mkbibfemord{integer}","symbol":null},"\\mkbibfootnote":{"meta":{},"mode":["text"],"sig":"\\mkbibfootnote{text}","symbol":null},"\\mkbibfootnotetext":{"meta":{},"mode":["text"],"sig":"\\mkbibfootnotetext{text}","symbol":null},"\\mkbibitalic":{"meta":{},"mode":["text"],"sig":"\\mkbibitalic{text}","symbol":null},"\\mkbibmascord":{"meta":{},"mode":["text"],"sig":"\\mkbibmascord{integer}","symbol":null},"\\mkbibnameaffix":{"meta":{},"mode":["text"],"sig":"\\mkbibnameaffix{text}","symbol":null},"\\mkbibnamefirst":{"meta":{},"mode":["text"],"sig":"\\mkbibnamefirst{text}","symbol":null},"\\mkbibnamelast":{"meta":{},"mode":["text"],"sig":"\\mkbibnamelast{text}","symbol":null},"\\mkbibnameprefix":{"meta":{},"mode":["text"],"sig":"\\mkbibnameprefix{text}","symbol":null},"\\mkbibordinal":{"meta":{},"mode":["text"],"sig":"\\mkbibordinal{integer}","symbol":null},"\\mkbibparens":{"meta":{},"mode":["text"],"sig":"\\mkbibparens{text}","symbol":null},"\\mkbibquote":{"meta":{},"mode":["text"],"sig":"\\mkbibquote{text}","symbol":null},"\\mkbibsuperscript":{"meta":{},"mode":["text"],"sig":"\\mkbibsuperscript{text}","symbol":null},"\\mknumalph":{"meta":{},"mode":["text"],"sig":"\\mknumalph{integer}","symbol":null},"\\multicitedelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\multilistdelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\multinamedelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\nameyeardelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\nbhyphen":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\newblockpunct":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\newrefsection":{"meta":{},"mode":["text"],"sig":"\\newrefsection[bib files]","symbol":null},"\\newrefsegment":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\newunitpunct":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\nocite":{"info":"\\nocite{bibid}\nSee \"\\nocite\" in latexrefman (\\nocite).","meta":{"classifiers":"c"},"mode":["text"],"sig":"\\nocite{bibid}","symbol":null},"\\noligature":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\nopp":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\notecite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\notecite[prenote]{volume}[postnote]{bibid}"],"symbol":null},"\\parencite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\parencite[prenote][postnote]{bibid}","symbol":null},"\\parencite*":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\parencite*[prenote][postnote]{bibid}","symbol":null},"\\parencites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\parencites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\pno":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pnotecite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\pnotecite[prenote]{volume}[postnote]{bibid}"],"symbol":null},"\\postnotedelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ppno":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\prenotedelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\printbibliography":{"meta":{},"mode":["text"],"sig":"\\printbibliography[key=value, ...]","symbol":null},"\\printshorthands":{"meta":{},"mode":["text"],"sig":"\\printshorthands[key=value, ...]","symbol":null},"\\psq":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\psqq":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\revsdnamedelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\segment":{"meta":{},"mode":["text"],"sig":"\\segment{integer}","symbol":null},"\\smartcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\smartcite[prenote][postnote]{bibid}","symbol":null},"\\smartcites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\smartcites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\subtitlepunct":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\supercite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\supercite{bibid}","symbol":null},"\\supercitedelim":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\supercites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\supercites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\svolcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\svolcite[prenote]{volume}[page]{bibid}"],"symbol":null},"\\textcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\textcite[prenote][postnote]{bibid}","symbol":null},"\\textcites":{"meta":{"classifiers":"c"},"mode":["text"],"sig":"\\textcites(pre)(post)[pre][post]{bibid}[pre][post]{bibid}","symbol":null},"\\tvolcite":{"meta":{"classifiers":"c"},"mode":["text"],"sig":["\\tvolcite[prenote]{volume}[page]{bibid}"],"symbol":null},"\\type":{"meta":{},"mode":["text"],"sig":"\\type{type}","symbol":null},"\\unspace":{"meta":{},"mode":["text"],"sig":null,"symbol":null}},"environments":{"refsection":{"meta":{},"mode":["text"],"sig":"\\begin{refsection}[bib files]"},"refsegment":{"meta":{},"mode":["text"],"sig":null}},"includes":["natbib"],"options":{}},"bm":{"commands":{"\\DeclareBoldMathCommand":{"meta":{},"mode":["text"],"sig":"\\DeclareBoldMathCommand[math version]{cmd}{math expression}","symbol":null},"\\bm":{"meta":{},"mode":["text"],"sig":"\\bm{math expression}","symbol":null},"\\bmmax":{"meta":{},"mode":["text"],"sig":"\\bmmax{number}","symbol":null},"\\boldsymbol":{"info":null,"meta":{},"mode":["math"],"sig":"\\boldsymbol{math expression}","symbol":null},"\\heavysymbol":{"meta":{},"mode":["text"],"sig":"\\heavysymbol{math expression}","symbol":null},"\\hm":{"meta":{},"mode":["text"],"sig":"\\hm{math expression}","symbol":null},"\\hmmax":{"meta":{},"mode":["text"],"sig":"\\hmmax{number}","symbol":null}},"environments":null,"options":{}},"booktabs":{"commands":{"\\addlinespace":{"meta":{},"mode":["text"],"sig":"\\addlinespace[space]","symbol":null},"\\bottomrule":{"meta":{},"mode":["text"],"sig":"\\bottomrule[width]","symbol":null},"\\cmidrule":{"meta":{},"mode":["text"],"sig":"\\cmidrule[width](trim){a-b}","symbol":null},"\\midrule":{"meta":{},"mode":["text"],"sig":"\\midrule[width]","symbol":null},"\\morecmidrules":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\specialrule":{"meta":{},"mode":["text"],"sig":"\\specialrule[width]{abovespace}{belowspace}","symbol":null},"\\toprule":{"meta":{},"mode":["text"],"sig":"\\toprule[width]","symbol":null}},"environments":null,"options":{}},"braket":{"commands":{"\\Bra":{"meta":{},"mode":["text"],"sig":"\\Bra{text}","symbol":null},"\\Braket":{"meta":{},"mode":["text"],"sig":"\\Braket{text}","symbol":null},"\\Ket":{"meta":{},"mode":["text"],"sig":"\\Ket{text}","symbol":null},"\\Set":{"meta":{},"mode":["text"],"sig":"\\Set{text}","symbol":null},"\\bra":{"meta":{},"mode":["text"],"sig":"\\bra{text}","symbol":null},"\\braket":{"meta":{},"mode":["text"],"sig":"\\braket{text}","symbol":null},"\\ket":{"meta":{},"mode":["text"],"sig":"\\ket{text}","symbol":null},"\\set":{"meta":{},"mode":["text"],"sig":"\\set{text}","symbol":null}},"environments":null,"options":{}},"calc":{"commands":{"\\addtocounter":{"info":"\\addtocounter{ctr}{num}\nSee \"\\addtocounter\" in latexrefman (\\addtocounter).","meta":{},"mode":["math","text"],"sig":"\\addtocounter{ctr}{num}","symbol":null},"\\addtolength":{"info":"\\addtolength{cmd}{len}\nSee \"\\addtolength\" in latexrefman (\\addtolength).","meta":{},"mode":["math","text"],"sig":"\\addtolength{cmd}{len}","symbol":null},"\\depthof":{"meta":{},"mode":["text"],"sig":"\\depthof{text}","symbol":null},"\\heightof":{"meta":{},"mode":["text"],"sig":"\\heightof{text}","symbol":null},"\\maxof":{"meta":{},"mode":["text"],"sig":"\\maxof{type expression}{type expression}","symbol":null},"\\minof":{"meta":{},"mode":["text"],"sig":"\\minof{type expression}{type expression}","symbol":null},"\\ratio":{"meta":{},"mode":["text"],"sig":"\\ratio{dimen expression}{dimen expression}","symbol":null},"\\real":{"meta":{},"mode":["text"],"sig":"\\real{decimal constant}","symbol":null},"\\setcounter":{"info":"\\setcounter{ctr}{num}\nSee \"\\setcounter\" in latexrefman (\\setcounter).","meta":{},"mode":["math","text"],"sig":"\\setcounter{ctr}{num}","symbol":null},"\\setlength":{"info":"\\setlength{cmd}{len}\nSee \"\\setlength\" in latexrefman (\\setlength).","meta":{},"mode":["math","text"],"sig":"\\setlength{cmd}{len}","symbol":null},"\\settototalheight":{"meta":{},"mode":["text"],"sig":"\\settototalheight{cmd}{text}","symbol":null},"\\totalheightof":{"meta":{},"mode":["text"],"sig":"\\totalheightof{text}","symbol":null},"\\widthof":{"meta":{},"mode":["text"],"sig":"\\widthof{text}","symbol":null}},"environments":null,"options":{}},"cancel":{"commands":{"\\CancelColor":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\bcancel":{"meta":{},"mode":["text"],"sig":"\\bcancel{expression}","symbol":null},"\\cancel":{"meta":{},"mode":["text"],"sig":"\\cancel{expression}","symbol":null},"\\cancelto":{"meta":{},"mode":["text"],"sig":"\\cancelto{value}{expression}","symbol":null},"\\xcance":{"meta":{},"mode":["text"],"sig":"\\xcance{expression}","symbol":null}},"environments":null,"options":{}},"caption":{"commands":{"\\ContinuedFloat":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ContinuedFloat*":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\DeclareCaptionFont":{"meta":{},"mode":["text"],"sig":"\\DeclareCaptionFont{name}{code}","symbol":null},"\\DeclareCaptionFormat":{"meta":{"classifiers":"1, #2 and #3}"},"mode":["text"],"sig":null,"symbol":null},"\\DeclareCaptionJustification":{"meta":{},"mode":["text"],"sig":"\\DeclareCaptionJustification{name}{code}","symbol":null},"\\DeclareCaptionLabelFormat":{"meta":{"classifiers":"1, #2 and #3}"},"mode":["text"],"sig":null,"symbol":null},"\\DeclareCaptionLabelSeparator":{"meta":{},"mode":["text"],"sig":"\\DeclareCaptionLabelSeparator{name}{code}","symbol":null},"\\DeclareCaptionListFormat":{"meta":{"classifiers":"1 and #2}"},"mode":["text"],"sig":null,"symbol":null},"\\DeclareCaptionStyle":{"meta":{},"mode":["text"],"sig":"\\DeclareCaptionStyle{name}[ad options]{options}","symbol":null},"\\DeclareCaptionTextFormat":{"meta":{},"mode":["text"],"sig":"\\DeclareCaptionTextFormat{name}{code using}","symbol":null},"\\DeclareCaptionType":{"meta":{},"mode":["text"],"sig":"\\DeclareCaptionType[options]{type}[name][list name]","symbol":null},"\\bothIfFirst":{"meta":{},"mode":["text"],"sig":"\\bothIfFirst{first arg}{second arg}","symbol":null},"\\bothIfSecond":{"meta":{},"mode":["text"],"sig":"\\bothIfSecond{first arg}{second arg}","symbol":null},"\\caption":{"info":"\\caption[]{heading}\n\\caption[list entry]{heading}\nSee \"\\caption\" in latexrefman (table).","meta":{},"mode":["text"],"sig":["\\caption[]{heading}","\\caption[list entry]{heading}"],"symbol":null},"\\caption*":{"meta":{},"mode":["text"],"sig":"\\caption*{heading}","symbol":null},"\\captionlistentry":{"meta":{},"mode":["text"],"sig":"\\captionlistentry[float type]{list entry}","symbol":null},"\\captionof":{"meta":{},"mode":["text"],"sig":"\\captionof{float type}[list entry]{heading}","symbol":null},"\\captionof*":{"meta":{},"mode":["text"],"sig":"\\captionof*{float type}{heading}","symbol":null},"\\captionsetup":{"meta":{},"mode":["text"],"sig":"\\captionsetup[float type]{options}","symbol":null},"\\clearcaptionsetup":{"meta":{},"mode":["text"],"sig":"\\clearcaptionsetup[option]{float type}","symbol":null},"\\showcaptionsetup":{"meta":{},"mode":["text"],"sig":"\\showcaptionsetup{float type}","symbol":null}},"environments":null,"options":{}},"cases":{"commands":{},"environments":{"numcases":{"meta":{"classifiers":"\\array,math","env_aliases":["array","math"]},"mode":["math"],"sig":"\\begin{numcases}{left side}"},"subnumcases":{"meta":{"classifiers":"\\array,math","env_aliases":["array","math"]},"mode":["math"],"sig":"\\begin{subnumcases}{left side}"}},"options":{}},"chemformula":{"commands":{"\\DeclareChemAdditionSymbol":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\DeclareChemAdditionSymbol{name}{input}{output}","symbol":null},"\\DeclareChemArrow":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\DeclareChemArrow{type}{TikZ}","symbol":null},"\\DeclareChemBond":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\DeclareChemBond{name}{code}","symbol":null},"\\DeclareChemBondAlias":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\DeclareChemBondAlias{new name}{old name}","symbol":null},"\\DeclareChemCompoundProperty":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\DeclareChemCompoundProperty{token}{replacement}","symbol":null},"\\DeclareChemSymbol":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\DeclareChemSymbol{input}{output}","symbol":null},"\\DeprecatedFormulaCommand":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\DeprecatedFormulaCommand{deprecated macro}{replacement macro}{code}","symbol":null},"\\NewChemAdditionSymbol":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\NewChemAdditionSymbol{name}{input}{output}","symbol":null},"\\NewChemArrow":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\NewChemArrow{type}{TikZ}","symbol":null},"\\NewChemBond":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\NewChemBond{name}{code}","symbol":null},"\\NewChemBondAlias":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\NewChemBondAlias{new name}{old name}","symbol":null},"\\NewChemCompoundProperty":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\NewChemCompoundProperty{token}{replacement}","symbol":null},"\\NewChemSymbol":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\NewChemSymbol{input}{output}","symbol":null},"\\ProvideChemAdditionSymbol":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\ProvideChemAdditionSymbol{name}{input}{output}","symbol":null},"\\ProvideChemArrow":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\ProvideChemArrow{type}{TikZ}","symbol":null},"\\ProvideChemBond":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\ProvideChemBond{name}{code}","symbol":null},"\\ProvideChemCompoundProperty":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\ProvideChemCompoundProperty{token}{replacement}","symbol":null},"\\ProvideChemSymbol":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\ProvideChemSymbol{input}{output}","symbol":null},"\\RemoveChemCompoundProperty":{"meta":{},"mode":["text"],"sig":"\\RemoveChemCompoundProperty{token}","symbol":null},"\\RenewChemAdditionSymbol":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\RenewChemAdditionSymbol{name}{input}{output}","symbol":null},"\\RenewChemArrow":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\RenewChemArrow{type}{TikZ}","symbol":null},"\\RenewChemBond":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\RenewChemBond{name}{code}","symbol":null},"\\RenewChemCompoundProperty":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\RenewChemCompoundProperty{token}{replacement}","symbol":null},"\\RenewChemSymbol":{"meta":{"classifiers":"d"},"mode":["text"],"sig":"\\RenewChemSymbol{input}{output}","symbol":null},"\\ShowChemArrow":{"meta":{},"mode":["text"],"sig":"\\ShowChemArrow{type}","symbol":null},"\\ShowChemBond":{"meta":{},"mode":["text"],"sig":"\\ShowChemBond{name}","symbol":null},"\\bond":{"meta":{},"mode":["text"],"sig":"\\bond{bond name}","symbol":null},"\\ch":{"meta":{"options":{"keyvals":["decimal-marker={%}","frac-style=#math,xfrac,nicefrac","frac-math-cmd={%}","stoich-space={%}","stoich-paren-parse=#true,false","stoich-print={%}","circled=#formal,all,none","circletype=#chem,math","charge-hshift={%}","subscript-vshift={%}","subscript-style=#text,math","charge-hshift={%}","charge-vshift={%}","charge-style=#text,math","adduct-space={%}","adduct-penalty={%}","bond-length={%}","bond-offset={%}","bond-style={%}","bond-penalty={%}","radical-style={%}","radical-radius={%}","radical-hshift={%}","radical-vshift={%}","radical-space={%}","plus-space={%}","plus-penalty={%}","plus-output-symbol={%}","minus-space={%}","minus-penalty={%}","minus-output-symbol={%}","math-space={%}","arrow-offset={%}","arrow-min-length={%}","arrow-yshift={%}","arrow-ratio={%}","compound-sep={%}","label-offset={%}","label-style={%}","arrow-penalty={%}","arrow-style={%}","name-format={%}","name-width=#{%},auto","format={%}","atom-format={%}","font-family={%}","font-series={%}","font-shape={%}","font-spec={%}","font-spec={[%]%}","kroeger-vink=#true,false","kv-positive-style={%}","kv-positive-radius={%}","kv-positive-hshift={%}","kv-positive-vshift={%}","kv-positive-offset={%}","kv-positive-symbol={%}"]}},"mode":["text"],"sig":"\\ch[%]{input}","symbol":null},"\\charrow":{"meta":{},"mode":["text"],"sig":"\\charrow{type}[above][below]","symbol":null},"\\chcpd":{"meta":{"options":{"keyvals":["plus-space={%}","plus-penalty={%}","plus-output-symbol={%}","minus-space={%}","minus-penalty={%}","minus-output-symbol={%}","math-space={%}","arrow-offset={%}","arrow-min-length={%}","arrow-yshift={%}","arrow-ratio={%}","compound-sep={%}","label-offset={%}","label-style={%}","arrow-penalty={%}","arrow-style={%}","name-format={%}","name-width=#{%},auto","format={%}","atom-format={%}","font-family={%}","font-series={%}","font-shape={%}","font-spec={%}","font-spec={[%]%}"]}},"mode":["text"],"sig":"\\chcpd[%]{compound}","symbol":null},"\\chemformula@date":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\chemformula@version":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\chlewis":{"meta":{"options":{"keyvals":["lewis-default=#.,:,|,o,single,pair,{pair (dotted)},{pair (line)},empty","lewis-distance={%}","lewis-line-length={%}","lewis-line-width={%}","lewis-offset={%}5ex"]}},"mode":["text"],"sig":"\\chlewis[%]{electron spec}{atom}","symbol":null},"\\chname":{"meta":{},"mode":["text"],"sig":"\\chname(text 1)(text 2)","symbol":null},"\\chstoich":{"meta":{"classifiers":"S"},"mode":["text"],"sig":"\\chstoich{arg1}","symbol":null},"\\setchemformula":{"meta":{"options":{"keyvals":["decimal-marker={%}","frac-style=#math,xfrac,nicefrac","frac-math-cmd={%}","stoich-space={%}","stoich-paren-parse=#true,false","stoich-print={%}","circled=#formal,all,none","circletype=#chem,math","subscript-vshift={%}","subscript-style=#text,math","charge-hshift={%}","charge-vshift={%}","charge-style=#text,math","adduct-space={%}","adduct-penalty={%}","bond-length={%}","bond-offset={%}","bond-style={%}","bond-penalty={%}","radical-style={%}","radical-radius={%}","radical-hshift={%}","radical-vshift={%}","radical-space={%}","plus-space={%}","plus-penalty={%}","plus-output-symbol={%}","minus-space={%}","minus-penalty={%}","minus-output-symbol={%}","math-space={%}","arrow-offset={%}","arrow-min-length={%}","arrow-yshift={%}","arrow-ratio={%}","compound-sep={%}","label-offset={%}","label-style={%}","arrow-penalty={%}","arrow-style={%}","name-format={%}","name-width=#{%},auto","format={%}","atom-format={%}","font-family={%}","font-series={%}","font-shape={%}","font-spec={%}","font-spec={[%]%}","tikz-external-disable=#true,false","lewis-default=#.,:,|,o,single,pair,{pair (dotted)},{pair (line)},empty","lewis-distance={%}","lewis-line-length={%}","lewis-line-width={%}","lewis-offset={%}","kroeger-vink=#true,false","kv-positive-style={%}","kv-positive-radius={%}","kv-positive-hshift={%}","kv-positive-vshift={%}","kv-positive-offset={%}","kv-positive-symbol={%}"]}},"mode":["text"],"sig":"\\setchemformula{%}","symbol":null}},"environments":null,"includes":["expl3","xparse","l3keys2e","tikz","amstext","xfrac","nicefrac","scrlfile"],"options":{}},"chemstyle":{"commands":{"\\Hz":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\Molar":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\cmc":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\cst":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\cstsetup":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\cubiccentimeter":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\eg":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\etal":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\etc":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\expandafter":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\ie":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\invacuo":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\latin":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\latinemphoff":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\latinemphon":{"meta":{"classifiers":"S"},"mode":["text"],"sig":null,"symbol":null},"\\mmHg":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\mol":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\molar":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\standardstate":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\thebibnote":{"meta":{},"mode":["text"],"sig":null,"symbol":null}},"environments":null,"includes":["SIunits","amstext","caption","chemscheme","siunitx","varioref","xspace"],"options":{}},"circuitikz":{"commands":{"\\anchor":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\anchorborder":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\backgroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\beforebackgroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\beforeforegroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\behindbackgroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\behindforegroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\circuitikzbasekey":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\circuitikzset":{"meta":{},"mode":["text"],"sig":"\\circuitikzset{arg1}","symbol":null},"\\ctikzset":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\ctikzsetvalof":{"meta":{},"mode":["text"],"sig":"\\ctikzsetvalof{arg1}","symbol":null},"\\ctikzvalof":{"meta":{},"mode":["text"],"sig":"\\ctikzvalof{arg1}","symbol":null},"\\deferredanchor":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\drawpoles":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\foregroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\inheritanchor":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\inheritanchorborder":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\inheritbackgroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\inheritbeforebackgroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\inheritbeforeforegroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\inheritbehindbackgroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\inheritbehindforegroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\inheritforegroundpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\inheritlogicport":{"meta":{},"mode":["text"],"sig":"\\inheritlogicport{arg1}","symbol":null},"\\inheritnodeparts":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\inheritsavedanchors":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\myfrac":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\nodeparts":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfcircdeclarebipole":{"meta":{},"mode":["text"],"sig":"\\pgfcircdeclarebipole{arg1}","symbol":null},"\\pgfcircdeclareeurologicport":{"meta":{},"mode":["text"],"sig":"\\pgfcircdeclareeurologicport{arg1}","symbol":null},"\\pgfcircdeclarefet":{"meta":{},"mode":["text"],"sig":"\\pgfcircdeclarefet{arg1}","symbol":null},"\\pgfcircdeclarelogicport":{"meta":{},"mode":["text"],"sig":"\\pgfcircdeclarelogicport{arg1}","symbol":null},"\\pgfcircdeclaremos":{"meta":{},"mode":["text"],"sig":"\\pgfcircdeclaremos{arg1}","symbol":null},"\\pgfcircdeclarequadpole":{"meta":{},"mode":["text"],"sig":"\\pgfcircdeclarequadpole{arg1}","symbol":null},"\\pgfcircdeclaretransistor":{"meta":{},"mode":["text"],"sig":"\\pgfcircdeclaretransistor{arg1}","symbol":null},"\\pgfcircmathresult":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfcircresetpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfcircversion":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdeclaredecoration":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdeclaremetadecoration":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdeclaresnake":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecorateaftercode":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecoratebeforecode":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecoratecurrentpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecoratedpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecorateexisitingpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecoratepath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecorationinputsegmentclosepath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecorationinputsegmentcurveto":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecorationinputsegmentlast":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecorationinputsegmentlineto":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecorationinputsegmentmoveto":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecorationpath":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecorationsegmentangle":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfdecorationsegmentaspect":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfifdecoration":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfifmetadecoration":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfmathresult":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfmetadecorationsegmentamplitude":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfmetadecorationsegmentlength":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfpathsnakealongvector":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfpathsnakesto":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfpathsnaketo":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfpointdecoratedinputsegmentfirst":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfpointdecoratedinputsegmentlast":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfpointdecoratedpathfirst":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfpointdecoratedpathlast":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfsetdecorationsegmenttransformation":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfsetsnakesegmenttransformation":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfsnakeangle":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfsnakecompleteddistance":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfsnakeremainingdistance":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfsnakesegmentamplitude":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfsnakesegmentangle":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfsnakesegmentaspect":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfsnakesegmentlength":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\pgfsnakesegmentobjectlength":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\savedanchor":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\saveddimen":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\savedmacro":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\startpgfdecoration":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\startpgfmetadecoration":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\state":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\stoppgfdecoration":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\stoppgfmetadecoration":{"meta":{},"mode":["text"],"sig":null,"symbol":null},"\\stretto":{"meta":{},"mode":["text"],"sig":null,"symbol":null}},"environments":{"circuitikz":{"meta":{"classifiers":"\\tikzpicture","env_aliases":["tikzpicture"]},"mode":["text"],"sig":null},"pgfdecoration":{"meta":{},"mode":["text"],"sig":null},"pgfmetadecoration":{"meta":{},"mode":["text"],"sig":null}},"includes":["siunitx","tikz","xstring"],"options":{}},"class-amsart":{"options":{"\\documentclass":["10pt","11pt","12pt","a4paper","a5paper","b5paper","clock","draft","executivepaper","final","fleqn","landscape","legalpaper","leqno","letterpaper","notitlepage","onecolumn","oneside","openany","openbib","openright","titlepage","twocolumn","twoside"]}},"class-amsbook":{"options":{"\\documentclass":["10pt","11pt","12pt","a4paper","a5paper","b5paper","clock","draft","executivepaper","final","fleqn","landscape","legalpaper","leqno","letterpaper","notitlepage","onecolumn","oneside","openany","openbib","openright","titlepage","twocolumn","twoside"]}},"class-article":{"info":"See \"article\" in latexrefman (Document classes).","options":{"\\documentclass":["10pt","11pt","12pt","a4paper","a5paper","b5paper","clock","draft","executivepaper","final","fleqn","landscape","legalpaper","leqno","letterpaper","notitlepage","onecolumn","oneside","openany","openbib","openright","titlepage","twocolumn","twoside"]}},"class-beamer":{"commands":{"\\AtBeginLecture":{"meta":{},"mode":["text"],"sig":"\\AtBeginLecture{text}","symbol":null},"\\AtBeginNote":{"meta":{},"mode":["text"],"sig":"\\AtBeginNote{text}","symbol":null},"\\AtBeginPart":{"meta":{},"mode":["text"],"sig":"\\AtBeginPart{text}","symbol":null},"\\AtBeginSection":{"meta":{},"mode":["text"],"sig":"\\AtBeginSection[special star text]{text}","symbol":null},"\\AtBeginSubsection":{"meta":{},"mode":["text"],"sig":"\\AtBeginSubsection[special star text]{text}","symbol":null},"\\AtBeginSubsubsection":{"meta":{},"mode":["text"],"sig":"\\AtBeginSubsubsection[special star text]{text}","symbol":null},"\\AtEndNote":{"meta":{},"mode":["text"],"sig":"\\AtEndNote{text}","symbol":null},"\\action":{"meta":{},"mode":["text"],"sig":"\\action{text}","symbol":null},"\\addfootbox":{"meta":{},"mode":["text"],"sig":"\\addfootbox{beamer color}{box template}","symbol":null},"\\addheadbox":{"meta":{},"mode":["text"],"sig":"\\addheadbox{beamer color}{box template}","symbol":null},"\\addtobeamertemplate":{"meta":{},"mode":["text"],"sig":"\\addtobeamertemplate{element name}{pre-text}{post-text}","symbol":null},"\\againframe":{"meta":{},"mode":["text"],"sig":"\\againframe[][options]{name}","symbol":null},"\\alert":{"meta":{},"mode":["text"],"sig":"\\alert{highlighted text}","symbol":null},"\\alt":{"meta":{},"mode":["text"],"sig":"\\alt{default text}{alternative text}","symbol":null},"\\animate":{"meta":{},"mode":["text"],"sig":"\\animate","symbol":null},"\\animatevalue":{"meta":{},"mode":["text"],"sig":"\\animatevalue{name}{start value}{end value}","symbol":null},"\\appendix":{"info":"\\appendix\nSee \"\\appendix\" in latexrefman (Sectioning).","meta":{},"mode":["text"],"sig":"\\appendix","symbol":null},"\\author":{"info":"\\author[short author names]{author names}\nSee \"\\author\" in latexrefman (\\maketitle).","meta":{},"mode":["text"],"sig":"\\author[short author names]{author names}","symbol":null},"\\beamerbutton":{"meta":{},"mode":["text"],"sig":"\\beamerbutton{button text}","symbol":null},"\\beamerdefaultoverlayspecification":{"meta":{},"mode":["text"],"sig":"\\beamerdefaultoverlayspecification{default overlay specification}","symbol":null},"\\beamergotobutton":{"meta":{},"mode":["text"],"sig":"\\beamergotobutton{button text}","symbol":null},"\\beamerreturnbutton":{"meta":{},"mode":["text"],"sig":"\\beamerreturnbutton{button text}","symbol":null},"\\beamerskipbutton":{"meta":{},"mode":["text"],"sig":"\\beamerskipbutton{button text}","symbol":null},"\\bibitem":{"info":"\\bibitem[citation text]{citekey}\nSee \"\\bibitem\" in latexrefman (\\bibitem).","meta":{},"mode":["text"],"sig":"\\bibitem[citation text]{citekey}","symbol":null},"\\column":{"meta":{},"mode":["text"],"sig":"\\column[placement]{column width}","symbol":null},"\\date":{"info":"\\date[short date]{date}\nSee \"\\date\" in latexrefman (\\maketitle).","meta":{},"mode":["text"],"sig":"\\date[short date]{date}","symbol":null},"\\defbeamertemplate":{"meta":{},"mode":["text"],"sig":"\\defbeamertemplate*{element name}{predefined option}[argument number][default optional argument]{predefined text}[action]{action command}","symbol":null},"\\defbeamertemplatealias":{"meta":{},"mode":["text"],"sig":"\\defbeamertemplatealias{element name}{new predefined option name}{existing predefined option name}","symbol":null},"\\defbeamertemplateparent":{"meta":{},"mode":["text"],"sig":"\\defbeamertemplateparent{parent template name}[predefined option name]{child template list} [argument number][default optional argument]{arguments for children}","symbol":null},"\\expandbeamertemplate":{"meta":{},"mode":["text"],"sig":"\\expandbeamertemplate{beamer template name}","symbol":null},"\\footnote":{"info":"\\footnote[options]{text}\nSee \"\\footnote\" in latexrefman (\\footnote).","meta":{},"mode":["text"],"sig":"\\footnote[options]{text}","symbol":null},"\\framesubtitle":{"meta":{},"mode":["text"],"sig":"\\framesubtitle{frame subtitle text}","symbol":null},"\\frametitle":{"meta":{},"mode":["text"],"sig":"\\frametitle[short frame title]{title}","symbol":null},"\\framezoom":{"meta":{},"mode":["text"],"sig":"\\framezoom