Obsidian Latex Suite Versions Save

Make typesetting LaTeX as fast as handwriting through snippets, text expansion, and editor enhancements

1.9.3

2 weeks ago
  • The math popup preview no longer blocks LaTeX source code for long inline math equations when its position is set to "Below". (#288 by @bdm-k)
  • When an IME is active, snippets are now disabled by default. (#286 by @RyotaUshio)

1.9.2

1 month ago
  • Improved the default snippets.
    • Reorganised snippets into categories and added more comments.
    • Added shortcut " -> \text{}.
    • Added shortcut \sumTab -> \sum_{i=1}^{N}.
    • Added snippets under "Misc" section that enable you to automatically convert lone letters or Greek letters in text to math.
    • Made some snippets less aggressive.
  • You can now choose to load snippet variables from files, as well as snippets from files. (#280 by @itay-raveh)
  • The "highlight matching bracket" highlight is now more visible.
  • Updated the appearance of snippet placeholders.

1.9.1

2 months ago
  • The math popup preview can now be positioned below instead of above your equation source, so it doesn't obscure text above your equation (#257 by @bdm-k)
  • Added lVert and rVert default snippets, auto-enlarge and conceal (#253 by @Comprehensive-Jason)
  • Snippets can now have more than 9 tabstop placeholders (#256 by @git-wil)
  • Default snippets: Added overbrace shortcut (#249 by @you-n-g)
  • Default snippets: Matrix environment snippets (e.g. pmatrix) now take into account block/inline math

1.9.0

3 months ago

Function snippets

You can now run JavaScript code in snippets! To do this, make your replacement a function. For example, the snippet

{trigger: "date", replacement: () => (new Date().toDateString()), options: "t"},

will expand "dateTab" to the current date, such as "Mon Jan 15 2023".

Function snippets work with regex and visual snippets as well.

For regex snippets, Latex Suite will pass in the RegExpExecArray returned by the matching regular expression to your replacement function. This lets you access the value of capture groups inside your function. For example, the regex snippet

{trigger: /iden(\d)/, replacement: (match) => {
    const n = match[1];

    let arr = [];
    for (let j = 0; j < n; j++) {
        arr[j] = [];
        for (let i = 0; i < n; i++) {
            arr[j][i] = (i === j) ? 1 : 0;
        }
    }

    let output = arr.map(el => el.join(" & ")).join(" \\\\\n");
    output = `\\begin{pmatrix}\n${output}\n\\end{pmatrix}`;
    return output;
}, options: "mA"},

will expand "iden4" to a 4×4 identity matrix:

\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{pmatrix}

. More generally, it will expand "idenN" to an N×N identity matrix.

For more information on function snippets, see the docs here. (Closes #16, thanks to #241 by @duanwilliam)

Other minor improvements

  • Added new identity matrix default snippet
  • Fixed/improved snippet placeholder mark decorations appearing when not necessary

1.8.10

5 months ago
  • Auto-enlarge lfloor, rfloor, lceil, rceil (#226 by @m4rch3n1ng)
  • Added default snippets for floor and ceil (#227 by @m4rch3n1ng)

1.8.9

6 months ago
  • Fixed Latex Suite causing cards to be blurry in canvases. (#187)
  • Fixed auto-fraction removing parentheses in (a)(b)/ when it shouldn't. (#206, #220 by @duanwilliam)

1.8.8

6 months ago
  • You can now use Regular Expression literals in snippet triggers! e.g. The regex snippet

    {trigger: "([A-Za-z])(\\d)", replacement: "[[0]]_{[[1]]}", options: "rA"}
    

    will expand x2 to x_{2}. The same snippet can now be written using a RegExp literal as

    {trigger: /([A-Za-z])(\d)/, replacement: "[[0]]_{[[1]]}", options: "A"}
    

    .

  • You can now set regex flags in a snippet using the flag property on a snippet, e.g.

    { trigger: "foo", replacement: "bar", options: "rA", flags: "i" },
    

    will replace "foo", "FOO", and "fOo" with "bar".

  • For power users: you can now treat snippet files as javascript modules, with the snippets array being the default export (#219 by @duanwilliam). For example,

    const SHORT_SYMBOL = "to|pm|mp"
    export default [
      { trigger: `([^\\\\])(${SHORT_SYMBOL})`, replacement: "[[0]]\\[[1]]", options: "rmA" },
    ]
    

    is now a valid snippet file. See #219 for more information.

  • Improved setting description for snippet file location.

1.8.7

6 months ago
  • Fixed being unable to install and enable the plugin

1.8.6

6 months ago
  • Conceal \set, improve concealing of operators (#216, #217 by @duanwilliam)
  • Fixed math popup preview sometimes appearing when it shouldn't (#208)
  • \begin{} and \end{} are now treated as text environments (#157)
  • Made the snippet variable text editor larger

1.8.5

6 months ago
  • You can now edit snippet variables such as ${GREEK} and ${SYMBOL} in the plugin settings (#181 by @Benjymack)
  • Added \bigcup, \bigcap, \forall to ${SYMBOLS}
  • Added icons to section headings in settings