Created
November 12, 2023 07:31
-
-
Save Theigrams/c67cd5bb0883d564391d3a22e7ff3145 to your computer and use it in GitHub Desktop.
LaTeX HyperSnips
This file contains hidden or 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
| global | |
| // JavaScript code | |
| function gen_matrix(nrow, ncol) { | |
| let results = ""; | |
| let order = 1; | |
| for (var i=0; i < nrow; i++){ | |
| results += ' '; | |
| for(var j = 0; j < ncol - 1; j++){ | |
| results += "$" + (order).toString() + " & "; | |
| order ++; | |
| } | |
| results += "$" + (order).toString() + " \\\\" + "\\"; | |
| order ++; | |
| } | |
| return results; | |
| } | |
| function gen_matrix_transposed(nrow, ncol) { | |
| let results = ""; | |
| for (var i = 0; i < nrow; i++){ | |
| results += ' '; | |
| var j = 0; | |
| for(; j < ncol - 1;j++){ | |
| results += "$" + (i + j * ncol + 1).toString() + " & "; | |
| } | |
| results += "$" + (i + j * ncol + 1).toString() + " \\\\" + "\\"; | |
| } | |
| return results; | |
| } | |
| function tes_matrix(nrow, ncol,t) { | |
| let results = ""; | |
| let order = 1; | |
| for (var i=0; i<nrow; i++){ | |
| results += ' '; | |
| for(var j = 0;j <ncol-1;j++){ | |
| if (order > 1 ){ | |
| results += "${" +(order ).toString() + ":" + t[order-2] + "}\t & "; | |
| } | |
| else{ | |
| results += "$" +(order ).toString() + " & "; | |
| } | |
| order ++; | |
| } | |
| results += "$"+(order).toString() +" \\\\" + "\\ "; | |
| order ++; | |
| } | |
| return results; | |
| } | |
| // 输出一个表格 | |
| function createTable(rows, cols) { | |
| let ret = ""; | |
| let order = 1; | |
| for (let i = 0; i < parseInt(rows) + 2; i++) { | |
| for (let j = 0; j < parseInt(cols); j++) { | |
| if (i === 1) { | |
| ret += "|---"; | |
| } else { | |
| ret += "| $" + (order).toString() + " "; | |
| order++; | |
| } | |
| } | |
| ret += "|\n" | |
| } | |
| return ret; | |
| } | |
| endglobal | |
| # == Fraction Match == | |
| snippet // "Fraction" iAm | |
| \\frac{${1:${VISUAL}}}{$2}$0 | |
| endsnippet | |
| snippet `((\d+)|(\d*)(\\)?([A-Za-z!]+)((\^|_)(\{\d+\}|\d))*)/` "Fraction no ()" iAm | |
| \frac{``rv = m[1]``}{$1}$0 | |
| endsnippet | |
| priority 200 | |
| snippet `(?<=\s)(\\mu|\\alpha|\\sigma|\\rho|\\beta|\\gamma|\\delta|\\zeta|\\eta|\\varepsilon|\\theta|\\iota|\\kappa|\\vartheta|\\lambda|\\nu|\\pi|\\rho|\\tau|\\upsilon|\\phi|\\chi|\\psi|\\omega|\\Gamma|\\Delta|\\Theta|\\Lambda|\\Xi|\\Pi|\\Sigma|\\Upsilon|\\Phi|\\Psi|\\Omega|[A-Za-z]{1,2})?(_[A-Za-z0-9]|_\{[^}]+\})?(\^[A-Za-z0-9]|\^\{[^}]+\})?(_[A-Za-z0-9]|_\{[^}]+\})?(\([^)]+\))(_[A-Za-z0-9]|_\{[^}]+\})?(\^[A-Za-z0-9]|\^\{[^}]+\})?(_[A-Za-z0-9]|_\{[^}]+\})?\/` "Fraction with ()" iAm | |
| ``rv = "\\frac{" + m.slice(1, m.length).join('') + "}{$1}$2"`` | |
| endsnippet | |
| # == Hat Operation == | |
| # ==== Auto Capture Hat Operation ==== | |
| snippet `([a-zA-Z])(htd)` "tilde" iAm | |
| \tilde{``rv = m[1]``} | |
| endsnippet | |
| snippet `([a-zA-Z])(hvc)` "hvc" iAm | |
| \overrightarrow{``rv = m[1]``} | |
| endsnippet | |
| snippet `([a-zA-Z])(bar)` "bar" iAm | |
| \overline{``rv = m[1]``} | |
| endsnippet | |
| snippet `([a-zA-Z])(hat)` "hat" iAm | |
| \widehat{``rv = m[1]``} | |
| endsnippet | |
| snippet `([a-zA-Z])(hdot)` "dot" iAm | |
| \dot{``rv = m[1]``} | |
| endsnippet | |
| snippet `([a-zA-Z])(hddot)` "ddot" iAm | |
| \ddot{``rv = m[1]``} | |
| endsnippet | |
| # == Superscript Operation == | |
| priority 10000 | |
| snippet TT "Transpose" iAm | |
| ^{\top}$0 | |
| endsnippet | |
| # == Subscript Operation == | |
| snippet `([A-Za-z])(\d)` "auto subscript" iAm | |
| `` rv = m[1] + "_" + m[2]`` | |
| endsnippet | |
| priority 100 | |
| snippet `([A-Za-z])_(\d{2})` "auto subscript2" iAm | |
| `` rv = m[1] + "_{" + m[2] + "$1}$0" `` | |
| endsnippet | |
| # Custom: Add more greek letters | |
| snippet `(\\mu|\\alpha|\\sigma|\\rho|\\beta|\\gamma|\\delta|\\zeta|\\eta|\\varepsilon|\\theta|\\iota|\\kappa|\\vartheta|\\lambda|\\nu|\\pi|\\rho|\\tau|\\upsilon|\\phi|\\chi|\\psi|\\omega|\\Gamma|\\Delta|\\Theta|\\Lambda|\\Xi|\\Pi|\\Sigma|\\Upsilon|\\Phi|\\Psi|\\Omega)([a-z])\2` "auto subscript for greek letter" iAm | |
| `` rv = m[1] + "_" + m[2].substring(0, 1) `` | |
| endsnippet | |
| snippet `(\\mu|\\alpha|\\sigma|\\rho|\\beta|\\gamma|\\delta|\\zeta|\\eta|\\varepsilon|\\theta|\\iota|\\kappa|\\vartheta|\\lambda|\\nu|\\pi|\\rho|\\tau|\\upsilon|\\phi|\\chi|\\psi|\\omega|\\Gamma|\\Delta|\\Theta|\\Lambda|\\Xi|\\Pi|\\Sigma|\\Upsilon|\\Phi|\\Psi|\\Omega)S([a-z])\2` "auto subscript for greek letter" iAm | |
| `` rv = m[1] + "_{${1:" + m[2].substring(0, 1) + "}}$2"`` | |
| endsnippet | |
| # == Font Operation == | |
| # ==== Dynamic Operation ==== | |
| priority 100 | |
| snippet `(\\?[a-zA-Z]\w*({?\w*})?)(bf)` "mathbf" iAm | |
| \mathbf{``rv = m[1]``} | |
| endsnippet | |
| priority 100 | |
| snippet `(\\?[a-zA-Z]\w*({?\w*})?)(bm)` "mathbm" iAm | |
| \bm{``rv = m[1]``} | |
| endsnippet | |
| priority 100 | |
| snippet `(\\?[a-zA-Z]\w*({?\w*})?)(bs)` "boldsymbol" iAm | |
| \boldsymbol{``rv = m[1]``} | |
| endsnippet | |
| priority 100 | |
| snippet `(\\?[a-zA-Z]\w*({?\w*})?)cal` "mathcal" iAm | |
| \mathcal{``rv = m[1].toUpperCase()``}$0 | |
| endsnippet | |
| priority 100 | |
| snippet `(?<!\\)\b([a-zA-Z]+)rm` "mathrm" iAm | |
| \mathrm{``rv = m[1]``} | |
| endsnippet | |
| priority 100 | |
| snippet `(?<!\\)\b([a-zA-Z]+)mop` "operatorname" iAm | |
| \operatorname{``rv = m[1]``} | |
| endsnippet | |
| priority 100 | |
| snippet `([a-zA-Z]|\d)bb` "bold math" iAm | |
| `` | |
| if (/[A-Z]/.test(m[1])) | |
| rv = "\\mathbf{" + m[1] + "}" | |
| else | |
| // rv = "\\bm{" + m[1] + "}" | |
| rv = "\\mathbf{" + m[1] + "}" | |
| `` | |
| endsnippet | |
| # == Auto Symbol == | |
| snippet oo "infty" iAmm | |
| \infty | |
| endsnippet | |
| priority 100 | |
| snippet ... "cdots" iAm | |
| \cdots | |
| endsnippet | |
| # +... -> , \cdots | |
| # - ... -> , \cdots | |
| # add a space if there already is one. | |
| priority 101 | |
| snippet `(?<=[-+])\s*\.\.\.` "smart cdots" iAm | |
| \cdots | |
| endsnippet | |
| # It seems that \ldots is only used when , ..., | |
| # ,... -> , \ldots | |
| # , ... -> , \ldots | |
| priority 101 | |
| snippet `(?<=,)(\s*)\.\.\.` "smart ldots" iAm | |
| \ldots | |
| endsnippet | |
| priority 101 | |
| snippet xx "cross" iAm | |
| \times | |
| endsnippet | |
| snippet ** "star" iAm | |
| ^{\star}$0 | |
| endsnippet | |
| # ==== Logic Symbol ==== | |
| snippet -> "to" iAm | |
| \to | |
| endsnippet | |
| snippet !> "mapsto" iAm | |
| \mapsto | |
| endsnippet | |
| snippet => "implies" iAm | |
| \implies | |
| endsnippet | |
| snippet =< "implied by" iAm | |
| \impliedby | |
| endsnippet | |
| # ==== Possibility Symbol ==== | |
| snippet Pr "Pr" iAm | |
| \operatorname{Pr}\left[$1\right]$0 | |
| endsnippet | |
| snippet Var "Var" iAm | |
| \operatorname{Var}\left[$1\right]$0 | |
| endsnippet | |
| snippet Cov "Cov" iAm | |
| \operatorname{Cov}\left[$1\right]$0 | |
| endsnippet | |
| snippet Exp "Expected" iAm | |
| \mathbb{E}\left[$1\right]$0 | |
| endsnippet | |
| # ==== Compare Symbol ==== | |
| snippet -- "setminus" iAm | |
| \setminus | |
| endsnippet | |
| snippet >= "greater than" iAm | |
| \ge $0 | |
| endsnippet | |
| snippet <= "less than" iAm | |
| \le $0 | |
| endsnippet | |
| snippet != "no equals" iAm | |
| \neq | |
| endsnippet | |
| snippet == " constan equals" iAm | |
| \equiv | |
| endsnippet | |
| snippet ~~ " Amppro equals" iAm | |
| \approx | |
| endsnippet | |
| snippet ~= " Amppro equals2" iAm | |
| \cong | |
| endsnippet | |
| snippet >> ">>" iAm | |
| \gg | |
| endsnippet | |
| snippet << "<<" iAm | |
| \ll | |
| endsnippet | |
| # == Auto Environment == | |
| # ==== Auto Math Mode ==== | |
| # ==== Common Environment ==== | |
| snippet Case "cases" iAm | |
| \begin{cases} | |
| $1 & \\text{$2}, \\\\ | |
| $3 & \\text{$4}. | |
| \end{cases}$0 | |
| endsnippet | |
| snippet Ali "aligned" iAm | |
| \begin{aligned} | |
| $1 &= $2 \\\\ | |
| &= $3 \\\\ | |
| \end{aligned} | |
| endsnippet | |
| # == Auto Adaptive Close == | |
| snippet ceil "ceil" iAm | |
| \left\lceil $1 \right\rceil $0 | |
| endsnippet | |
| snippet floor "floor" iAm | |
| \left\lfloor $1 \right\rfloor$0 | |
| endsnippet | |
| priority 100 | |
| snippet @) "left( right)" Aim | |
| \left( ${1} \right) $0 | |
| endsnippet | |
| priority 100 | |
| snippet @| "left| right|" Aim | |
| \left| ${1} \right| $0 | |
| endsnippet | |
| priority 100 | |
| snippet @} "left\{ right\}" Aim | |
| \left\\{ ${1} \right\\} $0 | |
| endsnippet | |
| priority 100 | |
| snippet set "\{ \}" Aim | |
| \\{ ${1} \\}$0 | |
| endsnippet | |
| priority 100 | |
| snippet @] "left[ right]" Aim | |
| \left[ ${1} \right] $0 | |
| endsnippet | |
| priority 100 | |
| snippet @> "leftangle rightangle" iAm | |
| \left<${1} \right>$0 | |
| endsnippet | |
| priority 200 | |
| snippet norm iAm | |
| \left\| ${1} \right\|_{$2}$3 | |
| endsnippet | |
| # == Snippet == | |
| # ==== General Snippet ==== | |
| # ====== Lite Snippet ====== | |
| priority 100 | |
| snippet `\b([a-zA-Z])n(\d)` "x[n+1]" iAm | |
| ``rv = m[1]``_{${1:n}+``rv = m[2]``}$0 | |
| endsnippet | |
| # Unkown | |
| snippet rij "mrij" iAm | |
| (${1:x}_${2:n})_{${3:$2} \\in ${4:N}}$0 | |
| endsnippet | |
| priority 200 | |
| snippet abs "absolute value" iAm | |
| \left\vert ${1} \right\vert $0 | |
| endsnippet | |
| snippet beg "begin{} / end{}" bA | |
| \\begin{$1} | |
| $0 | |
| \\end{$1} | |
| endsnippet | |
| # ======== N Series ======== | |
| priority 100 | |
| snippet comma "comma" iAm | |
| ${1:\\alpha}_1,${1:\\alpha}_2,\\cdots,${1:\\alpha}_${2:n} | |
| endsnippet | |
| priority 100 | |
| snippet plus "plus" iAm | |
| ${1:k}_1${2:\\alpha}_1+${1:k}_2${2:\\alpha}_2+\\cdots+${1:k}_${3:n}${2:\\alpha}_${3:n} | |
| endsnippet | |
| snippet `\b([ijk])=n` "i=1,2,\cdots,n" iAm | |
| ``rv = m[1]``=1,2,\cdots,n | |
| endsnippet | |
| # ======== Common Operator Snippet ======== | |
| snippet sumeq "taylor" iAm | |
| \sum_{${1:k}=${2:0}}^{${3:\infty}} ${4:c_$1} (x-a)^$1 $0 | |
| endsnippet | |
| snippet limeq "limit" iAm | |
| \lim_{${1:n} \to ${2:\infty}} | |
| endsnippet | |
| snippet `(?<!\\)prod` "product" iAm | |
| \prod_{${1:n=${2:1}}}^{${3:\infty}} ${4:${VISUAL}}$0 | |
| endsnippet | |
| snippet `(?<!\\)part` "d/dx" iAm | |
| \frac{\partial ${1:V}}{\partial ${2:x}}$0 | |
| endsnippet | |
| priority 300 | |
| snippet `(?<!\\)diff` "d/dx" iAm | |
| \frac{\mathrm{d}${1:y}}{\mathrm{d}${2:x}}$0 | |
| endsnippet | |
| priority 300 | |
| snippet `dd` "dd" iAm | |
| \mathrm{d} | |
| endsnippet | |
| snippet buu "bigcup" iAm | |
| \bigcup_{${1:i \in ${2: I}}} $0 | |
| endsnippet | |
| snippet bnn "bigcap" iAm | |
| \bigcap_{${1:i \in ${2: I}}} $0 | |
| endsnippet | |
| priority 100 | |
| snippet inteq "integral" iAm | |
| \int_{${1:-\infty}}^{${2:\infty}} ${3} \\mathrm{d}${4:x}$0 | |
| endsnippet | |
| priority 200 | |
| snippet `c(o|n)?(l|n)?(b|c)?int` "s egral" iAm | |
| `` | |
| let final = "\\"; // init | |
| let isO = m[1] == "o"; | |
| (isO) ? final += "o" : "" // o option | |
| let b = 1; | |
| let isL = m[2] == "l"; | |
| (m[3] == 'b') ? b = 2 : (m[3] == 'c') ? b = 3 : 1; | |
| for (let i = 0; i < b - 1; i++) { | |
| final += "i"; | |
| } | |
| final += "int"; | |
| final += ((b >= 2) || (b != 1 && !isO && isL)) ? "\\limits" : ""; | |
| let r = (b == 3) ? "E" : (b == 1 && (isL || isO)) ? "C" : "R"; | |
| final += ((b >= 2) || isO || (b == 1 && isL)) ? "_{${1:" + r + "}}" : "_{${1:-\\infty}}^{${2:\\infty}}"; | |
| let x = (b == 2) ? "A" : (b == 3) ? "V" : (b == 1 && isL) ? "s" : "x"; | |
| final += " ${3} \\mathrm{d}${4:" + x + "}$0"; | |
| rv = final; | |
| `` | |
| endsnippet | |
| # Custom: Can add more defined operator | |
| priority 100 | |
| snippet `(?<![\a-zA-Z])(rank|lcm|gcd|atan2|softmax|tr|trace|diag|sign|const|arg)` "math function" iAm | |
| \\operatorname{``rv = m[1]``} | |
| endsnippet | |
| # ====== Big Snippet ====== | |
| snippet bigdef "Big function" iAm | |
| \begin{equation$6} | |
| \begin{aligned} | |
| $1\colon $2 &\longrightarrow $3 \\\\ | |
| $4 &\longmapsto $1($4) = $5 | |
| \end{aligned} | |
| \end{equation$6}$0 | |
| endsnippet | |
| snippet bigmin "Optimization problem" iAm | |
| \begin{equation$4} | |
| \begin{aligned} | |
| \min &\quad ${1:f(x)}\\\\ | |
| \text{s.t.} &\quad ${2:g(x)} \leq 0\\\\ | |
| &\quad ${3:h(x)} = 0\\\\ | |
| \end{aligned} | |
| \end{equation$4}$0 | |
| endsnippet | |
| snippet bigmax "Optimization problem" iAm | |
| \begin{equation$4} | |
| \begin{aligned} | |
| \max &\quad ${1:f(x)}\\\\ | |
| \text{s.t.} &\quad ${2:g(x)} \leq 0\\\\ | |
| &\quad ${3:h(x)} = 0\\\\ | |
| \end{aligned} | |
| \end{equation$4}$0 | |
| endsnippet | |
| snippet deff "Definition of function" iAm | |
| $1\colon ${2:\\mathbb{R\}} \to ${3:\\mathbb{R\}}, ${4:x} \mapsto $0 | |
| endsnippet | |
| snippet iid "independent and identical distribution" iAm | |
| \overset{\text{i.i.d.}}{\sim} | |
| endsnippet | |
| snippet defe "define equal" iAm | |
| \overset{\underset{\mathrm{def}}{}}{=} | |
| endsnippet | |
| # == Matrix == | |
| # ==== Static Matrix ==== | |
| snippet pmat "pmat" iAm | |
| \\begin{pmatrix} | |
| ${1:1} & ${2:1} & \\cdots & ${4:1}\\\\ | |
| ${5:1} & ${6:1} & \\cdots & ${8:1}\\\\ | |
| \\vdots & \\vdots & \\ddots & \\vdots\\\\ | |
| ${13:1} & ${14:1} & \\cdots & ${16:1} | |
| \\end{pmatrix} | |
| endsnippet | |
| snippet bmat "bmat" iAm | |
| \\begin{bmatrix} | |
| ${1:1} & ${2:1} & \\cdots & ${4:1}\\\\ | |
| ${5:1} & ${6:1} & \\cdots & ${8:1}\\\\ | |
| \\vdots & \\vdots & \\ddots & \\vdots\\\\ | |
| ${13:1} & ${14:1} & \\cdots & ${16:1} | |
| \\end{bmatrix} | |
| endsnippet | |
| snippet vecC "column vector" iAm | |
| \begin{pmatrix} ${1:x}_1 \\\\ ${1:x}_2 \\\\ \vdots \\\\ ${1:x}_${2:n} \end{pmatrix} | |
| endsnippet | |
| snippet vecR "row vector" iAm | |
| \begin{pmatrix} ${1:x}_1, ${1:x}_2, \cdots, ${1:x}_${2:n} \end{pmatrix}$0 | |
| endsnippet | |
| priority 300 | |
| snippet matsub "submat" iAm | |
| \\begin{bmatrix} | |
| ${1:a}_{11} & ${1:a}_{12} & \\cdots & ${1:a}_{1n} \\\\ | |
| ${1:a}_{21} & ${1:a}_{22} & \\cdots & ${1:a}_{2n} \\\\ | |
| \\vdots & \\vdots & \\ddots & \\vdots \\\\ | |
| ${1:a}_{n1} & ${1:a}_{n2} & \\cdots & ${1:a}_{nn} | |
| \\end{bmatrix} | |
| endsnippet | |
| priority 300 | |
| snippet matplus "submatplus" iAm | |
| \\begin{bmatrix} | |
| ${1:a}_{11}+${2:b}_{11} & ${1:a}_{12}+${2:b}_{12} & \\cdots & ${1:a}_{1n}+${2:b}_{1n} \\\\ | |
| ${1:a}_{21}+${2:b}_{21} & ${1:a}_{22}+${2:b}_{22} & \\cdots & ${1:a}_{2n}+${2:b}_{2n} \\\\ | |
| \\vdots & \\vdots & \\ddots & \\vdots \\\\ | |
| ${1:a}_{n1}+${2:b}_{n1} & ${1:a}_{n2}+${2:b}_{n2} & \\cdots & ${1:a}_{nn}+${2:b}_{nn} | |
| \\end{bmatrix} | |
| endsnippet | |
| snippet matdiv "jacobi" iAm | |
| \\begin{pmatrix} | |
| \\frac{\\partial ${1:f}_1}{\\partial ${2:x}_1}&\\frac{\\partial ${1:f}_1}{\\partial ${2:x}_2}&\\cdots&\\frac{\\partial ${1:f}_1}{\\partial ${2:x}_${3:n}}\\\\ | |
| \\frac{\\partial ${1:f}_2}{\\partial ${2:x}_1}&\\frac{\\partial ${1:f}_2}{\\partial ${2:x}_2}&\\cdots&\\frac{\\partial ${1:f}_2}{\\partial ${2:x}_${3:n}}\\\\ | |
| \\vdots&\\vdots&\\ddots&\\vdots\\\\ | |
| \\frac{\\partial ${1:f}_${3:m}}{\\partial ${2:x}_1}&\\frac{\\partial ${1:f}_${3:m}}{\\partial ${2:x}_2}&\\cdots&\\frac{\\partial ${1:f}_${3:m}}{\\partial ${2:x}_${3:n}} | |
| \\end{pmatrix} | |
| endsnippet | |
| # ==== Dynamic Matrix ==== | |
| priority 300 | |
| snippet `mat@([1-9])([1-9])` "DynamicMatrix" iiAm | |
| \\begin{bmatrix} | |
| `` | |
| rv = gen_matrix(m[1], m[2]); | |
| `` | |
| \\end{bmatrix}$0 | |
| endsnippet | |
| priority 300 | |
| snippet `mata@([1-9])([1-9])` "DynamicMatrix" iiAm | |
| \\begin{bmatrix} | |
| `` | |
| let row = m[1]; | |
| let col = m[2]; | |
| let results = ""; | |
| for (var i=0; i<row; i++){ | |
| results += "$1 &".repeat(col-1) + " $1 \\\\\\\\"; | |
| } | |
| rv = results; | |
| `` | |
| \\end{bmatrix}$0 | |
| endsnippet | |
| # == General == | |
| snippet \box "Box" | |
| ``rv = '┌' + '─'.repeat(t[0].length + 2) + '┐'`` | |
| │ $1 │ | |
| ``rv = '└' + '─'.repeat(t[0].length + 2) + '┘'`` | |
| endsnippet | |
| priority 300 | |
| snippet `tab@([1-9])([1-9])` "create table with rows and columns" wA | |
| `` | |
| rv = createTable(m[1], m[2]); | |
| `` | |
| endsnippet |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment