任何涉及 .pptx 檔案的情境都使用此技能,無論是作為輸入、輸出或兩者。包括:建立投影片組、提案簡報或簡報;讀取、解析或擷取任何 .pptx 檔案的文字(即使擷取的內容將用於其他地方,例如電子郵件或摘要);編輯、修改或更新現有簡報;合併或分割投影片檔案;處理範本、版面配置、備忘稿或註解。每當使用者提到「deck」、「slides」、「presentation」或引用 .pptx 檔名時觸發,無論他們後續打算如何處理內容。如果需要開啟、建立或處理 .pptx 檔案,請使用此技能。
PPTX 技能
快速參考
| 任務 | 指南 |
|---|---|
| 讀取/分析內容 | python -m markitdown presentation.pptx |
| 編輯或從範本建立 | 閱讀 editing.md |
| 從頭建立 | 閱讀 pptxgenjs.md |
讀取內容
# 文字擷取
python -m markitdown presentation.pptx
# 視覺概覽
python scripts/thumbnail.py presentation.pptx
# 原始 XML
python scripts/office/unpack.py presentation.pptx unpacked/
編輯工作流程
閱讀 editing.md 以取得完整細節。
- 使用
thumbnail.py分析範本 - 解壓縮 → 操作投影片 → 編輯內容 → 清理 → 重新打包
從頭建立
閱讀 pptxgenjs.md 以取得完整細節。
當沒有範本或參考簡報可用時使用。
設計點子
不要建立無聊的投影片。 白底黑字的條列式內容無法讓人印象深刻。針對每張投影片,考慮從此清單中挑選點子。
開始之前
- 選擇大膽且符合主題的配色:配色應針對此主題設計。如果將你的顏色套用到完全不同的簡報後仍然「可行」,代表你沒有做出足夠具體的選擇。
- 主色優先於均等:一種顏色應佔主導(60-70% 視覺重量),搭配 1-2 種輔助色和一種鮮明的強調色。切勿讓所有顏色重量均等。
- 深淺對比:標題和結論投影片使用深色背景,內容投影片使用淺色背景(「三明治」結構)。或者全場使用深色背景以營造高級感。
- 堅持一個視覺主題:挑選一個獨特元素並重複使用——圓角圖片框、彩色圓圈中的圖示、粗單邊框線。在每張投影片中延續使用。
色票
選擇符合主題的顏色——不要預設使用通用藍色。以下色票可作為靈感:
| 主題 | 主色 | 次要色 | 強調色 |
|---|---|---|---|
| 午夜行政 | 1E2761 (海軍藍) |
CADCFC (冰藍) |
FFFFFF (白) |
| 森林與苔蘚 | 2C5F2D (森林綠) |
97BC62 (苔蘚綠) |
F5F5F5 (奶油白) |
| 珊瑚能量 | F96167 (珊瑚紅) |
F9E795 (金色) |
2F3C7E (海軍藍) |
| 暖陶土 | B85042 (陶土紅) |
E7E8D1 (沙色) |
A7BEAE (鼠尾草綠) |
| 海洋漸層 | 065A82 (深藍) |
1C7293 (青綠) |
21295C (午夜藍) |
| 炭灰極簡 | 36454F (炭灰) |
F2F2F2 (米白) |
212121 (黑) |
| 青綠信任 | 028090 (青綠) |
00A896 (海沫綠) |
02C39A (薄荷綠) |
| 莓果與奶油 | 6D2E46 (莓果紅) |
A26769 (塵粉玫瑰) |
ECE2D0 (奶油白) |
| 鼠尾草寧靜 | 84B59F (鼠尾草綠) |
69A297 (尤加利綠) |
50808E (石板灰) |
| 櫻桃大膽 | 990011 (櫻桃紅) |
FCF6F5 (米白) |
2F3C7E (海軍藍) |
每張投影片
每張投影片都需要一個視覺元素——圖片、圖表、圖示或形狀。純文字投影片容易被遺忘。
版面配置選項:
- 雙欄(左側文字,右側插圖)
- 圖示 + 文字行(彩色圓圈中的圖示、粗體標題、下方說明)
- 2x2 或 2x3 網格(一側圖片,另一側內容區塊網格)
- 半出血圖片(左側或右側全滿)搭配內容疊加
資料呈現:
- 大型數據標示(大數字 60-72pt,下方小標籤)
- 比較欄(前/後、優/缺點、並排選項)
- 時間軸或流程圖(編號步驟、箭頭)
視覺修飾:
- 章節標題旁的小彩色圓圈圖示
- 關鍵數據或標語使用斜體強調文字
字體排版
選擇有趣的字體搭配——不要預設使用 Arial。挑選有特色的標題字體,並搭配乾淨的內文字體。
| 標題字體 | 內文字體 |
|---|---|
| Georgia | Calibri |
| Arial Black | Arial |
| Calibri | Calibri Light |
| Cambria | Calibri |
| Trebuchet MS | Calibri |
| Impact | Arial |
| Palatino | Garamond |
| Consolas | Calibri |
| 元素 | 大小 |
|---|---|
| 投影片標題 | 36-44pt 粗體 |
| 章節標題 | 20-24pt 粗體 |
| 內文 | 14-16pt |
| 圖說 | 10-12pt 淡化 |
間距
- 最小邊距 0.5 吋
- 內容區塊之間 0.3-0.5 吋
- 保留呼吸空間——不要填滿每一吋
避免(常見錯誤)
- 不要重複相同版面——在投影片之間變化欄位、卡片和標示方式
- 不要置中內文——段落和清單靠左對齊;僅標題置中
- 不要忽略大小對比——標題需要 36pt 以上才能從 14-16pt 的內文中脫穎而出
- 不要預設使用藍色——選擇反映特定主題的顏色
- 不要隨意混合間距——選擇 0.3 吋或 0.5 吋間距並一致使用
- 不要只設計一張投影片而忽略其他——要嘛全面投入,要嘛從頭到尾保持簡單
- 不要建立純文字投影片——加入圖片、圖示、圖表或視覺元素;避免純標題加條列式內容
- 不要忘記文字框內距——對齊線條或形狀與文字邊緣時,設定文字框的
margin: 0或偏移形狀以補償內距 - 不要使用低對比元素——圖示和文字都需要與背景有強烈對比;避免淺色背景上的淺色文字或深色背景上的深色文字
- 絕對不要在標題下方使用強調線——這是 AI 生成投影片的標誌;改用空白或背景顏色
品質檢查(必要)
假設一定有問題。你的工作是找出它們。
你的第一次渲染幾乎永遠不會正確。將 QA 視為除錯任務,而非確認步驟。如果第一次檢查就發現零問題,代表你不夠仔細。
內容 QA
python -m markitdown output.pptx
檢查是否有遺漏內容、錯字、順序錯誤。
使用範本時,檢查是否有殘留的佔位文字:
python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"
如果 grep 傳回結果,請在宣告成功前修正。
視覺 QA
⚠️ 使用子代理——即使只有 2-3 張投影片。你已經盯著程式碼太久,會看到你預期的內容,而非實際存在的內容。子代理有全新的視角。
將投影片轉換為圖片(請參閱轉換為圖片),然後使用以下提示:
請目視檢查這些投影片。假設有問題——找出它們。
檢查項目:
- 元素重疊(文字穿過形狀、線條穿過文字、堆疊元素)
- 文字溢出或被邊緣/框線裁切
- 裝飾線條為單行文字設計,但標題換行為兩行
- 來源引用或頁尾與上方內容碰撞
- 元素間距過近(< 0.3 吋)或卡片/區塊幾乎相連
- 間距不均(某處大片空白,另一處擁擠)
- 投影片邊緣邊距不足(< 0.5 吋)
- 欄位或類似元素未對齊一致
- 低對比文字(例如淺灰文字在奶油色背景上)
- 低對比圖示(例如深色圖示在深色背景上,且無對比圓圈)
- 文字框過窄導致過度換行
- 殘留的佔位內容
針對每張投影片,列出問題或疑慮,即使很小。
讀取並分析這些圖片:
1. /path/to/slide-01.jpg (預期:[簡短描述])
2. /path/to/slide-02.jpg (預期:[簡短描述])
回報所有發現的問題,包括小問題。
驗證循環
- 產生投影片 → 轉換為圖片 → 檢查
- 列出發現的問題(如果沒發現,請更嚴格地再次檢查)
- 修正問題
- 重新驗證受影響的投影片——一個修正常常會引發另一個問題
- 重複直到完整檢查未發現新問題
在完成至少一次修正與驗證循環之前,不要宣告成功。
轉換為圖片
將簡報轉換為單張投影片圖片以進行視覺檢查:
python scripts/office/soffice.py --headless --convert-to pdf output.pptx
pdftoppm -jpeg -r 150 output.pdf slide
這會建立 slide-01.jpg、slide-02.jpg 等檔案。
修正後重新渲染特定投影片:
pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed
相依套件
pip install "markitdown[pptx]"- 文字擷取pip install Pillow- 縮圖網格npm install -g pptxgenjs- 從頭建立- LibreOffice (
soffice) - PDF 轉換(透過scripts/office/soffice.py自動設定為沙盒環境) - Poppler (
pdftoppm) - PDF 轉圖片






