Another build, v1.92 build 3, is now downloadable from the homepage. This is another debug build with only slight improvements. Better to say, I will need to demonstrate that the implemented changes are indeed improvements.
First, there was a bug that could crash the software if the backspace key was used in the quick-type mode to delete a line wrapper. Several other bugs and annoyances were also corrected… There are some differences in keyboard handling, specifically in Greek letter typing. I will explain in more details, if nothing else then only to have it written down somewhere.
In Math-o-mir, you can use double strokes to generate Greek letters. But ever since I switched to the double-stroke method, I am experiencing difficulties typing plain text. Here is a list of issues (some of them also take part in the math-typing mode):
- Some words start with a double letter (eel, aardvark…), and even many more words contains double letters within them. As a result, any double-letter typed within a word will not be converted to Greek letter. For example, when you start typing ‘aardvark’ the ‘aa’ will be converted to the alpha symbol, but as you continue to type ‘rdvark’ the alpha symbol will revert back to ‘aa’. Fine.
- Some languages might have a single word containing only a double-letter. I know no such word in any language, but who knows. This would be a difficult situation because Math-o-mir would not be able to tell if user wanted to type a Greek symbol or a two-letter word… That is why double strokes are timed and you should double-stroke relatively quickly to generate Greek symbols. If a two-letter word is needed instead, you can type it slowly. (Both things are annoying: the need to type Greek symbols quickly and the need to type a potential two letter word slowly.)
- I lied – I know a two-letter word that has two identical letters. It is ‘mm’ (millimetre). In fact, a mathematician can came up with any two-letter variable name including aa, bb, cc … or whatever. That is why I cannot just ignore such two-letter words. So I implemented a not-very-perfect solution to triple-stroke letter and revert it back to double stroke (still faster than to type it slowly). For example, if you want to type ‘bb’ you can quickly type ‘bbb’ to revert the beta symbol into bb… Another example, you need to type a variable called Vcc (where ‘cc’ is in the index): V <spacebar held> c c c <spacebar released>. Huh. Huuuhuuh…. Not a nice solution, but it works. Do you think that this solution is good enough to be used in all cases so that I can stop timing the double strokes and just convert them to Greek letters invariably of the typing speed? Damn millimetre! Who wants to type mmm instead of mm?
- But how do you type micrometre? mmm? (first two ‘mm’ are to generate the Greek mu letter). No, it wont work… Here is my solution that I implemented in this version. The Greek mu letter can now be generated by ‘uu’ double-stroke. Then you can type micrometre as ‘uum’. As you can see I sacrificed the Greek upsilon symbol. The only way to make the upsilon now is to use the \upsilon (or \Upsilon) command. To make things easier, I also implemented \ups (\Ups) to do the same. Fortunately the lowercase upsilon is rarely used.
- Still I retained the mm keystroke and it still generates the mu letter. The big question is should I discontinue the ‘mm’ keystroke for mu letter generation? By doing so, you would be free to type the millimetre in a normal way. The problem is that inexperienced users might get confused searching for the mu. (btw, note that ‘uu’ is so much easier to stroke than ‘mm’). In any case I will be discouraging ‘mm’ in favor of ‘uu’.
- There are some words that contain mixed letters, Greek and Latin. You don’t believe? A common example is uP (microprocessor, an abbreviation). So in this version I added several exceptions to the general algorithm that Greek letters are reverted back to double letters as you continue to type a word. Exceptions are: if the second letter is the uppercase while the leading Greek symbol is lowercase (as in the uP example above); if the second letter is ‘m’ or ‘g’ or ‘s’ while the first letter is the Greek mu letter (as in micrometer, microgram, microsecond); and if the first Greek letter is the uppercase Greek delta letter invariably of the second letter. I just hope there are not many words worldwide that start with ‘uum’, ‘uug’ and ‘uus’.
- Why the uppercase Greek delta letter has special handling? I wanted an easy way to type variables like deltaX etc. Now you can just type: DDx… This is far from perfect, because what if you want to enter a word that actually starts with DD? For example, DDT, DDE, DDCMP and any of many other acronyms. In this case you need to type DDDT, DDDE, DDDCMP (or type it slowly) – very, very annoying. In addition, stroking ‘DD’ to generate Greek uppercase delta is not that handy… The right solution, that I don’t have yet, is to have a special keystroke that would generate Greek uppercase delta (equal in appearance as the one generated by DD, but different in behavior because it would stick to the variable that follows). But I cannot find a suitable keystroke (all keystrokes are taken already).
- Finally, how do you type kiloohm? kWW? It won’t work because WW is only converted to Greek omega if it is typed at the beginning of the word. I don’t have the solution for this. [To type a kiloohm in plain text you can either switch to math typing mode and type .kohm, or you can type ‘k WW’ (with space bar in between to generate ‘k’ and ‘omega’ separately) and then use Shift+Backspace to splice the two letters together.]
- Unrelated to Greek letters, there is another issue with plain-text typing. The usage of the underline character. In Math-o-mir the underline is used to generate variable index, so there are difficulties when you want to type something_like_that. To type the underline, you need to hit the underline key twice. Annoying as hell. I was thinking to disable the underline key as the index generator in plain-text typing mode. Undecided yet.
I wrote a long article to clear my mind. I am still not sure if the upsilon key is a good sacrifice. By the way, this version also implements the \varpi command so that you can generate the alternate Greek pi symbol.