mdslide

マスター pptx の作り方

mdslide は書式(フォント・配色・背景・ロゴ・フッター)をすべて pptx のスライドマスターから取ります。どのレイアウトを何に使うかはレイアウトの名前で決まり、枠の位置、ロゴや帯、フォント、行間はマスターから読み取ります。次の 5 つの名前を揃えれば、手持ちのテンプレートがそのまま使えます。

レイアウト名 役割 置くプレースホルダー 必須
Cover 表紙 タイトル(ctrTitle か title)、サブタイトル(subTitle か body) 必須
Agenda 目次 タイトル、本文(body か obj)1 つ 必須
Section 章の中表紙 タイトル(本文は任意) 必須
Body-Text 本文 タイトル、本文(body か obj)1 つ。本文枠はできるだけ広く 必須
Body-2col 2 段組み タイトル、本文(body か obj)2 つを左右に 任意(無ければ 2 段を Body-Text の本文枠にまとめて入れる)

まずは見本で試す

examples/sample-master.pptx は、python-pptx に同梱された Office の既定テンプレート(MIT License。表示は THIRD_PARTY_NOTICES.md)から作った 16:9 の見本です。上の 5 つのレイアウトに必要な枠だけを置いています(ほかに、未使用の例として Blank が 1 つ)。scripts/make_sample_master.py で作り直せます。使い方ページからもダウンロードできます。

見本はどこに置かれるか

実運用のスライドから作る(見本を横に置いて)

いま使っているスライドを土台にすると、フォント・配色・ロゴ・フッターがそのまま残る。見本は「レイアウト名とプレースホルダーの手本」として横に開いておく。

  1. 実運用の pptx を複製し、複製のほうを PowerPoint で開く。「表示」→「スライドマスター」
  2. 見本 sample-master.pptx をもう一つのウィンドウで同じくスライドマスター表示にし、レイアウト一覧の名前と、各レイアウトにあるプレースホルダー(タイトル、本文、サブタイトル)を見比べる
  3. 実運用側で、表紙に使っているレイアウトを右クリック →「レイアウト名の変更」→ Cover。同じ要領で目次を Agenda、章の中表紙を Section、本文を Body-Text、2 段組みを Body-2col にする。名前は見本からコピーすると間違えない
  4. 対応するレイアウトが無い役割は、近いレイアウトを右クリック →「レイアウトの複製」で作り、「プレースホルダーの挿入」→「コンテンツ」で本文枠を置く。見本の同じ名前のレイアウトと枠の構成が同じになっていればよい
  5. 「マスター表示を閉じる」。通常のスライドを全部削除し、master.pptx(または会社名などの分かる名前)で保存する
  6. 設定のマスターで「pptx を取り込む」。カードに 5 つの役割のレイアウト名(並びはマスター内の順)が並び、「不足」が出なければ完成。ツールバーのマスター選択で保管フォルダのマスターを選ぶと、frontmatter に master: 名前.pptx と書かれる(「このフォルダの master.pptx」を選んだときは書かれない)

AI に任せる場合は、後述の「AI に頼む(プロンプト)」の 1 行目を実運用の pptx のファイル名にして貼り付ける。

装飾入りの見本(テスト用)

examples/decorated-master.pptx は、見本に企業マスターらしい装飾を足したものです。表紙は全面の生成画像(夜景)と写真風のタイル 3 枚とロゴ、章は左の画像帯。表紙以外のレイアウトにはヘッダ帯(ドット模様とロゴ)とフッタ帯(アイコン、固定文字、日付、ページ番号)が出ます。フォントは Avenir Next / Hiragino Sans、配色は紺・青緑・橙。プレビューと書き出しにマスターの要素がどう出るかを試すときに使います。画像はすべて Pillow で描いたもので、scripts/make_decorated_master.py で作り直せます(見本 examples/sample-master.pptx に装飾を足します)。

手持ちのパワポから作る(PowerPoint での手順)

  1. 普段使っているテンプレートを開き、「表示」→「スライドマスター」。左の一覧に並ぶのがレイアウトです。
  2. 表紙に使っているレイアウトを右クリック →「レイアウト名の変更」で Cover にします。同じ要領で、目次を Agenda、章の中表紙を Section、本文を Body-Text、2 段組みを Body-2col に。
  3. 該当するレイアウトが無い役割は、近いものを右クリック →「レイアウトの複製」で作り、「プレースホルダーの挿入」→「コンテンツ」で本文枠を置きます。Agenda は Body-Text の複製で十分です。
  4. 「マスター表示を閉じる」。通常のスライド(ページ)は全部削除し、master.pptx として保存します。
  5. 資料フォルダに置くか、設定のマスターで取り込みます。「不足」が出なければ完成です。

AI に頼む(プロンプト)

Claude Code や ChatGPT にテンプレートの pptx を渡し、次をそのまま貼り付けます。1 行目のファイル名だけ書き換えてください。python-pptx が使える環境ならスクリプトで、使えなければ PowerPoint での手順を返します。

手元の PowerPoint テンプレート(ファイル名: ここに書く.pptx)を、mdslide 用のスライドマスター master.pptx に変換してください。

前提
- mdslide は Markdown からスライドを生成するツールで、書式(フォント・配色・背景・ロゴ・フッター)はこの master.pptx のスライドマスターとレイアウトから取ります。元ファイルのテーマはそのまま残し、新しいテーマは作らないでください。
- レイアウトは名前で役割を判定します。名前は次の 5 つに揃えてください(大文字小文字と空白は無視されます)。

必要なレイアウトとプレースホルダー
- Cover: 表紙。タイトル(ctrTitle か title)とサブタイトル(subTitle か body)を 1 つずつ
- Agenda: 目次。タイトル 1 つと本文(body か obj)1 つ。本文には箇条書きが入ります
- Section: 章の中表紙。タイトル 1 つ(本文は無くてもよい)
- Body-Text: 本文。タイトル 1 つと本文(body か obj)1 つ。本文枠はできるだけ広く
- Body-2col: 2 段組み。タイトル 1 つと本文(body か obj)2 つを左右に
- 本文の枠は、役割ごとに上の数だけにしてください(説明用や小見出しの枠が残っていると、mdslide は面積の大きい枠を本文に使います)。
- 画像用のレイアウトは不要です(ツールが Body-Text の上に画像を配置します)。日付・フッター・スライド番号のプレースホルダーは、元ファイルにあれば各レイアウトに残してください(mdslide が書き出しでスライドに複製します)。

作業
1. 元ファイルのスライドマスターにあるレイアウトを一覧し、役割の近いもの(例: Title Slide → Cover、Title and Content → Body-Text、Two Content → Body-2col、Section Header → Section)を選んで上の名前に変更してください。
2. 該当するものが無い役割は、近いレイアウトを複製して作ってください。Agenda は Body-Text の複製でかまいません。
3. 上の 5 つ以外のレイアウトは残してもかまいません。ただし名前が Title Slide、Section、Chapter、TOC、表紙、目次、中表紙、章 で始まるものは同じ役割として扱われ、先にあるほうが使われるので、名前を変えてください。
4. 通常のスライド(ページ)はすべて削除し、マスターとレイアウトだけのファイルにしてください。
5. master.pptx として保存し、最後に各レイアウトの名前とプレースホルダー(種類・idx・位置)を一覧で出力してください。

進め方
- python-pptx が使えるならスクリプトで行い、そのスクリプトも示してください。python-pptx でできるのはレイアウトの名前変更と、使わないレイアウトの削除(prs.slide_layouts.remove)までです。スライドの削除(prs.slides._sldIdLst から外して prs.part.drop_rel する)とレイアウトの複製は XML 操作が必要です。難しければ、PowerPoint の「表示 > スライドマスター」で行う手順(右クリック > レイアウト名の変更、レイアウトの複製、プレースホルダーの挿入)を代わりに示してください。

確認