Files
ElyOffice/tasks/reviews/R8.2-r3.md
T
ZacharyZhang-NYandClaude 2ca53ef585 R8.2: Word EQ fields open as formulas; inline objects follow their run
Gitea #9. Patch 0049 moves inline pictures and OLE objects with
their run's w:position. Patches 0050 and 0051 turn EQ fields into
Math objects; unreadable fields show their code. Round 3 findings
(lowercase \s\do tail, split subscripts, \ai/\di, italics through
OMML) fixed and covered by word.rs; no fourth review.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-18 21:39:17 -04:00

2.5 KiB

FAIL

  • patches/libreoffice/0051-writer-eq-fields-as-formulas.patch:149 — [P1] Fields beginning with lowercase \s\do still bypass the new parser and silently truncate the expression. EQ \s\do2(x)+y imports and saves as just x, losing +y; EQ \s\do2(\f(a,b)) becomes the literal incomplete text \f(a,b. Uppercase equivalents retain the complete expressions. Route complete EQ expressions through the parser instead of this partial legacy reader, and cover both cases through DOCX save/reopen. Evidence: .work/r82-r3/probe.log, lower_script_tail and lower_script_nested.

  • patches/libreoffice/0050-writer-eq-field-parser.patch:191 — [P1] Changing italics within one subscript flushes and attaches another subscript to the already subscripted base. Reproduced with EQ \f(a10,b), where both digits have w:vertAlign="subscript", but only 1 is italic: import creates (a₁)₀/b with two nested MathML msub elements, and saved DOCX contains nested m:sSub objects. Both digits should remain in one subscript. Accumulate a contiguous script across font-style changes before attaching it, preserving the styles inside that script; add a rendered/exported structure regression. Evidence: .work/r82-r3/probe.log, split_script versus merged_script.

  • patches/libreoffice/0050-writer-eq-field-parser.patch:312 — [P1] \ai and \di are treated as aliases for raising and lowering an argument. These are paragraph spacing options in Microsoft's EQ reference. EQ x\s\ai4(y) becomes x raised to y, while EQ x\s\di4(y) becomes x subscript y; the incorrect mathematical structures persist in DOCX. Handle spacing separately from script positioning, or preserve the field code visibly when unsupported, and test the actual MathML/OMML structure. Evidence: .work/r82-r3/probe.log, script_ai and script_di; .work/r82-r3/spec.log, page 194.

  • patches/libreoffice/0050-writer-eq-field-parser.patch:183 — [P2] The generated ital "text" representation loses italics when saved as DOCX. Reproduced using the unchanged tests/fixtures/office/word.docx: its fraction initially has two italic a characters, but exported OMML marks both as m:nor without italic formatting, and reopening shows both upright. The new tests only assert formula styling before DOCX saving. Preserve italic formatting through OMML serialization and assert the fixture's formula styles after save/reopen. Evidence: .work/r82-r3/fixture-roundtrip.log and .work/r82-r3/regressions.log.