PubSuite Classic
PubSuite Classic is a professional XML-to-PDF editor. You write your document in a structured XML format, style each element through the sidebar panels, and export a pixel-perfect PDF — with a live preview that matches the output exactly.
Getting Started
When you open the editor you see three main areas:
Source
PDF output
- Sidebar — tabs for every document setting: Document, Styles, H/F, TOC, Footnotes, Assets, Mapping, Inline, Presets.
- XML Editor — Monaco-powered editor with syntax highlighting. Every change re-renders the preview in real time.
- Live Preview — a canvas rendering that matches the exported PDF exactly. Click any text block to edit it inline.
<paragraph>, <heading1>, <pullquote> — and you style each one in the Typography panel.
XML Editor
The editor uses Monaco (the engine behind VS Code) with full XML syntax highlighting, bracket matching, and auto-indentation.
Basic Document Structure
<?xml version="1.0"?>
<document>
<heading1>Chapter One</heading1>
<paragraph>Your text goes here.</paragraph>
<heading2>A Sub-heading</heading2>
<paragraph>More text.</paragraph>
</document>
<document> — any single root element works, and inner tag names are entirely up to you (see XML Reference). This means XML written for another tool or schema can usually be pasted in as-is.Inline Markup
| Tag | Result | Example |
|---|---|---|
<b> | Bold | <b>important</b> |
<i> | Italic | <i>emphasis</i> |
<u> | Underline | <u>link text</u> |
<fn> | Footnote | word<fn>This appears at the bottom.</fn> |
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+Z | Undo |
Ctrl+Shift+Z | Redo |
Ctrl+F | Find in editor |
Ctrl+H | Find & Replace |
Ctrl+/ | Toggle comment |
Alt+Shift+F | Format / pretty-print XML |
Live Preview
The preview renders your document exactly as it will appear in the exported PDF — same fonts, same layout engine, same measurements.
- Click to edit inline — click any text block to edit directly without switching to the XML editor.
- Zoom controls — use the
−/+buttons, orFitto fit the page width. - Page count — shown in the toolbar. Long documents paginate automatically.
- Real-time update — the preview refreshes as you type, after a short debounce delay.
Document Panel
The Doc tab controls the page itself.
Page Size & Margins
Set width and height in mm, pt, or inches. Common presets include A4, A5, Letter, Legal, and book trim sizes. Margins can be set independently on all four sides.
Base Typography
- Base font — default font for any tag without its own style. Built-in: Helvetica, Times-Roman, Courier.
- Base size — default font size in pt.
- Smart quotes — converts
"and'to typographic quotes. - Ligatures — enables fi, fl, ff ligature substitutions for uploaded OpenType fonts.
- Top reference — controls whether line leading is measured from cap height, x-height, or full em.
Document Metadata
Title, author, subject, keywords, date, and language now live in the A11y tab, alongside PDF/UA accessibility settings — see Accessibility & Metadata. This keeps document metadata in one place, since it's tied to XML detection and PDF export in ways page settings aren't.
Typography & Styles
The Styles tab defines how each XML tag looks. Every tag can have its own style.
Style Properties
| Property | Description |
|---|---|
| Font / Size / Unit | Font family, size, and unit (pt, mm, in, or px) |
| Height reference | Whether the size above means the full em, cap height, or x-height — lets two different fonts line up visually at the size you actually care about |
| Bold / Italic | Weight and style |
| Color | Hex color for the text |
| Letter spacing | Extra space added between characters, in pt (Advanced Settings) |
| Alignment | Left, center, right, or justify |
| Line spacing | Multiplier (1.0 = single, 2.0 = double) |
| Space before / after | Vertical space around the block, with its own unit |
| First-line indent | Indent for the first line only |
| Left / Right indent | Block indent from the margin |
| Hyphenation | Auto-hyphenate long words at line breaks |
| Keep with next | Prevents a page break between this block and the next |
| Uppercase | Forces all text to uppercase |
| Drop cap lines | Number of lines the first character spans |
| Columns | Number of text columns within this block |
| Running title | Text to show in the header/footer for sections using this style |
| Section format | Numbering format: 1, i, a, I, A |
| Border | Width and color of a rule around the block |
| Padding | Space inside the border |
| Background color | Fill color behind the block |
| Table cell options | Hidden by default — a checkbox reveals vertical alignment and its reference (cap height / x-height / em / leading) for tags used as table cells |
Bullets & List Counters
Bullet glyphs and numbered-list counters are both configured on the tag's style card and each get a full, independent set of controls: font, color, size, height reference, a vertical reference point (baseline / cap height / x-height / em box) that the bullet or counter is centered against, then a manual horizontal and vertical offset (each with its own unit) on top of that. Counters also have their own prefix and suffix text fields.
Style Mapping
The Map tab lets you create tag aliases — e.g. map p → paragraph.
The same tab also has a separate Tag → Metadata Field Mappings section, for pointing a specific XML tag straight at a document metadata field (Title, Author, Subject, Keywords, Date, or Language) instead of a style. This is different from a style mapping: a metadata-mapped tag is removed from the rendered body entirely and its text is used to fill in the metadata field. See Document Metadata & Auto-Detection for details and when you'd need this instead of the automatic detection.
Inline Styles
The Inline tab defines styles for inline elements within a parent tag.
Presets
Ready-made document configurations for common use cases. Includes citation standards (Chicago, APA, MLA, Harvard, IEEE) and document structures (Novel, Report, Newsletter, Screenplay, Dissertation). Built-in presets can't be edited or deleted — only your own saved presets get Edit and Delete buttons.
Apply Modes
- Apply — applies everything: page size, margins, base typography, and all style definitions.
- Page — applies only page size and margins.
- Styles — applies only typography settings.
Preset Configurator
Click + New Preset to open the full-screen configurator. Left side: intent cards for a quick starting point, a page size slider, then margin, text size, and text density sliders — each of those three paired with a number field for typing an exact value the slider itself might not reach (page size isn't, since it steps through named sizes like A4 or Letter rather than a plain number). Font is a direct dropdown; orientation and column count are picker buttons; header/footer can be toggled on with basic left/center/right text.
Every property this configures — font size, margins, column count — is a main setting for the preset as a whole. It's meant to get you to a reasonable starting point fast, not to replace the Typography panel for detailed, per-tag adjustments; anything more specific (a particular tag's bullet style, its exact indent, a border) is still edited normally after applying the preset.
Advanced Style Editor — a button switches the right-hand preview over to a full-width per-tag editor, where the preset can define exact starting styles (font, size, spacing, alignment, and more) for specific tags rather than just the document-wide basics on the left.
Reset to Default — discards whatever's been changed in the current editing session and reloads the preset's last-saved values (or a blank starting point, for a brand-new preset that hasn't been saved yet).
Table of Contents
The TOC tab generates an automatic table of contents from your headings. Choose which tags to include and set the leader character (dots, dashes, underline, or none). The TOC is inserted before the first page and updates automatically.
Entry text styling comes from the normal Typography panel — toc_title for the "Table of Contents" heading itself, and toc0, toc1, toc2 for each nesting level, styled exactly like any other tag.
Leader Styling
The leader (the dots connecting an entry to its page number) uses the entry's own font/size/color by default. Check Style leader separately to give it its own font, color, size with height reference, a vertical reference point with manual H/V-offset, and letter spacing — independent from the entry text around it.
Footnotes
Use the <fn> tag inline:
<paragraph>This claim is disputed<fn>See Johnson, 2019, p. 42.</fn>.</paragraph>
The FN tab controls font, separator rule, reference mark style, and line spacing. Footnotes are numbered automatically per-page or per-document.
Assets
Custom Fonts
Upload TTF or OTF font files. Once uploaded, the font name is available in the style editor. Ligatures and kerning are applied automatically. Fonts are embedded in the exported PDF.
Images
<image src="my-photo.jpg" width="120" height="80" />
Width and height are in points. Images are embedded in the PDF.
Accessibility & Metadata
The A11y tab has two things: a PDF/UA accessibility toggle, and Document Metadata (title, author, subject, keywords, date, language).
Document Metadata
Each field can come from two independent places, and it's worth being clear about how they relate:
- Type a value directly into the field — this always works, with no XML involved, and is what ends up in the exported PDF's own metadata regardless of anything else.
- Or use a
<metadata>/<head>/<front>/<docinfo>block in your XML (see Document Metadata & Auto-Detection) — once a tag exists there for a field, that field's value comes from the XML and the panel field becomes read-only, showing exactly what's in your document. Edit the XML to change it, not the panel.
Next to each field is an Also render in document checkbox. This is only about whether that value also shows up as visible text in the page itself — it's disabled until the field is XML-backed (a value typed directly, with no matching XML tag, has nothing to render from), and checking or unchecking it never creates, edits, or removes anything in your XML. To add a metadata tag to your document, write it directly in the XML; the panel picks it up automatically.
Master Pages
A master page is a named, reusable page layout — its own size, margins, and optional header/footer override — that a section of your document can switch to. There's no dedicated panel for this yet; it's set up through the AI Assistant and used from your XML.
Defining a Master
Create a chapter-opener master page with a 120pt top margin
A master can also extend another master, inheriting whatever fields it doesn't set itself, and carry style overrides — specific tag properties (like a heading's color) that only apply while that master is active, layered on top of the tag's normal style rather than replacing it.
Using a Master
<pagebreak master="chapter-opener"/>
Switches to that master starting from the next page. A plain <pagebreak/> with no attributes just starts a new page on whichever master is currently active.
Master Sequences
For alternating layouts — a different master for the very first page, then odd pages, then even pages — define a sequence and activate it once:
<pagebreak sequence="book"/>
From that point, every page — including ones created automatically when content overflows, not just explicit page breaks — picks its master from the sequence's rules, until a different sequence or an explicit master="..." takes over.
AI Assistant
Click the AI button in the toolbar to open the AI drawer. The assistant makes changes to your document settings using natural language.
What the AI can do
- Apply a citation style or document structure preset
- Set page size and margins
- Change base font, size, and line spacing
- Edit style properties for any tag
- Enable headers, footers, and page numbers
- Enable the table of contents
- Define and update master pages, including inheritance and per-master style overrides — see Master Pages
- Find and replace text in the document
Example prompts
Apply Chicago style 17th edition
Set page to A5 with 20mm margins
Make heading1 bold, 18pt, centered with 24pt space before
Enable page numbers in the footer centered
Add a table of contents for heading1 and heading2
Create a chapter-opener master page with a 120pt top margin
PDF Export
Click ↓ PDF in the toolbar. All fonts and images are embedded. The layout engine that generates the PDF is the same one that renders the live preview — output matches exactly.
Projects
- Save — saves the current XML and all style settings as a
.jsonfile. - Load — opens a saved project file and restores XML and styles exactly.
- New — clears the editor and starts a blank document.
XML Reference
Document Root
Every document must start with <?xml version="1.0"?> and have a single root element. By convention this is <document>, but any name works — <academicPaper>, <article>, <book>, whatever fits your source. Inner tag names below the root are equally free-form: any tag you use gets picked up automatically and can be styled from the Typography panel (use Detect Tags to add all of them at once).
Document Metadata & Auto-Detection
If a <metadata>, <head>, <front>, or <docinfo> element appears as a direct child of the root, Pub Suite scans its children and fills in the Document panel's metadata fields automatically — no need to rename or restructure your XML first. Recognised tag names (case-insensitive) are:
| Metadata field | Matching tag names |
|---|---|
| Title | <title>, <subtitle> |
| Author | <author>, <creator>, <name> |
| Subject | <subject> |
| Keywords | <keyword>, <keywords>, <tag> |
| Date | <date>, <pubdate>, <publicationdate> |
| Language | <language>, <lang> |
Matching is depth-agnostic — <author><name>Jane Doe</name></author> resolves to the same author value as a flat <author>Jane Doe</author>. A tag that repeats — most commonly a wrapper of individual <keyword> entries — has its values joined with a comma automatically. Every metadata element consumed this way is removed from the rendered document body; it will not show up as a stray paragraph.
If your XML uses a metadata tag name that isn't in the table above (e.g. <editor>), it's left out of the automatic fields, but nothing is silently lost — the Document panel shows a notice listing exactly which tags weren't matched. From there, open the Map tab and add a Tag → Metadata Field Mapping to point that tag at whichever field it belongs to (Title, Author, Subject, Keywords, Date, or Language), choose whether to read only the tag's own text or flatten everything nested inside it, and set a join separator if the tag repeats. A manual mapping always takes priority over the automatic guesses above.
Common Block Tags
| Suggested tag | Typical use |
|---|---|
<paragraph> | Body text |
<heading1> | Chapter title |
<heading2> | Section heading |
<blockquote> | Extended quotation |
<pullquote> | Highlighted quote |
<caption> | Image or figure caption |
<bullet> | Bulleted list item |
<numbered> | Numbered list item |
<image> | Embedded image |
Well-formed XML Rules
- Every opening tag must have a closing tag
- Self-closing tags end with
/> - Tags must be properly nested — they cannot overlap
- Attribute values must be quoted
- Use
&for &,<for <,>for >