Fix Copy-Paste Formatting in Substack (Remove Spaces and Line Break Issues)
TL;DR: Pasting text from Word, Google Docs, or Notion into Substack often introduces extra spaces, double paragraph gaps, or broken line breaks that make your newsletter look unprofessional. Run your draft through a whitespace cleaner and line break remover before pasting, and Substack will display it exactly as you intended.
Table of contents
- Why Substack copy-paste breaks formatting
- The most common Substack paste problems
- Fix 1: Remove extra spaces before pasting
- Fix 2: Clean up broken line breaks
- Fix 3: Fix double paragraph gaps
- Fix 4: Handle smart quotes and special characters
- Fix 5: Check your word count before sending
- The complete clean-and-paste workflow
- Tips for Substack writers who draft in Word or Google Docs
- Common mistakes to avoid
- FAQ
- Quick checklist
- More tools / Related links
Why Substack copy-paste breaks formatting
Substack uses a block-based rich-text editor built on top of a custom version of ProseMirror. Unlike a plain text field, Substack's editor actively interprets the formatting metadata your clipboard carries when you copy text from Microsoft Word, Google Docs, Notion, or a web browser. This interpretation does not always go the way you expect.
When you write in a word processor, that application stores not just characters but paragraph styles, line-spacing multipliers, soft returns, smart punctuation, and invisible Unicode characters. The moment you copy that text, all of that metadata travels with it. Substack's editor tries to map the source formatting onto its own block system. Sometimes it succeeds. Often it produces double-spaced paragraphs, stray blank lines, broken sentences split across multiple lines, or odd character substitutions that look fine in your original draft but appear wrong in the Substack preview — and worse, in a subscriber's inbox.
The result is newsletter copy that reads sloppily — not because of the writing, but because of invisible formatting artifacts the editor introduced silently.
The good news: this is a well-understood, fully fixable problem. Cleaning your text before pasting — normalizing spaces and line breaks in a neutral tool first — removes the hidden metadata before Substack ever sees it.
The most common Substack paste problems
Understanding exactly which artifacts appear most often in Substack pastes helps you target the right fix quickly.
Extra spaces between words
Word processors and document editors frequently insert non-breaking spaces ( ) alongside regular spaces, or they add double spaces after sentences. These look identical to normal spaces in the source document. In Substack's rendered newsletter, they create small but visible gaps between words that make body text look uneven — especially in a proportional font at newsletter widths.
Double paragraph gaps — too much vertical whitespace
This is the most commonly reported Substack paste problem. Google Docs applies paragraph spacing automatically — a visual gap below each paragraph that represents spacing, not an actual blank line. When that text is pasted into Substack, the editor can interpret both the paragraph spacing and a newline character, inserting an empty block between every paragraph. A newsletter that looked tightly written in Docs suddenly has enormous gaps between paragraphs.
Broken line breaks inside sentences
Text copied from PDFs, older email clients, or documents exported through intermediate formats often has a hard line break at the end of every original line — matching the page width it was exported from. In Substack, those hard breaks cause a sentence that should wrap naturally across the width of your newsletter to instead split mid-sentence into two lines. Readers see what looks like a typo or formatting error.
Smart quotes rendering as garbled characters
Smart quotes (" and " instead of ", ' and ' instead of ') usually display correctly in Substack's editor and in most email clients. However, if your draft has been through a chain of exports — say, a Google Docs file exported to .docx, opened in LibreOffice, then copied — the encoding can break and those curly quotes arrive in Substack as “ or similar Unicode artifacts. These show up as broken characters in delivered emails.
Indentation and tab characters
Substack does not support tab-stop indentation in body text. If your source document uses tabs to indent paragraphs or align text in lists, those tabs either vanish or collapse to a single space, destroying the visual structure. Block indentation for blockquotes needs to be added as a Substack block, not inherited from the paste.
Fix 1: Remove extra spaces before pasting
The fastest fix for uneven spacing is to collapse multiple consecutive spaces into single spaces and strip any leading or trailing whitespace before each paragraph. A dedicated whitespace normalizer handles this in one click.
How to do it:
- Copy your full draft text — just the body, since the headline and subtitle go into Substack's separate fields.
- Paste it into JustTextTool's Remove Extra Spaces tool.
- Click Clean. The tool collapses multiple spaces, removes non-breaking space characters, and strips trailing whitespace from each line.
- Copy the result and paste it into Substack's editor.
This single step resolves the majority of "words look weirdly spaced in my newsletter" complaints.
Fix 2: Clean up broken line breaks
If your text looks correct in the source document but arrives in Substack with every sentence on its own line, you have hard line breaks inside your paragraphs. This typically comes from a PDF export, an email client paste, or a document that went through multiple format conversions.
Use JustTextTool's Line Break Remover to fix this:
- Paste your text into the Line Break Remover.
- Select the option to join single line breaks — preserving double line breaks that represent real paragraph gaps.
- Copy the result. Your sentences now flow as full paragraphs rather than individual lines.
The key distinction is between single line breaks — the kind that break sentences mid-flow — and double line breaks — the blank-line gaps between paragraphs. A line break remover joins the former while leaving the latter intact. If it removes everything, your paragraphs will collapse into a single wall of text that is equally unusable. Check the output before pasting into Substack.
Fix 3: Fix double paragraph gaps
The extra-blank-line problem — where every paragraph in Substack has a large gap after it — usually originates from Google Docs paragraph spacing, or from editors that export two newlines per paragraph where one would suffice. This is different from broken line breaks and needs a different approach.
The fastest workaround:
- Paste your text into Remove Extra Spaces first. This normalizes spacing within each line.
- In a plain-text editor (Notepad on Windows, TextEdit in plain-text mode on macOS), reduce any triple-or-more consecutive blank lines down to a single blank line.
- Paste the cleaned text into Substack.
Once the text is in Substack, you can also clean up from inside the editor. Click into any empty block sitting between paragraphs and delete it — Substack's block editor makes it easy to select and remove stray empty blocks that should not be there.
If the double-gap problem happens every time you paste from Google Docs, the fastest long-term fix is to paste through a plain-text editor as an intermediate step. Paste from Docs into Notepad, copy again from Notepad, then paste into Substack. The plain-text editor strips the paragraph spacing metadata, and your second paste arrives clean.
Fix 4: Handle smart quotes and special characters
If your draft has gone through multiple export steps and you notice garbled sequences like “ in Substack's editor after pasting, those are smart quotes or em dashes that arrived with broken encoding.
The simplest fix:
- In your original document, do a find-and-replace to convert curly quotes to straight quotes before copying:
"→","→",'→','→'. - Copy and paste the straight-quote version into Substack.
- Substack will then display straight quotes in delivered emails — technically less typographically refined, but perfectly readable and encoding-safe across every inbox.
If the original document is no longer available, paste the broken text into a plain-text editor, find and delete the garbled sequences, and paste the corrected version into Substack.
Fix 5: Check your word count before sending
Substack has no built-in word count display for the draft you are writing, even though word count matters enormously for newsletter strategy. Short newsletters under 300 words can read as thin; very long issues over 2,500 words can overwhelm readers who expect a 5-minute read.
Before finalizing your newsletter, paste the full body text into JustTextTool's Word Counter for an instant count. Use it to:
- Confirm your newsletter falls within your target length range — common targets are 400–800 words for short-form and 1,000–2,000 words for long-form analysis.
- Identify sections that are running long and might be split into a future issue.
- Track consistency across issues so subscribers develop a reliable expectation around reading time.
If you write Substack Notes — the platform's short-form social feed — use Character Counter instead. Notes have a 280-character limit per post, and the character counter shows your count in real time as you compose.
The complete clean-and-paste workflow
Here is the full two-minute workflow that eliminates Substack formatting problems on every issue:
- Finish drafting in your preferred writing environment — Word, Google Docs, Notion, or a plain-text editor.
- Copy the full body text — not the headline or subtitle, which go into Substack's separate title and subtitle fields.
- Paste into Remove Extra Spaces and click Clean. This normalizes spacing and removes non-breaking space characters.
- If you have broken line breaks from a PDF or email source, paste the result into Line Break Remover and remove single line breaks inside sentences while preserving paragraph gaps.
- Check your word count with Word Counter if you have a target length for this issue.
- Copy the cleaned text and paste it into Substack's editor.
- Add Substack-specific elements — callout boxes, section dividers, button links, and images — after your cleaned text is in place. These cannot be inherited from an external editor; they need to be added natively in Substack.
- Preview in browser using Substack's built-in preview button. This shows the desktop email rendering.
- Send yourself a test email using Substack's "Send test" feature before broadcasting to subscribers. Email rendering differs from browser rendering — a test confirms the formatting holds across inbox providers.
Tips for Substack writers who draft in Word or Google Docs
Many Substack writers — especially those with journalism or academic backgrounds — are most comfortable in Word or Google Docs and only move to Substack at the end. These habits reduce formatting friction if that is your workflow.
Use a plain-text staging file. Maintain a .txt file as an intermediate stop. When your draft is approved, paste it from the word processor into the .txt file first, then from there into Substack. Plain text strips all formatting metadata and gives you the cleanest possible paste.
Consider a Markdown-friendly editor for drafts. If you draft in a Markdown editor — Typora, iA Writer, Ulysses, or even a basic .md file in VS Code — your text arrives in Substack with minimal formatting baggage. Substack's editor recognizes Markdown headers and basic bold or italic syntax, so ## Section and **bold** translate cleanly, while hidden formatting from word processors does not.
Write the title and subtitle in separate Substack fields. Substack has dedicated fields for the post title and subtitle at the top of the editor. If your draft document has the title as the first line, remove it before copying the body. Otherwise it shows up as body text and you end up with a double title.
Apply Substack formatting after pasting, not before. Callout boxes, section dividers, button links, and native image blocks are Substack-only features. There is no benefit to trying to approximate them in your word processor — they will not transfer. Add them natively after your cleaned body text is pasted and confirmed.
Always preview on mobile. A large share of your subscribers read your newsletter on a phone. Substack's editor preview shows desktop layout. For important issues, send yourself a test email and open it on your phone to check that paragraph spacing and line widths look intentional, not cramped or misaligned.
Common mistakes to avoid
Pasting from Google Docs without a clean step. Google Docs is the top source of double paragraph gaps in Substack newsletters. Even if the text looks clean in Docs, the paragraph spacing metadata travels invisibly with the paste. Always run it through a whitespace normalizer first.
Cleaning text after layout work. If you have already added callout blocks, buttons, and section dividers around pasted text in Substack's editor, there is no practical way to run a cleaner on the final version without losing those elements. Clean the plain text before you start applying Substack-specific formatting.
Removing every single line break. If you use Line Break Remover in maximum-aggressive mode — stripping every line break — you collapse all your paragraphs into one unbroken wall of text. Use the mode that removes only single line breaks inside sentences, not the mode that removes all of them.
Skipping the test email. Substack's browser preview does not replicate every email client's rendering. Spacing, font fallbacks, and image display can differ between Gmail on desktop, Outlook, and Apple Mail on iOS. Send yourself a test email to the address you check most often and review it on both desktop and mobile before sending to your list.
Over-cleaning with case conversion. If you run the full body through a Case Converter to fix heading capitalization, be careful about applying title case or uppercase to sections that include proper nouns, abbreviations, or product names that need specific casing. Apply case conversion to individual headings, not the whole article at once.
FAQ
Why does my Substack newsletter have extra blank lines between every paragraph?
This is almost always caused by pasting from Google Docs. Google Docs applies paragraph spacing visually — a gap that is built into the paragraph style, not an actual blank line. When that text is pasted into Substack, the editor can interpret both the paragraph style spacing and an additional newline, inserting an empty block between every paragraph. The fix is to paste through a plain-text editor as an intermediate step, or to delete the empty blocks in Substack's editor after pasting.
Can I paste rich formatting from Google Docs into Substack?
Yes. Substack's editor preserves some rich formatting — bold, italic, and basic links often survive a direct paste from Google Docs. But paragraph spacing, indentation, and special characters often do not transfer cleanly. If formatting accuracy matters more than preserving bold and links, paste as plain text (Ctrl+Shift+V on Windows and Linux, Cmd+Shift+V on macOS), then re-apply bold and italic manually in Substack.
How do I paste as plain text in Substack?
On Windows: Ctrl+Shift+V. On macOS: Cmd+Shift+V. On some browsers, right-click and choose "Paste as plain text." Plain-text paste strips all rich formatting, including bold, italic, and links, so you will need to re-apply any of those manually — but spacing and line breaks will arrive clean.
Does Substack have a word count or character limit for newsletters?
Substack newsletters have no hard character or word limit for the main post body. Substack Notes — the platform's short-form social feed — has a 280-character limit per Note. For newsletter body length, use Word Counter to check before sending. For Notes, Character Counter gives you a real-time count.
Why do my em dashes or smart quotes appear broken in delivered emails?
Em dashes (—) and curly quotes can break if the text traveled through multiple encoding conversions before reaching Substack. A document that moved from Google Docs → .docx export → LibreOffice → copy can arrive with broken UTF-8 encoding. The safest fix is a double hyphen (--) in place of an em dash and straight quotes in place of smart quotes when you know the source has had encoding problems.
My Substack post looks fine in the editor but has spacing issues in the email. Why?
Substack's browser-based editor preview does not match every email client's rendering engine. Email clients — particularly Outlook on Windows — handle fonts, spacing, and margin differently from a browser. The only reliable check is to send yourself a test email using Substack's "Send test" feature and review it in the actual email client your subscribers use most.
Quick checklist
- Draft is finished in your preferred editor and approved for sending
- Body text (not the title or subtitle) pasted into Remove Extra Spaces and cleaned
- Broken line breaks fixed with Line Break Remover if pasting from a PDF or email source
- Word count confirmed with Word Counter against your target length
- Cleaned text pasted into Substack's editor
- Substack-specific blocks (callouts, dividers, buttons, images) added after pasting
- Browser preview reviewed for paragraph spacing and sentence flow
- Test email sent and checked on desktop and mobile before sending to subscribers
More tools / Related links
- Remove Extra Spaces — collapse multiple spaces and strip non-breaking whitespace before pasting into Substack
- Line Break Remover — fix broken line breaks from PDFs, email clients, and multi-format document exports
- Word Counter — check your newsletter's word count against your target length before sending
- Character Counter — count characters for Substack Notes (280-character limit per Note)
- Case Converter — fix inconsistent heading capitalization across your newsletter
- Fix Copy-Paste Formatting in Notion — same clean-and-paste workflow for Notion as a drafting tool
- Fix Copy-Paste Formatting in Slack — clean formatting before sharing in Slack channels
- Clean Copied Text from Google Docs Before Publishing — detailed guide for cleaning Google Docs source text