﻿# 05. 印刷とプレビュー

入力の解読規則は [08-入力解読仕様.md](./08-入力解読仕様.md)、プレビュー／PDF の契約は [09-出力仕様.md](./09-出力仕様.md) です。外部仕様との対応は [10-準拠仕様マップ.md](./10-準拠仕様マップ.md) です。

## 1. ページ幾何

| 項目 | 仕様 |
|------|------|
| 用紙 | `pageSize` × `pageOrientation`（既定 A4 縦 = 210 × 297 mm） |
| 本文余白 | `marginPreset`（既定 normal = 上 14 / 右 14 / 下 16 / 左 14 mm） |
| 表紙余白 | 0（フルブリード） |
| PDF | 用紙寸法に従い、CSS のページ指定を優先 |

表紙ページは余白ゼロ（フルブリード）、本文ページは設定した余白を使います。

## 2. 表紙

| 項目 | 内容 |
|------|------|
| 高さ | 用紙高さ（既定 297mm）、角丸なし |
| 背景 | 選択したスタイル／パターンを全面（`solid` は単色） |
| 選択キー | `style` と `coverPattern` |
| タイトル等 | 危険な HTML はエスケープされる |
| 印刷色 | 背景色を印刷に反映 |

表紙文言はドキュメント設定（front matter）に従います。

## 3. Markdown → HTML 共通処理

段階・拡張・フェンス・数式の定義は [08-入力解読仕様.md](./08-入力解読仕様.md) を参照してください。要約:

| 段階 | 内容 |
|------|------|
| フェンス退避 | `` ```mermaid ``（図）と `` ```math `` 等（数式）を共通規則で退避 |
| 拡張 | 表・脚注など（08 §4） |
| サニタイズ | 利用者由来の HTML から危険なマークアップを除去（許可範囲は [10](./10-準拠仕様マップ.md)） |
| details | 常に展開（PDF と同じ体裁） |
| リンク | プレビューでは見た目のみ（ズーム・スクロールは可） |
| keep-next | [09](./09-出力仕様.md) §5 |

数式フェンスは数式ブロックとして描画されます。

### 改ページまわり

| 方針 | 内容 |
|------|------|
| Keep with next | 見出しと直後の本文が離れにくい |
| Keep together | 表・図・コード・引用・リスト等は途中ページ分割を避ける |
| 目次 `[TOC]` | **前後とも改ページ**（目次専用ページ）。長い目次は複数頁可。リーダーとページ番号付き |
| 巨大な図 | 頁を超えるときは分割を許容 |

## 4. 画面プレビュー

編集右ペインは **実寸の用紙スタック**で体裁を確認します。

| 項目 | 仕様 |
|------|------|
| 用紙 | 設定した用紙サイズ |
| ページ分割 | 図描画後に本文を各用紙へ流し込み（**近似**） |
| 背景 | 机面は画面の明暗に連動。用紙は白固定 |
| ズーム | 表示倍率のみ変更（文書の組版は変えない）。ピンチ、Ctrl／⌘＋ホイール、ツールバー |
| 図・数式 | 画面側で描画（配布用 PDF とは経路が異なる） |
| 更新条件 | 静的解析で error が 0 件のとき |
| 解析で error があるとき | 直前のプレビューを保持し「未更新」 |

**最終体裁の基準は PDF 作成後の確認です。**

## 5. PDF 確認

| 項目 | 内容 |
|------|------|
| 開き方 | **PDFを作成**完了後に確認画面が開く |
| 保存 | 確認後「PDFを保存」（OS の保存ダイアログ） |
| 印刷 | 確認後「印刷」（OS の印刷ダイアログ。作成済み PDF を渡す） |
| 作成条件 | 静的解析で error が 0 件であること |

## 6. プレビューと PDF の差分

| 項目 | プレビュー | PDF |
|------|-----------|-----|
| 位置づけ | 編集中の近似確認 | **配布・印刷の基準** |
| 図 | ブラウザ描画 | サーバ側で埋め込み |
| ページ分割 | 画面内の近似 | 印刷エンジンによる正式な割付け |
| 外部取得 | ブラウザがフォント／描画用資源を取得しうる | サーバは許可された宛先のみ |
| ゲート | 検査で error が 0 件のとき更新 | 検査で error が 0 件のとき作成 |

Markdown 拡張・サニタイズ・表紙・テーマ・数式区切り・details 展開の扱いは共通です。
