Handout Remake logo

Handout Remake

Community
xamjiang
handout-remake

把上課教材(PPT、PDF、筆記)重製成 iPad 上好讀、可手寫的深色 PDF 講義:從零講起、圖解、例題、練習與書寫區。使用者丟課程講義並要求做講義、教材、好讀版,或說「幫我整理這章」時使用,適用各種工程學科。

Overview

Publisherxamjiang
Repositoryhandout-remake
Skill namehandout-remake
Stars
169
Forks
6
Bundled files
4
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by xamjiang on GitHub. Read the source before you install it.

Installation

Install the Handout Remake AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/xamjiang/handout-remake/tree/main/skills/handout-remake
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/xamjiang/handout-remake.git /tmp/handout-remake
mkdir -p .claude/skills
cp -r /tmp/handout-remake/skills/handout-remake .claude/skills/handout-remake
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Handout Remake in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Handout Remake on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Handout Remake is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

iPad 深色講義製作 SOP

把老師的上課教材重新教一次,做成一份在 11 吋 iPad 直向閱讀、可以用 Apple Pencil 作答的深色 PDF。 這份文件是規則(怎麼教、怎麼排、怎麼畫);排版與建置用的檔案放在本 skill 資料夾(這份 SKILL.md 所在的資料夾),見〈檔案〉。

讀者設定:對這門課幾乎零基礎;用台灣正體中文;最在意資訊排版清楚,討厭花俏和雜亂的層級;喜歡生活例子和動手練習。

流程

  1. 讀懂來源。PPT 用 soffice --headless --convert-to pdf 轉成 PDF,再用 pdftotext -layout 取文字、pdftoppm -r 40 -png 轉縮圖並實際看過每一頁(公式和圖常常只存在圖片裡)。來源檔放在獨立資料夾,不要在裡面執行程式。
  2. 決定範圍並切段。一份講義只教一個小節,大約對應 6–12 張投影片、成品 12–18 頁。範圍以投影片為準,但不要逐張翻譯:先自己弄懂,再依「初學者要先知道什麼」重新安排順序。一章太長就拆成多份(例如「上」「下」),並在回覆中說明這份涵蓋到哪一頁。切成 3–6 個段落,每個段落只講一個概念。
  3. 寫內容,遵守〈教學規則〉。
  4. 畫圖,遵守〈圖解規則〉。
  5. 排成 HTML。照〈環境準備〉建立工作資料夾並複製檔案,然後複製 template.html 改寫內容。一個 <section class="page"> 就是一頁,手動分頁。
  6. 建置與檢查。node build.mjs 講義.html 講義.pdf,有任何「溢出」就調整內容或分頁直到為零。再用 pdftoppm -r 80 -png 轉圖,逐頁用 Read 看過,照〈交付前檢查〉走一遍。
  7. 驗算與交付。所有例題、練習、解答的數字用程式重算一次;生活例子裡的事實不確定就查證。存成 課名_節次_標題.pdf 交給使用者,回覆只需一兩句說明涵蓋範圍,以及任何你不確定或自行補充的地方。

教學規則

每個段落的順序:生活情境或動機 → 白話定義(術語中英對照)→ 圖解 → 公式 → 例題。每 2–3 個段落之後放一頁練習,解答固定放在練習的下一頁。整份最後依序是:本節重點、公式一覽、自我檢查、術語對照、下一節預告。

  • 從零講起。假設讀者只會國高中數學。每個新名詞出現前先有情境,出現時立刻定義,不要用還沒教的詞解釋新詞。
  • 術語中英對照。第一次出現寫成 <b>中文</b> <span class="en">english term</span>,之後用中文。公式卡下方附英文原式,題目中的關鍵量保留英文名,方便對照考卷與課本。
  • 生活連結要具體。說出這個概念用在哪個真實的產品或場景,並帶數字。舉不出好例子就不要硬舉。
  • 例題一步一步做。多步驟的題目先列「已知/要求/想法」,再用編號步驟解;每步有一句小標說明這步在做什麼,最後一步固定是「檢查答案合不合理」。投影片上有的例題優先採用並標明出處頁。
  • 練習有層次。每頁最多 3 題,標上「基本/觀念/變化/綜合」。練習不能只是把例題換數字,至少一題要換問法。每題配書寫區。
  • 解答頁:先給用螢光標出的最終答案,再給完整步驟;頁尾放「寫錯了?回頭看這裡」,指向該複習的頁碼。
  • 動手做(可選)。當概念能在電腦或手邊工具上親眼看到時(終端機指令、幾行 Python、試算表、計算機),用編號步驟帶著做,每步寫出「應該會看到什麼」。沒有實際執行過的輸出要註明是示意。
  • 語氣。白話、短句、直接講結論。不寫客套和過場,不用「不是……而是……」這類繞路的句型。
  • 不確定就說。投影片有錯或語焉不詳時照正確的教,並在回覆中告訴使用者;超出投影片的補充要有必要性。

