Automatic arguments


The arguments of math display objects are either optional or essential. Examples of essential arguments are the numerator and denominator of a fraction. For a legitimate fraction, both are nonempty. Hence if either or both are empty, they should be represented by a dotted square box, which indicates that an essential argument is missing.


Optional arguments are like limits of a summation or integral, the degree of a square root, or some elements of a matrix. It’s entirely legitimate to omit these arguments, but later on you may want to enter text into them. Word 2007 treats optional arguments by explicit user choice: if the user doesn’t want the argument to appear (and take up space), it isn’t displayed at all and the left/right arrow keys cannot navigate into the argument. The user can use a right-mouse context menu to unhide a hidden optional argument or hide an unhidden one. When empty, an unhidden optional argument displays a dotted box.


RichEdit has the simpler and more powerful approach of “automatic arguments.” We figured this style out too late in the Office 2007 cycle to get it into Word 2007. When an optional argument is automatic, it doesn’t display the dotted box, unless the user moves the insertion point into the argument by using left or right arrow keys. With the insertion point inside the empty argument, the dotted box appears and the user can enter text. Similarly the user can delete the contents of an automatic argument and no dotted box appears unless the insertion point is inside the argument.


For example, the linear-format entry \sqrt(a+b) creates a square root of the quantity a+b with no degree displayed. This implies a degree of 2, i.e., a square root. With automatic arguments if the insertion point immediately precedes the variable a, typing the left arrow key moves the insertion point into the radical’s empty degree argument, which then displays the dotted box. The user can then type something, for example, n for an nth root.


This also works with n-ary operator limits, empty matrix elements, etc. It’s a simple, globalized method for handling optional arguments in a general way without menus.


Comments (4)

  1. Tom says:

    This is OT, but commenting here seemed more appropriate than emailing you.

    On the whole I’m very impressed with Word 2007’s equation handling, however one thing is really annoying me. Suppose you have a long expression which is a product of two sums, e.g. something like:

    A=[a+b+c+d+e+f+g+h][i+j+k+l+m+n+o+p+q]

    Word will never insert a line break between the two products, nor does it give you the option of doing this in the right click menu. Instead it will break at "g+h" say, which looks awful and renders the equation virtually unreadable.

    Worse still if instead you have:

    A=[a+b+c+d+e+f+g(B+C)][i+j+k+l+m+n+o+p+q]

    then I have seen it break at "B+C". It seems to me that newlines should be inserted as close to the top level as possible.

    Any workarounds would be much appreciated. (And obviously a fix would be better still…)

    Tom

  2. hAl says:

    Could you write some comparative article about the differences between OMML, MathML and LaTex and why OMML was created ?

  3. cfp says:

    Another gripe:

    Indenting should respect scope. Say you have an equation that Word splits over three lines as follows

    0=[a+b+c+d+e+f+g+h]

    +sum[i+j+k+l+m+

    n+o+p]

    Then the final line should be further indented than the first one, otherwise it ends up looking like the "n+o+p" is not in the scope of the sum.

  4. No this isn’t about some kind of science fiction, this is about five Unicode characters that are useful