# Support matrix

How each Word feature is supported for reading (parseDocx) and for generating (generateDocx).

"Read" means `parseDocx` turns it into meaningful nodes; "Generate" means `generateDocx` can write it from nodes. "Written back verbatim" means the content survives into the output file but cannot be created or changed through LitAST.

| Feature | Read | Generate |
| --- | --- | --- |
| Paragraphs: alignment, spacing, indentation, tab stops | ✅ | ✅ |
| Text formatting: bold, italic, underline, strikethrough, super/subscript, size, color, font, highlight | ✅ | ✅ |
| Headings, quotes, code blocks, horizontal rules | ✅ | ✅ |
| Lists and multilevel numbering | ✅ | ✅ numbering definitions generated automatically |
| Tables: merged cells, column widths, shading, borders, header rows | ✅ | ✅ |
| Images: inline, floating, cropping, hyperlinks | ✅ | ✅ |
| Text boxes and shapes | ✅ | Written back verbatim |
| Sections, page setup, headers and footers (including first and even pages) | ✅ | ✅ |
| Fields: page numbers, dates, tables of contents, complex fields | ✅ | ✅ |
| Content controls: text, checkbox, date, drop-down, repeating sections, data binding, picture | ✅ | ✅ |
| Comments and replies | ✅ | ✅ |
| Tracked changes: insertions, deletions, formatting, moves | ✅ | ✅ |
| Footnotes and endnotes | ✅ | ✅ |
| Bookmarks, editing permission ranges, page and column breaks | ✅ | ✅ |
| Document properties and variables | ✅ | ✅ |
| Document protection | ✅ | ✅ |
| Equations (OMML) | Kept verbatim | Written back verbatim |
| Charts | Kept verbatim | Written back verbatim; cannot be created |
| Watermarks | ✅ | Written back verbatim |
| Style definitions | Used to compute formatting; original part kept | Written back verbatim; new styles cannot be created through LitAST |
| Phonetic guides (ruby) | ✅ Base text, annotation and properties | ✅ Create, edit and write back; see the [example](/en/guide/generating#phonetic-guides) |

## Known limitations

- Phonetic guides do not infer pronunciation. Both text layers and their formatting, six alignment values, sizes, raise, language and `dirty` are supported. Complete lifecycles for nested fields, comments and revisions have not been verified. Content outside the ruby content model is rejected on export instead of silently discarded.

- `generateDocx` rebuilds the whole package from LitAST; building blocks (glossary) and custom XML parts are not written back. See [Round trips and preservation](/en/guide/round-trip).
- Encrypted DOCX files and legacy `.doc` files cannot be read and throw `DocxPackageError`.
- No layout or rendering: lit-docx handles file structure only; it does not paginate or draw documents.
