Math-o-mir v1.84 beta6

You can download the new beta6 version from:

In comparison to the last beta, there are several news:

  • A new symbol is added into the toolbox – the ‘because’ symbol (three dots in a triangle formation). Also the new command is enable (\because) that can generate this symbol.
  • The CapsLock key can now be used to toggle between Math Typing Mode and Text Typing Mode. This will only work if you enable the following options:  Keyboard->Options->Use CapsLock to toggle typing mode. Of course, once you enable this option, the CapsLock will not toggle the uppercase/lowercase letters any more. Instead, to toggle uppercase/lowercase letters then, you will have to use Shift+CapsLock or Ctrl+CapsLock.
  • Handling of Formatting modes is changed in order to simplify it. The ‘O’ (oneshot) mode is removed and now you will only find two Formatting mode icons in the toolbox (the ‘U’ and the ‘M’). However, you can still create oneshot-style fonts by checking the ‘use as singleshot’ option while defining a uniform font…..  If you already created many personalized oneshot formatting styles,  you will not have them any more. Sorry.
  • While defining fonts for uniform ‘U’ formatting styles, you can now also choose font color.
  • A nasty special handling is introduced when typing indices (indexes). If you now hit the same letter three times in a row, a Greek symbol (that is going to be created after the second key hit) will be reverted back into two Latin letters… This special handling was needed to enable easier typing for variables with double-Latin letters in indices (like ‘Vcc’ or ‘Vpp’).
  • The Handy Help is updated

Somehow I hope that this is the last beta before the v1.84 official release. Not many new features are planed, if any (perhaps: I am investigating a possibility to store all symbols that are deleted with the backspace key into some special clipboard. Then, using some special keystroke you could  paste this special clipboard… The problem is that I don’t know what special keystroke combination to use. .. Still the feature is appealing because it seems faster than the  standard cut-paste operation in many cases.)

Nuts and bolts of fast math typing

Typing mathematics is hard, much harder than typing a plain text. One reason is the math notation: because math equations have much more complex structure and use many more symbols than plain-text lines. Another reason is the keyboard: because keyboards are engineered for plain-text entry, not for math entry… Alternative computer-entry techniques, like handwriting recognition or even speech recognition, will also bump into major problems with mathematics. When one considers the future of math entry, the following facts should be kept in mind:

  • Keyboards will never change to accommodate for math typing needs. There are just too few people in this world that are in need to type lots of math.
  • Handwriting recognition is going to advance and likely, one day, it will be able to recognize all the symbols needed. The main problem with this future handwriting recognition technology is that it has limited potential to speed up math writing or to make it any easier compared to today’s pencil-and-paper technology.
  • Speech recognition is in deep trouble because we don’t even know how to pronounce more complex math equations. Speech recognition alone is also very useless when you want to make a quick illustrative sketch (a hand-drawing) of a math problem.

As a result, I am guessing that in the observable future most people will use handwriting recognition to enter few math lines now and then. Those that will need to enter tons of mathematics might choose to learn and use ten-fingers-and-a-keyboard method – supposing that keyboards are still going to be around. At this moment the keyboard seems irreplaceable in the working environment, but in future some technologies might replace it. Handwriting is too slow (unless we all learn stenography). Speech recognition might become a primary data-entry interface in future. We will invent new words that will help us with editing and stuff where today’s vocabulary seems cumbersome. Speech recognition might also be accompanied with the eye-tracking technology so that computer will know what part of our document we are referring to… If we allow ourselves even more speculations, we may come up with some direct-to-brain interfaces and so on (but then the question is how much time we will have in order to invent these new technologies before sentient computers take over the further progress of our world).

Here and now, the Math-o-mir uses keyboard. I wanted to clearly present core ideas of how math typing is implemented in the Math-o-mir software. The following table shows how variables and symbols are typed.


As you can see, the software uses double-strokes to create Greek symbols. This idea, I feel, is not always a perfect solution. I would prefer to have an alternative way to convert a Latin symbol into a Greek symbol – for example typing ‘x’ and then hitting some other key to make the conversion. The problem is that I have no free keys left.

