diff --git a/.config/nvim/UltiSnips/tex.snippets b/.config/nvim/UltiSnips/tex.snippets index 40e70ad..45334ec 100644 --- a/.config/nvim/UltiSnips/tex.snippets +++ b/.config/nvim/UltiSnips/tex.snippets @@ -1,27 +1,40 @@ -snippet fig "figure" -\begin{figure} +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 x != '0' + +endglobal + +snippet fig "Figure environment" b +\begin{figure}[${1:htpb}] \centering - \includegraphics[width=.8\textwidth]{$1} - \caption{$3} - \label{fig:$2} + ${2:\includegraphics[width=0.8\textwidth]{$3}} + \caption{${4:$3}} + \label{fig:${5:${3/\W+/-/g}}} \end{figure} endsnippet -snippet tab "table" -\begin{table} +snippet table "Table environment" b +\begin{table}[${1:htpb}] \centering - \begin{tabular}{$1} - $0 + \caption{${2:caption}} + \label{tab:${3:label}} + \begin{tabular}{${5:c}} + $0${5/((?<=.)c|l|r)|./(?1: & )/g} \end{tabular} - \caption{$3} - \label{table:$2} \end{table} endsnippet -snippet \beg "\begin{}...\end{}" -\begin{$1} +snippet beg "\begin{}...\end{}" bA +\\begin{$1} $0 -\end{$1} +\\end{$1} endsnippet snippet enum "list" @@ -29,3 +42,227 @@ snippet enum "list" \item $0 \end{enumerate} 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 +\[ +$2 +${1:.}\] $0 +endsnippet + +snippet ali "Align" bA +\begin{align*} + ${2:${VISUAL}} +${1:.}\end{align*} +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 __ "subscript" iA +_{$1}$0 +endsnippet + +context "math()" +snippet sr "^2" iA +^2 +endsnippet + +context "math()" +snippet cb "^3" iA +^3 +endsnippet + +context "math()" +snippet td "superscript" iA +^{$1}$0 +endsnippet + +context "math()" +snippet // "Fraction" iA +\\frac{$1}{$2}$0 +endsnippet + +context "math()" +snippet / "Fraction" i +\\frac{${VISUAL}}{$1}$0 +endsnippet + +context "math()" +snippet '((\d+)|(\d*)(\\)?([A-Za-z]+)((\^|_)(\{\d+\}|\d))*)/' "Fraction" wrA +\\frac{`!p snip.rv = match.group(1)`}{$1}$0 +endsnippet + +priority 1000 +context "math()" +snippet '^.*\)/' "() Fraction" 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 () "left( right)" iA +\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 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 + +snippet sum "sum" w +\sum_{n=${1:1}}^{${2:\infty}} ${3:a_n z^n} +endsnippet + +snippet taylor "taylor" w +\sum_{${1:k}=${2:0}}^{${3:\infty}} ${4:c_$1} (x-a)^$1 $0 +endsnippet + +snippet lim "limit" w +\lim_{${1:n} \to ${2:\infty}} +endsnippet + +snippet limsup "limsup" w +\limsup_{${1:n} \to ${2:\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{${1:${VISUAL}}} $0 +endsnippet + +context "math()" +snippet sr "^2" iA +^2 +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{${9:$8}} +\end{figure} +endsnippet + +priority 100 +context "math()" +snippet '(?