New plugin: LaTeX-like Theorem & Equation Referencer

IMPORTANT
This plugin had been called Math Booster until version 2.1.4, but has been renamed for better clarity and discoverability. A big thank you to those who shared their thoughts here.

Hi everyone,

LaTeX-like Theorem & Equation Referencer is an Obsidian.md plugin that provides a powerful indexing & referencing system for theorems & equations in your vault, bringing LaTeX-like mathematical note-taking experience into Obsidian.

Screenshot

(The theorem in the screenshot is cited from Tao, Terence, ed. An introduction to measure theory. Vol. 126. American Mathematical Soc., 2011.)

Docs

https://ryotaushio.github.io/obsidian-latex-theorem-equation-referencer/

Features

NOTE
For more modular and focused enhancements, some features are planned to be transitioned from this plugin to dedicated, specialized plugins in the near future. Below are the upcoming changes:

Transitioning to Better Math in Callouts & Blockquotes

  • Rendering equations inside callouts
  • Multi-line equation support inside blockquotes

Transitioning to Rendered Block Link Suggestions

Theorems & equations can be dynamically/automatically numbered, while you can statically/manually number them if you want.
The number prefix can be either explicitly specified or automatically inferred from the note title.

Thanks to the integration with MathLinks, links to theorems/equations are displayed with their title or number, similarly to the cleveref package in LaTeX. (No need for manually typing aliases!)

You can also customize the appearance of theorem callouts using CSS snippets; see here.

Installation & beta testing

Thank you!

12 Likes

Hi,

Can you or someone else, please for the love of god, let me know how to create a proof, like the one displayed on the Math Booster website.

Apparently I have to use this:

`\begin{proof}`
Lorem ipsum dolor sit amet, consectetur adipiscing elit, ...
`\end{proof}`

But where should i write this, or how do i get it to format?

@NickG1 Hi, thank you for asking!

Proofs can be placed anywhere in the body of your note, and you don’t have to do anything to make it displayed as “Proof.” & “□”.

Also, please don’t forget the backticks. In other words, \begin{proof} and \end{proof} must be inline codes.

Screen Recording 2023-08-26 at 17.53.54

Styling

The default style for the beginning of the proof is italic, and the font family is inherited from the app settings.

You can modify it using CSS snippets. For example, if you want to use the following style,

create the following CSS file and place it under the folder <root of your vault>/.obsidian/snippets/. Then, enable this snippet in the appearance tab of the app settings.

.math-booster-begin-proof {
    font-style: normal;
    font-weight: 600;
    font-family: Times;
}

Troubleshooting

I noticed a bug in the setting loading mechanism, and it might be the reason why you have trouble. I’ve just fixed it, so could you update your Math Booster to the latest version (0.6.9 as of August 27, 2023)?

If it still doesn’t work, please let me know via a GitHub issue.

1 Like

Just played around with it and it looks really good!

The easiest way to make use of the environments is indeed by using the insert options of the plugin.

Would it be possible to also auto number headings? Like:

1. Heading 

1.1. Sub Heading 

1.2. Sub Heading

2. Heading

2.1. Sub Heading 

@JayKim Hi, I’m happy you liked it!

As for heading numbering, there’s already a plugin that does what you want:
Number headings

I forgot to announce that Math Booster is now available in the community plugin browser!
Also, any help in beta-testing via BRAT will be still appreciated!

1 Like

I love this plugin! I apologize if this is a really simple question, but it seems like all of the Theorem, Definition, etc. environments are always in italics. Is it possible to change it to normal font? Or have an option to change it to normal font?

Thank you!!

1 Like

Thank you for the kind words! Glad to hear you are enjoying my plugin.

Yes, you can flexibly customize the appearance of theorems using CSS snippets.

You might to want to take a look at:

Even if you are not familiar with CSS (like I was a few months ago), please don’t be discouraged; in the documentation page above, you can find the CSS snippets that are used for the preset styles (plain/framed/MathWiki/vivid). So all you have to do is just copy the snippet and modify the part you want to tweak.

For example, this plugin’s default theorem style (“framed”) uses this CSS: https://github.com/RyotaUshio/obsidian-math-booster/blob/master/styles/framed.css

font-style: italic; at the bottom makes your theorem text italic. So you can change it to normal font by:

  1. creating a CSS snippet under <root of your vault>/.obsidian/snippets folder by copying the above framed.css

    Note: Only include the code between /* START */ and /* END */ to your snippet file.

  2. delete the last three lines
  3. and enable this snippet in the app’s appearance settings.
  4. Also don’t forget to go to Math Booster settings > Global > Theorem callouts > styles and set it to “custom”. (You might have to reloading Math Booster after this)

