# cti.li で本を作る — AI への指示

あなた（Claude Code・Codex などのコーディングエージェント）は、利用者の頼みに沿って、いまいるフォルダに本を作り、cti.li で EPUB に仕上げます。利用者は技術に詳しくない前提です。**技術的なことは聞き返さず、自分で決めて最後まで進めてください。** 聞くのは、利用者でないと決められない本の中身（何を書くか・誰に向けた本か など）だけにします。版の選び方・底本の記述の置き方・書き足した一文のような判断は自分で決め、最後に報告します。

できあがるのは、版面（頁の作り）まで自分で決めた本（EPUB）です。cti.li の読み器でそのまま読めます。判型は紙に刷れる寸法にそろえています（自分の本を紙で注文できるのは今後）。横組みの本には、発表に使うスライドも入れられます（5）。

**この指示書は、要約せずに全部読む。** まだなら、このフォルダに保存してから読む（`curl -sS -o AGENTS.md https://cti.li/contents/book/AGENTS.md`。PowerShell では `curl.exe`）。ウェブの頁を要約して読む道具（WebFetch など）だと、コマンドが抜け落ちることがある。利用者が後で直しを頼んだときも、このファイルを読み直してから始める。

以下のコマンドは全部このフォルダで打ちます。tar と curl のファイル名は相対で書きます（Windows の Git Bash の tar は `C:/…` のような名前を受けない）。

**Windows の PowerShell で動いているとき**は、下の「PowerShell では」のコマンドを使う（Windows PowerShell 5.1 で通ることを確かめてある）。決まり:
- `curl` は `curl.exe` と書く（PowerShell 5.1 の `curl` は別のコマンド）。`-F` の値は `"book=@book.tgz"` と引用符で囲む。
- `&&` が無いので、前のコマンドが失敗したら次へ進まないよう `if ($LASTEXITCODE -eq 0) { … }` で囲む（`;` でつなぐと、混んでいて断られたときにエラーの文が入ったファイルまで消える）。
- コマンドは直接打つ。.ps1 のファイルにするなら、UTF-8 の印（BOM）付きで保存する（印が無いと 5.1 は日本語のファイル名を読み違える）。
- 日本語のファイルは UTF-8 で読み書きする。読むときは `Get-Content -Encoding UTF8`、書くときは `-Encoding utf8`（印が付くが、点検は通る）。`>` や `Out-File` で書かない（UTF-16 になり、点検で「UTF-8 にしてください」と出る）。ファイルはエージェントのファイルを書く道具で書くのがいちばん確か。

## 1. 始める

本の中身によって、出発点を選びます。

- **青空文庫の作品から作る**（縦組み）: 作品のアドレス（図書カード `https://www.aozora.gr.jp/cards/…/card….html` か XHTML の頁）から、本文・ルビ・章・目次・奥付（底本の記述）が入った本のフォルダが届きます。外字は字に替わり、字下げは元の本のとおりです（全角の空白で始まる行は字下げ、ほかは `class="noindent"`）。

  ```
  curl -sS -G --data-urlencode "url=作品のアドレス" "https://cti.li/contents/book/api.php?do=aozora" -o book.tgz
  tar -xzf book.tgz && rm book.tgz
  ```

  PowerShell では:

  ```
  curl.exe -sS -G --data-urlencode "url=作品のアドレス" "https://cti.li/contents/book/api.php?do=aozora" -o book.tgz
  tar -xzf book.tgz; if ($LASTEXITCODE -eq 0) { Remove-Item book.tgz }
  ```

  - **何作品かを1冊にする**ときは、`--data-urlencode "url=…"` を作品の数だけ並べる（並べた順に入る。20作品まで）。作品ごとに1つの頁のファイルになり（作品の題が h1、章・節が h2）、各作品の底本の記述はその作品の終わりに入る。本の題は作品の題を「・」でつないだもの。
  - 章の見出しが「第一章」のような作品は、章ごとに頁のファイルに分かれる。「一」「二」のような番号だけの短編は分けず、1つのファイルに h2 で入る。
  - 同じ作品に版が幾つかある（新字新仮名・新字旧仮名など）ときは、利用者の指定が無ければ新字新仮名を選び、1冊の中で表記をそろえる。
  - 届く `book.json` の判型はいつも `shinsho`。頼みに合わせて変える（「文庫本」なら `a6`）。`"source"` は元の作品のアドレスで、EPUB に記録される（消さない）。
  - 青空文庫の本には絵が無いので `images/` は無い。絵を足すときに作る。

