Hand-writing MathML

September 23rd, 2023
math, tech
When I write posts I use raw HTML. Yes, the modern thing to do is probably Markdown, but HTML was designed for hand-coding and still works well for that if you don't want anything especially fancy. But what if you want math?

Previously when I've wanted to do math I've written it out as fixed-width ASCII:

e^(-7t)

In my editor this looks like:

<pre>
e^(-7t)
</pre>

This is reasonably readable, works anywhere, and I like the aesthetic. I probably should have stuck with it, but after helping publish a report that included some traditionally-formatted equations and learning that MathML has been supported cross-browser since the beginning of the year (thanks Igalia!), I decided to try it out. I wrote the equations in two recent posts in it, and am mixed on the experience.

It definitely does look nicer:

e - 7 t

On the other hand, here's how it looks in my editor:

<math display=block>
<msup>
  <mi>e</mi>
  <mrow>
    <mo>-</mo>
    <mn>7</mn>
    <mi>t</mi>
  </mrow>
</msup>
</math>

There's a small learning curve on when to use the different tags, but mostly it's just very verbose. And I think, needlessly so? That "-" is an operator, "7" is a number, and "t" is an identifier could all be the default. Then I could just write:

<math display=block>
<msup>
  e
  <mrow>
    -7t
  </mrow>
</msup>
</math>

And we could remove many uses of <mrow> too: a series of characters without whitespace separating them could be already treated as a group:

<math display=block>
<msup>
  e
  -7t
</msup>
</math>

Of course if you wanted to use a character for a non-traditional purpose you could still mark it up as one, but a good set of defaults would make MathML much more pleasant. I'd hate to have to read and write blog posts as:

  <word><lt>h</lt><lt>e</lt><lt>l</lt><lt>l</lt><lt>o</lt></word>
  <word><lt>w</lt><lt>o</lt><lt>r</lt><lt>l</lt><lt>d</lt></word>
  <pnct>.</pnct>

I know I'm about 25 years too late on this, and I'm happy that a pure-HTML solution is now cross-browser, but it's still sad we ended up so close to a comfortable hand-editable solution.

(Just use MathJax? Nope—I don't want a runtime dependency on JS. Though I could see including a LaTeX-to-MathML or a MathML-verbosifier step at build time.)

Referenced in:

Comment via: facebook, lesswrong, mastodon

Recent posts on blogs I like:

Starting With Chords

A lot of people play fiddle. Basically nobody starts by learning chords before learning melodies. But that's actually how I learned. I started with chords. One of the nice things about learning to play violin this way is that you can go busking even…

via Anna Wise's Blog Posts November 15, 2024

Stuffies

I have some stuffies and I just have a bunny. Bunny is a rabbit. Woof is a seal. My favorite stuffie is bun bun. I play with my stuffies. Sometimes I jump up with them and I roll them. I can just throw them in the air when I want to play bthululubp wi…

via Nora Wise's Blog Posts November 15, 2024

You Can Buy A Malaria Net

2024 election takes

via Thing of Things November 6, 2024

more     (via openring)