global !p # thanks to gilles castel def math(): return vim.eval('vimtex#syntax#in_mathzone()') == '1' def env(name): [x,y] = vim.eval("vimtex#env#is_inside('" + name + "')") return x != '0' and y != '0' endglobal # General snippet beg "Begin / End" bA \\begin{$1} $2 \\end{$1}$0 endsnippet snippet pac "Package" b \usepackage[$1]{$2}$0 endsnippet snippet template "Basic template" b \documentclass[$1]{$2} $3 \begin{document} $0 \end{document} endsnippet snippet item "Itemize" bA \begin{itemize} \item $0 \end{itemize} endsnippet snippet enum "Enumerate" bA \begin{enumerate} \item $0 \end{enumerate} endsnippet snippet alph "Alphabet Enumerate" bA \begin{enumerate}[label= (\alph*)] \item $1 \end{enumerate} $0 endsnippet snippet desc "Description" bA \begin{description} \item[$1] $2 \end{description} $0 endsnippet snippet table "Table" b \begin{table}[${1:htpb}] \centering \caption{$2} \label{tab:$3} \begin{tabular}{${5:c}} $6${5/((?<=.)c|l|r)|./(?1: & )/g} \end{tabular} \end{table} $0 endsnippet snippet algorithm "Algorithm" b \begin{algorithm}[${1:H}] \caption{$2}\label{tab:$3} \begin{algorithmic}[${4:1}] $5 \end{algorithmic} \end{algorithm} $0 endsnippet priority 100 snippet ... "Ldots" iA \ldots endsnippet snippet ~~ "Sim" iA \sim endsnippet snippet section "Section" bA \sect{$1}$0 endsnippet snippet subsection "Subsection" bA \subsect{$1}$0 endsnippet snippet chapter "Chapter" bA \chapter{$1}$0 endsnippet snippet ppart "Part" bA \part{$1}$0 endsnippet snippet theorem "Theorem" bA \begin{theorem}[$1] $2 \end{theorem} $0 endsnippet snippet definition "Definition" bA \begin{definition}[$1] $2 \end{definition} $0 endsnippet snippet example "Example" bA \begin{eg}[$1] $2 \end{eg} $0 endsnippet # Math snippet sm "Math" wA $${1}$`!p if t[2] and t[2][0] not in [',', '.', '?', '-', ' ']: snip.rv = ' ' else: snip.rv = '' `$2 endsnippet snippet dm "Display Math" wA \[ $1 \] $0 endsnippet snippet ali "Align" bA \begin{align*} ${1:${VISUAL}} \end{align*} $0 endsnippet context "math()" snippet => "Implies" Ai \implies endsnippet context "math()" snippet =< "Implied by" Ai \impliedby endsnippet context "math()" snippet iff "Iff" Ai \iff endsnippet context "math()" snippet `(?<!\\)bm` "Bm" rwAi \bm{$1}$0 endsnippet snippet `(?<!\\)emph` "Emphasize" rwAi \emph{$1}$0 endsnippet context "math()" snippet `(?<!\\)sqrt` "Square root" rwAi \sqrt{$1}$0 endsnippet context "math()" snippet `(?<!\\)box` "Boxed" rwAi \boxed{$1}$0 endsnippet context "math()" snippet lll "L" iA \ell endsnippet context "math()" snippet xx "Cross" iA \times endsnippet priority 100 context "math()" snippet ** "Cdot" iA \cdot endsnippet context "math()" snippet norm "Norm" iA \|$1\|$0 endsnippet context "math()" snippet nabl "Nabla" iA \nabla endsnippet context "math()" snippet \\\ "Set minus" iA \setminus endsnippet context "math()" snippet mcal "mathcal" iA \mathcal{$1}$0 endsnippet priority 100 context "math()" snippet -> "To" iA \to endsnippet priority 100 context "math()" snippet -< "Gets" iA \gets endsnippet priority 200 context "math()" snippet <-> "Leftrightarrow" iA \leftrightarrow endsnippet context "math()" snippet !> "Maps to" iA \mapsto endsnippet context "math()" snippet set "Set" wA \left\\{ $1 \right\\} $0 endsnippet context "math()" snippet || "Mid" iA \mid endsnippet context "math()" snippet cc "Subset" wA \subset endsnippet context "math()" snippet notin "Not in" iA \not\in endsnippet priority 10 context "math()" snippet inn "In" iA \in endsnippet context "math()" snippet NN "Natural" iA \N endsnippet context "math()" snippet Nn "Cap" iA \cap endsnippet context "math()" snippet isect "Cap" iA \cap endsnippet context "math()" snippet UU "Cup" iA \cup endsnippet context "math()" snippet union "Cup" iA \cup endsnippet context "math()" snippet uuu "Big cup" iA \bigcup_{${1:i \in ${2: I}}} $0 endsnippet context "math()" snippet nnn "Big cap" iA \bigcap_{${1:i \in ${2: I}}} $0 endsnippet context "math()" snippet OO "Empty Set" iA \varnothing endsnippet context "math()" snippet RR "Real" iA \R endsnippet context "math()" snippet QQ "Rational" iA \Q endsnippet context "math()" snippet ZZ "Integer" iA \Z endsnippet context "math()" snippet HH "H" iA \mathbb{H} endsnippet context "math()" snippet DD "D" iA \mathbb{D} endsnippet context "math()" snippet <! "Normal" iA \triangleleft endsnippet context "math()" snippet <> "Diamond" iA \diamond endsnippet context "math()" snippet '(?<!i)sts' "Text Subscript" irA _\text{$1} $0 endsnippet context "math()" snippet tt "Text" iA \text{$1}$0 endsnippet priority 200 context "math()" snippet rowvec "Row Vector" iA \mqty[$1]$0 endsnippet priority 200 context "math()" snippet cvec "Column Vector" iA \begin{pmatrix} ${1:x}_${2:1}\\\\ \vdots\\\\ $1_${2:n} \end{pmatrix} endsnippet context "math()" snippet case "Cases" wA \begin{cases} $1 \end{cases} $0 endsnippet priority 10 context "math()" snippet "bar" "Bar" riA \overline{$1}$0 endsnippet priority 100 context "math()" snippet "([a-zA-Z])bar" "Bar" riA \overline{`!p snip.rv = match.group(1)`} endsnippet priority 10 context "math()" snippet "hat" "Hat" ri \hat{$1}$0 endsnippet priority 100 context "math()" snippet "([a-zA-Z])hat" "Hat" ri \hat{`!p snip.rv = match.group(1)`} endsnippet priority 10 context "math()" snippet "vec" "Vec" riA \vec{$1}$0 endsnippet priority 100 context "math()" snippet "([a-zA-Z])vec" "Vec" riA \vec{`!p snip.rv = match.group(1)`} endsnippet priority 100 context "math()" snippet '(?<!\\)(sin|cos|tan|arccot|cot|csc|ln|log|exp|star|perp|arcsin|arccos|arctan|arccot|arccsc|arcsec)' "Functions" rwA \\`!p snip.rv = match.group(1)` endsnippet priority 1000 context "math()" snippet `(?<!\\)epsi` "Epsilon" rwA \epsilon endsnippet priority 500 context "math()" snippet '(?<!\\)(alpha|beta|gamma|Delta|delta|epsilon|zeta|eta|Theta|theta|iota|kappa|Lambda|lambda|mu|nu|Xi|Pi|pi|varpi|Sigma|sigma|tau|Phi|phi|varphi|chi|Psi|psi|Omega|omega)' "Greek" rwA \\`!p snip.rv = match.group(1)` endsnippet context "math()" snippet 'emptyset' "Emptyset" rwA \varnothing endsnippet context "math()" snippet '(?<!\\)xxi' "Xi" rwA \xi endsnippet context "math()" snippet '(?<!\\)rho' "Rho" rwA \rho endsnippet context "math()" snippet // "Fraction" iA \\frac{${VISUAL}}{$1}$0 endsnippet context "math()" snippet / "Fraction" i \\frac{${VISUAL}}{$1}$0 endsnippet context "math()" snippet '((\d+)|(\d*)(\\)?([A-Za-z]+)((\^|_)(\{\d+\}|\d))*)/' "Symbol Fraction" wrA \\frac{`!p snip.rv = match.group(1)`}{$1}$0 endsnippet priority 1000 context "math()" snippet '^.*\)/' "() Frac" wrA `!p stripped = match.string[:-1] depth = 0 i = len(stripped) - 1 while True: if stripped[i] == ")": depth += 1 if stripped[i] == "(": depth -= 1 if depth == 0: break i -= 1 snip.rv = stripped[0:i] + "\\frac{" + stripped[i+1:-1] + "}" `{$1}$0 endsnippet context "math()" snippet __ "Full Subscript" iA _{$1}$0 endsnippet context "math()" snippet '([A-Za-z])(\d)' "Subscript" wrA `!p snip.rv = match.group(1)`_`!p snip.rv = match.group(2)` endsnippet context "math()" snippet '([A-Za-z])(\d\d)' "Subscript 2" wrA `!p snip.rv = match.group(1)`_{`!p snip.rv = match.group(2)`} endsnippet context "math()" snippet xnn "Subscript xn" iA x_{n} endsnippet context "math()" snippet ynn "Subscript yn" iA y_{n} endsnippet context "math()" snippet xii "Subscript xi" iA x_{i} endsnippet context "math()" snippet yii "Subscript yi" iA y_{i} endsnippet context "math()" snippet xjj "Subscript xj" iA x_{j} endsnippet context "math()" snippet yjj "Subscript yj" iA y_{j} endsnippet context "math()" snippet xp1 "Subscript x n+1" iA x_{n+1} endsnippet context "math()" snippet xp1 "Subscript y n+1" iA y_{n+1} endsnippet context "math()" snippet xmm "Subscript xm" iA x_{m} endsnippet context "math()" snippet ymm "Subscript ym" iA y_{m} endsnippet context "math()" snippet x_ "Subscript x" iA x_{$1}$0 endsnippet context "math()" snippet y_ "Subscript y" iA y_{$1}$0 endsnippet context "math()" snippet == "Equals" iA &= $1 \\\\$0 endsnippet context "math()" snippet != "Not Equals" iA \neq endsnippet context "math()" snippet ceil "Ceil" iA \left\lceil $1 \right\rceil $0 endsnippet context "math()" snippet floor "Floor" iA \left\lfloor $1 \right\rfloor$0 endsnippet context "math()" snippet pmat "Paren Matrix" iA \begin{pmatrix} $1 \end{pmatrix} $0 endsnippet context "math()" snippet matr "Bracket Matrix" iA \begin{bmatrix} $1 \end{bmatrix} $0 endsnippet context "math()" snippet Bmat "Brace Matrix" iA \begin{Bmatrix} $1 \end{Bmatrix} $0 endsnippet context "math()" snippet vmat "Vert Matrix" iA \begin{vmatrix} $1 \end{vmatrix} $0 endsnippet context "math()" snippet () "Parenthesis" iA \left( ${1:${VISUAL}} \right) $0 endsnippet context "math()" snippet lr "Parenthesis" i \left( ${1:${VISUAL}} \right) $0 endsnippet context "math()" snippet lr( "Parenthesis" i \left( ${1:${VISUAL}} \right) $0 endsnippet context "math()" snippet lr| "Verticals" i \left| ${1:${VISUAL}} \right| $0 endsnippet context "math()" snippet lr{ "Braces" i \left\\{ ${1:${VISUAL}} \right\\} $0 endsnippet context "math()" snippet lrb "Braces" i \left\\{ ${1:${VISUAL}} \right\\} $0 endsnippet context "math()" snippet lr[ "Brackets" i \left[ ${1:${VISUAL}} \right] $0 endsnippet context "math()" snippet lra "Angled" iA \left<${1:${VISUAL}} \right>$0 endsnippet context "math()" snippet conj "Conjugate" iA \overline{$1}$0 endsnippet context "math()" snippet sr "Square" iA ^2 endsnippet context "math()" snippet cb "Cube" iA ^3 endsnippet context "math()" snippet invs "Inverse" iA ^{-1} endsnippet context "math()" snippet compl "Complement" iA ^{c} endsnippet context "math()" snippet tp "To the power" iA ^{$1}$0 endsnippet context "math()" snippet bp "Paren to the power" iA ^{($1)}$0 endsnippet context "math()" snippet sum "Bounded Sum" w \sum_{${1:n=${2:1}}}^{${3:\infty}} $4 endsnippet context "math()" snippet prod "Product" w \prod_{${1:n=${2:1}}}^{${3:\infty}} $4 endsnippet context "math()" snippet ssum "Sum Symbol" w \sum $1 endsnippet context "math()" snippet lim "Limit" w \lim_{${1:n} \to ${2:\infty}} $0 endsnippet context "math()" snippet ooo "Infinity" iA \infty endsnippet context "math()" snippet limsup "Limit Supremum" w \limsup_{${1:n} \to ${2:\infty}} $0 endsnippet context "math()" snippet part "Partial Derivative" w \pdv[$1]{${2:v}}{${3:x}} $0 endsnippet context "math()" snippet `(?<!\\)dd` "Differential" rwA \dd{$1}$0 endsnippet context "math()" snippet dv "Derivative" wA \dv{$1}{$2}$0 endsnippet priority 300 context "math()" snippet int "Definite Integral" w \int_{${1:-\infty}}^{${2:\infty}} $3 endsnippet priority 300 context "math()" snippet iint "Indefinite Integral" w \int $1 endsnippet context "math()" snippet <= "Less than or equal" iA \le endsnippet context "math()" snippet >= "Greater than or equal" iA \ge endsnippet context "math()" snippet >> "Greater greater" iA \gg endsnippet context "math()" snippet << "Less less" iA \ll endsnippet context "math()" snippet EE "There exists" iA \exists endsnippet context "math()" snippet AA "For all" iA \forall endsnippet context "math()" snippet "such that" "Such that" iA \suchthat endsnippet context "math()" snippet "suchthat" "Suchthat" iA \suchthat endsnippet snippet image "Image" wA \begin{figure}[${1:h}] \includegraphics[width=${2:0.5}\textwidth]{$3} \end{figure} $0 endsnippet snippet plot "Plot" w \begin{figure}[$1] \centering \begin{tikzpicture} \begin{axis}[ xmin= ${2:-10}, xmax= ${3:10}, ymin= ${4:-10}, ymax = ${5:10}, axis lines = middle, ] \addplot[domain=$2:$3, samples=${6:100}]{$7}; \end{axis} \end{tikzpicture} \caption{$8}\label{plot:$9} \end{figure} $0 endsnippet snippet nn "Tikz node" w \node[$5] (${1/[^0-9a-zA-Z]//g}${2}) ${3:at (${4:0,0}) }{$${1}$}; $0 endsnippet snippet problem "Problem" biA \pbl{$1} $0 endsnippet # English snippet ltable "Long table" b \begin{longtable}{${1:|p{5cm}|p{10cm}|}} \hline $2 \hline \end{longtable} $0 endsnippet snippet '(?<!\\)---' "Hline" rwA \hline endsnippet snippet '(?<!\\)--' "Dash" rw \--- endsnippet # Code snippet bsc "Blank Inline Code" wA \texttt{${1}}`!p if t[2] and t[2][0] not in [',', '.', '?', '-', ' ']: snip.rv = ' ' else: snip.rv = '' `$2 endsnippet snippet ssc "Inline Code" wA {\inlinecode{${1}}{${2}}}`!p if t[2] and t[2][0] not in [',', '.', '?', '-', ' ']: snip.rv = ' ' else: snip.rv = '' `$3 endsnippet snippet dc "Block Code" wA \begin{listing}[${1:H}] \caption{$2} \label{lst:$3} \begin{code}{$4} $5 \end{code} $0 \end{listing} endsnippet snippet impc "Import Code" wA \begin{listing}[${1:H}] \caption{$2} \label{lst:$3} \importcode{$4}{$5}$0 \end{listing} endsnippet # Pres snippet frame "Frame" bA \begin{frame}{$1} $2 \end{frame} $0 endsnippet