- **縦組みの本**（小説・随筆など）: `curl -sSL -o s.tgz https://cti.li/contents/book/starter.tgz && tar -xzf s.tgz && rm s.tgz`
- **横組みの本**（実用書・教科書・レシピなど。囲み・番号付きの手順・表の見本入り）: `curl -sSL -o s.tgz https://cti.li/contents/book/starter-horizontal.tgz && tar -xzf s.tgz && rm s.tgz`
- PowerShell では: `curl.exe -sSL -o s.tgz https://cti.li/contents/book/starter.tgz; tar -xzf s.tgz; if ($LASTEXITCODE -eq 0) { Remove-Item s.tgz }`（横組みは `starter-horizontal.tgz`）
- **発表に使う本**（講演・説明会・授業など。利用者が「スライド」「発表に使う」と頼んだとき）: 横組みのひな形から始め、5 のとおりスライドを入れる。

ひな形の見本の文（「ここに本文を書きます」など）は全部、本の中身に置き換える。

次に、利用者の頼みと原稿を読み、次を決める。決まっていないものは妥当に選び、最後に報告する。

- 題・著者（`book.json`）。**著者名（利用者の名前や筆名）が原稿にも頼みにも無ければ、始める前に聞く**（利用者でないと決められない）。
- 判型（`book.json` の `"size"`）: `shinsho`（新書判 113×176mm）・`a6`（文庫判 105×148mm）・`b6`（128×182mm）・`a5`（148×210mm）・`b5`（182×257mm）・`a4`。読み物は `shinsho`、絵や表の多い本は `a5`・`b5` が無難。ひな形の `style.css` の余白と文字の大きさは、縦組みは新書判、横組みは A5 に合わせてある。判型を変えたら合わせて直し（4 の「1頁の行数」）、表紙・奥付の位置も見本で確かめる
- 章立て: 1章を1つの頁のファイルにする（章は新しい頁から始まり、目次に載る）。**本文が10頁くらいまでの短い本**（短い随筆・短編）は、章ごとに分けると半分空いた頁が並ぶので、1つのファイルにまとめる。そのファイルの h1 は本の題（作品の題）にし、章・節を h2 にする。h1 が1つだけの本は、目次（読み器の目次と 01-contents）に h2 も自動で載る。目次の頁（01-contents）は外してもよい。
- 表紙: 表紙用に渡された絵があれば使う。無ければ文字だけの表紙（本文に入れる写真を勝手に表紙にしない）。
- 紹介文（`book.json` の `"description"`）: 原稿から一、二文で自分で書き、報告する。ひな形の「この本の紹介を一、二文で。」は残さない。紹介文は紙の本（ペーパーバック）の裏表紙にも載る。
- 奥付: 書くのは、題・著者・発行日（本を作った日）と、要るときだけ発行者・連絡先・出典。**原稿のファイル名、作業のメモ（「編集について」など）、利用者に確かめてほしいことは本に書かない**（利用者はそのまま公開することがある）。気になる所は 6 で利用者に伝える。

**Word の原稿（.docx）**は、cti.li で文字と絵に分ける（ファイルの名前は日本語のままでよい）:

```
curl -sS -F "file=@原稿.docx" "https://cti.li/contents/book/api.php?do=word" -o word.tgz
tar -xzf word.tgz && rm word.tgz
```

PowerShell では:

```
curl.exe -sS -F "file=@原稿.docx" "https://cti.li/contents/book/api.php?do=word" -o word.tgz
tar -xzf word.tgz; if ($LASTEXITCODE -eq 0) { Remove-Item word.tgz }
```

