AsciiMath is excellent at what it does: typography for mathematics. It
assumes a math data model — superscripts and subscripts are positional
adornments on the previous expression.
Chemistry is not math typography. Chemistry has its own first-class
concepts — atoms, bonds, reactions, electron configurations — that
AsciiMath collapses into a uniform soup of ^ and _ markers.
Chemistry writes ^14C, _6Li, Ca^2+. AsciiMath has no way to bind
a prefix marker to the next atom — it forces a phantom {} carrier
({}^14C), so the isotope is bound to an empty element. The atom
itself never sees the isotope.
2. Reactions
No native syntax for stoichiometric coefficients, reaction arrows
(->, <=>), conditions above or below the arrow, or spectator ions.
3. Electron configurations
No representation for orbital occupancy (1s^2 2s^2 2p^6), term
symbols (^3P_2), spin multiplicity, or quantum wells.
4. Bonds and structures
No syntax for single / double / triple / dative / wedge / hash bonds,
ring structures, or stereochemistry — all things LaTeX’s chemfig
provides.
5. Embedded mathematics
Equilibrium constants, rate laws, Arrhenius expressions — chemistry
publications embed math. AsciiMath has no escape hatch from itself.
Prefix markers bind to the following atom. The grammar enforces
this: ^14 followed by C is one parse unit. The model field
Atom#isotope carries the binding.
First-class Reaction model. Reactants, products, arrow type
(:forward, :reverse, :equilibrium, :resonance), and conditions
(Conditions(above:, below:)).
ElectronConfiguration model. Orbital/occupancy pairs plus
optional term symbol.
Bond model with kind enum (:single, :double, :triple,
:wedge, :hash, :dative, :wavy). Structural diagrams delegate
to mn/elk-rb for SVG layout.
EmbeddedMath wraps a Plurimath formula. Backtick-delimited
runs are parsed by Plurimath::Asciimath; the result sits in the
chemistry tree as a typed node.