LaTeX and Math Editor Tool

Userlevel 3

Hi Everyone, 

I’ve written a Miro addon that renders LaTeX math expressions to images you can then drag and drop to your boards. It also includes the option to toggle the input mode from plain tex to the excellent MathLive equation editor widget.

I’m looking for a few test users to give some feedback on the UI and iron out any bugs.

I hope people find this useful.



21 replies

Thank you soo much! This is awesome!

Userlevel 7
Badge +7

@Grady W Wow, looks cool – I'll definitely try it out!

Userlevel 3

Known bug: If the drag & drop controls or the place button don’t work, just close and re-open the app panel. This bug is triggered if the board needs to “reconnect” after idling while the app panel is open. 

If anyone knows a way to fix this disconnection issue with the Miro SDK v2, please let me know.

Thank you very much. Is there a way to change the formula once it is created? It looks like the ‘update’ button might do this, I have tried to change the formula using the text field on the left but it doesn’t work (figure 2)

After creating a formula, changed its value in the text field
‘Update’: error message


Userlevel 3

@gianluca Sorry, no way to edit images that have been created at the moment. MathJax takes the input and produces a static svg image. The label you’re seeing there in the name field is just the input string, for reference only at the moment. 

I wasn’t aware of the update button in the interface there, but based on how this works, that error message makes sense. What happens briefly is that 

  1. When you type, your tex string is processed by MathJax in your browser and the static SVG in the tool panel is produced.
  2. When you place the image on the board, the svg is compressed and uploaded to the miroTeX server, where it is hosted publicly for about 10 seconds under a random url, which is passed back to the app in your browser.
  3. During that 10 second window, I add the image to your Miro board using the temporary public URL address.
  4. After 10 seconds the cache of your SVG image is purged and the URL goes away.

So, when you hit the refresh image button, Miro will get a 404 error when it tries to re-read the SVG from my server. This displays the error message you see.

Hope that explains somewhat why no editing is currently possible.

This whole convoluted mess could be avoided if Miro adds local image upload to the SDK. If you’re interested, please go upvote the product roadmap item for that:

Userlevel 3

@gianluca One of the next things I was thinking of implementing was a history list of the latex strings you’ve placed on the board from your current browser. That way you could recover the strings you used, and modify them for re-inserting an updated version. However, your comment gave me another idea. 

Instead, perhaps you could select an image on the board, and I could add two buttons to the app panel interface that do the actions “Copy tex string from current selection title” and then "replace selected image.” I think that should all be fairly easy to implement with the SDK.

Any potential users please let me know which of these (or both?) seems like a better idea for implementing some sort of ability to go back and change what you’ve made.

@Grady W thank you for your reply! The history list sounds cool (is it going to be related to the entire board history or just to the current session or to the single user?), but maybe your second idea might be even more useful, in my opinion. 

@Grady W Thanks a lot for your work! I was longing for such a feature :)
I just tried it and I could produce nice formulas - just the newline “\\” did not work with LaTeX input.
Do I have to create multiple images or did I miss something about the newline?

Userlevel 3

@lorny This uses MathJax to create the images, so it’s limited to whatever MathJax can do. Here’s a list of commands they implement…

From how I intended this to be used, I think you need to make multiple images, or try one of the multiline ams environments like gather

f(x)=x^2 \\ g(w)=w+\sqrt w - 2

Userlevel 3

Small update annoucement: There is now a very experimental history/editing feature. If you create a new latex image, the latex string for that image will be stored within the board data. If you later have the MiroTeX window open and then select that image (and only that image), you should get the latex string inserted into the editor box for you to edit. 

You also get a new button “Replace selection” in this situation. If you click that, the currently active latex is converted and uploaded in the same location as the old image, and the old image is deleted. 

Currently very alpha, but the basic feature works for me. However, there are things missing too: If you resized the image, it won’t resize the replacement for you yet.

Experimental History/Edit and Replace feature.



I totally agreed with you my problem is solved. I am very happy.

For more information see 4d Astro

Does anybody have problem that the program is not working at all. It is installed, but no toolkit is added, nothing is changing.

Maybe I missed some stage of changing the mirror parameters to let it work? 

Badge +1

EDIT: It is working now. I simply had to refresh my page! :D

I’m having the same problem as Liubov Markovich. I can’t find MiroTex under my Apps list when I click on “>>” (more tools) on my toolbar. I’m not sure whether I did something wrong or whether there’s a bug. 

Hi there,

This is absolutely brilliant! Thank you so much for working hard on this feature!

A few features that would be absolutely brilliant:

  • The ability to automatically detect whether LaTeX source code is being pasted into Miro
  • The ability to automatically detect instances of LaTeX code that arise inside text boxes (e.g. if I type “We have $a^2 = b^2 + c^2$ where $a$, $b$ and $c$ are the side lengths of a right-angled triangle” then any text enclosed between dollar signs should automatically be rendered as LaTeX)
  • Support for equation references (i.e. numbers and labels)
  • Ability to support custom insets for equations (e.g. fancybox)


@Grady W Thanks so much for this plugin!

Is there a possibility to deactivate the live update of the LaTeX equation? While writing a LaTeX equation, not only the image is updated, but also the LaTeX text that I am actually typing in this moment. It changes my LaTeX text by adding or deletig unfinished commands. This makes the workflow sometimes a bit difficult.

I also did not succeed to switch on the virtual math keyboard. When I turn on the MathLive switch and the Keyboard switch there is still a keyboard sign in the input box but a math keyboard does not appear.

Thanks for your answer!

Userlevel 3

@Florian Linder 

Hi Florian. I’m not quite sure I understand what the problem you are experiencing is, and it does not sound like anything I experienced while testing the plugin. It could be a browser issue. I only really tested the plugin in Chrome, Firefox, and the app on Windows. 

If you could try opening an issue on the github page and include some screen shots or captures that might help me troubleshoot it.

Hi! I am using you addont it is beatiful, thank you so much man!

I am using you addont. It is so beatiful and wonderful, thank you so much man!

as i type in the MiroTex dialog window, the input focus is lost during on-fly formula update.
One has to take mouse in hand each few seconds to return focus back to the MiroTex dialog window 😔

Thanks so much for this!

HELP! which is correct (I thought 1,4,5). but that is not correct:


  1. $\begin{align*} c^2 &= a^2 + b^2 \\ c^2 &= 6^2 + 8^2 \\ c^2 &= 36 + 64 \\ \sqrt{c^2} &= \sqrt{100} \\ c&=10 \end{align*}$
  2. $$\begin{aligned*} c^2 &= a^2 + b^2 \\ c^2 &= 6^2 + 8^2 \\ c^2 &= 36 + 64 \\ \sqrt{c^2} &= \sqrt{100} \\ c&=10\end{aligned*}$$
  3. $\begin{aligned} c^2 &= a^2 + b^2 \\ c^2 &= 6^2 + 8^2 \\ c^2 &= 36 + 64 \\ \sqrt{c^2} &= \sqrt{100} \\ c&=10 \end{aligned}$
  1. $\begin{align} c^2 &= a^2 + b^2 \\ c^2 &= 6^2 + 8^2 \\ c^2 &= 36 + 64 \\ \sqrt{c^2} &= \sqrt{100} \\ c&=10 \end{align}$
  2. $$\begin{aligned} c^2 &= a^2 + b^2 \\ c^2 &= 6^2 + 8^2 \\ c^2 &= 36 + 64 \\ \sqrt{c^2} &= \sqrt{100} \\ c&=10 \end{aligned}$$