On this page
Exporting to Word and PDF
Early access. Export ships in the beta and its shape is settled, but it is rough: on some documents it still produces wrong output, most often in Word with Track Changes over structural edits. Open the exported file in Word before you send it, and keep the markdown – it is the source; the export is a copy. If something comes out wrong, the plain Word export or the PDF is the fallback for that document.
Wymark hands a document to people who will never run Wymark as a .docx or a .pdf – and, for a reviewer, as a Word document whose changes and comments are Word’s own.
The export dialog
File > Export… opens one dialog for every format, and so does Export… on a document tab’s right-click menu. Pick a format, set its options, and Wymark asks where to save. The dialog remembers what you picked, so the next export opens where this one left off.
- Word (.docx) – the document as it is now, as a Word file that opens in Word 2013 and later without a compatibility banner. Headings become Word heading styles, lists, tables, code blocks, footnotes, images and maths come across, and every heading link becomes a real cross-reference. Two options, which can be on together:
- Include comments adds your comments as real Word comments, threads and replies included.
- Include pending changes as tracked changes exports your pending review as Word revisions: what the document is now against the baseline it is being reviewed against, so the recipient sees insertions, deletions, moves and formatting changes in Word’s Review pane and can accept or reject them there.
- PDF – the same document typeset to PDF, with maths set properly and heading links as clickable annotations. A PDF carries neither comments nor tracked changes.
- Wymark History (.mdh) – the document with its versions, for someone who uses Wymark; see below. It also has its own item in the File menu.
An option is greyed when the document has nothing for it: no comments, or no pending changes. Pending changes count whether or not they are shown on screen.
A toast after each export offers to open the file. An untitled draft has no file to export; save it first.
What travels, and what does not
- Comments arrive as Word comments with the names they carry in the file. If a reply in a thread was written by a tool, it keeps the name the tool gave itself.
- Track changes carry one author: you, taken from the full name on your Mac account. A diff has no per-change author – it is the difference between two texts – so Word cannot be told who wrote which part. If half the changes came from a colleague or an assistant, they still arrive as yours.
- Images referenced relative to the document are embedded. Web images stay links.
- Alerts (
> [!NOTE]and friends) arrive as an ordinary quotation whose first line is the literal[!NOTE]: content intact, callout styling not carried. - Display maths (
$$…$$) becomes an editable Word equation, and typeset maths in PDF. Inline maths ($…$) exports as an equation only when Settings > Appearance > Inline math is on; off, which is the default, it exports as the literal text you see in the editor. Under track changes, a deleted formula appears as its source rather than as a struck-through equation, and an inserted display formula appears inline; both are limits of Word’s format, and neither loses content.
What Word shows as a native revision
The engine already knows more about a change than “these bytes differ”, and the export uses it where Word has a matching mark:
| You did | Word shows |
|---|---|
| Typed, deleted or replaced words | insertion and deletion marks, word by word |
| Moved one paragraph | a move (from and to), not a delete and an insert |
| Changed a heading’s level | a paragraph-style change |
| Made a run bold, italic, code or struck | a formatting change on the run, the text once |
| Joined or split paragraphs | an inserted or deleted paragraph mark |
| Switched bullets to numbers, or changed a list’s start | a numbering change |
| Added, removed or edited table rows and cells | row revisions, and tracked text inside the cell |
| Ticked a checkbox | the box flips, and any text edit is an ordinary revision |
Everything else falls back to delete the old text, insert the new – correct on accept and reject, only noisier than Word’s own answer. That is what you get for a paragraph that changed kind (a paragraph turned into a list item or a quote), a link that was added, removed or re-pointed, a move of several blocks at once, and any table whose columns changed, which is exported as the whole old table deleted and the whole new one inserted.
Exporting with tracked changes also saves a version first (tagged Exported in the Versions panel), so your own history records exactly what you shared.
Sending a document with its history instead
If the recipient uses Wymark, a history bundle sends the document together with its versions, and opens on their side as a live review rather than a picture of one. It is the right answer between two Wymark users and the wrong one for anyone else.
Coming from Word or Google Docs
This is the hand-off back into your world. Track changes and comments are Word’s real ones – Accept, Reject and Reply work in the Review pane exactly as if a colleague had edited with Track Changes on – with the one caveat above about the author name on every mark being yours.
Using git
Export is a projection of the same diff the review shows, computed from the baseline you have set – so vs … a commit, then export with track changes, and the Word file carries that commit’s diff. Word’s revision model is structural where the engine’s is flat text, which is why some flat-text edits arrive as delete+insert: the mapping is done only where it is provably right, never by guessing which paragraph “corresponds to” which.
How export works under the hood
Conversion is done by a bundled copy of pandoc, with typst as the PDF engine – both ship inside the app, which is most of why the download is the size it is, and why nothing has to be installed and no network is needed. A reference Word document sets the styles, so the result is a modern .docx rather than one Word opens in compatibility mode.
Comments and track changes are not something pandoc can write on its own. Wymark serialises the review as markdown with paired markers around every changed region, and a filter turns those markers into Word’s own revision and comment XML. Because that XML is written by hand rather than by Word, every exported file is checked against a structural validator before it leaves – an earlier alpha once produced a file that put Word into a recovery loop, and the bar since then is that this must never happen again.
Why some changes fall back to delete+insert
Word’s revisions are structural: insert a paragraph, move a paragraph, change a paragraph’s style. Wymark’s diff is flat text: these bytes changed. A diff is a complete edit script, so nothing is missing – but reshaping a flat edit that straddles a paragraph boundary into Word’s tree-shaped marks is only possible for a bounded set of shapes, and the export promotes exactly those (the table above). Anything the engine cannot classify with certainty is written as the old text deleted and the new text inserted, which Word accepts and rejects correctly, because a wrong but confident classification would be the one failure a review tool cannot afford.
# Exporting to Word and PDF
> **Early access.** Export ships in the beta and its shape is settled, but it is rough: on some documents it still produces wrong output, most often in **Word with Track Changes** over structural edits. Open the exported file in Word before you send it, and keep the markdown -- it is the source; the export is a copy. <!--wymark: {"author":"Claude","time":"2026-09-15T00:00:00Z"}@@John: ADR 0154 section 6 asks this callout to say plainly what TENDS to break. I have only the July coverage audit and the "buggy" verdict to go on. Please name the two or three failures you actually see in dogfooding, or confirm the structural-edits framing.-->If something comes out wrong, the plain Word export or the PDF is the fallback for that document.<!--wymark-end-->
Wymark hands a document to people who will never run Wymark as a `.docx` or a `.pdf` -- and, for a reviewer, as a Word document whose changes and comments are Word's own.
## The export dialog
**File > Export…** opens one dialog for every format, and so does **Export…** on a document tab's right-click menu. Pick a format, set its options, and Wymark asks where to save. The dialog remembers what you picked, so the next export opens where this one left off.
- **Word (.docx)** -- the document as it is now, as a Word file that opens in Word 2013 and later without a compatibility banner. Headings become Word heading styles, lists, tables, code blocks, footnotes, images and maths come across, and every heading link becomes a real cross-reference. Two options, which can be on together:
- **Include comments** adds your [comments](/docs/concepts/comments) as real Word comments, threads and replies included.
- **Include pending changes as tracked changes** exports your pending review as Word revisions: what the document is now against the baseline it is being reviewed against, so the recipient sees insertions, deletions, moves and formatting changes in Word's Review pane and can accept or reject them there.
- **PDF** -- the same document typeset to PDF, with maths set properly and heading links as clickable annotations. A PDF carries neither comments nor tracked changes.
- **Wymark History (.mdh)** -- the document with its versions, for someone who uses Wymark; see [below](#sending-a-document-with-its-history-instead). It also has its own item in the File menu.
An option is greyed when the document has nothing for it: no comments, or no pending changes. Pending changes count whether or not they are shown on screen.
A toast after each export offers to open the file. An untitled draft has no file to export; save it first.
## What travels, and what does not
- **Comments** arrive as Word comments with the names they carry in the file. If a reply in a thread was written by a tool, it keeps the name the tool gave itself.
- **Track changes carry one author: you**, taken from the full name on your Mac account. A diff has no per-change author -- it is the difference between two texts -- so Word cannot be told who wrote which part. If half the changes came from a colleague or an assistant, they still arrive as yours.
- **Images** referenced relative to the document are embedded. Web images stay links.
- **Alerts** (`> [!NOTE]` and friends) arrive as an ordinary quotation whose first line is the literal `[!NOTE]`: content intact, callout styling not carried.
- **Display maths** (`$$…$$`) becomes an editable Word equation, and typeset maths in PDF. Inline maths (`$…$`) exports as an equation only when Settings > Appearance > Inline math is on; off, which is the default, it exports as the literal text you see in the editor. Under track changes, a *deleted* formula appears as its source rather than as a struck-through equation, and an *inserted* display formula appears inline; both are limits of Word's format, and neither loses content.
## What Word shows as a native revision
The engine already knows more about a change than "these bytes differ", and the export uses it where Word has a matching mark:
| You did | Word shows |
| --- | --- |
| Typed, deleted or replaced words | insertion and deletion marks, word by word |
| Moved one paragraph | a move (from and to), not a delete and an insert |
| Changed a heading's level | a paragraph-style change |
| Made a run bold, italic, code or struck | a formatting change on the run, the text once |
| Joined or split paragraphs | an inserted or deleted paragraph mark |
| Switched bullets to numbers, or changed a list's start | a numbering change |
| Added, removed or edited table rows and cells | row revisions, and tracked text inside the cell |
| Ticked a checkbox | the box flips, and any text edit is an ordinary revision |
Everything else falls back to **delete the old text, insert the new** -- correct on accept and reject, only noisier than Word's own answer. That is what you get for a paragraph that changed *kind* (a paragraph turned into a list item or a quote), a link that was added, removed or re-pointed, a move of several blocks at once, and any table whose columns changed, which is exported as the whole old table deleted and the whole new one inserted.
Exporting with tracked changes also saves a **version** first (tagged *Exported* in the Versions panel), so your own history records exactly what you shared.
## Sending a document with its history instead
If the recipient uses Wymark, a [history bundle](/docs/reference/history-bundles) sends the document together with its versions, and opens on their side as a live review rather than a picture of one. It is the right answer between two Wymark users and the wrong one for anyone else.
:::persona word
This is the hand-off back into your world. Track changes and comments are Word's real ones -- Accept, Reject and Reply work in the Review pane exactly as if a colleague had edited with Track Changes on -- with the one caveat above about the author name on every mark being yours.
:::
:::persona git
Export is a projection of the same diff the review shows, computed from the baseline you have set -- so `vs …` a commit, then export with track changes, and the Word file carries that commit's diff. Word's revision model is structural where the engine's is flat text, which is why some flat-text edits arrive as delete+insert: the mapping is done only where it is provably right, never by guessing which paragraph "corresponds to" which.
:::
<details>
<summary>How export works under the hood</summary>
Conversion is done by a bundled copy of pandoc, with typst as the PDF engine -- both ship inside the app, which is most of why the download is the size it is, and why nothing has to be installed and no network is needed. A reference Word document sets the styles, so the result is a modern `.docx` rather than one Word opens in compatibility mode.
Comments and track changes are not something pandoc can write on its own. Wymark serialises the review as markdown with paired markers around every changed region, and a filter turns those markers into Word's own revision and comment XML. Because that XML is written by hand rather than by Word, every exported file is checked against a structural validator before it leaves -- an earlier alpha once produced a file that put Word into a recovery loop, and the bar since then is that this must never happen again.
</details>
<details>
<summary>Why some changes fall back to delete+insert</summary>
Word's revisions are structural: insert a paragraph, move a paragraph, change a paragraph's style. Wymark's diff is flat text: these bytes changed. A diff is a complete edit script, so nothing is *missing* -- but reshaping a flat edit that straddles a paragraph boundary into Word's tree-shaped marks is only possible for a bounded set of shapes, and the export promotes exactly those (the table above). Anything the engine cannot classify with certainty is written as the old text deleted and the new text inserted, which Word accepts and rejects correctly, because a wrong but confident classification would be the one failure a review tool cannot afford.
</details>