(by the way, I’m thinking about enabling customizing theorem styles via the Style Settings plugin)

2 Likes

Thank you for taking the time to respond! That’s a very neat solution, I will try to implement it sometime. (Currently I only use on iPad and I’m not at all familiar with coding, so it’ll take some effort, but it appears that people have found workarounds.)

If you do end up implementing a style-customization directly in the plugin, that would be amazing! Thanks again for all of your work! :slight_smile:

1 Like

Probably, the easiest way to create & edit CSS snippets on mobile would be this plugin:

It allows you to edit CSS snippets inside Obsidian without any external editor like VSCode.

2 Likes

Math Booster v2 is under development. Here is an early alpha release:

V2 is now in public beta! You can try it with BRAT.

Check out the new documentation site:

https://ryotaushio.github.io/obsidian-math-booster/

1 Like

UPDATE:

Math Booster version 2 introduces a new format for theorem callouts, which is much cleaner, more intuitive, more keyboard-friendly, and less plugin-dependent than the previous one!

%% basic syntax for automatically numbered theorem environments %%
> [!theorem] Title
>

> [!corollary]
> 

%% you can type "thm" instead of "theorem", "cor" instead of "corollary", etc. %%
> [!thm] Title
>

> [!cor]
> 

%% unnumbered environments like "\begin{lemma*}" in LaTeX %%
> [!lemma|*] Title
> 

%% explicitly specifying a theorem number %%
> [!def|A.1] Title
> 

Check out more details here:

https://ryotaushio.github.io/obsidian-math-booster/theorem-callouts/theorem-callouts.html

2 Likes

New in 2.0.0-beta7:

1 Like

:tada: Math Booster version 2 is now officially available with a whole bunch of improvements!

Check out the new docs here: Math Booster Docs

What’s new in version 2

Version 1

Theorem number Equation number
Reading view :white_check_mark: :white_check_mark:
Live preview :white_check_mark: :white_check_mark:
Embeds :white_check_mark:
Hover page preview :white_check_mark:
PDF export :white_check_mark:

Version 2 :tada:

Theorem number Equation number
Reading view :white_check_mark: :white_check_mark:
Live preview :white_check_mark: :white_check_mark:
Embeds :white_check_mark: :white_check_mark:
Hover page preview :white_check_mark: :white_check_mark:
PDF export :white_check_mark: :white_check_mark:

No longer supported

Full Changelog: Comparing 1.0.4...2.0.0 · RyotaUshio/obsidian-math-booster · GitHub

Playing around with it, and it proves to be super useful. Does anyone know if there is a thread of custom CSS styling for the callouts? I’m interested in how people style them.

Thanks for the kind words!

I’m thinking of making a GitHub discussion thread where people can share their custom CSS snippets for theorem callouts, just like Latex Suite’s snippet sharing thread.

1 Like

That would be so nice! The one for latex-suite is very helpful

It’s a litlte silly question, but I can’t use custom style. Even I off my theme, put snippet with code one of basic style in folder and on “Сustom style” nothing happens. What am I do wrong?

@Nomemes_Jokemuch Sorry for the poor documentation, changing the Style option takes effect for newly opened notes. So you need to reopen already open notes to see your custom styles. Does it help? If not, can you show me your snippet?

@ush
Reopened note or reloaded Obsidian was not help.

Snipett looks this, I dowloaded it from https://github.com/RyotaUshio/obsidian-latex-theorem-equation-referencer/blob/master/styles/framed.scss

framed {
    /* 
    If you're going to use this file as a CSS snippet, only include the code between 
    the START and END comments to your snippet file.
    */
    /* START */
    .theorem-callout {
        --callout-color: var(--text-normal);
        background-color: rgb(0, 0, 0, 0);
        border: solid var(--border-width);
        border-radius: var(--size-2-3);
        font-family: CMU Serif, Times, Noto Serif JP;
    }

    .theorem-callout .callout-icon {
        display: none;
    }

    .theorem-callout-main-title {
        font-family: CMU Serif, Times, Noto Sans JP;
        font-weight: bolder;
    }

    .theorem-callout-subtitle {
        font-weight: normal;
    }

    :not(.theorem-callout-axiom):not(.theorem-callout-definition):not(.theorem-callout-remark).theorem-callout-en .callout-content {
        font-style: italic;
    }
    /* END */
}