`word.txt` と、絵（`images/word1.jpg` …）が届く。`word.txt` は段落が1行ずつで、Word の「表題」は行頭の `【題】`、「見出し1」は `#`、「見出し2」は `##`、ルビは `漢字《かんじ》`、絵の位置は `[絵: images/word1.jpg]`（すぐ次の行は、たいてい写真の説明）、表は `|` で区切った行、箇条書きは `・`。Word での絵の大きさは伝わらない。`word.txt` を下のテキストの原稿として読む。古い形式（.doc）は読めないので、利用者に Word で開いて「名前を付けて保存」で .docx にしてもらう。

**利用者の原稿（テキストのファイルなど）の読み方**: 空行か改行で段落を分ける。行頭の全角の空白は字下げのしるしなので、段落にするときは消す（字下げは CSS が付ける）。全角の空白で下げた短い行や「一　…」のような行は見出し。「[写真1　説明]」のような印は、そこに絵を置き、説明を figcaption にする。利用者の絵は `images/` に**写す**（元のファイルは残す）。原稿の字は変えない（数字を漢数字にするなど、組むために直したところは報告する）。

## 2. フォルダの決まり

```
book.json      題・著者・組み方向・判型
style.css      全頁に当たる CSS（版面・書体・見出し・本文）
pages/         頁のファイル。名前の順に本になる
  00-cover.html    表紙
  01-contents.html 目次（<nav class="toc"></nav> に h1 から目次が自動で入る）
  10-….html, 20-….html …  章（1章を1ファイルに）
  99-colophon.html 奥付
css/           追加の CSS（表紙の cover.css など）
images/        絵（jpg・png・svg）。表紙の絵は images/cover.jpg（本棚の表紙になる）
fonts/ audio/ video/  書体（woff2・ttf）・音声（mp3・m4a）・動画（mp4）を使うとき
```

- `book.json`: `"title"`・`"author"`（必須）、`"writing"`: `"vertical"`（縦組み・右綴じ）か `"horizontal"`（横組み・左綴じ）、`"size"`（上の判型）、`"description"`（紹介文）、`"language"`（既定 `ja`）、`"source"`（元にした作品のアドレス。1つなら字、幾つもなら並び。書かなくてよい）。紙の本の表紙を変えるときだけ `"back"`・`"cover_color"`（4 の「紙の本の表紙」）。`print-cover/` という名前のフォルダは使わない（紙の本の表紙に使う）。
- 頁のファイルの中身は **`<body>` の中身だけの普通の HTML**。章の題は `<h1>`（目次と読み器の目次になる。目次に載るのは h1 だけ。h1 が本に1つだけなら h2 も載る）、節は `<h2>`。
- 頁のファイルの先頭に `<!-- class: cover -->`（body の class）、`<!-- css: css/cover.css -->`（その頁だけの CSS）を書ける。
- ファイル名は半角の英数字と `- _ .` だけ。文字は UTF-8。
- **1つの頁のファイルは、読み器では1つのまとまりとして別々に組まれる。** 頁番号（`counter(page)`）は、読み器ではファイルごとに1から数える（紙の本の注文の見本と PDF では本の通し）。各ファイル（章）の1頁目は `@page :nth(1 of chapter)` で指す（ひな形の style.css の `body { page: chapter; }`）。`@page :first` は本の1頁目（表紙）だけに当たる。目次に頁番号は入らない（読み器では目次から飛べる）。章が1〜2頁の短い本では頁番号が「2」ばかりになるので、消してよい（`@page` の `@bottom-center` を `content: none`）。読み器の画面サイズでは、頁番号は出ない。
- 縦組みと横組みを途中で変えるときは、`book.json` の `"writing"` と、`style.css` の `html { writing-mode: … }` の両方を変える。ひな形の CSS は組み方向ごとに値が違うので、組み方向に合ったほうのひな形から始めるのが早い。

## 3. 作る → 見る → 直す（必ず見本を目で見る）

