#Modified from Gilles Castel - https://castel.dev global !p def math(): return vim.eval('vimtex#syntax#in_mathzone()') == '1' def comment(): return vim.eval('vimtex#syntax#in_comment()') == '1' def env(name): [x,y] = vim.eval("vimtex#env#is_inside('" + name + "')") return x != '0' and y != '0' endglobal snippet template "Basic template" b \documentclass[letterpaper]{${2:amsart}}% or article, book, report, etc. \usepackage[margin=1.5in]{geometry} \input{./latex-preamble/packages.tex} \input{./latex-preamble/theorems.tex} \input{./latex-preamble/commands.tex} \title{${1:Title}}% optional [short title] \author{Nicholas J. Christoffersen} \date{`date +%B\ %e\,\ %Y`}% or \today \begin{document} \maketitle %\tableofcontents $0 \end{document} endsnippet snippet quiz "quiz-template" b \textbf{Name:} \vspace{5pt} \hrule \vspace{15pt} endsnippet snippet color "color" {\color{red} $1}$0 endsnippet snippet color "color" bA {\color{red} $1}$0 endsnippet snippet tikz "tikz template" b \usepackage{tikz} \tikzset{ to/.style={ ->, thick, shorten <= 1pt, shorten >= 1pt,}, from/.style={ <-, thick, shorten <= 1pt, shorten >= 1pt,} } endsnippet snippet graph "insert graph" \begin{tikzpicture} \begin{axis}[ xmin = ${1:-pi}, xmax = ${2:pi}, ymin = ${3:-1.5}, ymax = ${4:2.0}] \addplot[ domain = ${5:-pi:pi}, samples = ${6:200}, smooth, thick, blue, ] {${7:exp(-x/10)*( cos(deg(x)) + sin(deg(x))/10 )}}; \end{axis} \end{tikzpicture} $0 endsnippet snippet plot "insert plot" \addplot[ domain = ${1:-pi:pi}, samples = ${2:200}, smooth, thick, blue, ] {${3:exp(-x/10)*( cos(deg(x)) + sin(deg(x))/10 )}};$0 endsnippet snippet beg "begin{} / end{}" bA \\begin{$1} $2 \\end{$1}$0 endsnippet priority 100 snippet ... "ldots" iA \ldots endsnippet snippet enum "Enumerate" bA \begin{enumerate} \item $0 \end{enumerate} endsnippet snippet item "Itemize" bA \begin{itemize} \item $0 \end{itemize} endsnippet snippet mk "Math" wA $${1}$`!p if t[2] and t[2][0] not in [',', '.', '?', '-', ')', ' ']: snip.rv = ' ' else: snip.rv = '' `$2 endsnippet snippet dm "Math" wA \begin{align*} ${1:${VISUAL}} \end{align*}$0 endsnippet snippet ali "Align" bA \begin{align} ${1:${VISUAL}} \end{align}$0 endsnippet context "math()" snippet // "Fraction" iA \\frac{$1}{$2}$0 endsnippet snippet / "Fraction" i \\frac{${VISUAL}}{$1}$0 endsnippet context "math()" snippet '((\d+)|(\d*)(\\)?([A-Za-z]+)((\^|_)(\{\d+\}|\d))*)/' "symbol frac" 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 '([A-Za-z])(\d)' "auto subscript" wrA `!p snip.rv = match.group(1)`_`!p snip.rv = match.group(2)` endsnippet context "math()" snippet '([A-Za-z])_(\d\d)' "auto subscript2" wrA `!p snip.rv = match.group(1)`_{`!p snip.rv = match.group(2)`} endsnippet snippet sympy "sympyblock " w sympy $1 sympy$0 endsnippet priority 10000 snippet 'sympy(.*)sympy' "sympy" wr `!p from sympy import * x, y, z, t, a = symbols('x y z t a') k, m, n = symbols('k m n', integer=True) f, g, h = symbols('f g h', cls=Function) init_printing() snip.rv = eval('latex(' + match.group(1).replace('\\', '').replace('^', '**').replace('{', '(').replace('}', ')') + ')') ` endsnippet priority 1000 snippet math "mathematica block" w math $1 math$0 endsnippet priority 10000 snippet 'math(.*)math' "evaluate mathematica" wr `!p import subprocess code = 'ToString[' + match.group(1) + ', TeXForm]' snip.rv = subprocess.check_output(['wolframscript', '-code', code], text=True) ` endsnippet snippet pmat "pmat" iA \begin{pmatrix} $1 \end{pmatrix} $0 endsnippet snippet bmat "bmat" iA \begin{bmatrix} $1 \end{bmatrix} $0 endsnippet snippet () "left( right)" iA (${1:${VISUAL}})$0 endsnippet snippet lr "left( right)" i \left( ${1:${VISUAL}} \right)$0 endsnippet snippet lr( "left( right)" i \left( ${1:${VISUAL}} \right)$0 endsnippet snippet lr| "left| right|" i \left| ${1:${VISUAL}} \right|$0 endsnippet snippet lr{ "left\{ right\}" i \left\\{ ${1:${VISUAL}} \right\\}$0 endsnippet snippet lrb "left\{ right\}" i \left\\{ ${1:${VISUAL}} \right\\}$0 endsnippet snippet lr[ "left[ right]" i \left[ ${1:${VISUAL}} \right]$0 endsnippet snippet lra "leftangle rightangle" iA \left<${1:${VISUAL}} \right>$0 endsnippet context "math()" snippet conj "conjugate" iA \overline{$1}$0 endsnippet snippet sum "sum" w \sum_{${1:n=1}}^{${2:\infty}} ${3:a_n z^n} endsnippet snippet lim "limit" w \lim_{${1:n} \to ${2:\infty}} endsnippet snippet limsup "limsup" w \limsup_{${1:n\to\infty}} endsnippet snippet prod "product" w \prod_{${1:n=${2:1}}}^{${3:\infty}} ${4:${VISUAL}} $0 endsnippet snippet part "d/dx" w \frac{\partial ${1:V}}{\partial ${2:x}} $0 endsnippet context "math()" snippet sq "\sqrt{}" iA \sqrt${2}{${1:${VISUAL}}}$0 endsnippet context "math()" snippet sr "^2" iA ^2 endsnippet context "math()" snippet cb "^3" iA ^3 endsnippet context "math()" snippet td "to the ... power" iA ^{$1}$0 endsnippet context "math()" snippet rd "to the ... power" iA ^{($1)}$0 endsnippet snippet __ "subscript" iA _{$1}$0 endsnippet snippet ooo "\infty" iA \infty endsnippet snippet rij "mrij" i (${1:x}_${2:n})_{${3:$2}\\in${4:\\N}}$0 endsnippet context "math()" snippet AA "forall" iA \forall endsnippet snippet nn "tikz node" w \node[$5] (${1/[^0-9a-zA-Z]//g}${2}) ${3:at (${4:0,0}) }{$${1}$}; $0 endsnippet snippet pp "tikz path" w \path (${1}) ${3:edge[${4:${5:to}, bend ${6:left=45}}] }${7:node[${8:label=${9:above}:\{${10:-1}\}}] }{} (${2}); $0 endsnippet context "math()" snippet mcal "mathcal" iA \mathcal{$1}$0 endsnippet context "math()" snippet mbb "mathbb" iA \mathbb{$1}$0 endsnippet snippet lll "l" iA \ell endsnippet context "math()" snippet xx "cross" iA \times endsnippet priority 100 snippet ** "cdot" iA \cdot endsnippet context "math()" snippet norm "norm" iA \\left\|$1\\right\|$0 endsnippet priority 25 context "math()" snippet '(?