bakoma tex word: a review

note

On 2019.2.9, "Denis" posted the following message on the BaKoMa message board: "I'm the nephew of Vasily [Malyshev (the author of BaKoMa)]. Unfortunately, I must inform you that Vassili is dead. I will try to continue this project, but I will need some time to figure it out." Another post signed by Denis on 2019.2.18 says that "BaKoMa isn't abandoned". However, no publicly posted support request was ever answered subsequently by Denis, or anyone else connected with the project, and as of September 2023 the website for the software is no longer available.

Daniel Aldrich has replicated the website at https://bakoma-tex.daniel-aldrich.ca/, and runs a Discord server for BaKoMa users.

introduction

The only way to produce good-looking documents containing mathematics is to use TeX. You create a text file, run it through TeX, and out pops a document in which all the math is beautifully formatted. The problem is that your TeX file is hard to interpret. For example, to produce

TeX output with integral

you need to type

\int_0^\infty\frac{\sin x}{1+x^2}\,dx

When most people look at this TeX fragment, the nicely-formatted integral isn't the first thing that comes to mind. That makes writing TeX time-consuming. You have to remember the codes for the symbols you need (like \infty for infinity) and the syntax of the various commands (e.g. \frac{<numerator>}{<denominator>}), and probably need to run your text file through TeX at least occasionally to check that the output looks the way you want it. Worse still, if you make an error—perhaps even a small one—TeX may refuse to process your file, generating an error-message that may or may not make sense, in which case you need to go back to your code to see what exactly is wrong.

syntax highlighting

For some time, text editors designed to alleviate these difficulties and cooperate with TeX and its cousin LaTeX have been available. They provide buttons to click for the various symbols, buttons to click to run a file through TeX, and links between the output and the TeX file that help you to locate errors. Some examples are TeXstudio (free), TeXnicCenter (free), and WinEdt (shareware).

But you still have to write the TeX code. These editors offer "syntax-highlighting", displaying syntactically distinct objects in different colors. That helps a bit in visualizing the output a piece of code will produce—but not much. For example, the piece of TeX code above is rendered by the TeXnicCenter as

\int_0^\infty\frac{1+x^2}{\sin x}\,dx

which I personally don't find much of an improvement over the original.

quasi wysiwyg

In the absence of a friendlier interface, LaTeX wouldn't be so widely-used, at least not by economists. Scientific Word looks much like a standard "word processor". As in the text editors with syntax highlighting, you click buttons or press special key combinations to get mathematical symbols, but instead of seeing the LaTeX code, you see an approximation of the LaTeX output. For example, here's how the integral above displays:

Scientific Word representation of integral

The problem? That's all you see. You can't, within Scientific Word, see or directly edit the LaTeX code you create as you type and click. That means that you're limited in the LaTeX you can create. In addition, you see only an approximation of the LaTeX output, making it difficult, for example, to see whether long expressions fit in displayed equations. The invisibility of the LaTeX code also makes it easy to ignore the fine points of LaTeX, and can generate documents that are almost as ugly as those produced by mathematically-naïve word processors. (Another editor in the same class is LyX (free), which uses its own file format, necessitating the import and export of LaTeX files. I have not used it.)

real wysiwyg

Enter BaKoMa TeX Word. In one window you have the LaTeX code, in another window the output. Not an approximation of the output, but the exact output. Type in the code window and the output window instantly updates. Or if you prefer, type in the output window! As the author says, BaKoMa TeX Word is a true WYSIWYG LaTeX editor: it is truly WYSIWYG—the output window displays precisely the LaTeX output—and it is truly a LaTeX editor—the input file is a LaTeX file, without any need for conversion. It is a stunning achievement, a huge step forward in LaTeX-editing technology.

If you have two monitors in "portrait" orientation beside each other, you can see a full page of your typeset file on one monitor and the LaTeX code on the other monitor—and edit your document on either monitor. Here's what my setup looks like:
BaKoMa screenshot
(Right-click on the image and choose to view the image to see an enlargement.) On the right-hand monitor the source is in the (larger) upper window, and LaTeX's log report is in the lower window.

The program has to run the current page through TeX after every keystroke you type, but with modern processors it can do so instantly; I have been unable to out-type it. Because you can edit the LaTeX code, you can include arbitrary TeX code and, if you wish, can pay attention to the fine points; because you see exactly the LaTeX output, you can easily make your document the way you want it without the need for repeatedly compiling your code and previewing it. For example, formatting long displayed equations so that they fit on the page is vastly simpler than it is in standard editors.

But there is much more to the program than that. TeX Word understands a wide variety of graphics formats and displays them appropriately. In fact, it does a better job than either standard LaTeX or pdftex: it displays both eps and pdf figures properly, without complaining about the absence of bounding boxes (it calculates them for you).

The program really comes into its own when you want to create a figure using PSTricks, the nonpareil graphics package. If you find the output of \int_0^\infty hard to visualize, you'll definitely have trouble with the output of

\psline(25,25)(25,0)
\psline(0,0)(50,0)
\psset{origin={25,0},unit=25mm}
\psplot{-1}{1}{x dup mul}

TeX Word makes it easy: you type the code and the output appears instantly. For me, TeX Word has cut the production time for figures by at least 75%.

The program also cooperates seamlessly with BibTeX: if it sees that BibTeX should be run, it runs it; you don't need to click a special button.

The program has many other nice features. For example, user macros can be created; words not in the dictionary are highlighted dynamically and right-clicking on them displays alternatives; and a large number of buttons simplify the entry of various bits of LaTeX code.

As you type in the code window, you inevitably create syntactically incorrect code. For example, after you type $x^, the math-opening $ and superscript-opening ^ are both waiting to be closed. When you try to compile such code, TeX stops and reports an error. It would be very undesirable if after typing such code, TeX Word displayed a blank screen, and indeed it does not. Instead it displays the output that TeX would produce if you told it to ignore all the errors. That makes it very handy for fixing documents with many TeX errors: you can easily see, by looking at the output, what is wrong, and correct it either directly in the output window or in the code window.

Does TeX Word have flaws? The version I started using, early in 2008, lacked a feature that I use a lot: search-and-replace. The current version has this feature in the source window. It's not quite as useful as the version in my favorite text editor, which allows for wildcards, but it's comparable to search-and-replace routines I've seen in other editors. Unlike earlier versions, the current version also allows the source and output windows to be synchronized, though a new user might have a hard time figuring out how to do so (you need to click on an arrow at the bottom of the output window to scroll that window to the page that the source window is displaying).

Small bugs are easy to find. For example, in the current version, the spell-checker does not handle the "fl" ligature correctly in my favorite font (which is not Computer Modern); the text highlighted using the mouse in the output window does not always correspond to the text selected in the code window; and in my favorite font the cursor curiously appears just before, rather than just after, a single quotation mark after it is typed (though in fact the insertion point is, correctly, just after the quotation mark). But because one can always see the LaTeX code, most of the problems don't significantly impair the functionality of the program. Further, the author has been very responsive to my requests for help, and appears to be very actively working on the program, so it seems that these minor annoyances are likely to disappear.

BaKoMa TeX Word comes bundled with Centaur, a full-featured syntax-highlighting editor in the WinEdt/TeXnicCenter mold. If the editing capabilities of Centaur could be fully integrated into TeX Word and improved (search and search-and-replace with wildcards is at the top of my list—how about using regular expressions?), the resulting program would clearly dominate all the alternatives of which I am aware.