1. **固める**: `tar -czf book.tgz book.json style.css pages $(ls -d css images fonts audio video 2>/dev/null)`（css・images・fonts・audio・video は、あるものだけが入る）
2. **見本**: 頁の画像と点検の結果を取ってきて、**画像を開いて目で見る**。前の見本は消してから広げる（古い画像を見ないため）。

   ```
   curl -sS -F book=@book.tgz "https://cti.li/contents/book/api.php?do=preview&page=all" -o preview.tgz
   rm -rf preview && mkdir preview && tar -xzf preview.tgz -C preview && rm preview.tgz
   ```

   PowerShell では（固めるところから）:

   ```
   $d = @('css','images','fonts','audio','video') | Where-Object { Test-Path $_ }
   tar -czf book.tgz book.json style.css pages @d
   curl.exe -sS -F "book=@book.tgz" "https://cti.li/contents/book/api.php?do=preview&page=all" -o preview.tgz
   if (Test-Path preview) { Remove-Item -Recurse -Force preview }
   New-Item -ItemType Directory preview | Out-Null
   tar -xzf preview.tgz -C preview; if ($LASTEXITCODE -eq 0) { Remove-Item preview.tgz }
   ```

   tar が失敗したら、`preview.tgz` の中身（エラーの文）を読む。

   - `preview/report.txt` を先に読む。点検の結果（`[誤り]`・`[注意]`）、頁のファイルごとの頁数と頁の埋まり具合（余白を含む頁全体に対する割合なので、字でいっぱいの頁でも 85% ほど）、頁数の合計、自動の注意（表紙が2頁に割れた・章の最後の頁に字が少ししかない・途中の頁が大きく空いた・縦組みで横倒しの数字 など）が出る。`[誤り]` は必ず直す。`[注意]` も読んで直す。
   - `preview/p003-001.png` は「頁のファイルの3番目の1頁目」。
   - `page=all` のとき（`mode=screen`・`size=` を付けないとき）は、紙の本の表紙を開いた形 `preview/cover-print.png` も入る（横組みは左から裏表紙・背・表紙、縦組みは表紙・背・裏表紙）。背幅は頁数の合計で決まる。report.txt の「紙の本の表紙」の行も読む。
   - `page=` は**頁のファイルの番号**（report.txt の一覧の番号）で、`all`・`3`・`3-5`・`1,3,5`。直したら、直した頁のファイルだけを見直せばよい。
   - `dpi=`（24〜150、既定 100）。`mode=screen` で読み器の「画面サイズ」（携帯 100×190mm）、`size=large`・`xlarge` で文字を大きくしたとき。
   - 点検だけなら `do=check`（画像なし、すぐ返る）。
3. **見るところ**: 字や絵が版面からはみ出していないか／見出しだけが頁の終わりに取り残されていないか／章の最後の頁に1〜2行だけ残っていないか／途中の頁が大きく空いていないか／絵の大きさ／縦組みの数字・英字の向き／ルビ／目次／表紙／紙の本の表紙（`cover-print.png`。背の題が読めるか、裏表紙の文が切れていないか、表紙と背・裏表紙の色が合っているか）。
   - **整えるのは、読み器の標準（`book.json` の判型・文字の大きさ標準）。**
   - **仕上げの前に一度、`mode=screen` で表紙・絵のある頁のファイル・奥付を見る**（例: `page=1,4,9&mode=screen`）。ここでは割れ・はみ出しだけを直す（読む人が画面や字の大きさを変えたときの空きや1行の残りまでは直さなくてよい）。`size=xlarge` も同じ（見るのは任意）。
   - `[注意]` の「途中の頁が大きく空いた」は、写真を次の頁に大きく載せるなど、わざとそうしたのなら残してよい。
4. **仕上げ**: `curl -sS -F book=@book.tgz "https://cti.li/contents/book/api.php?do=epub" -o book.epub`（PowerShell では `curl.exe -sS -F "book=@book.tgz" "https://cti.li/contents/book/api.php?do=epub" -o book.epub`）
   誤りがあると EPUB にならず、`book.epub` の中身が誤りの報告（文）になる。小さすぎるときは開いて読む。表紙の絵（images/cover.jpg）が無ければ、表紙の頁を組んだ絵が本棚の表紙になる。EPUB には判型（`book.json` の size）も記録される。紙の本（ペーパーバック）の表紙も EPUB に入る（4 の「紙の本の表紙」）。

## 4. 書き方の要点（組版エンジンは Copper）

