• latex在vim中的代码片段


    Gilles Castel写的vim中使用的代码片段,质量很高,原文:https://github.com/gillescastel

    下载后,存放到 ~/.vim/plugged/ultisnips/UltiSnips 

    下面是记录一下,该代码片段:

    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}
    
    ewcommand{incfig}[1]{%
        defsvgwidth{columnwidth}
        import{./figures/}{#1.pdf_tex}
    }
    
    pdfsuppresswarningpagegroup=1
    
    egin{document}
        $0
    end{document}
    endsnippet
    
    snippet beg "begin{} / end{}" bA
    \begin{$1}
        $0
    \end{$1}
    endsnippet
    
    priority 100
    snippet ... "ldots" iA
    ldots
    endsnippet
    
    snippet table "Table environment" b
    egin{table}[${1:htpb}]
        centering
        caption{${2:caption}}
        label{tab:${3:label}}
        egin{tabular}{${5:c}}
        $0${5/((?<=.)c|l|r)|./(?1: & )/g}
        end{tabular}
    end{table}
    endsnippet
    
    snippet fig "Figure environment" b
    egin{figure}[${1:htpb}]
        centering
        ${2:includegraphics[width=0.8	extwidth]{$3}}
        caption{${4:$3}}
        label{fig:${5:${3/W+/-/g}}}
    end{figure}
    endsnippet
    
    snippet enum "Enumerate" bA
    egin{enumerate}
        item $0
    end{enumerate}
    endsnippet
    
    snippet item "Itemize" bA
    egin{itemize}
        item $0
    end{itemize}
    endsnippet
    
    snippet desc "Description" b
    egin{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
    egin{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])_(dd)' "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
    
    eq 
    endsnippet
    
    context "math()"
    snippet ceil "ceil" iA
    leftlceil $1 
    ight
    ceil $0
    endsnippet
    
    context "math()"
    snippet floor "floor" iA
    leftlfloor $1 
    ight
    floor$0
    endsnippet
    
    snippet pmat "pmat" iA
    egin{pmatrix} $1 end{pmatrix} $0
    endsnippet
    
    snippet bmat "bmat" iA
    egin{bmatrix} $1 end{bmatrix} $0
    endsnippet
    
    context "math()"
    snippet () "left( right)" iA
    left( ${1:${VISUAL}} 
    ight) $0
    endsnippet
    
    snippet lr "left( right)" i
    left( ${1:${VISUAL}} 
    ight) $0
    endsnippet
    
    snippet lr( "left( right)" i
    left( ${1:${VISUAL}} 
    ight) $0
    endsnippet
    
    snippet lr| "left| right|" i
    left| ${1:${VISUAL}} 
    ight| $0
    endsnippet
    
    snippet lr{ "left{ right}" i
    left\{ ${1:${VISUAL}} 
    ight\} $0
    endsnippet
    
    snippet lrb "left{ right}" i
    left\{ ${1:${VISUAL}} 
    ight\} $0
    endsnippet
    
    snippet lr[ "left[ right]" i
    left[ ${1:${VISUAL}} 
    ight] $0
    endsnippet
    
    snippet lra "leftangle rightangle" iA
    left<${1:${VISUAL}} 
    ight>$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} 	o ${2:infty}} 
    endsnippet
    
    snippet limsup "limsup" w
    limsup_{${1:n} 	o ${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
    egin{figure}[$1]
        centering
        egin{tikzpicture}
            egin{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
    
    ode[$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
    
    abla 
    endsnippet
    
    context "math()"
    snippet xx "cross" iA
    	imes 
    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
    	o 
    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
    notin 
    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
    igcup_{${1:i in ${2: I}}} $0
    endsnippet
    
    snippet nnn "bigcap" iA
    igcap_{${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
    
    endsnippet
    
    snippet <! "normal" iA
    	riangleleft 
    endsnippet
    
    snippet <> "hokje" iA
    diamond 
    endsnippet
    
    
    context "math()"
    snippet '(?<!i)sts' "text subscript" irA
    _	ext{$1} $0
    endsnippet
    
    context "math()"
    snippet tt "text" iA
    	ext{$1}$0
    endsnippet
    
    context "math()"
    snippet case "cases" wA
    egin{cases}
        $1
    end{cases}
    endsnippet
    
    snippet SI "SI" iA
    SI{$1}{$2}
    endsnippet
    
    snippet bigfun "Big function" iA
    egin{align*}
        $1: $2 &longrightarrow $3 \\
        $4 &longmapsto $1($4) = $0
    .end{align*}
    endsnippet
    
    snippet cvec "column vector" iA
    egin{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
  • 相关阅读:
    基于python实现自动化办公学习笔记一
    [django]上下文管理器
    [django]中间件
    分布式锁实现
    为什么Redis可以方便地实现分布式锁
    索引字段说明
    COUNT 和 IFNULL函数
    占用空间区别
    java排序算法(七):折半插入排序
    java排序算法(六):直接插入排序
  • 原文地址:https://www.cnblogs.com/litifeng/p/11770558.html
Copyright © 2020-2023  润新知