As you can also see, there are two ways to generate uppercase symbols (that is, symbols that are generated with the shift key). The first method is, of course, to use the Shift key. The second method is to press-and-hold a key for about 0.5 seconds. The second method is pretty much useless in the above simple examples, but it becomes useful when entering exponents or indices (indexes).

To enter an exponent you generally use the hat character ‘^’ (alternatively you can use the double-quotation mark character that is easier to type on some keyboards). However, many times it is quicker to divert characters into exponents by using the Alt key. This is shown in the table below.


Holding down the Alt key while you are typing places characters into exponent. Now it makes much more sense to use the press-and-hold method to place uppercase symbols into exponents because this way you avoid the need to hold down three keys simultaneously (shift+alt+some_key).

The Alt key was chosen because on many keyboard you can hold it with your thumb finger. The problem is that the Alt key is used for menu access in Windows. Therefore using Alt+F, Alt+E and Alt+V combinations will not work unless you configure your Math-o-mir to ignore these menu access shortcuts. I can only hope that in future Microsoft will not reserve the Alt key for some additional tasks.

To enter an index, you generally use the underline ‘_’ key. Sure, there is also a quicker way to enter simple indices: hold down the Spacebar key while you are typing. This is completely analog to the exponent typing, as it can be seen in the table below.


The Spacebar is also chosen because it can be held down with the thumb finger so that you can type with your other 9 fingers. The only possible problem with the spacebar is that it is not common to use Spacebar+some_key combinations. I am even afraid that there might be some keyboards around that might not allow such combinations.

Keyboard usage innovations mentioned above are not nearly enough to type mathematics. In Math-o-mir there are many more. Few of them are not obvious, but I think are useful enough so that every serious user should learn them.


  • I already said that the ‘hat’ and the underline characters are used to generate exponents and indices, respectively. This is not an innovation. However, on most keyboards the Shift (or even the AltGr) must be used to generate these characters. Especially the hat key is problematic on some keyboards where it acts as a dead key – that is why in Math-o-mir you can also use the double-quotation mark key instead of the hat key.
  • To generate fraction lines in Math-o-mir you need to stroke the slash key twice. This is neither very quick nor it is an intuitive way to type simple fractions (like ½). To quickly type simple fractions I am therefore recommending the hash key ‘#’ (or the grave accent key). The difference is that in the first case you start the fraction by generating the fraction line (by double-stroking the slash key), while in the second case you start by typing the numerator and then you put the fraction line under it (by stroking the hash key). I urge users to learn both these methods. Remember that even when you are using pencil-and-paper, you will typically start a complex fraction by drawing a fraction line first, while you will start with the numerator if you are writing down a simple fraction.
  • Multi-letter variables are, in my opinion, the future of math notation on computers. In Math-o-mir there are two ways to enter the multi-letter variables. I recommend that you choose one of them and stick to it. The first method is displayed in the table above and involves the apostrophe key: start the multi-letter variable with the apostrophe key and end it with the spacebar key or any math operator key. But if you type multi letter variables very often then maybe the second method would be a better choice for you: select the ‘Options->Keyboard->General Variable Mode’ option and type the multi-letter variables without the apostrophe key.
  • Finally, there is the dot (period) key conversion method. The dot key will convert a variable (or variables) that you just typed into a function. I am very proud on this innovation, but several questions remain. First, how many users are interested in making distinction between functions and variables? In math, when you see an expression like ‘y(x+1)’ you cannot be sure if this is function ‘y’ that has ‘x+1’ into its argument, or if this is just en expression equal to ‘yx+y’. That is why in Math-o-mir there is a clear distinction between functions and variables. However, for users that are only interested in equation look, the distinction between functions and variables is just an annoyance. Second, would then it be better to use the handy dot conversion method to generate Greek symbols or measurement units instead? Functions can be generated using the backslash key anyway.