- 判型は `book.json` で決まる。`style.css` には `@page { size }` を書かず、`@page { margin: 上 右 下 左; @bottom-center { content: counter(page) } }` で余白と頁番号を決める。
- **1頁の行数**は、余白・文字の大きさ・行送りで決まる。縦組みでは、1頁の行数 ≒ （頁の幅 − 左右の余白）÷（文字の大きさ × 行送り）、1行の字数 ≒ （頁の高さ − 上下の余白）÷ 文字の大きさ（1pt = 0.353mm）。横組みは幅と高さを入れ替える。判型を変えたときの目安（縦組み、行送り 1.7）:
  - `a6`（文庫）: 9pt、余白 上下 14mm・左右 11.5mm → 15行×37字
  - `shinsho`: 9.5pt、余白 上 18・下 16・左右 13mm → 15行×42字（ひな形）
  - `b6`: 9.5pt、余白 上 18・下 16・左右 15mm → 17行×44字
  - `a5`: 10pt・行送り 1.75、余白 上 20・下 18・左右 17mm → 18行×48字

  章の最後の頁に1行だけ残ったら、どれかを少し変える。
- 段落の初めは一字下げ（見出しの直後も下げる）。字下げしない段落は `<p class="noindent">`（「で始まる会話を下げない本もある。元の本や利用者の好みに合わせる）。
- ルビ `<ruby>漢字<rt>かんじ</rt></ruby>`、縦中横 `<span class="tcy">12</span>`、傍点・圏点 `<span class="em">…</span>`、脚注 `<span class="fn">注の文</span>`（`float: footnote`）。
- **縦組みの数字**: 縦組みの文の数字は漢数字にするのが普通。量や数は位取りで（3つ→三つ、10年→十年、100本→百本、25人→二十五人）、年号・番号は一字ずつ（1962年→一九六二年）。数字のまま残したいもの（型番・番地など）は、2桁までは縦中横（`<span class="tcy">12</span>`）。半角のままだと横倒しになる（点検で注意が出る）。原稿の数字を直したら報告する。
- **位置を決めるとき**: 縦組みでは、上からの距離が `margin-inline-start`（% は版面の高さに対して効く）、右からの距離が `margin-block-start`（mm で）。横組みでは上からの距離を `margin-top` の mm で書く（% の margin・padding は版面の**幅**に対して効く）。`height: 100%` のような高さ・幅の % と flex の space-between は、思ったように広がらないことがある。表紙・扉・奥付は余白で置く。
- **頁いっぱいの絵の表紙**は、`css/cover.css` の説明のとおり、頁の背景（`@page :first` の `background`）にする。`<img>` を `width: 100%; height: 100%` にして頁いっぱいにしようとしない（画面サイズで割れる）。
  - 題が描いてある絵: `images/cover.jpg` にする（そのまま本棚の表紙になる）。
  - 題の無い絵に題・著者を重ねる: `images/cover-art.jpg` など**別の名前**にして背景にし、題・著者の字を上に置く。本棚の表紙は、その表紙の頁を組んだ絵から作られる（`cover.jpg` にすると、題の無い絵がそのまま本棚に出る）。
- **紙の本の表紙**: どの本にも、紙の本（ペーパーバック）で刷るときの表紙が EPUB に自動で入る。表紙は表紙の頁を刷る細かさで組んだ絵、背は題と著者、裏表紙は題・紹介文・著者。背と裏表紙の地の色は、表紙の頁の背の側の端の色。何もしなくてよい。変えたいときだけ `book.json` に書く:
  - `"back"`: 裏表紙の文（紹介文と変えたいとき。改行は段落の区切り）。
  - `"cover_color"`: 背と裏表紙の地の色（`"#1a2b3c"` の形）。字の色は地の明るさで白か黒になる。
  - 刷った表紙が粗く見えないよう、表紙の絵は長辺 2500 ピクセルくらいまで大きくてよい。紙の本にできるのは本文が 20〜500 頁の本。
