Math-o-mir 2.0 (official release)

You can download the new official Math-o-mir 2.0 from the download page or from the software homepage.

The main reason I increased the version number from 1.xx to 2.xx is because there are changes in the .mom file format that might compromise the backward compatibility. The new file format 2.xx is more compact and produces files half the size than the older 1.xx format. It is even much more efficient when storing documents that contain bitmaps – which is the main reason why I decided to change the file format in the first place.

However, being concerned about backward compatibility, I decided that the new MoM 2.0 will still store its files into 1.xx format by default (except bitmaps). If you explicitly want to use the new 2.xx format, you should choose “save as…” and then choose the 2.xx format… Maybe I was too much of a coward, I admit. Anyway, in the next version the Math-o-mir will save in 2.xx format by default. And in some even further version, it will loose the ability to save 1.xx format altogether…. The ability to read the 1.xx format will remain ‘forever’.

Other major news are as follows:

  • Toolbox options are rearranged. New symbols are added (corresponds to, D’Alambert, triangle, real part, imaginary part), some symbols are deleted
  • The “very large” toolbox size option is added to support high-resolution monitors
  • New commands: \varpi (inserts pi variant); \Ups, \ups (generates upsilon)
  • Spacebar+Enter keystroke can be used to toggle text/math typing mode (in addition to the Alt+Spacebar keystroke)
  • New variable decorations are available: triple dot, tilde, hacek
  • The function plotter is speed up and improved. Up to 4 functions can now be plotted simultaneously. Numerical integration of the plotted function is implemented.
  • The uppercase delta sign is handled in a special way – no automatic separation from the following variable. The double ‘u’ stroke generates Greek mi letter (not the upsilon)
  • Redesigned the drawing box handy menu
  • 45 degree lines can now be drawn using the section-line drawing tool
  • keyboard arrow key handling improvement

I eradicated some bugs. I also removed several features: the auto-clipboard-semi-transparent menu, snap-to-grid option (it is now always active when the grid is displayed), parentheses-height options… The documentation is updated: the Users Manual, the Brief Guide and the Tutorial. All in English language. (However the German version of the software itself is also released).

For following days I will be lurking for bugs that I generated with the new version. Please report any that you find… I wish a happy new year to everyone reading this!

Math-o-mir Brief Guide (and exams in Finland)

Well, I decided to write a Brief Guide to Math-o-mir. It is a PDF file that you can download from here (234kB). This Brief Guide is 15 pages long. I believe that the Brief Guide was necessary because I am convinced, and several potential users also mentioned it, that the existing Users Manual is just too voluminous – the Users Manual is almost 100 pages long.

If you have the opportunity to check the Brief Guide, I would be happy to hear your comments. Especially about how to make it shorter and clearer. I am aiming at 12 pages. I am already aware that my English is broken, so don’t be ashamed when it must be pointed out.

In the Brief Guide, I decided to first explain the keyboard entry methods, and only then to explain the mouse usage. I am not sure if this is a good idea, but I think that it will be clearer to readers that it is the keyboard entry they should concentrate about.

I also think that the Brief Guide can be friendly to teachers and their students. Asking a student to read the Users Manual would be too cruel.


Did you know that in Finland they will have math matriculation exams completely digital from 2019. Students, age 19 mostly, will bring their own computers and boot them into exam-environment OS (Debian/Linux). There they will have selection of math software that they will be able to use when taking the exam. No paper will be used… Very brave, I would say. I wish them a good luck. It would be interesting to see how the things will turn out… I did not find much background information about this idea (in English), particularly about motivation and expectations. In any case, I hope that Math-o-mir will be one of tools students will be allowed to use during the exam.

Math-o-mir 2.0 beta 5

The new beta can be downloaded from here.

There are two news in this beta 5. First I improved borderline handling in tables and matrices. When you insert new rows/columns the borderlines of matrix cells should now behave in a more predictive way. This required some deeper changes in underlying data structures so please let me know if you find a bug when working with tables/matrices.

Secondly, I tried to refine handling of cursor movement when using keyboard arrow keys. It is quite difficult to implement a predictable cursor movements within irregular structure of a math expression. The most important new thing is that if you hit the opposite arrow direction key than in the very previous stroke, the cursor will return back to where it originally was. I hope this will help when correcting unwanted cursor moves.

In addition, pressing the left or right arrow key will always put the cursor into the fraction numerator (or denominator) – until now the cursor would jump over the fraction if the fraction was quite short. Plus, when moving cursor through multi-line text field it will move in a way more similar to standard text processor.

Math-o-mir 2.0 beta4

The new beta can be downloaded from here.

There was an annoying bug where Math-o-mir would display unary minus sign incorrectly when showing results of some simple mathematical operations. For example, when asked to compute -(-3/4) it would display –0.75 (with two minus signs in front of the number). I hope I took care of it in this beta.

