global function gen_matrix(nrow, ncol, index) { let results = "\n"; let order = 1; for (var i=0; i\n"; } else { let order = 1; for (var i=0; i\n"; order ++; } } results += "\n"; return results; } function gen_columns(m) { if (m == 1) return ""; let results = "\\begin{columns}[c]\n"; let order = 2; for (var i=0; i textcolor snippet txc "textcolor" iA \textcolor{c}{ ${1:${VISUAL}} }$0 endsnippet ############################# tikz ############################ snippet `^( *)tikz` "theorem" bA ``rv = m[1]``\begin{tikzpicture} ``rv = m[1]`` $1 ``rv = m[1]``\end{tikzpicture}$0 endsnippet snippet `scatter\(([^,]+), ([^,]+)\) ` "scatter" bA \addplot[ only marks, mark=*, mark size=1.5, mark options={draw=``rv=m[2]``,fill=``rv=m[2]``!80}, ] table[x=x, y=y, col sep=comma] {``rv=m[1]``}; endsnippet snippet `plot\(([^,]+), ([^,]+)\) ` "plot line" bA \addplot[ ``rv=m[2]``, thick, ] table[x=x, y=y, col sep=comma] {``rv=m[1]``}; endsnippet snippet `scatter3\(([^,]+), ([^,]+)\) ` "scatter" bA \addplot[ only marks, mark=*, mark size=1.5, mark options={draw=``rv=m[2]``,fill=``rv=m[2]``!80}, ] table[x=x, y=y, z=z, col sep=comma] {``rv=m[1]``}; endsnippet snippet `plot3\(([^,]+), ([^,]+)\) ` "plot line" bA \addplot[ ``rv=m[2]``, thick, ] table[x=x, y=y, z=z, col sep=comma] {``rv=m[1]``}; endsnippet snippet `axis2 ` "pgfaxis" bA \begin{axis}[ xlabel=$ x $, ylabel=$ y $, xmin=-3.5, xmax=3.5, ymin=-2.5, ymax=2.5, grid, axis equal image, legend cell align=left, legend style={ at={(axis cs:3.5,2.5)}, anchor=north east, font=\tiny, draw=none, fill=none } ] $0 \end{axis} endsnippet snippet `axis3 ` "pgfaxis" bA \begin{axis}[ xlabel=$ x $, ylabel=$ y $, zlabel=$ z $, xmin=-3.5, xmax=3.5, ymin=-2.5, ymax=2.5, zmin=-2.5, zmax=2.5, grid, axis equal image, ] $0 \end{axis} endsnippet ############################# beamer ############################# #snippet only "beamer only" iA #\only<${1:1}>{ # ${2:${VISUAL}} #}$0 #endsnippet snippet ani "animategraphics" bA \animategraphics[width=\textwidth,autoplay,loop,palindrome]{${1:12}}{./img${2}}{${3:0}}{${4:10}} endsnippet snippet `col ([0-9]+) ` "columns" bA ``rv = gen_columns(m[1])``$0 endsnippet # frame abc -> \begin{frame} snippet `frame (\S+) ([0-9]+) ` "label" A \begin{frame}{``rv = m[1]``} ``rv = gen_columns(m[2])``$0 \end{frame} endsnippet ############################# latex enverniments ############################# # txt -> \text{} snippet txt "text" iA \text{${1:${VISUAL}}}$0 endsnippet # tit -> \textit{} snippet tit "text it" iA \textit{${1:${VISUAL}}}$0 endsnippet # tbf -> \textbf{} priority 10 snippet tbf "textbf" iA \textbf{${1:${VISUAL}}}$0 endsnippet # lemma snippet `^( *)lemma` "lemma" bA ``rv = m[1]``\begin{lemma} ``rv = m[1]`` $1 ``rv = m[1]``\end{lemma}$0 endsnippet # theorem snippet `^( *)thm` "theorem" bA ``rv = m[1]``\begin{theorem} ``rv = m[1]`` $1 ``rv = m[1]``\end{theorem}$0 endsnippet snippet `^( *)def` "theorem" bA ``rv = m[1]``\begin{definition} ``rv = m[1]`` $1 ``rv = m[1]``\end{definition}$0 endsnippet snippet == "inline Math" iA \\( ${1:${VISUAL}} \\)$0 endsnippet snippet `^( *)\\\[` "inline Math" bA ``rv = m[1]``\[ ``rv = m[1]`` ${VISUAL}$0 ``rv = m[1]``\] endsnippet snippet `^( *)eq` "equation" bA ``rv = m[1]``\begin{equation} ``rv = m[1]`` ${VISUAL}$0 ``rv = m[1]``\end{equation} endsnippet snippet `^( *)beg` "begin{} / end{}" bA ``rv = m[1]``\begin{$1} ``rv = m[1]`` ${VISUAL}$0 ``rv = m[1]``\end{$1} endsnippet snippet `^( *)minipage` "minipage" bA ``rv = m[1]``\begin{minipage}{.${1:45}\textwidth} ``rv = m[1]`` ${VISUAL}$0 ``rv = m[1]``\end{minipage} endsnippet # lab abc -> \label{abc} snippet `lab (\S+) ` "label" A \label{``rv = m[1]``} endsnippet # bmat m n -> a matrix with the size of m*n snippet `(bm|pm|m|vm)at ([0-9]+) ([0-9]+) ` "matrix" bA \begin{``rv = m[1]``atrix}`` rv = gen_matrix(m[2],m[3],1); ``\end{``rv = m[1]``atrix}$0 endsnippet # vec m -> a vector with the size of 1*m snippet `vec ([0-9]+) ` "matrix" bA \begin{bmatrix} ``rv = gen_vector(m[1])`` \end{bmatrix}$0 endsnippet # fig label n -> figure enverniment with n subfigures, and the labels are specified by label snippet `fig (\S+) ([0-9]+) ` "figure" bA ``rv = gen_fig(m[1], m[2])``$0 endsnippet snippet `ref (\S+) ` "reference" A \cref{``rv = m[1]``} endsnippet snippet `cite (\S+) ` "cite" A \cite{``rv = m[1]``} endsnippet snippet `(chapter|section|subsection|subsubsection) (\S+) ` "paragraph" bwA \\``rv = m[1]``{``rv = m[2]``} $0 endsnippet ############################# Math ############################# ############################# Greek letters snippet @a "alpha" iAm \alpha endsnippet snippet @A "alpha" iAm \alpha endsnippet snippet @b "beta" iAm \beta endsnippet snippet @B "beta" iAm \beta endsnippet snippet @c "chi" iAm \chi endsnippet snippet @C "chi" iAm \chi endsnippet snippet @p "pi" iAm \pi endsnippet snippet :p "partial" iAm \partial endsnippet snippet @P "Pi" iAm \Pi endsnippet snippet @g "gamma" iAm \gamma endsnippet snippet @G "Gamma" iAm \Gamma endsnippet snippet @d "delta" iAm \delta endsnippet snippet @D "Delta" iAm \Delta endsnippet snippet @e "epsilon" iAm \epsilon endsnippet snippet @E "epsilon" iAm \epsilon endsnippet snippet :e "varepsilon" iAm \varepsilon endsnippet snippet :E "varepsilon" iAm \varepsilon endsnippet snippet @n "nabla" iAm \nabla endsnippet snippet @z "zeta" iAm \zeta endsnippet snippet @Z "zeta" iAm \zeta endsnippet snippet @t "theta" iAm \theta endsnippet snippet @T "Theta" iAm \Theta endsnippet snippet :t "tau" iAm \tau endsnippet snippet @k "kappa" iAm \kappa endsnippet snippet @K "kappa" iAm \kappa endsnippet snippet @l "lambda" iAm \lambda endsnippet snippet @L "Lambda" iAm \Lambda endsnippet snippet @m "mu" iAm \mu endsnippet snippet @M "mu" iAm \mu endsnippet snippet @r "rho" iAm \rho endsnippet snippet @R "rho" iAm \rho endsnippet snippet @s "sigma" iAm \sigma endsnippet snippet @S "Sigma" iAm \Sigma endsnippet snippet @o "omega" iAm \omega endsnippet snippet @O "Omega" iAm \Omega endsnippet snippet \{ "bracket" iAm \\{ ${1:${VISUAL}} \\}$0 endsnippet snippet @| "left| right|" iAm \left| ${1:${VISUAL}} \right|$0 endsnippet snippet :| "left\| right\|" iAm \left\| ${1:${VISUAL}} \right\|$0 endsnippet snippet @} "\left\{ \right\}" iAm \left\\{ ${1:${VISUAL}} \right\\}$0 endsnippet snippet ` bl ` "left\{ right." iAm \left\\{ ${1:${VISUAL}} \right.$0 endsnippet snippet ` br ` "left. right\}" iAm \left. ${1:${VISUAL}} \right\\}$0 endsnippet snippet @] "left[ right]" iAm \left[ ${1:${VISUAL}} \right]$0 endsnippet snippet @) "left( right)" iAm \left( ${1:${VISUAL}} \right)$0 endsnippet snippet @> "leftangle rightangle" iAm \left< ${1:${VISUAL}} \right>$0 endsnippet ############################# math symbols # RR -> \mathbb{R} snippet `RR` "sets" iwAm \\mathbb{``rv=m[0].charAt(0)``} endsnippet # => -> \Rightarrow snippet `->` "implies" iAm \rightarrow endsnippet # =< -> \Leftarrow snippet `<-` "implied by" iAm \leftarrow endsnippet # <= -> \leq snippet `<=` "leq" iAm \leq endsnippet # >= -> \geq snippet `>=` "geq" iAm \geq endsnippet # != -> \neq snippet `!=` "neq" iAm \neq endsnippet snippet `~=` "approx: iAm \approx endsnippet # ... -> \cdots snippet ... "dots" iAm \dots endsnippet snippet *** "cdots" iAm \cdots endsnippet snippet ;;; "vdots" iAm \vdots endsnippet snippet ::: "ddots" iAm \ddots endsnippet # inf -> \infty snippet inf "\infty" iAm \infty endsnippet ############################# math functions priority 200 snippet norm "norm" iAm \left\| ${1:${VISUAL}} \right\|$0 endsnippet snippet ^ "superscript" iAm ^{${1}}$0 endsnippet snippet _ "subscript" iAm _{${1}}$0 endsnippet # spl -> the split enverniment with the selected text snippet spl "split" Am \begin{split} ${VISUAL}$0 \end{split} endsnippet # ali -> the aligned enverniment the selected text snippet ali "aligned" Am \begin{aligned} ${VISUAL}$0 \end{aligned} endsnippet # case -> the cases enverniment the selected text snippet case "cases" Am \begin{cases} ${VISUAL}$0 \end{cases} endsnippet # fr -> fractor enverniment with the selected text snippet // "frac" iAm \frac{${1:${VISUAL}}}{$2}$0 endsnippet # \mathbf{A}^T -> \mathbf{A}^{\mathbrm T} snippet `\^\{T` "transpose" iAm ^{\mathrm{T} endsnippet # \mathbf{A}^H -> \mathbf{A}^{\mathbrm H} snippet `\^\{H` "hermitian" iAm ^{\mathrm{H} endsnippet # ||x||_F -> ||x||_{\mathrm F} snippet `\_\{F` "frobenius" iAm _{\mathrm{F} endsnippet snippet `(\\?[a-zA-Z0-9]\w*({?\w*})?)(bf|BF)` "mathbf" iAm \mathbf{``rv = m[1]``} endsnippet snippet `(\\?[a-zA-Z0-9]\w*({?\w*})?)(bm|BM)` "mathbm" iAm \bm{``rv = m[1]``} endsnippet # priority 100 snippet `(\\?[a-zA-Z]\w*({?\w*})?)bb` iAm \mathbb{``rv = m[1]``}$0 endsnippet # priority 100 snippet `(\\?[a-zA-Z]\w*({?\w*})?)cal` "mathcal" iAm \mathcal{``rv = m[1].toUpperCase()``}$0 endsnippet # priority 100 snippet `(\\?[a-zA-Z]\w*({?\w*})?)(frak)` "mathfrak" iAm \mathfrak{``rv = m[1]``} endsnippet # priority 100 snippet `(? \in snippet ` (in|notin|subset|subseteq|supset|supseteq) ` "sets operator" wAm \``rv = m[1]`` endsnippet # cap -> \cap snippet ` (circ|cap|cup|land|lor|lnot|oplus|ominus|times|otimes|sqcap|sqcup|vdash|models) ` "logic operator" wAm \``rv = m[1]`` endsnippet snippet empty "empty set" Am \varnothing endsnippet snippet `(\\?[a-zA-Z0-9]\w*({?\w*})?)op` "operatorname" iAm \operatorname{``rv = m[1]``} endsnippet snippet `([0-9]+)d` "degrees" iAm ``rv = m[1]``^{\circ}$0 endsnippet snippet `sqrt` "sqrt" iAm \sqrt{${1:${VISUAL}}}$0 endsnippet snippet `sum` "sqrt" iAm \sum endsnippet ############################# hat operations snippet `(\\?[a-zA-Z]\w*({?\w*})?)(bar|BAR)` "Bar" iAm \overline{``rv = m[1]``} endsnippet snippet `(\\?[a-zA-Z]\w*({?\w*})?)(td|TD)` "tilde" iAm \tilde{``rv = m[1]``} endsnippet snippet `(\\?[a-zA-Z]\w*({?\w*})?)(hat|HAT)` "hat" iAm \hat{``rv = m[1]``} endsnippet snippet `(\\?[a-zA-Z]\w*({?\w*})?)(hvec)` "Vector postfix" iAm \vec{``rv = m[1]``} endsnippet snippet `(\\?[a-zA-Z]\w*({?\w*})?)(rta)` "Vector postfix" iAm \overrightarrow{``rv = m[1]``} endsnippet snippet `(\\?[a-zA-Z]\w*({?\w*})?)(hdot)` "dot" iAm \dot{``rv = m[1]``} endsnippet snippet `(\\?[a-zA-Z]\w*({?\w*})?)(hddot)` "ddot" iAm \ddot{``rv = m[1]``} endsnippet