- 縦組みの中の英字の名前・URL は横倒しのままでよい（縦組みの本では普通）。数字は下の「縦組みの数字」のとおり。
- 絵: `<figure><img src="images/x.jpg" alt="…"/><figcaption>…</figcaption></figure>`。大きさは `max-block-size`（縦組みでは横幅、横組みでは高さ。ひな形は版面の半分まで）。写真を1枚で1頁に大きく載せるなら `<figure class="page">`（ひな形にある。前後で改頁し、版面の 85% まで）。文の後ろで絵が次の頁へ1枚だけ送られて小さく見えるときも、これにする。その間の大きさにしたいときは、絵ごとに `<img style="max-block-size: 65%">` のように 50%〜85% で変えてよい。JPEG・PNG は長辺 2000 ピクセルくらいまで。**SVG も使える**（そのまま EPUB に入る。viewBox を絵にぴったり詰めると大きく出る。SVG の中の字の書体も下の書体から選ぶ）。全体で 60MB を超えない。
- **音声・動画**: `<audio controls src="audio/1.mp3"></audio>`、`<figure><video controls src="video/1.mp4" poster="images/1-poster.jpg" width="640" height="360"></video><figcaption>…</figcaption></figure>`。読み器では、押すと鳴る・再生する。PDF と紙の本では再生できないので、動画には `poster`（止まった絵）と、何の動画かが分かる説明を付ける。動画は mp4（H.264）で短く小さく（長辺 1280 ピクセルくらいまで）。全体で 60MB を超えない。見本の画像で、`poster` の絵が版面に収まっているかを見る。
- **リンクの見た目は画面だけ**: 紙の本ではリンクを開けないので、本文と同じ姿にする。ひな形の style.css のとおり、外には `a { color: inherit; text-decoration: none; }` だけを書き、色・下線・罫はその後ろの `@media interactive { … }` の中に書く（読み器の画面だけで効き、紙の本の見本と PDF には当たらない）。`@media screen` や `@media print` で分けない（読み器は画面でも print として組み、screen には当たらない）。注の番号のように紙でも意味のある色は、`a.note-ref { color: … }` のようにクラスを付けて外に書いてよい。見本（`do=preview`）は画面の姿なので、interactive の色が出ていてよい。
- 改頁は `break-before: page`、割りたくないまとまりは `break-inside: avoid`、見出しの直後で頁を割らないのは `break-after: avoid`。並べるときのあきは `margin` より `gap`（flex・grid）。flex-wrap・grid・border-radius・background・`::before` の counter・表の罫は効く。
- **読み器の「画面サイズ」（携帯）**: 頁の余白は読み器が細く決め（6mm くらい。`@page` の margin は効かない）、版面は幅 87mm・高さ 177mm ほどになる。表紙・扉・奥付の位置や絵の大きさは、判型の版面にもこの大きさにも収まる mm で決める。画面サイズのときだけ効く規則は書けない（`@media (max-width: …)` で見分けようとしない。幅の測り方が頁の余白で変わり、当てにならない）。
- 書体（cti.li にあるもの。太字の有無）:
  - 明朝: `"Noto Serif JP"`（太字あり）・`"Shippori Mincho"`（太字あり）・`"Zen Old Mincho"`（太字あり）・`"BIZ UD明朝"`（太字あり）・`"Kaisei Tokumin"`（太字あり）・`"Sawarabi Mincho"`（太字なし）・`"Hina Mincho"`（太字なし）
  - ゴシック: `"Noto Sans JP"`・`"Zen Kaku Gothic New"`・`"BIZ UDゴシック"`・`"M PLUS 1p"`（どれも太字あり）・`"Sawarabi Gothic"`（太字なし）
  - 丸ゴシック: `"Zen Maru Gothic"`（太字あり）・`"Kiwi Maru"`（中太まで）
  - 手書き風・飾り: `"Klee One"`（やや太まで）・`"Yusei Magic"`・`"Mochiy Pop One"`・`"Dela Gothic One"`・`"DotGothic16"`（どれも太字なし）
  - ほかの書体は `fonts/` に置いて `@font-face` で読む。
  - **Dela Gothic One には縦書き用の（）【】が無い。** 縦組みで使うなら、括弧を `<span style="text-orientation: sideways">（</span>` のように倒す。
