執筆・検証: MD Converter編集部
Markdown PDFで空白ページができる原因と消し方
MarkdownをPDFにすると空白ページが入る原因を、改ページ指定、余白、表・画像、末尾要素、印刷設定に分け、発生位置ごとの消し方を解説します。
空白ページの直前と直後を確認する
MarkdownをPDFに変換したときの空白ページは、空の文字が印刷されたのではなく、改ページ指定や大きな要素によって本文が次のページへ送られた結果であることが多くあります。まず、空白ページが先頭、文書の途中、末尾のどこに出るかを確認します。位置によって疑う設定が変わります。
原因を調べるときは印刷プレビューを開き、保存前に本文の切れ目と空白ページが始まる位置を確認します。
原因1:改ページが連続している
CSSやHTMLを含むMarkdownでは、次のような改ページ指定を使うことがあります。
<div style="break-before: page;"></div>
手動の改ページと「h1の前で改ページ」などの自動ルールが同じ場所へ適用されると、改ページが重複して空白が生じる場合があります。見出し直前のHTML、CSSのbreak-before、break-after、古いpage-break-*指定を確認し、同じ目的の指定を1つにします。
ツール上で追加した改ページも、近い位置に複数ないか確認します。章の前へ改ページを置く場合、直前の章末にも「後で改ページ」を設定する必要はありません。
原因2:表紙や目次の後に追加の改ページがある
表紙や目次には、本文を次ページから開始するための改ページが含まれることがあります。その直後の最初の見出しにも自動改ページを適用すると、間に空白ページが入る可能性があります。
表紙を外すと空白が消えるか、目次を外すと消えるかを順番に試します。原因が分かったら、表紙・目次側の区切りか、本文最初の見出し側の区切りのどちらかだけを残します。
原因3:画像や表が残りの領域へ収まらない
ページ末尾の残り高さより画像や表が大きく、さらに「途中で改ページしない」が指定されていると、要素全体が次ページへ送られます。前のページに大きな空白が残るため、空白ページのように見えることがあります。
次を順に試してください。
- 画像の表示サイズを小さくする
- 長い表を複数の表へ分ける
- 表やコードの「途中で改ページしない」を一時的に外す
- 用紙を横向きにする
- 前後の余白を小さくする
1ページより大きな要素へ分割禁止を指定すると、PDF生成処理が不自然な配置を選ぶことがあります。必ず収まる大きさの要素だけに利用します。
原因4:用紙と余白の設定が重なっている
ツール側で余白を設定したうえに、ブラウザの印刷ダイアログでも大きな余白を指定すると、本文を置ける範囲が想定より狭くなります。少しの高さ超過で次ページが作られ、最後にほぼ空のページが残ることがあります。
ツールと印刷ダイアログの用紙サイズ・向きを合わせ、ブラウザ側の余白を「なし」または最小から確認します。倍率が100%を超えていないか、ヘッダーとフッターが本文領域を圧迫していないかも確認します。
原因5:文書末尾に空の要素がある
本文の最後に空の見出し、空段落、改ページ用HTML、巨大な下余白があると、末尾に追加ページが作られる場合があります。Markdown末尾の空行だけが原因になることは通常ありませんが、空行に見えるHTMLタグやCSSは確認が必要です。
## 最後の章
本文です。
<!-- この後に不要な改ページ要素がないか確認 -->
原因を見つけにくい場合は、文書の後半を一時的に半分削り、空白ページが残るか確認します。残れば前半、消えれば削った後半に原因があります。この方法を繰り返すと、大きな文書でも問題の要素を絞れます。原稿のコピーで試し、元データは残してください。
ブラウザによる違いも確認する
同じHTMLでも、ブラウザの印刷処理によって改ページ位置が少し変わります。あるブラウザだけで空白ページが出る場合は、別のブラウザでも保存して比較します。ただし、ブラウザを変えるだけで終わらせず、境界ぎりぎりの要素や重複した改ページ指定がないかも直します。
空白ページを消す確認順序
先頭に空白ページがある
表紙の直後や本文先頭のH1に改ページが重複していないか確認します。表紙自体が次ページ送りを持つ場合、最初の見出しへさらに「前で改ページ」を付ける必要はありません。表紙、目次、自動ルールを一つずつ外すと原因を特定できます。
文書の途中に空白ページがある
空白の直後にある表、コード、画像へ注目します。要素全体を分割しない設定があり、残り領域へ収まらないと次ページへ送られます。短い表なら正常ですが、1ページを超える表へ分割禁止を使うと不自然な空白が増えます。
最後に空白ページがある
最終ブロックの後に改ページが置かれていないか、画像や表が用紙の高さを数ピクセルだけ超えていないかを確認します。余白を1段階小さくする、画像を少し縮小する、不要な末尾HTMLを削除する、の順で試すと切り分けやすくなります。
- 手動改ページを一度オフにする
- h1・h2前の自動改ページを確認する
- 表紙と目次を個別に外して試す
- 大きな画像・表・コードを小さくする
- 分割禁止の設定を外す
- ツールと印刷画面の用紙・余白を合わせる
- 文書末尾のHTMLとCSSを確認する
- 保存したPDFを最後のページまで開く
設定を一度に全部変えると原因が分からなくなります。1項目ずつ変更してPDFを保存し、空白ページが消えた変更を特定するのが最短です。
「空白」と「余白」を見分ける
ページ自体が追加されているのではなく、章の開始位置や分割禁止の影響で、前ページの下半分だけが空いていることもあります。PDFビューアのページ一覧で実際のページ数を確認し、完全な空白ページなのか、大きな余白なのかを区別します。
大きな余白なら、次の見出しに設定された改ページか、その直後の表・画像の分割禁止を確認します。文章を1行追加・削除しただけで空白量が大きく変わる場合は、ページ境界ぎりぎりに要素が置かれている可能性が高いです。内容を削って無理に詰める前に、章を新しいページから始める意図的なレイアウトも検討してください。
よくある質問(FAQ)
Q. Markdown末尾の空行だけで空白ページができますか?
末尾の空行そのものが原因になることはまれです。空白ページを作りやすいのは、高さを持つHTML要素、手動の改ページ、大きな下余白、分割禁止が付いた大きなブロックなどです。空行を手当たり次第に消すより、ページ境界の前後にある要素を印刷プレビューで確認するほうが早く原因にたどり着けます。
Q. 文章を一文消しただけで空白ページが消えるのはなぜですか?
本文の高さが印刷できる範囲をわずかに超えていた可能性が高いです。文章を減らすと行の折り返しが変わり、直後にある分割禁止の要素が残り領域へ収まるようになります。ただし内容を削る方法は再発しやすいため、改ページの位置を意図して指定する、大きな画像や表を縮小する、余白を調整するといった対処のほうが安定します。