Here is an example how to type an equation (note that there are many ways to type the same equation – for example instead using the ‘Enter =’ one can stroke the ‘=’ key twice)


There is one more keystroking that needs to be discussed – the Alt+Spacebar keystroke. This keystroke toggles between math-typing and plain-text-typing mode. Some users use it very often… I would prefer to have some handier, single-key method to toggle between typing modes. The only obvious candidate key for such function is the CapsLock key. The CapsLock key is unfortunately still used by some people, especially in some countries. Sometimes it is used to differentiate between, say, Cyrillic and Latin character set… In fact, even the Alt+Spacebar combination is used under Linux for system menu access (I recommend Linux users to use Spacebar+Alt to toggle typing modes in Math-o-mir). I also implemented double-stroke-comma method to toggle the typing mode because the comma key is always easy to type on all keyboard layouts. But the double-stroke-comma method also has its drawbacks and I wonder if the double-stroke-comma could be put into a better use.

What about the Ctrl key? The Ctrl key is dedicated to user-defined accelerator shortcuts. The only exceptions are Ctrl+X (cut), Ctrl+C (copy), Ctrl+V (paste), Ctrl+Z (undo), Ctrl+S (save). Oddly, the Ctrl+X can also be used to generate the multiplying cross sign.

At the end, I want to discuss variable formatting and decorations. This includes font type, bold and italic settings for a variable as well as decorations above (arrow, dash, dot, double dot, hat…). There are two ways to control variable formatting in Math-o-mir:

  • You can choose font and decorations in advance (in Math-o-mir you can even select font and decorations for every letter key separately). You can prepare several different font -and-decoration configurations and quickly choose between them by using user-defined Ctrl accelerators… However choosing font and decoration in advance is not very handy if you need to type just one letter formatted in different style. Therefore it is also important that…
  • You can modify font and decorations after you already typed the variable… For example Alt+comma and Alt+period combinations can be used to add decorations (vector arrow, dash, dot, double dot) over variables that you just entered. More generally you can select the variable you just entered by using Shift+left_arrow key and then modify it by typing ‘b’ (bold), ‘i’ (italic), ‘u’ (underline), ‘s’ (strikeout), ‘r’ (red), ‘g’ (green). However, using Shift+left_arrow is not at all that handy and I desperately need one single easy-to-type key that will select the last entered variable. Also I could use some key combinations to quickly make a variable bold or italic.

Math-o-mir 1.84 beta5

Download the Math-o-mir v1.84 beta5 from:

The new beta has several new features:

  • The double-stroke timeout time for typing Greek symbols is extended considerably. It is now set to about 1s, while it was set to 250ms in earlier versions. I hope that this will make it easier to stroke Greek symbols… (To type the same Latin-script variable twice, one after the other, you should hit the spacebar in between to speed up your typing.)
  • If an exponent-box is empty and you hit the enter key to exit from it, the exponent-box will be deleted.
  • The handy popup-drawing-toolbox that gets displayed when you hold down the right mouse button for about 1sec now behaves less intrusive. The toolbox is not fully shown until you release the right-mouse button. This way the toolbox does not interfere that severely with the right-click-and-drag screen scrolling feature.
  • Typing the ‘==’ (double equal sign) sequence now has the revised behavior! Instead of activating the symbolic calculator, the ‘==’ sequence now behaves similarly as the ‘++’ and ‘—‘ sequences (wraps the line, or exits from a child box).
  • To activate the symbolic calculator, instead of the ‘==’ sequence use the ‘??’ sequence (double question mark)… I am aware that using ‘??’ is less convenient than using ‘==’.
  • You can now modify the length of the tab spacers using your mouse. Point at the tab spacer head and then click-and-drag as shown in the picture below.


