Doksi correspondence and formal documents, properly set

Documents that are actually set.

Doksi typesets correspondence and formal documents — and refuses to render one until every field its kind requires is present and right.

An official letter Typeset just now — open the PDF

An official letter. Open the PDF — rendered just now, not a screenshot.

Why it refuses

A letter missing its subject line still prints. A termination notice with no effective date still prints. Both are worse than nothing, because they look finished.

So the render is a gate. Ask what a document needs and you are told; leave something out and you are told which field, where, and why it exists — all of them at once, not one per attempt.

Missing — you have not filled it in yet. A draft still previews, with the gap marked in the ink where it belongs.

Malformed — it is filled in wrongly. Nothing renders, not even a preview: showing it would teach you it was acceptable.

Five kinds

They differ in layout, not in wording. What a letter is for — a request, a complaint, a resignation — is a purpose, and a purpose brings its own required fields with it.