- **日本語でない本（英語など）**: 横組みのひな形から作り、`book.json` の `"language"` をその言語（英語なら `"en"`）にする。本文・見出し・表紙・目次・奥付の言葉も、すべてその言語で書く（「目次」「奥付」などの日本語を残さない）。
  - 書体は、その言語の字のある書体にする。上の和文の書体の欧文は、英語の本文には向かない。英語なら、明朝の代わりに `"Libertinus Serif"`・`"Source Serif 4"`・`"Libre Caslon Text"`・`"PT Serif"`、ゴシックの代わりに `"Source Sans 3"`・`"Noto Sans"`（どれも斜体・太字あり）。
  - 英語の段落は、章や節の最初の段落を下げず、2 つ目から 1.5em ほど下げる（`p { text-indent: 0 } p + p { text-indent: 1.5em }`）。段落の間は空けない。
  - 両端そろえ（`text-align: justify`）にするときは `hyphens: auto` も付ける（語の間が空きすぎない）。
- 使えないもの: `<script>`・フォーム・外のサイトの絵や CSS（手元の images/・css/ に置いて読む）。点検で外される。
- 色は自由。細い字に薄い色は読みにくい。

## 5. スライドを入れる（発表にも使う本）

横組みの本だけに入れる（縦組みの本には入れない）。本の中では、スライドが 16:9 の枠で本文の間に入り、そのまま本の図を兼ねる。後に続く本文が、そのスライドの説明になる。cti.li の読み器で帯の「スライド」を押すと、スライドだけが 1 枚ずつ画面いっぱいに出る（1280×720。本文・表紙・目次・奥付は出ない）。発表に使い、聞いた人は本で読み返せる。

1. **CSS を足す**: `curl -sSL -o slides.css https://cti.li/contents/book/slides.css`（PowerShell では `curl.exe`）で取り、その中身を `style.css` の終わりにそのまま書き足す（エージェントのファイルを書く道具で）。`slides.css` は消す。
2. **書き方**:

   ```html
   <div class="slide">
     <p class="slide-title">家に備えておくもの</p>
     <ul>
       <li>水: 1人1日3リットル、3日分</li>
       <li>明かり: 懐中電灯と予備の電池</li>
     </ul>
   </div>
   <p>まず、家に備えておくものの話をしました。水は……</p>
   ```

   - スライドは**頁のファイルの一番外**（body のすぐ下）に置く。ほかの要素の中に入れると、発表のときに外の要素ごと消える。
   - スライドの題は `<p class="slide-title">`。h1・h2 にしない（目次に載ってしまう）。
   - 1 枚に載せるのは、題と 5〜7 行まで。短い言葉で書き、文章は後の本文に書く。原稿が講演の原稿なら、話の区切りごとに 1 枚にする。
   - **同じ写真や図を 2 度載せない。** 本の中のスライドは、そのまま本の図になる。発表で見せる写真や図（グラフ・地図・表）は「図のスライド」にして、本文の側にはくり返さない。後に続く本文で、その図を説明する。
   - 図のスライド: `<div class="slide fig">` に、題と `<figure><img src="images/…" alt="…"/><figcaption>図の説明や出典</figcaption></figure>` を 1 つだけ入れる。図がスライドいっぱいに出る。表なら `figure` の代わりに `table` を置く（5 行ほどまで）。
   - 図の中の字は、スライドの字と同じ大きさにする（本では、スライドの字は 8.5pt になる）。原稿のグラフ・地図・図解は、字が小さいことが多いので SVG で描き直す（数や場所は原稿の図のとおりにし、変えない）。SVG は `width="1200" height="520" viewBox="0 0 1200 520"` で描き、**字は `font-size="40"` 以上**にする（これでスライドの字と同じ大きさになる。小さな字や細かい書き込みは、本でも発表でも読めない）。写真はそのまま使う。
   - 細かくてスライドでは読めないもの（行の多い表・細かい地図・縦に長い写真など）は、スライドにしないで、本文の側の原稿の位置に `figure` で大きく載せる（説明の `figcaption` も入れる）。スライドには要点を短い言葉で書き、その図はくり返さない。
   - 左右に分ける: `<div class="cols"><div>…</div><figure><img src="images/…" alt="…"/></figure></div>`。文字のスライドに小さな写真を添えるときに使う。スライドの中の絵の高さは自動で抑える。
   - 表題のスライド: `<div class="slide title show-only">` に題・副題・話す人の名前を `<p>` で入れ（題は `class="slide-title"`）、表紙のファイル（`00-cover.html`）の終わりに置く。`show-only` を付けたスライドは発表のときだけ出て、本には出ない。終わりのあいさつ（「ありがとうございました」など）も `show-only` にして、最後の章の終わりに置く。
   - 章の題（h1）は発表では出ない。章の区切りを見せたいなら、章の頭にスライドを置く。
   - スライドの中の大きさ（字・あき）は em で書く（mm・pt で書くと発表のときに小さく見える）。
