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 の本文枠にまとめて入れる) |
Title Slide / 表紙 は Cover、TOC / 目次 は Agenda、Chapter / 中表紙 / 章 と Office 既定の Section Header は Section として扱われます。同じ役割に当たるレイアウトが複数あると、先にあるほうが使われます。役割に当たらない名前のレイアウトは無視されます。Body-Text の上にツールが配置します(ADR-0006)。date が入ります。date が無ければ日付は出ません。マスターにだけあってレイアウトに無いものは出ません。examples/sample-master.pptx は、python-pptx に同梱された Office の既定テンプレート(MIT License。表示は THIRD_PARTY_NOTICES.md)から作った 16:9 の見本です。上の 5 つのレイアウトに必要な枠だけを置いています(ほかに、未使用の例として Blank が 1 つ)。scripts/make_sample_master.py で作り直せます。使い方ページからもダウンロードできます。
master.pptx という名前で置く(frontmatter に master: が無い資料はこれを使う)か、設定のマスターで「pptx を取り込む」sample-master.pptx として書かれる。保管フォルダは既定で ~/.config/mdslide/masters/(設定 masters.dir で変更可)。同じ画面の「Finder で表示」で開けるexamples/sample-master.pptx か、使い方サイトからのダウンロードでも同じものいま使っているスライドを土台にすると、フォント・配色・ロゴ・フッターがそのまま残る。見本は「レイアウト名とプレースホルダーの手本」として横に開いておく。
sample-master.pptx をもう一つのウィンドウで同じくスライドマスター表示にし、レイアウト一覧の名前と、各レイアウトにあるプレースホルダー(タイトル、本文、サブタイトル)を見比べるCover。同じ要領で目次を Agenda、章の中表紙を Section、本文を Body-Text、2 段組みを Body-2col にする。名前は見本からコピーすると間違えないmaster.pptx(または会社名などの分かる名前)で保存する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 に装飾を足します)。
Cover にします。同じ要領で、目次を Agenda、章の中表紙を Section、本文を Body-Text、2 段組みを Body-2col に。master.pptx として保存します。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 の「表示 > スライドマスター」で行う手順(右クリック > レイアウト名の変更、レイアウトの複製、プレースホルダーの挿入)を代わりに示してください。
Body-Text の本文プレースホルダーを広げます。out/deck.pptx を開き、フォントと配色が元のテンプレートどおりであること。