Bookshaper is in early access — subscriptions opening soon.

What Preserved Lines does

Most paragraphs in a novel reflow. When the typesetter sets your book at 5.5×8.5 with a particular font and measure, the words break across lines wherever the line fills up. That is what you want for prose. But there are passages where each authored line should sit exactly where you put it.

Preserved Lines is a block format that keeps your line breaks verbatim through every export — PDF, EPUB, and DOCX. Inside the block, every line you author with Enter renders as a discrete line in the published book.

When to use it

Preserved Lines is built for any passage where the line layout itself is part of the meaning. Common cases:

Poetry and verse
The most obvious use. Each line of a poem is authored deliberately; reflowing them would destroy the form.
Parallel narration
Alternating lines from two perspectives — one character's thoughts interleaved with another's — relies on each line sitting exactly where the author placed it. Per-line bold or italic is fully supported, so you can render two streams of consciousness simultaneously with different weight or style on each line.
Song lyrics
Lyrics quoted in a narrative scene. The line breaks of the lyric carry rhythm and meaning that reflow would erase.
Epistolary formatting
Letter addresses, signatures, and salutations where the layout itself communicates tone and formality.
Embedded screenplay snippets
Character names, dialogue, and stage directions where line breaks distinguish each element.

How to insert a Preserved Lines block

Three equivalent paths:

If you select multiple paragraphs and apply Preserved Lines, Bookshaper merges them into ONE block with line breaks between them — almost always what you want for poetry, lyrics, or parallel-narration passages.

  • Type your lines first as normal paragraphs. Select all the lines you want preserved. Click the Preserved Lines icon (three stacked rows) in the floating toolbar. The selected paragraphs collapse into a single Preserved Lines block with each authored line preserved as a line break.
  • Place your cursor where you want the block and press Cmd/Ctrl + Alt + L. The current paragraph converts to a Preserved Lines block.
  • Select text, right-click, choose Format ▸ Preserved Lines from the menu.

Writing inside the block

Once you are inside a Preserved Lines block, your keyboard behaves slightly differently from a normal paragraph:

Enter
Inserts a new authored line within the block. Pressing Enter never exits the block, no matter how many times you press it.
Shift + Enter
Same as Enter — inserts an authored line break.
Bold and italic
Work normally. Select a line (or part of one) and apply via the toolbar, the right-click menu, or Cmd/Ctrl + B / Cmd/Ctrl + I. Per-line formatting is fully supported, so alternating-bold patterns are straightforward.

How to exit the block

  • Cmd/Ctrl + Enter starts a new paragraph immediately after the block, leaving the existing lines intact. Distinct from plain Enter (which adds a line within the block) so it will not fire accidentally.
  • Cmd/Ctrl + Alt + L while the cursor is inside the block toggles it off, converting the block back to regular paragraphs.
  • Click on any paragraph outside the block.
  • Press the Down arrow at the last authored line to step past the block boundary.

Style controls

Open the Style Editor (Style sidebar section). Under Body Matter, you will find a Preserved Lines target with the same typography, spacing, and alignment controls every body element has, plus a new Line Block panel.

Typography
Font family, size, weight, line height, and other text properties. Defaults to the paragraph target's typography — set explicitly only if you want Preserved Lines to render differently from body text.
Hanging Indent
When an authored line is too long for the trim measure and wraps to a second visual line, the wrap indents by this amount. The first character of each authored line stays flush left. Default is 2em. Set to 0 to disable hanging indent entirely.
Pagination
Choose Keep Together (default) so a page break never falls inside a Preserved Lines block, or Allow Page Break Inside if you have an unusually long block and need it to flow across pages.

Export behavior across formats

EPUB caveat: reflowable EPUB readers let the reader control font size and screen width. If a reader enlarges the text enough that one of your authored lines no longer fits on a single line of their screen, the wrap uses the hanging indent — but the wrap point itself is not under your control. The ORDER of your lines is always preserved; the exact wrap within each line is at the reader's mercy. This is a fundamental EPUB constraint, not a Bookshaper limitation. For a truly fixed Kindle experience, export PDF and run it through Amazon's free Kindle Create app to produce a print-replica KPF.

Print PDF
Each authored line renders as its own paragraph with hanging indent applied per line. The block respects Keep Together via Typst's breakable: false setting.
DOCX (Word)
The block exports as a single Word paragraph carrying each authored line as a run separated by Word line breaks, with keepLines enabled so the passage does not split across pages. Hanging indent applies at the paragraph level.
EPUB
Each authored line is rendered as its own paragraph inside the preserved-lines container, with CSS hanging-indent per line. The outer container uses break-inside: avoid for paged-EPUB readers that support it.

Tips and pitfalls

Use it sparingly
Preserved Lines is overkill for normal prose paragraphs. Reserve it for passages where line layout is part of the meaning.
Trim choice matters for wrapping
If your trim is narrow (5×8 or smaller) and your authored lines are long, you will see hanging indents in print where lines wrap. Check the print preview at your target trim to confirm your lines fit as authored.
The editor visual is approximate
The Write view shows a subtle left accent and flush-left lines so the block is visibly distinct. The actual hanging indent only appears in the Print and Ebook preview panes and in the final export. Use Cmd/Ctrl + Shift + P to open the preview and confirm what readers will see.