In this beta I tried to make it easier to type multi-line equations. You can now use the ‘==’ sequence in three possible ways (the picture below shows these three methods side-by-side):

  • Type the ‘==’ sequence at the end of a line. The line will be wrapped, and the generated equal sign will be aligned with the first occurrence of an equal sign in the previous line.
  • Type the ‘==’ sequence at the beginning of a line. First wrap a line using Alt+Enter and then use the ‘==’ sequence to align the equal sign with the first occurrence of an equal sign in the previous line. The difference compared to the first point is that in this case there will be no equal sign at the end of the previous line.
  • Type the ‘==’ sequence at the beginning of a new object. This is similar as in the previous point, but instead of Alt+Enter you would simply use the Enter key at the end of a line. The result is that each line is a separate object.


Beta5 bonus: I finally managed to remove those annoying beep sounds produced by Windows when the ALT key is used to type exponents.

A bug corrected in Math-o-mir 1.84 beta4

You can download the new beta4 version of the Math-o-mir, fast-math-typing notepad software, from:

The last beta3 had an evident bug that prevented entering Greek symbols into exponents when the faster Alt+key method was used. The bug was caused by interference with the newly-added code that generates uppercase letters if a letter key is pressed and held for some time (cca 0.5 seconds). This is now corrected in the new beta4. In addition, there are several new features that are also implemented in the new beta4 (and of course, new bugs might be introduced as well):

  • The single-finger-shift-key feature is expanded to work with  symbol keys and number keys as well (until now, it was only used on letter keys). As I sad already in my last post, when you press and hold a key for about 0.5 seconds, it will generate a character that is normally produced by using shift+that_key combination. This feature is intended as a way to avoid three-key combinations when typing some characters into exponents (Alt+Shift+Key) or into indexes (Spacebar+Shift+Key)… This feature uses some programing tricks and I am not sure it will work perfectly on all computers – let me know if you experience problems. I already know that it will not work good when user switches keyboard layout during his/her work – something that is routinely done in non-Latin script languages.
  • I added several new options into the colorbox: “Node-Edit mode”, “Crosshair cursor” and “Select last element”. Consequently, I removed the “Node-Edit mode” option from the toolbar and from the context menu . The “Select last element” option does the same as the Alt+Spacebar key-press combination:  it selects document elements beginning from the most freshly-created one. The reason I added the “Select last element” option as a button into the colorbox is educational – I wanted that users learn that this useful option exists (users never read user manuals).
  • Crosshair cursor is implemented. I am not sure this option is that useful as  hoped it will be.  I will wait and see. If the crosshair cursor option does not prove its usefulness, I will remove it.
  • The ‘\e’, ‘\i’ and ‘\j’ commands are not going to generate italicized ‘e‘, ‘i‘ and ‘j‘ letters any more. Instead, these command are going to generate ‘e( )’, ‘i( )’ and ‘j( )’ functions. To generate italicized letters (often used to represent the natural number and imaginary units) you can use ‘e.’, ‘i.’ and ‘j.’ keystrokes  (that is, the mighty-dot conversion method)… By the way, any single-letter function generated by the ‘\’ command casting method is now going to generated functions that already have visible parentheses around its argument.

I was thinking about three additional problems: a) how to simplify formatting modes – the ‘O’, ‘U’ and ‘M’ toolbox options; b) how to simplify entering units of measurement; and c) how to simplify entering degrees of arc and degrees of Celsius.  At the moment I did not reach any conclusion… Also, how to quickly modify the formatting for the last entered variable (bold/italic/underline)… Also, how to type chemistry formulas…

Math-o-mir 1.84 beta3 (and file-hosting changes)

You can download the new beta (1.84 beta3) from

Several bugs are corrected and two new features added:

  • You can generate uppercase letters by holding down a key for about 0.5 seconds. This actually only works if your keyboard has auto-repeating option enabled (and maybe I should change the implementation not to depend on this setting). The reason why I implemented this is because it is difficult to produce 3-key combinations when typing uppercase letters into exponents or indexes - for example, to type uppercase letter ‘R’ into a variable index, you had to use Spacebar+Shift+R combination; now you can just use  Spacebar+R and hold it for about 0.5 seconds… I am actually very happy with this feature, but let me know if you have any objection.
  • When typing formulas directly into the function plotter, it is now possible to aim-and-click with mouse to change the keyboard cursor position.

