Last active
December 27, 2021 16:33
-
-
Save atremblay/04ecc0b22fdc45b2f362ab23423f690a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
####################################################################### | |
# copied from https://github.com/gillescastel/latex-snippets # | |
####################################################################### | |
global !p | |
texMathZones = ['texMathZone'+x for x in ['A', 'AS', 'B', 'BS', 'C', 'CS', 'D', 'DS', 'E', 'ES', 'F', 'FS', 'G', 'GS', 'H', 'HS', 'I', 'IS', 'J', 'JS', 'K', 'KS', 'L', 'LS', 'DS', 'V', 'W', 'X', 'Y', 'Z']] | |
texIgnoreMathZones = ['texMathText'] | |
texMathZoneIds = vim.eval('map('+str(texMathZones)+", 'hlID(v:val)')") | |
texIgnoreMathZoneIds = vim.eval('map('+str(texIgnoreMathZones)+", 'hlID(v:val)')") | |
ignore = texIgnoreMathZoneIds[0] | |
def math(): | |
synstackids = vim.eval("synstack(line('.'), col('.') - (col('.')>=2 ? 1 : 0))") | |
try: | |
first = next(i for i in reversed(synstackids) if i in texIgnoreMathZoneIds or i in texMathZoneIds) | |
return first != ignore | |
except StopIteration: | |
return False | |
endglobal | |
snippet template "Basic template" b | |
\documentclass[a4paper]{article} | |
\usepackage[utf8]{inputenc} | |
\usepackage[T1]{fontenc} | |
\usepackage{textcomp} | |
\usepackage[dutch]{babel} | |
\usepackage{amsmath, amssymb} | |
% figure support | |
\usepackage{import} | |
\usepackage{xifthen} | |
\pdfminorversion=7 | |
\usepackage{pdfpages} | |
\usepackage{transparent} | |
\newcommand{\incfig}[1]{% | |
\def\svgwidth{\columnwidth} | |
\import{./figures/}{#1.pdf_tex} | |
} | |
\pdfsuppresswarningpagegroup=1 | |
\begin{document} | |
$0 | |
\end{document} | |
endsnippet | |
snippet box "Box" | |
`!p snip.rv = '┌' + '─' * (len(t[1]) + 2) + '┐'` | |
│ $1 │ | |
`!p snip.rv = '└' + '─' * (len(t[1]) + 2) + '┘'` | |
$0 | |
endsnippet | |
snippet beg "begin{} / end{}" bA | |
\\begin{$1} | |
$0 | |
\\end{$1} | |
endsnippet | |
priority 100 | |
snippet ... "ldots" iA | |
\ldots | |
endsnippet | |
snippet table "Table environment" b | |
\begin{table}[${1:htpb}] | |
\centering | |
\caption{${2:caption}} | |
\label{tab:${3:label}} | |
\begin{tabular}{${5:c}} | |
$0${5/((?<=.)c|l|r)|./(?1: & )/g} | |
\end{tabular} | |
\end{table} | |
endsnippet | |
snippet fig "Figure environment" b | |
\begin{figure}[${1:htpb}] | |
\centering | |
${2:\includegraphics[width=0.8\textwidth]{$3}} | |
\caption{${4:$3}} | |
\label{fig:${5:${3/\W+/-/g}}} | |
\end{figure} | |
endsnippet | |
snippet enum "Enumerate" bA | |
\begin{enumerate} | |
\item $0 | |
\end{enumerate} | |
endsnippet | |
snippet item "Itemize" bA | |
\begin{itemize} | |
\item $0 | |
\end{itemize} | |
endsnippet | |
snippet desc "Description" b | |
\begin{description} | |
\item[$1] $0 | |
\end{description} | |
endsnippet | |
snippet pac "Package" b | |
\usepackage[${1:options}]{${2:package}}$0 | |
endsnippet | |
snippet => "implies" Ai | |
\implies | |
endsnippet | |
snippet =< "implied by" Ai | |
\impliedby | |
endsnippet | |
context "math()" | |
snippet iff "iff" Ai | |
\iff | |
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 | |
\[ | |
${1:${VISUAL}} | |
.\] $0 | |
endsnippet | |
snippet ali "Align" bA | |
\begin{align*} | |
${1:${VISUAL}} | |
.\end{align*} | |
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 = symbols('x y z t') | |
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 "mathematicablock" w | |
math $1 math$0 | |
endsnippet | |
priority 10000 | |
snippet 'math(.*)math' "math" wr | |
`!p | |
import subprocess | |
code = match.group(1) | |
code = 'ToString[' + code + ', TeXForm]' | |
snip.rv = subprocess.check_output(['wolframscript', '-code', code]) | |
` | |
endsnippet | |
snippet == "equals" iA | |
&= $1 \\\\ | |
endsnippet | |
snippet != "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 | |
snippet pmat "pmat" iA | |
\begin{pmatrix} $1 \end{pmatrix} $0 | |
endsnippet | |
snippet bmat "bmat" iA | |
\begin{bmatrix} $1 \end{bmatrix} $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 | |
context "math()" | |
snippet conj "conjugate" iA | |
\overline{$1}$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 | |
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 | |
snippet <= "leq" iA | |
\le | |
endsnippet | |
snippet >= "geq" iA | |
\ge | |
endsnippet | |
context "math()" | |
snippet EE "geq" iA | |
\exists | |
endsnippet | |
context "math()" | |
snippet AA "forall" iA | |
\forall | |
endsnippet | |
context "math()" | |
snippet xnn "xn" iA | |
x_{n} | |
endsnippet | |
context "math()" | |
snippet ynn "yn" iA | |
y_{n} | |
endsnippet | |
context "math()" | |
snippet xii "xi" iA | |
x_{i} | |
endsnippet | |
context "math()" | |
snippet yii "yi" iA | |
y_{i} | |
endsnippet | |
context "math()" | |
snippet xjj "xj" iA | |
x_{j} | |
endsnippet | |
context "math()" | |
snippet yjj "yj" iA | |
y_{j} | |
endsnippet | |
context "math()" | |
snippet xp1 "x" iA | |
x_{n+1} | |
endsnippet | |
context "math()" | |
snippet xmm "x" iA | |
x_{m} | |
endsnippet | |
snippet R0+ "R0+" iA | |
\\R_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{${9:$8}} | |
\end{figure} | |
endsnippet | |
snippet nn "Tikz node" w | |
\node[$5] (${1/[^0-9a-zA-Z]//g}${2}) ${3:at (${4:0,0}) }{$${1}$}; | |
$0 | |
endsnippet | |
context "math()" | |
snippet mcal "mathcal" iA | |
\mathcal{$1}$0 | |
endsnippet | |
snippet lll "l" iA | |
\ell | |
endsnippet | |
context "math()" | |
snippet nabl "nabla" iA | |
\nabla | |
endsnippet | |
context "math()" | |
snippet xx "cross" iA | |
\times | |
endsnippet | |
priority 100 | |
snippet ** "cdot" iA | |
\cdot | |
endsnippet | |
context "math()" | |
snippet norm "norm" iA | |
\|$1\|$0 | |
endsnippet | |
priority 100 | |
context "math()" | |
snippet '(?<!\\)(sin|cos|arccot|cot|csc|ln|log|exp|star|perp)' "ln" rwA | |
\\`!p snip.rv = match.group(1)` | |
endsnippet | |
priority 300 | |
context "math()" | |
snippet dint "integral" wA | |
\int_{${1:-\infty}}^{${2:\infty}} ${3:${VISUAL}} $0 | |
endsnippet | |
priority 200 | |
context "math()" | |
snippet '(?<!\\)(arcsin|arccos|arctan|arccot|arccsc|arcsec|pi|zeta|int)' "ln" rwA | |
\\`!p snip.rv = match.group(1)` | |
endsnippet | |
priority 100 | |
context "math()" | |
snippet -> "to" iA | |
\to | |
endsnippet | |
priority 200 | |
context "math()" | |
snippet <-> "leftrightarrow" iA | |
\leftrightarrow | |
endsnippet | |
context "math()" | |
snippet !> "mapsto" iA | |
\mapsto | |
endsnippet | |
context "math()" | |
snippet invs "inverse" iA | |
^{-1} | |
endsnippet | |
context "math()" | |
snippet compl "complement" iA | |
^{c} | |
endsnippet | |
context "math()" | |
snippet \\\ "setminus" iA | |
\setminus | |
endsnippet | |
snippet >> ">>" iA | |
\gg | |
endsnippet | |
snippet << "<<" iA | |
\ll | |
endsnippet | |
snippet ~~ "~" iA | |
\sim | |
endsnippet | |
context "math()" | |
snippet set "set" wA | |
\\{$1\\} $0 | |
endsnippet | |
snippet || "mid" iA | |
\mid | |
endsnippet | |
context "math()" | |
snippet cc "subset" Ai | |
\subset | |
endsnippet | |
snippet notin "not in " iA | |
\not\in | |
endsnippet | |
context "math()" | |
snippet inn "in " iA | |
\in | |
endsnippet | |
snippet NN "n" iA | |
\N | |
endsnippet | |
snippet Nn "cap" iA | |
\cap | |
endsnippet | |
snippet UU "cup" iA | |
\cup | |
endsnippet | |
snippet uuu "bigcup" iA | |
\bigcup_{${1:i \in ${2: I}}} $0 | |
endsnippet | |
snippet nnn "bigcap" iA | |
\bigcap_{${1:i \in ${2: I}}} $0 | |
endsnippet | |
snippet OO "emptyset" iA | |
\O | |
endsnippet | |
snippet RR "real" iA | |
\R | |
endsnippet | |
snippet QQ "Q" iA | |
\Q | |
endsnippet | |
snippet ZZ "Z" iA | |
\Z | |
endsnippet | |
snippet <! "normal" iA | |
\triangleleft | |
endsnippet | |
snippet <> "hokje" 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 | |
context "math()" | |
snippet case "cases" wA | |
\begin{cases} | |
$1 | |
\end{cases} | |
endsnippet | |
snippet SI "SI" iA | |
\SI{$1}{$2} | |
endsnippet | |
snippet bigfun "Big function" iA | |
\begin{align*} | |
$1: $2 &\longrightarrow $3 \\\\ | |
$4 &\longmapsto $1($4) = $0 | |
.\end{align*} | |
endsnippet | |
snippet cvec "column vector" iA | |
\begin{pmatrix} ${1:x}_${2:1}\\\\ \vdots\\\\ $1_${2:n} \end{pmatrix} | |
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" riA | |
\hat{$1}$0 | |
endsnippet | |
priority 100 | |
context "math()" | |
snippet "([a-zA-Z])hat" "hat" riA | |
\hat{`!p snip.rv=match.group(1)`} | |
endsnippet | |
snippet letw "let omega" iA | |
Let $\Omega \subset \C$ be open. | |
endsnippet | |
snippet HH "H" iA | |
\mathbb{H} | |
endsnippet | |
snippet DD "D" iA | |
\mathbb{D} | |
endsnippet | |
# vim:ft=snippets |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment