# エージェントスキル：出版物をPostextに移植する

> Claude Code、Codexなどのエージェントにpostext-portスキルを入れ、PDF、Word、PowerPoint、EPUB、InDesign、HTMLの原稿を、元のレイアウトに沿ったPostextプロジェクトに変換させます

- HTML版: https://postext.dev/ja/docs/skill
- 最終更新: 2026-10-05
- 読了時間: 8分
- 他の言語: [en](https://postext.dev/en/docs/skill.md), [es](https://postext.dev/es/docs/skill.md), [ca](https://postext.dev/ca/docs/skill.md), [zh](https://postext.dev/zh/docs/skill.md), [ar](https://postext.dev/ar/docs/skill.md)

## かんたんな説明

このページは、PDF、Word、InDesignなど別の形式の本や文書をすでに持っていて、それをPostextに移したい人のためのものです。エージェントと呼ばれるAIの助手に、スキルという小さな追加機能を渡せば、作業の大部分を任せられます。スキルは、元の文章を写し、デザインを組み直す方法をエージェントに教えます。このページでは、スキルの入れ方、頼み方、結果の確かめ方を説明します。約5分の動画で、すべての手順を見られます。

**コーディングエージェントを使って、既存の出版物をPostextのプロジェクトにします。**

Postextを使い始める人の多くは、すでにある本を抱えています。印刷用PDFの教科書、Wordの報告書、PowerPointの講義資料、InDesignのカタログ、EPUBなどです。移植には2つの作業があります。

- **コンテンツ**：各章の拡張Markdown。ディレクティブとマイクロフォーマットを含みます。
- **デザイン**：元のレイアウトの規則（ページの幾何、ベースライングリッド、書体、章扉、柱、囲み、フロート、表、部）を再現する設定マニフェスト。

この作業の多くはLLMにできますが、それはPostextのしくみを知っている場合に限ります。PostextのMarkdownはCommonMarkではなく、設定には、ページが正しく描画されないときに初めて表に出る落とし穴があります。
**`postext-port`スキル**は、その知識を、Sandboxのすべてのプリセットを作るのに使ったツールと一緒にまとめたものです。これを使えば、エージェントが移植をきちんとこなせます。

スキルはオープンな[Agent Skills](https://agentskills.io)形式に従っているので、Claude Code、Codex、Cursor、Gemini CLI、GitHub Copilot、OpenCode、そのほか[多くのエージェント](https://skills.sh)で動きます。

## チュートリアルを見る

5分、コードは不要です。フォルダーを用意し、ベクター形式の原稿を持ち込み、参照用のPDFを加え、エージェントに頼み、結果をSandboxで確かめます。

> *AIエージェントで出版物をPostextに変換する* · チュートリアルを見る · 5:10

**文字起こし.** ナレーションの全文と、画面に映るものの説明。

- 0:00 · *画面:* タイトルカード：Postextのロゴ、キッカー「チュートリアル · 5つのステップ」、タイトル「AIエージェントで、あなたの出版物をPostextに。コードは不要。」
- 0:03 · *画面:* 「あなたの出版物は、もうある。」Postextで組んだ3つのページ、本、マニュアル、雑誌が1つずつ降りてきて、それぞれInDesign（IDML）、Word（DOCX）、PDFのラベルが付きます。3つは左に集まり、金色の破線の矢印が「AIエージェント」のバッジを通り抜け、my-book.postextという名前のファイルアイコンが現れます。その上に「エージェントがPostextに変換する。5つのステップと、よく練った少しの依頼で。」 · *ナレーション:* あなたにはもう出版物があります。本、マニュアル、雑誌。それはInDesignに、Wordに、あるいはPDFの中にあります。このチュートリアルでは、AIエージェントがそれをPostextに変換します。コードは不要です。5つのステップと、よく練った少しの依頼だけです。
- 0:23 · *画面:* 「手順」：ステップの名前が読み上げられるたびに、番号付きのカードが1枚ずつ現れます。01「フォルダーを用意する」、02「ベクターの原本を持ってくる」、03「見本を加える」、04「エージェントに頼む」、05「Sandboxで確認する」。 · *ナレーション:* 手順はこうです。フォルダーを用意し、図版の原本を持ってきて、見本を加え、エージェントに頼み、結果を確認します。
- 0:33 · *画面:* ステップ01、フォルダー：「1つのプロジェクトに、1つのフォルダー。」大きなフォルダーmy-book/が、MinionPro-Regular.otf、cover.jpg、fig-2-1.ai、chapter-01.docx、map.svg、book.idml、chart.pdfなど、ばらばらの10個のファイルに囲まれて浮かんでいます。フォルダーツリーのウィンドウが開き、名前が挙がるたびに各ファイルがそのサブフォルダーへ飛び込みます。reference.pdf（どう見えるべきか、ステップ03）、fonts/（Minion Pro、Myriad…、.otf .ttf .woff2）、images/（写真、.jpg .png）、artwork/（ベクターの原本、.ai .svg .pdf）、text/（Word、InDesign IDML…）。 · *ナレーション:* ステップ1。すべてをコンピューターの1つのフォルダーにまとめます。1つのプロジェクトに、1つのフォルダー。中には素材の種類ごとにサブフォルダーを作ります。フォント、画像、図版、そしてテキストのファイルです。
- 0:50 · *画面:* fonts/の行が強調され、「フォント」と題したカードに大きな「Aa」、スタイルのRegular、Italic、Bold、形式のOTF、TTF、WOFF2、そして注記「使えるのは、入れたフォントだけ。」が示されます。続いて「フォルダーが整っているほど、推測は減る。」の文字とともに、ツリーの各サブフォルダーにチェックマークが付きます。 · *ナレーション:* フォントを忘れないでください。デザインの声を決めるのはフォントで、エージェントが使えるのは入れたものだけです。フォルダーが整っているほど、エージェントが推測する部分は少なくなります。
- 1:03 · *画面:* ステップ02、ベクターの原本：「原本を持ってくる。」図解、グラフ、地図がアンカーポイントの見える線画として描かれ、3つのファイルアイコンが現れます。.ai Illustrator、.svg SVG、.pdf PDF。 · *ナレーション:* ステップ2。図版が図解やグラフ、地図のようなベクター画像なら、その原本のファイルを探します。Illustrator、SVG、PDFのいずれかです。
- 1:14 · *画面:* 2つのパネルに同じ図が表示されます。ManuscriptとTemplateの両方がPagesを指す図解で、キャプションは「Fig. 2.1 Content and design meet.」。左の「PDFから切り抜いたもの：図の写真」は、拡大するにつれてぼやけ、ブロック状に崩れます。右の「原本：図そのもの」は鮮明なままです。左のパネルが消え、原本のラベルがスペイン語（Manuscrito、Plantilla、Páginas）に打ち直され、トンボがそれを囲み、3つのチェックマークが並びます。「どの大きさでも鮮明」「ラベルは生きたテキスト」「印刷用の原本 → 印刷へ」。 · *ナレーション:* 完成したPDFから切り抜いた図は、図を写した写真とほとんど変わりません。原本は図そのものです。原本があれば、エージェントはそれぞれの図を作り直します。どの大きさでも鮮明で、ラベルは本物のテキストのまま残るので、翻訳もできます。印刷では、原本が手を加えられずにそのまま印刷に回ります。
- 1:37 · *画面:* ステップ03、見本：「どう見えるべきかを示す。」フォルダーツリーでreference.pdfが強調され、「ルートに」のタグが付きます。そこから1ページが飛び出し、reference.pdfと記された2段組みの大きな本のページになります。 · *ナレーション:* ステップ3は欠かせません。フォルダーのルートに、完成品がどう見えるべきかがはっきりわかるファイルを入れます。PDFが理想的です。
- 1:47 · *画面:* ページの上に寸法が現れます。段の輪郭、9mmの段間、20mmの余白、見出し（Fraunces 28 pt）、本文（Lora 9.4/13.6 pt）、囲み（地色付き、罫線1本）のラベル、そして行送り13.6 ptのベースライン。spec-sheet.mdというファイルが書き込まれていきます。ページ210 × 280 mm、余白24 · 20 · 22 · 20 mmで左右対称、2段組みで段間9 mm、ベースライングリッド13.6 pt、本文Lora 9.4 / 13.6 ptの両端そろえ、見出しFraunces 28 pt · Geist、101 mmの色帯付きの章扉、地色と左罫線付きの囲み。続いて「推測する」の語に取り消し線が引かれ、「測る。」が金色に光ります。 · *ナレーション:* エージェントは、それらのページからデザインを読み取ります。余白、段、フォント、間隔を測り、レイアウトの規則として書き留めます。見本がなければ推測するしかありません。見本があれば、測れます。
- 2:03 · *画面:* ステップ04、エージェント：「ふつうの言葉で頼む。」「Agent · ~/my-book」と題したウィンドウが、Claude Code、Codex、「そのほかのエージェント」のバッジの横に開きます。YOUからのメッセージが打ち込まれます。「Postextのスキルをインストールして：`npx skills add drnachio/postext --skill postext-port`」。エージェントは「✓ スキルをインストールしました：postext-port」と答えます。postext-portスキルのカードには「実績のある作業手順」「Postextのすべて」「自分の仕事を確かめるツール」が並びます。 · *ナレーション:* ステップ4。Claude Code、Codex、あるいはふだん使っているエージェントをそのフォルダーで開き、Postextのスキルをインストールするよう頼みます。スキルは専門的なノウハウをまとめたパッケージです。このスキルは、出版物をPostextに移す方法をエージェントに教え、自分の仕事を確かめるツールも与えます。
- 2:24 · *画面:* 次の依頼が打ち込まれます。「postext-portスキルを使って、この本をPostextに変換して。デザインはreference.pdf、フォントはfonts/、図版の原本はartwork/にある。PDFから図を切り抜く代わりに、それを使うこと。まずは第1章だけを作り、組む前に仕様書を見せて。」その横で、プロンプトが名前を挙げるのに合わせ、フォルダーツリーのreference.pdf、fonts/、artwork/が光り、「第1章」と書かれたカードが飛び出します。 · *ナレーション:* そして、ほしいものをふつうの言葉で頼みます。見本、フォント、原本がどこにあるかを伝え、まずは1つの章から始めるよう頼みます。
- 2:37 · *画面:* 薄暗くした12ページの本のページが格子状に並び、最初のページが金色の枠で囲まれます。円形の矢印がそのページでの仕上げの回数を数え、チェックマークが付くと、ほかの11ページが明るくなります。下には「見本の章 → 仕上げ → 展開」。 · *ナレーション:* 内容が長い場合は、見本の章から始めます。完璧になるまで仕上げ、それから残りに広げます。
- 2:46 · *画面:* エージェントが尋ねます。「忠実な複製？それとも再デザイン？」「どの言語？」「印刷、画面、それとも両方？」チェックリストが、目録を作る、デザインを測る、テキストを抽出する、フォントと画像、ページごとに比較する、ファイルにまとめる、と進み、ファイルmy-book.postextが現れます。3つ目の依頼が打ち込まれます。「第1章はこれでよし。残りの章を同じデザインで変換し、それぞれをreference.pdfと比べ、すべてを1つの.postextファイルにまとめて。」エージェントは「✓ 12章 · 警告0件 · my-book.postext」と返します。 · *ナレーション:* エージェントはいくつか質問します。忠実な複製か再デザインか、どの言語か、印刷か画面か。それから測り、抜き出し、組み立て、確かめます。そしてPostextのファイルを渡してくれます。見本が仕上がれば、本全体に広げるのは依頼をもう1つ出すだけです。
- 3:14 · *画面:* ステップ05、Sandbox：「ページごとに確かめる。」ブラウザーのウィンドウにアドレスpostext.dev/sandboxが打ち込まれます。ポインターがサイドバーの「本」、「新規」、「.postextファイルを開く…」の順にクリックします。ファイルが飛び込み、リストの先頭に「My book、12章 · 184ページ」が現れ、最初のページがCanvasビューで開きます。 · *ナレーション:* ステップ5。postext.devでPostextのSandboxを開きます。「本」で「新規」を選び、ファイルを開きます。
- 3:24 · *画面:* 見本のページとPostextのページが、ReferenceとPostextのラベル付きで並び、金色の線が両方を上から下へなぞります。「検査」パネルが3のバッジ付きで開き、ウィドウ（p. 4）、ゆるい行（p. 7）、図が収まらない（p. 9）を挙げます。Postextのページ上では、赤い枠がそれぞれの問題箇所を示します。 · *ナレーション:* 見本と並べて、1ページずつ見ていきます。「検査」パネルが問題を指摘してくれます。ウィドウ、ゆるい行、収まらない図などです。
- 3:35 · *画面:* ページのワイヤーフレームが2列に並びます。「見本 · PDF」と「Postext · 組み直し後」。組み直し後の列では、図が1ページ目から2ページ目の上端に移動し、破線が2つの位置を結びます。文字は「同じ規則であって、同じページではない。内容は流れるので、図や改ページは別の場所に来ることがある。」続いて「一致すべきもの」の下で、ページの各組を等号が結びます。余白とベースライングリッド、タイポグラフィー、図と囲みのスタイル、きれいなページ（ウィドウがなく、段がそろっている）。≠の印が付いた赤いパネルには「手作業の職人的な判断：規則ではないので、変わり続ける内容は組めない」。 · *ナレーション:* 1つ覚えておいてください。ページがPDFとまったく同じである必要はありません。Postextはレイアウトの規則を学び、内容は流れるようになったので、図や改ページが別の場所に来ることがあります。一致すべきなのは品質、つまり同じ制作水準です。手で組むとき、私たちは規則ではない小さな職人的判断をしています。そして、変わり続ける内容を組めるのは規則だけです。
- 4:03 · *画面:* エージェントのウィンドウが戻り、4つ目の依頼が表示されます。「Sandboxの第2章、7ページ：『Remember』の囲みが2つの段に分かれていて、柱がない。検査ではゆるい行が3つ。直して、ファイルをまとめ直して。」スクリーンショットscreenshot-ch2-p7.pngが添付されています。続いて、Sandbox（確認）とエージェント（修正）のあいだのループが1回目から3回目まで回り、警告の数が3から0に減り、チェックマークと「ぴったり。」で終わります。 · *ナレーション:* そして、見えたことをできるだけ正確にエージェントに伝えます。章、ページ、何がおかしいか。スクリーンショットがあると役に立ちます。新しい版を開き、もう一度確認し、繰り返します。回を重ねるごとに近づき、やがてぴったりになります。
- 4:23 · *画面:* 「Postext版ができただけではない。」ファイルmy-book.postextが金色の線に沿って2つに割れます。左は内容（何を言うか）：chapters/en/02-the-cell.mdで、見出し「The cell」、図fig-cellを参照する一文、「remember」の囲みがあります。右は形式（どう見えるか）：原本から導き出したテンプレートで、ページ210 × 280 mmで左右対称、段間9 mmの2段組み、本文Lora 9.4/13.6の両端そろえ、番号付きのFrauncesの見出し、地色と罫線付きの「remember」の囲み、段の上端にフロートさせた図。 · *ナレーション:* そしてここからが一番大切なところです。あなたは内容のPostext版を作っただけではありません。内容と形式を分けたのです。テキストは整った章の中に、デザインはテンプレートの中にあり、そのレイアウトの規則は原本から導き出されています。
- 4:39 · *画面:* 本のページの列の上で、「修正」「拡張」「翻訳」のチップが光ります。1行が強調されてページの上をきらめきが横切り、2ページが滑り込み、ページがめくれてスペイン語版に変わります。依頼が打ち込まれます。「スペイン語版を追加して。章、キャプション、図解のラベルを翻訳し、デザインは同じままで。」キャプションは「同じ規則。新しい内容。ページは自分で組み上がる。」続いて「1つのファイルに、本のすべてを。」：.postextのアイコンから、トンボ付きのページ（印刷用PDF）、ブラウザーのウィンドウ（Webリーダー）、2枚組のページ（すべてのページ、組版済み）へ枝分かれします。 · *ナレーション:* だから内容が変わっても、つまり修正しても、拡張しても、翻訳しても、レイアウトのことを考える必要はありません。Postextが同じ規則に従って組み直します。本全体で1つのファイル。印刷用のPDF、Webのリーダー、そして自分で組み上がるページです。
- 5:01 · *画面:* エンドカード：Postextのロゴ、キャッチフレーズ「プログラムできるWebの組版エンジン」、postext.dev、「この動画のプロンプトは概要欄に ↓」と書かれたピル、フッター「オープンソース · MIT · github.com/drnachio/postext」。 · *ナレーション:* Postext。オープンソースです。postext.devでどうぞ。プロンプトの例は概要欄にあります。

YouTubeでも見られます。[YouTubeで見る](https://youtu.be/iiqeWdm9sQE)か、[Postextの再生リスト](https://www.youtube.com/playlist?list=PLXV_YSL9ROv0)からどうぞ。

## スキルの中身

- **作業の流れ**：
  1. 要件を取り決める
  2. 原稿の内容を一覧にする
  3. デザインを測って仕様書にまとめる
  4. プロジェクトのひな形を作る
  5. コンテンツを抽出する
  6. PostextのMarkdownに整える
  7. フォントと画像を用意する
  8. ページごとに確かめる
  9. パッケージにまとめる
- **リファレンス**：
  - 文書形式と設定マニフェスト。どちらもエンジンと照合済みです。
  - プロジェクト（バンドル）の形式。
  - 原稿の形式ごとの手順書。
  - デザインを分析する方法。
  - 解決済みのレイアウト事例集：部ごとの色、章扉、韻文、欄外の注、脚注、索引、フロート・分割・入れ子の囲み、
    印刷用のベクター原稿、文字をテキストのまま残した図、表のセル内の画像、横向きの表、対訳版など。
  - 横組み、または縦組みで右綴じにした中国語の本：要件で何を尋ねるか（文字、地域、組み方向、綴じ）、
    字詰めのグリッドの測り方、縦組みのPDFの読み取り方、InDesignのルビと割注、Wordの東アジア言語のレイアウトと
    右から左のEPUB、CJKフォントを本に必要な文字だけにサブセット化する方法（[中国語の組版](/ja/docs/chinese-layout)を参照）。
  - 右綴じで縦組みの文庫・単行本の小説、または横組みの技術書といった日本語の本：日本語の規則を有効にするロケール
    （`ja`。中国語のタグは使いません）、何を尋ねるか（組み方向、グリッド、ふりがな、注、その版の表記）、
    版面を字数と行数で測る方法、ふりがなと傍点のマークアップ、`aozora.py`で変換する青空文庫のテキスト、
    国立国会図書館が公開するパブリックドメインの版のスキャン、かなと縦組み用字形を保ったままサブセット化した
    日本語フォント（[日本語の組版](/ja/docs/japanese-layout)を参照）。
  - 右から左に組み、右綴じにするアラビア語の本（現代語でも古典語でも、母音記号付きでも）：本の向きを反転させるロケール、
    何を尋ねるか（地域と数字、母音記号、韻文、巻末の目次）、左右反転したページの測り方、PDF、Word、Wikisourceからの
    アラビア語の読み取り方、`:::verse`で組む詩、ページごとの«(١)»形式の注、連結用のテーブルを保ったまま
    サブセット化したアラビア語フォント（[アラビア語の組版](/ja/docs/arabic-layout)を参照）。
  - 物としての本：原本の用紙、綴じ、表紙、背を読み取り、[Folioビューアー](/ja/docs/sandbox#folioタブ)が表示する
    `folio`設定として指定する方法。リンターで検査されます。
- **スクリプト**（PythonとNode）。次の節で説明します。

## スクリプト

| スクリプト | 役割 |
| --- | --- |
| `inventory.py` | どんな原稿でもまず目を通す：幾何、フォント、使われているスタイル、メディア、OCRが必要なページ |
| `measure_layout.py` | PDFの余白、段、段間、行送り（ベースライングリッド） |
| `pdf_extract.py` | PDF → *書体の役割*（フォント、サイズ、色）ごとの章の下書き：読む順序、段落、ハイフネーションの解除、太字とイタリック、上付きと下付き、リスト、キャプション |
| `pdf_figures.py` | PDFから図を切り出す：写真は元の解像度で、SVGのプレビュー、印刷用のベクターPDF原稿 |
| `extract_tables.py` | PDFの表 → Postextの`TableModel` |
| `pandoc_to_postext.py` | DOCX、PPTX、ODT、EPUB、HTML、LaTeX、Markdown、JATS、DocBook → 章の下書き。Wordのスタイルは囲みと段落スタイルに対応づけます |
| `idml_extract.py` | InDesignのIDML → 段落スタイルごとの章の下書き、表、アンカー付きの画像。ルビ、縦中横、圏点、割注は`:ruby`、`:tcy`、`:dots`、`:warichu`になり、縦組みのストーリーと右から左の綴じは報告されます |
| `aozora.py` | 青空文庫のテキスト（CP932のzipまたは`.txt`）→ PostextのMarkdown：ふりがな、傍点と傍線、字下げ付きの見出し、段落スタイルとしての字下げと地付きのブロック、改ページ、JIS X 0213で解決する外字、漢文の訓点。クレジットのブロックと、表現できなかった箇所の報告も返します |
| `index_marks.py` | 印刷された索引を`:index`のマークとして作り直す：PDFの索引ページを読み、各語をそのページで見つけ、章の中の同じ語に印を付けます |
| `fonts.py`、`images.py`、`convert_assets.py` | フォントのインスタンス化、サブセット化、拡大縮小、分割（本の文字だけに絞った中国語や日本語の書体は縦組み用字形とメトリクスを、アラビア語の書体は連結形とタトウィールを保ちます）。画像をsRGBに変換し、余白を切り詰め、つなぎ合わせます。`.ai`/`.pdf`のアートワークをSVGにします |
| `preset_kit.py` | プロジェクトとその生成スクリプトのひな形を作り、`preset.json`を組み立て、`.postext`ファイルにまとめます |
| `lint_project.py` | パーサーとローダーが黙って誤って処理するものをすべて検出します。中国語、日本語、韓国語のテキストでは、同梱フォントで組めない文字。日本語のテキストでは、中国語ロケールの下のかな、中国語の書体や設定、章に残った青空文庫の注記、読みのない漢字の索引項目。アラビア語のテキストでは、アラビア語ロケールの欠落、ラテン文字専用または連結しない書体、字間、強制的なハイフネーション、イタリックによる強調 |
| `render.mjs` | プロジェクト（フォルダーまたは`.postext`ファイル）を、本物のエンジンでヘッドレスにレイアウトします。設定はSandboxと同じように読み込み、警告を出力します。`--jpeg`を付けると、指定したページ（`--pages 12-15`）をエンジン自身のcanvasレンダラーでJPEGファイルに描画します。1、2秒で済むので、エージェントはPDFを作らずに自分のページを見られます。`--out`はPDFを書き出します |
| `compare_pages.py` | 原本のページとPostextのページを並べて表示します。描画結果のPDFからでも、JPEGのフォルダーからでも使えます |

## インストール

### どのエージェントでも（skills.sh）

[`skills`](https://skills.sh) CLIが使っているエージェントを検出し、それぞれにスキルをインストールします。

```bash
npx skills add drnachio/postext --skill postext-port
```

エージェントを明示するには`-a`を、グローバル（すべてのプロジェクト）にインストールするには`-g`を使います。

```bash
npx skills add drnachio/postext --skill postext-port -a codex -a claude-code -g
```

同じスキルはWebサイトからも公開されているので、次の方法でも入れられます。

```bash
npx skills add https://postext.dev
```

### Claude Codeプラグイン

PostextのリポジトリはClaude Codeのプラグインマーケットプレイスでもあります。Claude Codeの中で次のように入力します。

```text
/plugin marketplace add drnachio/postext
/plugin install postext@postext
```

シェルからなら次のとおりです。

```bash
claude plugin marketplace add drnachio/postext
```

```bash
claude plugin install postext@postext
```

### エージェントにインストールさせる

エージェントに頼むこともできます。たとえば「Postextの移植スキル（`npx skills add drnachio/postext --skill postext-port`）をインストールして、このPDFの移植に使って」と伝えます。`https://postext.dev/llms.txt`を読むエージェントは、そこからこのページとインストールコマンドを見つけます。

### スクリプトが使うツール

```bash
python3 -m pip install pymupdf pillow fonttools brotli
```

```bash
brew install pandoc poppler
```

```bash
mkdir -p ~/.cache/postext-tools && cd ~/.cache/postext-tools && npm init -y && npm i postext postext-pdf postext-citeproc react @pdf-lib/fontkit @napi-rs/canvas
```

Pandocは、Word、PowerPoint、EPUB、HTMLの原稿に必要です。popplerは原稿のページ画像に使います。Nodeのパッケージはヘッドレスレンダラーを動かします（Node 22.15以降）。`@napi-rs/canvas`はビルド済みのcanvasで、これがあれば本のページを直接JPEGに描画できます。任意のツールとして、スキャン原稿には`ocrmypdf`、ほかにImageMagick、PDF/UAの検査にはveraPDFがあります。

## 使い方

原稿のファイルを作業フォルダーに置き、移植を頼みます。たとえば次のように頼みます。

- 「`manual.pdf`の1〜3章をPostextに移植して。2段組みのレイアウト、章扉、囲みを再現してほしい」
- 「`course.docx`をPostextの本に変換して。スタイル'Nota'と'Actividad'は囲み」
- 「`deck.pptx`をPostextの配布資料にして。スライドは節に、スピーカーノートは本文にする」
- 「この教科書のInDesignパッケージ（IDMLと印刷用PDF）がある。第1章のPostextプリセットをスペイン語と英語で作って」

エージェントは次の流れで作業します。

1. **要件**。推測できないことを尋ねます。忠実な再現か作り直しか、見本の1章か本全体か、言語、印刷用か画面用か、そして本文、画像、フォントの権利です。
2. **一覧と測定**。原稿を読み、測った事実を仕様書にまとめます。仕上がりサイズ、余白、段、行送り、書体の役割、配色、章扉、柱、囲みの種類、配置の傾向です。
3. **プロジェクト**。`my-book/`のひな形を作ります。その中の`build_preset.py`という生成スクリプトが仕様を定数として持ち、`preset.json`を作ります。
4. **コンテンツ**。適切な抽出スクリプトで章の下書きを取り出し、PostextのMarkdownに整えます。囲み、段落スタイル、部、章扉のための見出し属性、`:ref`による参照、表と図のリソースです。
5. **確認**。プロジェクトをリンターにかけ、ヘッドレスでレイアウトし、作業中のページをJPEGに描画して目で確かめ、改ページ、図、囲みが一致するまで原稿とページごとに比べます。PDFは印刷向けの検査のために作るもので、見るたびに作るわけではありません。
6. **納品**。Folioビューアー用に本の用紙、綴じ、表紙を設定し、`my-book.postext`にまとめます。

結果は[Sandbox](/ja/sandbox)で開きます：**本 → 新規 → .postextファイルを開く…**。読み込まれるのは、Sandboxの言語に対応する章と文言です。Postextのローカルコピーでプロジェクトのフォルダーを扱うには、`POSTEXT_PRIVATE_PRESETS_DIR`を設定します（[Sandbox](/ja/docs/sandbox)を参照）。

### 結果をコードから読み込む

納品されたファイルはSandboxに縛られません。`postext`パッケージは`openBundle`でファイルを開き、`buildBundle`で本をレイアウトし、canvas、HTML、PDFに描画します（[バンドル](/ja/docs/configuration#バンドルpostextファイル)を参照）。つまり移植の結果をそのままプログラムに渡せます。そのプログラムの出力に調整が必要なときは、`createBundle`で`.postext`ファイルに書き出し、Sandboxで微調整して、直したファイルを読み込み直します。スキルのヘッドレスな`render.mjs`も、プロジェクトのフォルダーだけでなく、まとめた`.postext`ファイルを受け付けます。

## 期待できること

- **抽出スクリプトが作るのは下書きで、仕上げるのはエージェントです**。章ごとに、元のページと照らし合わせる見直しが1回入ると考えてください。品質はその見直しから生まれます。
- **変えるのは設定とMarkdownだけ**。スキルが1冊の本に合わせてエンジンを変えることはありません。Postextで表現できないものがあれば、エージェントは最も近い表現を選び、既知の差異として一覧にします。
- **権利の判断はあなたが行います**。ライセンスがはっきりしない画像やフォントを複製する前に、エージェントは確認を求めます。ライセンス付きのフォントには`redistributable: false`が付くので、書き出したプロジェクトには含まれません。
- **大事なところで忠実に**。目標は、ほとんどのページで同じグリッド、書体、章扉、囲み、図の配置、改ページを得ることです（ずれは1章につき1ページ以内）。改行位置まで同じにすることではありません。

## スキルの置き場所

スキルはリポジトリの[`plugins/postext/skills/postext-port`](https://github.com/drnachio/postext/tree/main/plugins/postext/skills/postext-port)にあります。Sandboxのプリセットを作るなかで出会ったすべての事例を扱っています。公開のものも非公開のものも含みます。まだ扱っていない事例に移植で出会ったら、スキルを改善するissueかプルリクエストをぜひ出してください。次の移植ではその改善が自然に生かされます。
