config.nvim

NeoVim config
git clone git://popovic.xyz/nvim.config.git/
Log | Files | Refs

latex.lua (21578B)


      1 ---@diagnostic disable: undefined-global
      2 local ls = require("luasnip")
      3 local s = ls.snippet
      4 local i = ls.insert_node
      5 local t = ls.text_node
      6 local fmt = require("luasnip.extras.fmt").fmt
      7 local extras = require("luasnip.extras")
      8 local rep = extras.rep
      9 
     10 local function math()
     11   return vim.api.nvim_eval('vimtex#syntax#in_mathzone()') == 1
     12 end
     13 
     14 ls.add_snippets("tex", {
     15   s({ trig = "beg", snippetType = "snippet", descr = "begin env" }, fmt([[
     16     \begin{<>}
     17         <>
     18     \end{<>}]],
     19     { i(1, "env"), i(0), rep(1) },
     20     { delimiters = "<>" }
     21   )),
     22   s({ trig = "...", wordTrig = false, snippetType = "autosnippet", descr = "ldots" }, { t("\\ldots") }),
     23   s("template", fmt([[
     24     \documentclass[a4paper]{article}
     25 
     26     \usepackage[T1]{fontenc}
     27     \usepackage[utf8]{inputenc}
     28     \usepackage{mlmodern}
     29 
     30     \usepackage[parfill]{parskip}
     31     \usepackage[colorlinks=true,naturalnames=true,plainpages=false,pdfpagelabels=true]{hyperref}
     32     \usepackage[parfill]{parskip}
     33     \usepackage{lipsum}
     34 
     35     \usepackage{amsmath, amssymb}
     36     \usepackage{subcaption}
     37     \usepackage[shortlabels]{enumitem}
     38     \usepackage{amsthm}
     39     \usepackage{mathtools}
     40     \usepackage{braket}
     41     \usepackage{bbm}
     42 
     43     \usepackage{graphicx}
     44     \usepackage{geometry}
     45     \geometry{a4paper, top=15mm}
     46 
     47     % figure support
     48     \usepackage{import}
     49     \usepackage{xifthen}
     50     \pdfminorversion=7
     51     \usepackage{pdfpages}
     52     \usepackage{transparent}
     53     \newcommand{\incfig}[1]{%
     54         \def\svgwidth{\columnwidth}
     55         \import{./figures/}{#1.pdf_tex}
     56     }
     57 
     58     \pdfsuppresswarningpagegroup=1
     59 
     60     %\usepackage[backend=biber, sorting=none]{biblatex}
     61     %\addbibresource{uni.bib}
     62 
     63     \title{<>}
     64     \author{Milutin Popović}
     65 
     66     \begin{document}
     67     %\tableofcontents
     68         \maketitle
     69         <>
     70     %\printbibliography
     71     \end{document}
     72     ]],
     73     { i(1, "Title"), i(0) },
     74     {
     75       delimiters = "<>",
     76     })),
     77   s({ trig = "document", descr = "document environment", snippetType = "snippet" },
     78     fmt([[
     79      \begin{document}
     80      \tableofcontents
     81          <>
     82      \printbibliography
     83      \end{document}
     84         ]],
     85       { i(0) },
     86       { delimiters = "<>" }
     87     )),
     88   s({ trig = "table", descr = "table environment", snippetType = "snippet" },
     89     fmt([[
     90      \begin{table}[htb]
     91         \centering
     92         \caption{<>}
     93         \label{tab:<>}
     94         \begin{tabular}{<>}
     95             <>
     96         \end{tabular}
     97      \end{table}
     98         ]],
     99       { i(1, "caption"), i(2, "label"), i(3, "c"), i(0) },
    100       { delimiters = "<>" }
    101     )),
    102   s({ trig = "fig", descr = "figure environment" },
    103     fmt([[
    104      \begin{figure}[htb!]
    105         \centering
    106         \includegraphics[width=0.8\textwidth]{<>}
    107         \caption{<>}
    108         \label{fig:<>}
    109      \end{figure}
    110         ]],
    111       { i(1, "path"), i(2, "caption"), i(3, "0") },
    112       { delimiters = "<>" }
    113     )),
    114   s({ trig = "align", descr = "align", snippetType = "autosnippet" },
    115     fmt([[
    116     \begin{align}
    117         <>
    118     \end{align}
    119         ]],
    120       { i(1) },
    121       { delimiters = "<>" }
    122     )),
    123   s({ trig = "enumerate", descr = "enumerate", snippetType = "autosnippet" },
    124     fmt([[
    125     \begin{enumerate}
    126         \item <>
    127     \end{enumerate}
    128         ]],
    129       { i(1) },
    130       { delimiters = "<>" }
    131     )),
    132   s({ trig = "itemize", descr = "itemize", snippetType = "autosnippet" },
    133     fmt([[
    134     \begin{itemize}
    135         \item <>
    136     \end{itemize}
    137         ]],
    138       { i(1) },
    139       { delimiters = "<>" }
    140     )),
    141   s({ trig = "frame", descr = "frame", snippetType = "snippet" },
    142     fmt([[
    143     \begin{frame}{<>}
    144         <>
    145     \end{frame}
    146         ]],
    147       { i(1), i(0) },
    148       { delimiters = "<>" }
    149     )),
    150   s({ trig = "desc", descr = "description", snippetType = "snippet" },
    151     fmt([[
    152     \begin{description}
    153         \item[<>] <>
    154     \end{description}
    155         ]],
    156       { i(1), i(0) },
    157       { delimiters = "<>" }
    158     )),
    159   s({ trig = "pac", descr = "package", snippetType = "snippet" },
    160     fmt([[\usepackage[<>]{<>}<> ]],
    161       { i(1, "options"), i(2, "package"), i(0) },
    162       { delimiters = "<>" }
    163     )),
    164   s({ trig = "=>", wordTrig = false, descr = "implies", snippetType = "autosnippet" },
    165     { t("\\implies") },
    166     { condition = math, show_condition = math }
    167   ),
    168   s({ trig = "=<", wordTrig = false, descr = "impliedby", snippetType = "autosnippet" },
    169     { t("\\impliedby") },
    170     { condition = math, show_condition = math }
    171   ),
    172   s({ trig = "iff", wordTrig = false, descr = "iff", snippetType = "autosnippet" },
    173     { t("\\iff") },
    174     { condition = math, show_condition = math }
    175   ),
    176   s({ trig = "//", wordTrig = false, descr = "Fraction", snippetType = "autosnippet" },
    177     fmt([[\frac{<>}{<>}<>]], { i(1), i(2), i(0) }, { delimiters = "<>" }),
    178     { condition = math, show_condition = math }
    179   ),
    180   s({ trig = "==", wordTrig = false, descr = "equals", snippetType = "autosnippet" },
    181     fmt([[
    182     &= <> \\
    183     ]], { i(1) }, { delimiters = "<>" }),
    184     { condition = math, show_condition = math }
    185   ),
    186   s({ trig = "!=", wordTrig = false, descr = "not equals", snippetType = "autosnippet" },
    187     { t("\\neq") },
    188     { condition = math, show_condition = math }
    189   ),
    190   s({ trig = "ceil", wordTrig = false, descr = "ceiling function", snippetType = "autosnippet" },
    191     fmt([[\left\lceil <> \right\rceil <>]], { i(1), i(0) }, { delimiters = "<>" }),
    192     { condition = math, show_condition = math }
    193   ),
    194   s({ trig = "floor", wordTrig = false, descr = "floor function", snippetType = "autosnippet" },
    195     fmt([[\left\lfloor <> \right\rfloor <>]], { i(1), i(0) }, { delimiters = "<>" }),
    196     { condition = math, show_condition = math }
    197   ),
    198   s({ trig = "pmat", wordTrig = false, descr = "pmatrix", snippetType = "autosnippet" },
    199     fmt([[\begin{pmatrix} <> \end{pmatrix} <>]], { i(1), i(0) }, { delimiters = "<>" }),
    200     { condition = math, show_condition = math }
    201   ),
    202   s({ trig = "bmat", wordTrig = false, descr = "pmatrix", snippetType = "autosnippet" },
    203     fmt([[\begin{bmatrix} <> \end{bmatrix} <>]], { i(1), i(0) }, { delimiters = "<>" }),
    204     { condition = math, show_condition = math }
    205   ),
    206   s({ trig = "lr", wordTrig = false, descr = "left* right*", snippetType = "snippet" },
    207     fmt([[\left<> <> \right<>]], { i(1), i(0), rep(1) }, { delimiters = "<>" }),
    208     { condition = math, show_condition = math }
    209   ),
    210   s({ trig = "lr(", wordTrig = false, descr = "left( right)", snippetType = "autosnippet" },
    211     fmt([[\left( <> \right)]], { i(1) }, { delimiters = "<>" }),
    212     { condition = math, show_condition = math }
    213   ),
    214   s({ trig = "lr|", wordTrig = false, descr = "left| right|", snippetType = "autosnippet" },
    215     fmt([[\left| <> \right|]], { i(1) }, { delimiters = "<>" }),
    216     { condition = math, show_condition = math }
    217   ),
    218   s({ trig = "lr{", wordTrig = false, descr = "left{ right}", snippetType = "autosnippet" },
    219     fmt([[\left\{ <> \right\}]], { i(1) }, { delimiters = "<>" }),
    220     { condition = math, show_condition = math }
    221   ),
    222   s({ trig = "lr[", wordTrig = false, descr = "left{ right}", snippetType = "autosnippet" },
    223     fmt([[\left[ <> \right] ]], { i(1) }, { delimiters = "<>" }),
    224     { condition = math, show_condition = math }
    225   ),
    226   s({ trig = "lra", wordTrig = false, descr = "left< right>", snippetType = "autosnippet" },
    227     fmt([[\left\langle <> \right\rangle] ]], { i(1) }, { delimiters = "<>" }),
    228     { condition = math, show_condition = math }
    229   ),
    230   s({ trig = "conj", descr = "conjugate", snippetType = "autosnippet" },
    231     fmt([[\overline{<>}<>]], { i(1), i(0) }, { delimiters = "<>" }),
    232     { condition = math, show_condition = math }
    233   ),
    234   s({ trig = "sum", wordTrig = false, descr = "sum", snippetType = "autosnippet" },
    235     fmt([[\sum_{<>}^{<>} <>]], { i(1), i(2), i(0) }, { delimiters = "<>" }),
    236     { condition = math, show_condition = math }
    237   ),
    238   s({ trig = "lim", wordTrig = false, descr = "lim", snippetType = "autosnippet" },
    239     fmt([[\lim_{<> \to <>} <>]], { i(1), i(2, "\\infty"), i(0) }, { delimiters = "<>" }),
    240     { condition = math, show_condition = math }
    241   ),
    242   s({ trig = "limsup", wordTrig = false, descr = "limsup", snippetType = "autosnippet" },
    243     fmt([[\limsup_{<> \to <>} <>]], { i(1), i(2, "\\infty"), i(0) }, { delimiters = "<>" }),
    244     { condition = math, show_condition = math }
    245   ),
    246   s({ trig = "prod", wordTrig = false, descr = "product", snippetType = "autosnippet" },
    247     fmt([[\prod_{<>}^{<>} <>]], { i(1), i(2), i(0) }, { delimiters = "<>" }),
    248     { condition = math, show_condition = math }
    249   ),
    250   s({ trig = "part", wordTrig = false, descr = "d/dx", snippetType = "snippet" },
    251     fmt(
    252       [[\frac{\partial <>}{\partial <>} <>]],
    253       { i(1, "f"), i(2, "x"), i(0) },
    254       { delimiters = "<>" }
    255     ),
    256     { condition = math, show_condition = math }
    257   ),
    258   s({ trig = "sqrt", wordTrig = false, descr = "sqrt", snippetType = "autosnippet" },
    259     fmt(
    260       [[\sqrt{<>} <>]],
    261       { i(1), i(0) },
    262       { delimiters = "<>" }
    263     ),
    264     { condition = math, show_condition = math }
    265   ),
    266   s({ trig = "hat", wordTrig = false, descr = "hat", snippetType = "autosnippet" },
    267     fmt(
    268       [[\hat{<>}<>]],
    269       { i(1), i(0) },
    270       { delimiters = "<>" }
    271     ),
    272     { condition = math, show_condition = math }
    273   ),
    274   s({ trig = "tilde", wordTrig = false, descr = "tilde", snippetType = "autosnippet" },
    275     fmt(
    276       [[\tilde{<>}<>]],
    277       { i(1), i(0) },
    278       { delimiters = "<>" }
    279     ),
    280     { condition = math, show_condition = math }
    281   ),
    282   s({ trig = "td", wordTrig = false, descr = "to the .. power", snippetType = "autosnippet" },
    283     fmt(
    284       [[^{<>} <>]],
    285       { i(1), i(0) },
    286       { delimiters = "<>" }
    287     ),
    288     { condition = math, show_condition = math }
    289   ),
    290   s({ trig = "rd", wordTrig = false, descr = "to the .. (power)", snippetType = "autosnippet" },
    291     fmt(
    292       [[^{(<>)} <>]],
    293       { i(1), i(0) },
    294       { delimiters = "<>" }
    295     ),
    296     { condition = math, show_condition = math }
    297   ),
    298   s({ trig = "rd", wordTrig = false, descr = "to the .. (power)", snippetType = "autosnippet" },
    299     fmt(
    300       [[^{(<>)} <>]],
    301       { i(1), i(0) },
    302       { delimiters = "<>" }
    303     ),
    304     { condition = math, show_condition = math }
    305   ),
    306   s({ trig = "__", wordTrig = false, descr = "subscript", snippetType = "autosnippet" },
    307     fmt(
    308       [[_{<>}<>]],
    309       { i(1), i(0) },
    310       { delimiters = "<>" }
    311     ),
    312     { condition = math, show_condition = math }
    313   ),
    314   s({ trig = "ooo", wordTrig = false, descr = "infty", snippetType = "autosnippet" },
    315     { t("\\infty") },
    316     { condition = math, show_condition = math }
    317   ),
    318   s({ trig = "<=", wordTrig = false, descr = "leq", snippetType = "autosnippet" },
    319     { t("\\le") },
    320     { condition = math, show_condition = math }
    321   ),
    322   s({ trig = ">=", wordTrig = false, descr = "geq", snippetType = "autosnippet" },
    323     { t("\\ge") },
    324     { condition = math, show_condition = math }
    325   ),
    326   s({ trig = "EE", wordTrig = false, descr = "exists", snippetType = "autosnippet" },
    327     { t("\\exists") },
    328     { condition = math, show_condition = math }
    329   ),
    330   s({ trig = "AA", wordTrig = false, descr = "forall", snippetType = "autosnippet" },
    331     { t("\\forall") },
    332     { condition = math, show_condition = math }
    333   ),
    334   s({ trig = "xnn", wordTrig = false, descr = "x_n", snippetType = "autosnippet" },
    335     { t("x_{n}") },
    336     { condition = math, show_condition = math }
    337   ),
    338   s({ trig = "ynn", wordTrig = false, descr = "y_n", snippetType = "autosnippet" },
    339     { t("y_{n}") },
    340     { condition = math, show_condition = math }
    341   ),
    342   s({ trig = "xii", wordTrig = false, descr = "x_i", snippetType = "autosnippet" },
    343     { t("x_{i}") },
    344     { condition = math, show_condition = math }
    345   ),
    346   s({ trig = "yii", wordTrig = false, descr = "y_i", snippetType = "autosnippet" },
    347     { t("y_{i}") },
    348     { condition = math, show_condition = math }
    349   ),
    350   s({ trig = "xjj", wordTrig = false, descr = "x_j", snippetType = "autosnippet" },
    351     { t("x_{j}") },
    352     { condition = math, show_condition = math }
    353   ),
    354   s({ trig = "yjj", wordTrig = false, descr = "y_j", snippetType = "autosnippet" },
    355     { t("y_{j}") },
    356     { condition = math, show_condition = math }
    357   ),
    358   s({ trig = "mcal", wordTrig = false, descr = "mathcal", snippetType = "autosnippet" },
    359     fmt(
    360       [[\mathcal{<>}<>]],
    361       { i(1), i(0) },
    362       { delimiters = "<>" }
    363     ),
    364     { condition = math, show_condition = math }
    365   ),
    366   s({ trig = "lll", wordTrig = false, descr = "l", snippetType = "autosnippet" },
    367     { t("\\ell") },
    368     { condition = math, show_condition = math }
    369   ),
    370   s({ trig = "nabl", wordTrig = false, descr = "nabla", snippetType = "autosnippet" },
    371     { t("\\nabla") },
    372     { condition = math, show_condition = math }
    373   ),
    374   s({ trig = "xx", wordTrig = false, descr = "cross", snippetType = "autosnippet" },
    375     { t("\\times") },
    376     { condition = math, show_condition = math }
    377   ),
    378   s({ trig = "**", wordTrig = false, descr = "cdot", snippetType = "autosnippet" },
    379     { t("\\cdot") },
    380     { condition = math, show_condition = math }
    381   ),
    382   s({ trig = "pi", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    383     { t("\\pi") },
    384     { condition = math, show_condition = math }
    385   ),
    386   s({ trig = "arcsin", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    387     { t("\\arcsin") },
    388     { condition = math, show_condition = math }
    389   ),
    390   s({ trig = "sin", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    391     { t("\\sin") },
    392     { condition = math, show_condition = math }
    393   ),
    394   s({ trig = "cos", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    395     { t("\\cos") },
    396     { condition = math, show_condition = math }
    397   ),
    398   s({ trig = "arccot", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    399     { t("\\arrcot") },
    400     { condition = math, show_condition = math }
    401   ),
    402   s({ trig = "cot", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    403     { t("\\cot") },
    404     { condition = math, show_condition = math }
    405   ),
    406   s({ trig = "csc", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    407     { t("\\csc") },
    408     { condition = math, show_condition = math }
    409   ),
    410   s({ trig = "ln", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    411     { t("\\ln") },
    412     { condition = math, show_condition = math }
    413   ),
    414   s({ trig = "log", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    415     { t("\\log") },
    416     { condition = math, show_condition = math }
    417   ),
    418   s({ trig = "exp", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    419     { t("\\exp") },
    420     { condition = math, show_condition = math }
    421   ),
    422   s({ trig = "star", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    423     { t("\\star") },
    424     { condition = math, show_condition = math }
    425   ),
    426   s({ trig = "perp", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    427     { t("\\perp") },
    428     { condition = math, show_condition = math }
    429   ),
    430   s({ trig = "int ", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    431     { t("\\int") },
    432     { condition = math, show_condition = math }
    433   ),
    434   s({ trig = "zeta", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    435     { t("\\zeta") },
    436     { condition = math, show_condition = math }
    437   ),
    438   s({ trig = "arccos", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    439     { t("\\arccos") },
    440     { condition = math, show_condition = math }
    441   ),
    442   s({ trig = "actan", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    443     { t("\\arctan") },
    444     { condition = math, show_condition = math }
    445   ),
    446   s({ trig = "tan", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    447     { t("\\tan") },
    448     { condition = math, show_condition = math }
    449   ),
    450   s({ trig = "arccsc", wordTrig = false, descr = "fill", snippetType = "autosnippet" },
    451     { t("\\arcsc") },
    452     { condition = math, show_condition = math }
    453   ),
    454   s({ trig = "dint", wordTrig = false, descr = "integral", snippetType = "autosnippet" },
    455     fmt(
    456       [[\int_{<>}^{<>} <> <>]],
    457       { i(1), i(2), i(3), i(4) },
    458       { delimiters = "<>" }
    459     ),
    460     { condition = math, show_condition = math }
    461   ),
    462   s({ trig = "->", wordTrig = false, descr = "to", snippetType = "autosnippet" },
    463     { t("\\to") },
    464     { condition = math, show_condition = math }
    465   ),
    466   s({ trig = "<->", wordTrig = false, descr = "leftrightarrow", snippetType = "autosnippet" },
    467     { t("\\leftrightarrow") },
    468     { condition = math, show_condition = math }
    469   ),
    470   s({ trig = "!>", wordTrig = false, descr = "mapsto", snippetType = "autosnippet" },
    471     { t("\\mapsto") },
    472     { condition = math, show_condition = math }
    473   ),
    474   s({ trig = "ivs", wordTrig = false, descr = "inverse", snippetType = "autosnippet" },
    475     { t("^{-1}") },
    476     { condition = math, show_condition = math }
    477   ),
    478   s({ trig = "compl", wordTrig = false, descr = "compliment", snippetType = "autosnippet" },
    479     { t("^{c}") },
    480     { condition = math, show_condition = math }
    481   ),
    482   s({ trig = "\\\\\\", wordTrig = false, descr = "setminus", snippetType = "autosnippet" },
    483     { t("\\setminus") },
    484     { condition = math, show_condition = math }
    485   ),
    486   s({ trig = ">>", wordTrig = false, descr = ">>", snippetType = "autosnippet" },
    487     { t("\\gg") },
    488     { condition = math, show_condition = math }
    489   ),
    490   s({ trig = "<<", wordTrig = false, descr = "<<", snippetType = "autosnippet" },
    491     { t("\\ll") },
    492     { condition = math, show_condition = math }
    493   ),
    494   s({ trig = "~~", wordTrig = false, descr = "~", snippetType = "autosnippet" },
    495     { t("\\sim") },
    496     { condition = math, show_condition = math }
    497   ),
    498   s({ trig = "sub", wordTrig = false, descr = "~", snippetType = "autosnippet" },
    499     { t("\\subseteq") },
    500     { condition = math, show_condition = math }
    501   ),
    502   s({ trig = "set", wordTrig = false, descr = "set", snippetType = "autosnippet" },
    503     fmt(
    504       [[\{<>\} <>]],
    505       { i(1), i(0) },
    506       { delimiters = "<>" }
    507     ),
    508     { condition = math, show_condition = math }
    509   ),
    510   s({ trig = "||", wordTrig = false, descr = "mid", snippetType = "autosnippet" },
    511     { t("\\mid") },
    512     { condition = math, show_condition = math }
    513   ),
    514   s({ trig = "cc", wordTrig = false, descr = "subseet", snippetType = "autosnippet" },
    515     { t("\\subset") },
    516     { condition = math, show_condition = math }
    517   ),
    518   s({ trig = "notin", wordTrig = false, descr = "not in", snippetType = "autosnippet" },
    519     { t("\\not\\in") },
    520     { condition = math, show_condition = math }
    521   ),
    522   s({ trig = "inn", wordTrig = false, descr = "in", snippetType = "autosnippet" },
    523     { t("\\in") },
    524     { condition = math, show_condition = math }
    525   ),
    526   s({ trig = "Nn", wordTrig = false, descr = "cap", snippetType = "autosnippet" },
    527     { t("\\cap") },
    528     { condition = math, show_condition = math }
    529   ),
    530   s({ trig = "UU", wordTrig = false, descr = "cup", snippetType = "autosnippet" },
    531     { t("\\cup") },
    532     { condition = math, show_condition = math }
    533   ),
    534   s({ trig = "uuu", wordTrig = false, descr = "bigcup", snippetType = "autosnippet" },
    535     fmt(
    536       [[\bigcup_{<>} <>]],
    537       { i(1), i(0) },
    538       { delimiters = "<>" }
    539     ),
    540     { condition = math, show_condition = math }
    541   ),
    542   s({ trig = "nnn", wordTrig = false, descr = "bigcap", snippetType = "autosnippet" },
    543     fmt(
    544       [[\bigcap_{<>} <>]],
    545       { i(1), i(0) },
    546       { delimiters = "<>" }
    547     ),
    548     { condition = math, show_condition = math }
    549   ),
    550   s({ trig = "OO", wordTrig = false, descr = "emptyset", snippetType = "autosnippet" },
    551     { t("\\O") },
    552     { condition = math, show_condition = math }
    553   ),
    554   s({ trig = "<!", wordTrig = false, descr = "normal", snippetType = "autosnippet" },
    555     { t("\\triangleleft") },
    556     { condition = math, show_condition = math }
    557   ),
    558   s({ trig = "<>", wordTrig = false, descr = "hokje", snippetType = "autosnippet" },
    559     { t("\\diamond") },
    560     { condition = math, show_condition = math }
    561   ),
    562   s({ trig = "tt", wordTrig = false, descr = "text", snippetType = "autosnippet" },
    563     fmt(
    564       [[\text{<>} <>]],
    565       { i(1), i(0) },
    566       { delimiters = "<>" }
    567     ),
    568     { condition = math, show_condition = math }
    569   ),
    570   s({ trig = "case", wordTrig = false, descr = "cases", snippetType = "autosnippet" },
    571     fmt([[
    572     \begin{cases}
    573         <>
    574     \end{cases}
    575         ]],
    576       { i(1) },
    577       { delimiters = "<>" }
    578     ),
    579     { condition = math, show_condition = math }
    580   ),
    581   s({ trig = "cvec", wordTrig = false, descr = "column vector", snippetType = "autosnippet" },
    582     fmt(
    583       [[\begin{pmatrix} <>_<> \\ \vdots \\ <>_<> \end{pmatrix}]],
    584       { i(1, "x"), i(2, "1"), i(3, "x"), i(4, "n") },
    585       { delimiters = "<>" }
    586     ),
    587     { condition = math, show_condition = math }
    588   ),
    589   s({ trig = "bar", wordTrig = false, descr = "bar", snippetType = "autosnippet" },
    590     fmt(
    591       [[\overline{<>}<>]],
    592       { i(1), i(0) },
    593       { delimiters = "<>" }
    594     ),
    595     { condition = math, show_condition = math }
    596   ),
    597   s({ trig = "dL", wordTrig = false, descr = "double letter", snippetType = "autosnippet" },
    598     fmt(
    599       [[ \mathbb{<>}<> ]],
    600       { i(1), i(0) },
    601       { delimiters = "<>" }
    602     ),
    603     { condition = math, show_condition = math }
    604   ),
    605   s({ trig = "eps", wordTrig = false, descr = "varepsilon", snippetType = "autosnippet" },
    606     { t("\\varepsilon") },
    607     { condition = math, show_condition = math }
    608   ),
    609   s({ trig = "vrho", wordTrig = false, descr = "varrho", snippetType = "autosnippet" },
    610     { t("\\varrho") },
    611     { condition = math, show_condition = math }
    612   ),
    613   s({ trig = "vphi", wordTrig = false, descr = "varphi", snippetType = "autosnippet" },
    614     { t("\\varphi") },
    615     { condition = math, show_condition = math }
    616   ),
    617 })