vimrc/sources_non_forked/vim-snippets/UltiSnips/tex.snippets
2020-12-04 22:15:32 +01:00

258 lines
5.4 KiB
Text

priority -50
extends texmath
global !p
def create_table(snip):
rows = snip.buffer[snip.line].split('x')[0]
cols = snip.buffer[snip.line].split('x')[1]
int_val = lambda string: int(''.join(s for s in string if s.isdigit()))
rows = int_val(rows)
cols = int_val(cols)
offset = cols + 1
old_spacing = snip.buffer[snip.line][:snip.buffer[snip.line].rfind('\t') + 1]
snip.buffer[snip.line] = ''
final_str = old_spacing + "\\begin{tabular}{|" + "|".join(['$' + str(i + 1) for i in range(cols)]) + "|}\n"
for i in range(rows):
final_str += old_spacing + '\t'
final_str += " & ".join(['$' + str(i * cols + j + offset) for j in range(cols)])
final_str += " \\\\\\\n"
final_str += old_spacing + "\\end{tabular}\n$0"
snip.expand_anon(final_str)
def add_row(snip):
row_len = int(''.join(s for s in snip.buffer[snip.line] if s.isdigit()))
old_spacing = snip.buffer[snip.line][:snip.buffer[snip.line].rfind('\t') + 1]
snip.buffer[snip.line] = ''
final_str = old_spacing
final_str += " & ".join(['$' + str(j + 1) for j in range(row_len)])
final_str += " \\\\\\"
snip.expand_anon(final_str)
endglobal
snippet "\\?b(egin)?" "begin{} / end{}" br
\begin{${1:something}}
${0:${VISUAL}}
\end{$1}
endsnippet
snippet abs "abstract environment" b
\begin{abstract}
$0
\end{abstract}
endsnippet
snippet tab "tabular / array environment" b
\begin{${1:t}${1/(t)$|(a)$|(.*)/(?1:abular)(?2:rray)/}}{${2:c}}
$0${2/(?<=.)(c|l|r)|./(?1: & )/g}
\end{$1${1/(t)$|(a)$|(.*)/(?1:abular)(?2:rray)/}}
endsnippet
pre_expand "create_table(snip)"
snippet "gentbl(\d+)x(\d+)" "Generate table of *width* by *height*" r
endsnippet
pre_expand "add_row(snip)"
snippet "tr(\d+)" "Add table row of dimension ..." r
endsnippet
snippet table "Table environment" b
\begin{table}[${1:htpb}]
\centering
\caption{${2:caption}}
\label{tab:${3:label}}
\begin{${4:t}${4/(t)$|(a)$|(.*)/(?1:abular)(?2:rray)/}}{${5:c}}
$0${5/(?<=.)(c|l|r)|./(?1: & )/g}
\end{$4${4/(t)$|(a)$|(.*)/(?1:abular)(?2:rray)/}}
\end{table}
endsnippet
snippet fig "Figure environment" b
\begin{figure}[${2:htpb}]
\centering
\includegraphics[width=${3:0.8}\linewidth]{${4:name.ext}}
\caption{${4/(\w+)\.\w+/\u$1/}$0}%
\label{fig:${4/(\w+)\.\w+/$1/}}
\end{figure}
endsnippet
snippet enum "Enumerate" b
\begin{enumerate}
\item $0
\end{enumerate}
endsnippet
snippet item "Itemize" b
\begin{itemize}
\item $0
\end{itemize}
endsnippet
snippet desc "Description" b
\begin{description}
\item[$1] $0
\end{description}
endsnippet
snippet it "Individual item" b
\item $0
endsnippet
snippet part "Part" b
\part{${1:part name}}%
\label{prt:${2:${1/(\w+)|\W+/(?1:\L$0\E:_)/ga}}}
$0
endsnippet
snippet cha "Chapter" b
\chapter{${1:chapter name}}%
\label{cha:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}}
$0
endsnippet
snippet sec "Section"
\section{${1:${VISUAL:section name}}}%
\label{sec:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}}
$0
endsnippet
snippet sec* "Section"
\section*{${1:${VISUAL:section name}}}%
\label{sec:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}}
${0}
endsnippet
snippet sub "Subsection"
\subsection{${1:${VISUAL:subsection name}}}%
\label{sub:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}}
$0
endsnippet
snippet sub* "Subsection"
\subsection*{${1:${VISUAL:subsection name}}}%
\label{sub:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}}
${0}
endsnippet
snippet ssub "Subsubsection"
\subsubsection{${1:${VISUAL:subsubsection name}}}%
\label{ssub:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}}
$0
endsnippet
snippet ssub* "Subsubsection"
\subsubsection*{${1:${VISUAL:subsubsection name}}}%
\label{ssub:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}}
${0}
endsnippet
snippet par "Paragraph"
\paragraph{${1:${VISUAL:paragraph name}}}%
\label{par:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}}
$0
endsnippet
snippet subp "Subparagraph"
\subparagraph{${1:${VISUAL:subparagraph name}}}%
\label{par:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}}
$0
endsnippet
snippet ac "Acroynm normal" b
\ac{${1:acronym}}
$0
endsnippet
snippet acl "Acroynm expanded" b
\acl{${1:acronym}}
$0
endsnippet
snippet ni "Non-indented paragraph" b
\noindent
$0
endsnippet
snippet pac "Package" b
\usepackage`!p snip.rv='[' if t[1] else ""`${1:options}`!p snip.rv = ']' if t[1] else ""`{${2:package}}$0
endsnippet
snippet lp "Long parenthesis"
\left(${1:${VISUAL:contents}}\right)$0
endsnippet
snippet "mint(ed)?( (\S+))?" "Minted code typeset" br
\begin{listing}
\begin{minted}[linenos,numbersep=5pt,frame=lines,framesep=2mm]{${1:`!p
snip.rv = match.group(3) if match.group(2) is not None else "language"`}}
${2:${VISUAL:code}}
\end{minted}
\caption{${3:caption name}}
\label{lst:${4:${3/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}}
\end{listing}
$0
endsnippet
snippet gln "New glossary item" b
\newglossaryentry{${1:identifier}}
{
name={${2:name}},
first={${3:first occurrence}},
sort={${4:sort value}},
description={${0:description}},
}
endsnippet
snippet glnl "New long glossary item" b
\longnewglossaryentry{${1:identifier}}
{
name={${2:name}},
first={${3:first occurrence}},
sort={${4:sort value}},
}
{
${0:description}
}
endsnippet
# Bold text
snippet bf "Bold"
\textbf{$1} $0
endsnippet
# Italic text
snippet ita "Italics"
\textit{$1} $0
endsnippet
# Underlined text
snippet und "Underline"
\underline{$1} $0
endsnippet
# vim:ft=snippets: