artisticat1 / obsidian-latex-suite

Make typesetting LaTeX as fast as handwriting through snippets, text expansion, and editor enhancements
MIT License
1.13k stars 45 forks source link
latex math obsidian obsidian-md obsidian-plugin snippets text-expansion

Obsidian Latex Suite

A plugin for Obsidian that aims to make typesetting LaTeX math as fast as handwriting.

Inspired by Gilles Castel's setup using UltiSnips.

demo

The plugin's main feature is snippets, which help you write LaTeX quicker through shortcuts and text expansion! For example, type

See Gilles Castel's writeup for more information.

The plugin comes with a set of default snippets, loosely based on Gilles Castel's. You can modify them, remove them, and write your own.

Usage

To get started, type "dm" to enter display math mode. Try typing the following:

Have a look at the cheatsheet for a list of commonly used default snippets.

Once these feel familiar, you can check out the default snippets for more commands. e.g.

You can also add your own snippets! See here for more info on writing snippets. You can view snippets written by others and share your own snippets here.

Features

Auto-fraction

Lets you type "1/x" instead of "\frac{1}{x}".

For example, it makes the following expansions:

and moves the cursor inside the brackets.

Once done typing the denominator, press Tab to exit the fraction.

auto-fraction

Matrix shortcuts

While inside a matrix, array, align, or cases environment,

matrix shortcuts

Conceal

This feature must be enabled in settings!

Make your equations more readable by hiding LaTeX code, instead rendering it in a pretty format.

For example, "\dot{x}^{2} + \dot{y}^{2}" will be displayed as "ẋ² + ẏ²".

To reveal the LaTeX code, move the cursor over it.

conceal demo conceal demo 2

Tabout

Preview inline math

When the cursor is inside inline math, a popup window showing the rendered math will be displayed.

Color & highlight matching brackets

color and highlight matching brackets demo

Visual snippets

Sometimes you want to annotate math, or cancel or cross out terms. Selecting some math with the cursor and typing

visual snippets

Auto-enlarge brackets

When a snippet containing "\sum", "\int" or "\frac" is triggered, any enclosing brackets will be enlarged with "\left" and "\right".

auto-enlarge brackets

Editor commands

Snippets

Snippets are formatted as follows:

{
  trigger: string | RegExp,
  replacement: string,
  options: string,
  priority?: number,
  description?: string,
  flags?: string,
}

Options

Insert tabstops for the cursor to jump to by writing "$0", "$1", etc. in the replacement.

For more details on writing snippets, including regex snippets and function snippets, see the documentation here. You can view snippets written by others and share your own snippets here.

[!WARNING] Snippet files are interpreted as JavaScript and can execute arbitrary code. Always be careful with snippets shared from others to avoid running malicious code.

Cheatsheet

Trigger Replacement
mk \$ \$
dm \$\$

\$\$
sr ^{2}
cb ^{3}
rd ^{ }
_ _{ }
sq \sqrt{ }
x/y Tab \frac{x}{y}
// \frac{ }{ }
" \text{ }
text \text{ }
x1 x_{1}
x,. \mathbf{x}
x., \mathbf{x}
xdot \dot{x}
xhat \hat{x}
xbar \bar{x}
xvec \vec{x}
xtilde \tilde{x}
xund \underline{x}
ee e^{ }
invs ^{-1}

When running a snippet that moves the cursor inside brackets {}, press Tab to exit the brackets.

Greek letters

Trigger Replacement Trigger Replacement
@a \alpha eta \eta
@b \beta mu \mu
@g \gamma nu \nu
@G \Gamma xi \xi
@d \delta Xi \Xi
@D \Delta pi \pi
@e \epsilon Pi \Pi
:e \varepsilon rho \rho
@z \zeta tau \tau
@t \theta phi \phi
@T \Theta Phi \Phi
@k \kappa chi \chi
@l \lambda psi \psi
@L \Lambda Psi \Psi
@s \sigma
@S \Sigma
@o \omega
ome \omega

For greek letters with short names (2-3 characters), just type their name, e.g. "pi" → "\pi"

Contributing

Any contributions and PRs are welcome!

Acknowledgements

Support

If you like this plugin and want to say thanks, you can buy me a coffee here!

Buy Me a Coffee at ko-fi.com