I decided not to use the free file sharing service for software distribution, at least for the moment. The reason is because they allow advertisements that confuse users (like a large ‘download here’ advertising buttons).  At the same time, it happened that the excellent file sharing service is discontinued. The UbuntuOne allowed free file hot-linking, and this is a great loss for the free part of the internet… Anyway, the only option left to me to share files is the Dropbox. I hope that it will work fine – let me know if you find any problem with their file-sharing service… By the way, the free internet seems to be shrinking and I don’t think that the Dropbox will allow free file hot-linking for very long.

Last several days I used Math-o-mir to prepare a document that examines stepper motor vibrations (by the way, you can see it here).  This helped me to detect some bugs that I corrected in this beta. I want to remind you that I would love to publish any document that you prepared with Math-o-mir’s help if you would like to show it to the public.

Color-box redesign – Math-o-mir 1.84 beta2

To keep you updated, I placed the new beta version of the Math-o-mir software at:

I decided to completely redesign the color-box in this version. The motivation was to make the hand-drawing jet more handy… The color-box is much smaller now and, therefore, it can be almost permanently present on the screen. This, hopefully, will result in its handier and more natural usage. To make it smaller I had to separate line-thickness options from line-color options. Although clickable regions inside the color-box may look small and hard to aim using the mouse, these regions are actually a bit larger than in the previous color-box design.

Unfortunately, users that do not use the hand-drawing capabilities might find the permanent appearance of the new color-box somewhat annoying.  Let me know how do you like it… This beta version also implements different handling of selections while the hand-drawing mode is active – as soon as you move your pencil-shaped mouse pointer over a selected item, the mouse pointer will revert into the standard arrow shape and you will be able to handle the selection the usual way. In addition, this version uses somewhat brighter red, green and blue colors.

Well, I must admit that it is hard to work on a PC software lately because all the light nowadays shines on tablets and smartphones. Nevertheless, the physical all-letter keyboard is still the fastest way to enter an amount of data (text) into a computer. I can therefore believe that the keyboard is here to stay for some time. And so, as long is it is here, the software that uses the keyboard to rapidly type mathematics into computers will exist… Can you beat me in math-typing speed? Can any touch-screener out there beat me!?

Early Math-o-mir v1.84 beta release

The very early beta v1.84 can be downloaded from:

Yesterday my Math-o-mir crashed when I changed color depth settings for my laptop’s video board. Luckily enough, I was in the debugger at the time so I was able to locate the offending code and quickly implement the fix. The software crashed if the typing mode was active, the screen was refreshed, and some memory readjustment happened  at early same time. As I am unable to determine how often this could happen to users (this particular bug never happened to me until yesterday), I decided to publish this early beta with the bug fixed.

There are some other minor bugs fixed in this beta. In addition, I was also working a bit to improve hand-drawing capabilities of the software as I noticed that users rarely use the hand-drawing tools.

  • curly brackets and section lines can be painted without entering the hand-drawing mode. This feature already existed in the previous version but only when the typing mode was active. Now it is extended and reimplemented so that it can be used generally
  • The “Edit drawing nodes” icon in the toolbar is reimplemented – the edit-nodes mode can now remain active all the time and I hope that this could be useful to users that use hand-drawing extensively
  • I added a colored ‘hot spot’ just in front of the pencil-shaped pointer in the drawing mode. I hope that this can help users to quickly identify what color and what line thickness is currently selected, just before they start drawing
  • If you hold the mouse steady and hold down the right mouse button for about 1 second, the popup menu with several hand-drawing tools will appear (the same as if you used the F4 key)
  • the section-line drawing tool will now draw hair-thin lines if the shift key is held down. This can be useful to draw help lines

I also removed support for wide cursors… So, if you have any idea how to make mouse-drawing at least bearable, let me know.


Get every new post delivered to your Inbox.