中英混排:漢字與英數之間加半形空格;全形標點旁不加空格;引號用「」和『』;數字與單位之間加空格(10 秒、4 GHz),百分比和度數不加(25%);專有名詞大小寫正確。

視覺規則

頁面是 834 × 1194 pt,等於 11 吋 iPad 直向的螢幕點數,所以 CSS 的 pt 就是螢幕上的 pt,不需要縮放。所有尺寸都寫在 handout.css 的變數裡,不要在 HTML 內另外寫死字級、顏色或間距。

  • 內文 18pt、行高 1.8、每行約 37 個漢字。字重只有 400 和 600。
  • 深色:底色 #1c1c1e、內文 #e8e8ed,不用純黑純白。
  • 文字只有三種顏色:內文色、次要灰、一個藍色強調色。鮮豔色只能出現在圖解、公式色塊和提示框的小標。
  • 粗體只給第一次出現的術語;每頁最多一處 <mark> 螢光,留給最關鍵的一句。
  • 每頁最多三層:頁標題 → 區塊(圖、公式、例題、提示框)→ 內文。新的段落一律從新的一頁開始,頁標題上方用 .eyebrow 標「段落 N」與投影片頁碼。
  • 內容靠上排,下方留白沒關係,不要為了填滿而加東西;也不要把一頁塞到剩餘空間低於 0。
  • 元件只有這些,不要自創新樣式:術語定義 .terms、圖解 figure > .panel、公式卡 .formula、例題 .example、練習 .practice 加書寫區 .write、提示框 .note、表格、程式碼 pre.code、解答 .answer、重點 .keypoints、公式一覽 .fsheet、自我檢查 .check。
  • 提示框只有三種,一頁最多兩個:.note.life(生活中)、.note.warn(留意:容易搞錯的地方)、.note.lab(動手做的補充)。沒有側邊色條,靠淡色底與彩色小標區分。
  • 表格只有橫線;成對的概念用 .terms 並排比較。
  • 程式碼用等寬字型 JetBrains Mono,並關閉連字(==、!=、>=、<= 要照原樣顯示,不能被合成 ≠、≥ 這類符號);程式碼裡的中文註解由字型堆疊中的 Noto Sans TC 顯示。這兩點已寫在 handout.css,不要在 HTML 另外處理。
  • 標題以「開頭時加 class="hang",讓引號懸掛、文字對齊版心。

版面預算(每頁可用高度 1062pt):內文一行 32pt;頁標題區約 80pt;三行的提示框約 130pt;圖解約為 SVG 高度加 90pt;書寫區高度依題目選 164/200/260pt,一頁三題的書寫區總和不要超過 590pt。

圖解規則

適合畫圖的時機:有先後順序、有結構或層次、要比較大小、數量之間有關係、隨時間變化。只是把文字放進框框裡不算圖解,不要畫。

  • 用行內 SVG,viewBox 寬度固定 626,放在 .panel 裡,這樣 SVG 的單位就等於 pt。文字 13–15,標題類用 600。
  • 顏色一律用變數(fill="var(--blue)"),不寫色碼。每個色相有三階:--x 是圖形本體的鮮色,--x-tint 是深色的淡底,--x-ink 是放在深底上的亮色文字與線條。可用色相:blue、orange、green、pink、purple、teal、yellow;中性用 --text、--text-2、--axis、--line-strong、--gray-fill、--gray-soft。
  • 一個顏色只代表一件事,同一份講義裡跨圖一致,而且和公式色塊用同一套對應(例如某個物理量在公式裡是藍色,圖裡代表它的圖形也是藍色)。圖說要寫出顏色代表什麼。
  • 一張圖最多三個色相加灰色。
  • 鮮色圖形裡面不放字;文字放在圖形的上下或旁邊,用對齊或細線連結。
  • 扁平風格:圓角 8–10、線寬 1.5、線端圓頭;不用漸層、陰影、立體效果、表情符號。
  • 每張圖編號並附一句圖說;內文提到時用「圖 N」。
  • 節首頁右上角放一個 220pt 的小圖徽,用圓、圓角矩形、線條這些基本形狀和色盤組成,代表這一節的主題。
  • 函數圖形與座標圖:座標軸用 --axis 線寬 1.2,曲線用鮮色線寬 2.5–3。真正的資料圖表另外參考 dataviz 技能。

