An alternative to MathJax in chat

While on the main site equations should always be written using MathJax, this is not natively supported in the chat rooms. There are various hacks for making MathJax work in the chat, but these can be intimidating for the beginner and if you are using a phone it is even harder to make MathJax work.

I frequently have to type equations in the chat rooms, and while MathJax remains the best solution I have found an alternative that works well enough to be useful when MathJax isn’t an option. I’m posting this to record the details for future chat room users.

If anyone else has found other ways to enter equations easily in the chat do please record them in answers to this post.

The Unicode character set contains most of the characters that are needed to construct equations. For example you can write:

ds² = -(1 - 2GM/c²r)c²dt² + (1 - 2GM/c²r)⁻¹ dr² + r²dθ² + r² sin²(θ)dφ²

just using Unicode characters. The problem is that from a keyboard the only way to enter Unicode characters requires you to remember their character code and few us can manage this. The solution I have found is a Chrome add-on called Magical - Text Expansion, which despite the slightly silly name works pretty well.

Using the addon you can define character sequences that are converted to the required Unicode symbol, for example I have defined int_ to produce ∫, approx_ to produce ≈ and so on. The addon makes it straightforward to write equations like the one above since it’s a lot easier to remember the character sequences than the Unicode character codes. Of course you still have to define all the sequences, but I’ve appended the definitions I use below and you can import these into the Magical - Text Expansion addon with a few mouse clicks.

I should emphasise that MathJax remains the preferred option where possible, and you should only use MathJax on the main site. However for the chat rooms the Magical - Text Expansion addon provides a fallback solution that is worth mentioning.

My definitions:

{
"version": 3,
"shortcuts": {
"_0 ": "₀",
"_1 ": "₁",
"_2 ": "₂",
"_3 ": "₃",
"_4 ": "₄",
"_5 ": "₅",
"_6 ": "₆",
"_7 ": "₇",
"_8 ": "₈",
"_9 ": "₉",
"_t": "ₜ",
"-->": "⟶",
"^-": "⁻",
"^+": "⁺",
"^0 ": "°",
"^1 ": "¹",
"^2 ": "²",
"^3 ": "³",
"^4 ": "⁴",
"^5 ": "⁵",
"^6 ": "⁶",
"^7 ": "⁷",
"^8 ": "⁸",
"^9 ": "⁹",
"+-": "±",
"<--": "⟵",
"1/2 ": "¹⁄₂",
"1/3 ": "¹⁄₃",
"1/4 ": "¹⁄₄",
"2/3 ": "²⁄₃",
"3/2 ": "³⁄₂",
"3/4 ": "³⁄₄",
"a_ ": "α",
"approx_": "≈",
"b_ ": "β",
"D_ ": "Δ",
"d_ ": "δ",
"del_": "∇",
"e_ ": "ε",
"f_ ": "φ",
"F_ ": "Φ",
"G_ ": "Γ",
"g_ ": "γ",
"h_ ": "η",
"inf_": "∞",
"int_": "∫",
"L_ ": "Λ",
"l_ ": "λ",
"m_ ": "μ",
"n_ ": "ν",
"nabla_": "∇",
"ne_": "≠",
"O_ ": "Ω",
"p_ ": "π",
"propto_": "∝",
"q_ ": "θ",
"r_ ": "ρ",
"s_ ": "σ",
"S_ ": "Σ",
"sqrt_": "√",
"t_ ": "τ",
"times_": "×",
"w_ ": "ω",
"Y_ ": "Ψ",
"y_ ": "ψ",
"z_ ": "ζ"
}
}