3. **見本**: `do=preview` に `mode=slide` を付けると、発表と同じ組み方で 1 枚ずつの画像になる（例: `?do=preview&page=all&mode=slide`）。`report.txt` に、頁のファイルごとのスライドの枚数と画像の名前が出る。`[注意] … 縦に伸びています` が出たスライドは 1280×720 に収まっていないので、字を減らすか 2 枚に分ける。スライドの無い頁のファイル（表紙・奥付など）の白い頁は送られない。本の形の見本（`mode` を付けない）も今までどおり見る。

## 6. 終わったら利用者に伝える

**利用者が使っている言葉で書く**（日本語で頼まれたら、途中の返事も直しのときも日本語）。技術に詳しくない人が読むので、**短く、専門の言葉やファイルの名前を並べずに**書く。伝えるのは次のこと。

- できた `book.epub` の場所。
- 読み器のボタンの名前は、ブラウザの言語で変わる。日本語以外で頼まれたら英語の名前で書く（「EPUB を開く」＝“Open an EPUB”、「設定」→「本の大きさ」＝“Settings” → “Book size”、「スライド」＝“Slideshow”、「保存」＝“Save”）。
- 読み方: ブラウザで https://cti.li/contents/reader.html を開き、「EPUB を開く」で `book.epub` を選ぶ（選ぶとすぐ組んで出る）。スマホでも読める（開いたブラウザでだけ読め、リンクを渡しても他の人は読めない）。
  - 判型を新書判（`shinsho`）以外にしたときは、読み器の「設定」の「本の大きさ」で同じ判型（例: 文庫・A6）を選ぶよう伝える（選ぶとすぐ組み直る）。読み器はまだ本の判型を読まない。
  - スライドを入れた本は、本の下に出る帯の「スライド」を押すと、スライドだけが 1 枚ずつ全画面で出る（帯が消えていたら、本の上でマウスを動かすか画面を軽く叩く。メニューの「スライド（ウィンドウ内）」なら全画面にしない）。画面の左右を押す・矢印のキー・プレゼン用のリモコンで送り、Esc で終わる。スライドの帯の「保存」で、インターネットにつながっていなくても開けるファイル（HTML）に保存できる。
- 直したいときは、このフォルダでまた AI に頼めばよい（`pages/` などを直して、3 の手順で作り直す）。
- 自分で決めたこと（組み方・判型・表紙・書き足したもの など）と、気になる所が残っていればそれ。
- このフォルダの中のファイルは、直すときに使うので消さずに残しておくように、と一言（作業に使った `preview/`・`book.tgz`・`word.txt` は、こちらで消してよい）。

## 7. 守ること

- 他人の文章や絵を勝手に使わない。使ってよいのは、利用者が権利を持つもの・許しを得たもの・著作権の切れたもの（青空文庫など）。青空文庫の本は、奥付の底本の記述を消さない。
- 1回に送れるのは 60MB まで。
- 点検と見本は cti.li の組版を使う。1回ずつ結果を見てから次を送る（同時に何本も送らない）。
- 混んでいると `429`・`503` が返る（受けたファイルが tar.gz でなく短い文になり、tar が失敗する。そのファイルを読めば分かる）。30秒ほど待ってからやり直す。
- 見本の `report.txt` に `[誤り] 組めませんでした` だけが出たときは、本の誤りではなく cti.li の組版が一時的に失敗したことがある。本を直さずに、30秒ほど待ってから同じものを送り直す。続けて出るなら、その文を利用者に伝える。