Several other bugs are also exterminated, like the inability to put asterisk after parentheses: [x]*. One new minor feature is implemented – when you enter a single-letter function using the dot method, like typing f., then the function is always generated with round parentheses, like f( ). Now if you type [ or { immediately after you created the function, the parentheses shape will be altered.

I am still undecided if I should discontinue the Courier New font and replace it with some script font. I think that a script font might be of greater usage than a mono-spaced font when typing mathematics. However, no script font seem to be used as widely as the Courier New font (or Arial, or Times New Roman…). The Lucida Handwriting and Lucida Calligraphy seem common (I prefer the later), but are they common enough?

Math-o-mir 2.0 beta 3

You can download the new beta from here.

I was forced to quickly update the Math-o-mir beta due to a bug find. The bug existed for some time including the last official version. It remained undetected until today. Today I received a report stating that Math-o-mir crashes whenever any of the following is entered:

  •     d.x[spacebar]
  •     \d x[spacebar]
  •     par.x[spacebar]
  •     \par x[spacebar]

The bug is easily reproducible and thus I was able to correct it quickly. I introduced the bug when I was implementing support to toggle Math/Text typing mode using the Spacebar+Enter keystroke. I apologize.

In addition to the above, I corrected several other bugs:

  • right-mouse-click on vertical scroll bar did not work correctly every time if function plotters were used within the document. The  bug had potential to crash the software.
  • Plotting an almost-constant function would cause software to hang or crash under certain circumstances (if the difference between function minimum and function maximum value was more than about 16 orders of magnitude smaller than function mean value on that range).
  • displaying line lengths and rectangle sizes in the Drawing Box is corrected.

Function plotter uplift

A slight function plotter improvement is implemented in this 2.0 beta2 version. You can download it from here… My primary concern was to increase computation speed when plotting functions, but I don’t think I was very successful at it.

  • Computation algorithms are optimized and this resulted in about 20% faster function plotting and somewhat increased accuracy. My goal was set much higher, but I failed. Still I hope the function plotter will be more responsive now.
  • I implemented possibility to plot up to 4 functions simultaneously inside one plotter window (until now, only 3 functions were possible).
  • The plotter window grid and coordinate system is now continuously updated as you scroll or stretch the plotter window. Thus, the navigation should be easier now. I also marked zero-x and zero-y axis with a thicker line width.
  • Experimentally, while the ‘analyze’ option is turned on, the integral of the first function is calculated (for the range shown) and displayed in the lower-right corner of the plotting window.


  • In addition, I added ‘\triangle’ and ‘\square’ commands. You can also type ‘x^~’ to put tilde over the variable ‘x’.

Numerical computation

Because the Math-o-mir is not a number cruncher, a non-trivial numerical computation is not really supported. Therefore I am using the ‘analyze’ option of the function plotter when I need to crunch some numbers. The function plotter is capable to numerically find local minimums/maximums as well as intersection points between two functions. For example, when I need to find zeros of some function (only for functions of single variable) that I cannot solve symbolically, I will plot it in the function plotter together with a trivial ‘y=0’ function and the function plotter will find their intersections. Now I also implemented the numerical integration within the function plotter (all of this has limited accuracy, and results should be used with care.)

My further goal is to implement a ‘parametric function plotter’. This one will be somewhat more complex and will be able to plot equations in parametric form. I still have no idea how the user interface should look like… What I really want is to be able to use it also for simple numerical simulations: it should be able to work with integrals and derivatives. I would like to simulate some simple linear and non-linear systems in time. At least those that can be solved equation by equation. Now you understand why I am trying to increase the computation speed.

Math-o-mir v2.0 beta

Due to some compatibility changes, I decided to increase version number to 2.0. You can download the 2.0 beta from here. The mentioned compatibility issues are as follows:

  • The file format is changed. It is still possible to load and save Math-o-mir 1.x files (in fact, the 1.x file format is the default even in this beta) but this legacy support might have bugs. (You might want to back-up your files because this beta is not thoroughly tested yet. Also, saving bitmaps in the legacy format is not supported.) The new Math-o-mir 2.x file format is available under the Save As dialog box: here you can choose option “MOM file (2.x)”. The new file format is still XML, but generated files will be smaller. As a result I removed the option “MOM compressed file”.
  • The toolbox items are rearranged. Many are removed and few new ones are added. As a result, if you had some keyboard accelerators configured they might not work correctly any more and you will have to reconfigure them.

The reason for file format change is to decrease the file size. Math-o-mir files are very verbose (they still are, only to a lesser extent) as a result of XML usage. I roughly estimate that an average page adds about 50kB to the file size. The new file version significantly improves bitmap storage. If you used to paste large bitmaps into Math-o-mir documents you probably noticed that files were getting large and everything was slow. I hope it is going to be better now.

The reason for toolbox rearrangement is to group items in a more organized way. I also removed many items that were not really needed. I however added few new items:

  • the ‘equal with a hat’ operator is added (coresponds to)
  • the D’Alambert operator is added (just an empty box)
  • the triangle symbol is added
  • fancy functions for real and imaginary part of a complex number are added

Other news are that I added three additional above-variable decorations: caron (hacek), tilde and triple dot. I rearranged the software so that I have the space now to add even more decorations if needed… I upgraded the thin-line-drawing-tool so that it can draw lines angled at 45 degrees… Finally, I removed options to adjust parentheses height.