公式

  • 文字公式(用中文量名)寫成 .eq,每個量包在 <span class="v blue"> 這類色塊裡,分數用 .frac。
  • 符號公式用 KaTeX:行內 <span class="tex">…</span>,獨立一行 <div class="tex">…</div>,內容是 LaTeX 原始碼(<、& 要寫成 HTML 實體)。上色用巨集 \cB{}、\cO{}、\cG{}、\cP{}、\cV{}、\cT{}、\cY{},分別是藍、橘、綠、粉紅、紫、青、黃,和色塊同色。
  • 重要公式放進 .formula 公式卡:第一行文字公式,第二行同色的符號公式,最下面 .eq-en 放英文原式。
  • 例題步驟裡的算式放在 <p class="work">。

檔案

檔案用途
assets/handout.css全部樣式與色盤變數
assets/template.html每種頁面各一頁的骨架。裡面的歐姆定律只是示範元件怎麼用,製作時整段換成該課內容,頁數與段落數依教材調整
assets/package.json字型與 KaTeX 的固定版本
scripts/build.mjs渲染 KaTeX、鋪書寫區點陣、檢查每頁溢出、輸出向量 PDF

這些檔案直接複製使用,不要改寫或重打;需要調整樣式時改 handout.css 的變數。有些平台只接受特定副檔名,封包裡的檔案可能多了 .txt(例如 handout.css.txt),複製到工作資料夾時去掉 .txt 即可。

環境準備

bash
SKILL_DIR=<這份 SKILL.md 所在的資料夾>
mkdir -p handout && cd handout
cp "$SKILL_DIR"/assets/{handout.css,template.html,package.json} "$SKILL_DIR"/scripts/build.mjs .
npm install
node build.mjs template.html test.pdf   # 先確認環境能跑

build.mjs 會自動尋找 Playwright(先找本地,再找 /opt/npm-tools/node_modules);都沒有時執行 npm i playwright。字型一定要用 @fontsource 的靜態字重版本,改用 variable 版本會讓 PDF 內嵌成 Type 3 字型。

交付前檢查

  • build.mjs 沒有回報任何溢出
  • 每一頁都轉成圖看過:沒有文字重疊、孤字、被截掉的圖
  • 每個段落都從新的一頁開始;解答在練習的下一頁
  • 術語第一次出現都有英文;最後的術語對照表沒有漏
  • 圖的顏色對應和公式色塊一致,圖說有說明
  • 例題、練習、解答的數字都用程式驗算過
  • pdffonts 沒有 Type 3;pdfimages -list 是空的(全向量)
  • HTML 裡沒有寫死的色碼(grep -n '#[0-9a-fA-F]\{6\}' 講義.html 應該沒有結果)

補充

內容較多時,複習的各區塊可以拆成兩頁(重點與公式一頁、自我檢查與術語對照一頁)。若使用者改用其他尺寸的 iPad,只需調整 handout.css 的 --page-w、--page-h、@page 與 build.mjs 的 viewport,並維持每行 35–40 個漢字。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Handout Remake AI skill do?

把上課教材(PPT、PDF、筆記)重製成 iPad 上好讀、可手寫的深色 PDF 講義:從零講起、圖解、例題、練習與書寫區。使用者丟課程講義並要求做講義、教材、好讀版,或說「幫我整理這章」時使用,適用各種工程學科。

Why use Handout Remake on TypingMind?

Because you install it once and use it with any model. Handout Remake is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Handout Remake in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/xamjiang/handout-remake/tree/main/skills/handout-remake. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Handout Remake?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Handout Remake?

As many as you like. As long as a model supports skills, you can use Handout Remake with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Handout Remake AI skill free?

Yes. It is published on GitHub by xamjiang under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