ADR-0023 本文の枠はプレビューと書き出しで同じ規則で選び、見本マスターを 16:9 で作り直す
状況
- プレビュー(
SlideCanvas)と行数の見積もり(boxes.ts)は、レイアウトの XML で最初に出てくる body / obj の枠を本文に使っていた。書き出し(tools/export_pptx.py)は種類で並べ、body、obj、subTitle の順に使っていた。
- 枠が 2 つ以上あるレイアウトでは、入る枠が食い違った。見本
examples/sample-master.pptx の Agenda は Office の「Content with Caption」を改名したもので、プレビューは右の大きな枠、書き出しは左の細い説明用の枠に目次を入れていた。Office の「Comparison」を 2 段組みに使うと、書き出しは本文を小見出しの枠に入れる。
- Body-2col が無いマスターで 2 段組みを書き出すと、本文は Body-Text の 1 つの枠にまとまる。一方プレビューは、2 段目を既定の右半分に重ねて描いていた。
- 見本は python-pptx の既定テンプレート(4:3)の幅だけを 16:9 に広げたもので、表紙・章・目次・2 段組みの枠が 4:3 の位置のまま右側が空いていた。作り方の記録も無かった。
決定
- 本文の枠は
bodyPlaceholders(src/master/importMaster.ts)と body_placeholders(tools/export_pptx.py)で同じ規則で選ぶ。body / obj の枠を面積の大きい順(同じ大きさなら並び順)に使い、2 段組みは大きい 2 つを左から使う。表紙はサブタイトルを先に使う。ほかのレイアウトでサブタイトルを使うのは、body / obj が無いときだけ。プレビュー、行数の見積もり、マスターの重なりの警告、書き出しが同じ枠を使う。
- 2 段組みで枠が 1 つしか無いときは、プレビューも書き出しと同じく、1 つの枠に本文をまとめて描く。
- 見本は
scripts/make_sample_master.py で python-pptx の既定テンプレートから作る。スライドは 16:9 で、枠は PowerPoint の 16:9 の位置に置く。レイアウトは Cover / Agenda / Section / Body-Text / Body-2col の 5 つと、未使用の例として Blank だけを残す。Agenda はタイトルと本文の枠 1 つ。
- 装飾入りの見本(
scripts/make_decorated_master.py)は作り直した見本から作り、2 段組みの列もマスターの本文と同じ高さに揃える。
結果
- 手持ちのテンプレートに説明用の枠や小見出しの枠が残っていても、本文は大きい枠に入り、プレビューと書き出しが一致する。
- 見本の枠がスライドの幅いっぱいになる。見本を取り込み済みの場合は、保管フォルダの古い
sample-master.pptx を消してから取り込み直す(同名のファイルは上書きしない)。
- deck.json の契約は変えない(version 2 のまま)。
状態