Skip to content
cccskills
FreePublished on GitHub

jp-pdf

日本語Markdownを配色付きのオフラインPDFに変換するスキル。「PDF化して」「PDFにして」「PDFを生成」「markdownをPDF」「日本語PDF」等で発動。IPAゴシック+pandoc/xelatex(Chrome・Google不使用)、SVG図の埋め込み、色付き見出し・コールアウト引用・縞模様テーブルに対応。

The English summary is being prepared. Showing the original description.

See how to install

Files included (4)

  • SKILL.md6.3 KB
  • assets/style.tex2.3 KB
  • scripts/build_pdf.py8.6 KB
  • scripts/svglib.py5.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

jp-pdf — 日本語Markdown → 配色付きオフラインPDF

Markdown を、日本語が綺麗に組まれた配色付き PDF に変換する。生成経路は pandoc → xelatex のみで、Chrome や外部サービスを使わない(外部通信ゼロ)。

<SKILL_DIR> はこの SKILL.md があるディレクトリの実パスに読み替える。

いつ使うか

  • 「この Markdown を PDF にして」「研究計画書を PDF 化して」等の依頼。
  • 日本語ドキュメント(設計書・提案書・レポート)を配布用の体裁で出したいとき。

前提ツール(すべてローカル/オフライン)

ツール用途導入例
pandocMarkdown→LaTeX→PDFbrew install pandoc
xelatex (TeX Live)日本語対応PDFエンジンMacTeX / TeX Live
rsvg-convert (librsvg)SVG図→ベクターPDFbrew install librsvg
IPAexGothic フォント日本語本文~/Library/Fonts/ipaexg.ttf
ghostscript (gs)プレビュー(PNG)brew install ghostscript

不足時は build スクリプトが名前を挙げて停止する。

基本の手順

  1. 入力 Markdown を用意(既存ファイルでよい)。図が無ければこの1手で完了。

  2. ビルドを実行:

    python3 "<SKILL_DIR>/scripts/build_pdf.py" \
      --input path/to/doc.md \
      --output path/to/doc.pdf \
      --title "ドキュメント表題" \
      --running-title "ヘッダに出す短い題" --doc-tag "研究計画書" \
      --toc --preview
    
  3. --preview を付けると1ページ目を doc_p1.png に出す。gs で任意ページを PNG化して目視確認する:

    gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r120 \
       -dFirstPage=1 -dLastPage=3 -sOutputFile=out-%02d.png doc.pdf
    

図(ASCII図 → SVG)を入れる場合

本文中の ASCII 図を、見やすい SVG 図に差し替えられる。原稿 .md には ASCII を 残したまま、PDF ビルド時だけ画像に差し替える方式(原稿はエディタで読めるまま)。

  1. <SKILL_DIR>/scripts/svglib.py を import して作図スクリプトを書く。雛形は <SKILL_DIR>/../../examples/gen_diagrams.py(svglib を import して使う)。 角丸ボックス box()・矢印 arrow()・ラベル label()・チップ chip() を組む。

  2. 生成した SVG を assets/ に置く。

  3. 「どの ASCII フェンスをどの SVG に差し替えるか」を figures.json で対応づける (雛形は examples/figures.example.json):

    [
      {"sig": "フェンス内に必ず含まれる一意な文字列", "svg": "pipeline.svg", "caption": "図:…"}
    ]
    
  4. ビルドに --assets assets --figures figures.json を渡す。該当フェンスは ![caption](assets/xxx.pdf) に置換され、SVG は自動でベクターPDF化される。

設計上の要点(この手順で踏んだ落とし穴)

  • 完全オフライン:Chrome/HTML 経路は使わない。pandoc→xelatex がローカル完結する ため、テレメトリや外部リソースのフェッチが発生しない。
  • フォント:IPAexGothic は単一ウェイトのため、太字は AutoFakeBold で擬似化する (build スクリプトが既定で付与)。
  • 配色:<SKILL_DIR>/assets/style.tex が担う。ティール系で、色付き見出し+下線罫、 tcolorbox によるコールアウト引用(> ブロック)、rowcolors の縞テーブル、 fancyhdr のヘッダ/フッタ、タイトル上下の罫線。
  • SVGの枠はみ出し:textLength(引き伸ばし指定)は rsvg-convert の PDF出力で 無視される(PNGでは効くので見落としやすい)。svglib は代わりにフォントサイズ を実寸で縮めて収める(fitfs)。作図時はこの box()/label() を使えば安全。
  • 字形置換:IPAexGothic に無い ✕・≈ はビルド時のみ ×・≒ に置換する (既定。原稿は不変)。他に欠字警告が出たら --glyph-subs "字=代替,…" を足す。
  • ラベルとボックスの重なり防止:自由配置の label() を、ボックスの縦範囲(y〜y+h)と 横範囲が交差する座標に置かない。矢印に添える名前は矢印の上の短い語だけにし、 説明文はボックス行の下に専用の帯(縦方向のゾーン)を確保して置く。ゾーン同士は 16px 以上離す。長文ラベルは maxw を必ず指定して縮小させる。
  • 検証(必須):ビルド前に SVG 自体を rsvg-convert -o check.png で PNG 化して目視し、 文字と枠・矢印の重なりがあれば直してから組み込む。ビルド後も gs でページを PNG 化し、 図が枠に収まっているか・記号が出ているかを目視する。重なりが残ったまま完成としない。

build_pdf.py の主なオプション

--input --output(必須)/--assets DIR/--figures JSON/--title/ --running-title/--doc-tag/--style style.tex(既定は同梱)/--font(既定 IPAexGothic)/ --fontsize(既定 10pt)/--margin(既定 16mm)/--img-width(既定 88%)/ --toc/--preview/--glyph-subs "a=b,c=d"。

デモ(同梱サンプル)

examples/ に汎用サンプル一式が入っている。次で一巡を試せる。

python3 "<SKILL_DIR>/../../examples/gen_diagrams.py" "<SKILL_DIR>/../../examples/assets"
python3 "<SKILL_DIR>/scripts/build_pdf.py" \
  --input "<SKILL_DIR>/../../examples/sample.md" \
  --output sample.pdf \
  --assets "<SKILL_DIR>/../../examples/assets" \
  --figures "<SKILL_DIR>/../../examples/figures.example.json" \
  --title "月次レポート自動化の検討メモ" --toc --preview

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

日本語の文章を「一読で意味が取れる」状態に明晰化するスキル。 「わかりやすく直して」「読みやすくして」「読みにくいので整えて」「AIっぽさを消して」 「ドキュメントを推敲して」「冗長な日本語を削って」「文章を明晰化して」などで発動する。 対象は技術記事・README・設計書・社内ドキュメント・ブログの説明文など説明的な日本語の本文。 対象外はコード本体・SNS の短文・小説や詩などの創作・法務/医療/論文の厳密文。 二重否定・長い連体修飾・「の」の連鎖・過剰な名詞化・冗長表現・埋もれた列挙、 さらに「重要なのは〜」「掘り下げる」などの LLM 定型句や、段落レベルの言い換え反復といった 「日本語ネイティブでも読解負荷の高い構文」を削ぎ落とすことが目的。 声・立場・個性は足さず、明晰さ(明晰=澄んで分かること)だけを目的とする。

The English summary is being prepared. Showing the original description.

bamboo-nova/meiseki43Updated Oct 20, 2026

rikai

Free

日本語を主対象とする資料から選択式の問題を 1 ページのフォームで出し、採点結果を学習履歴に残し、解説を絵解きノート(HTML)とテキストブック(PDF)に蓄積し、書き手向けの還流レポートを作るスキル。「理解度を確認して」「この資料でクイズして」「読めているかテストして」「内容を復習したい」などで発動する。

The English summary is being prepared. Showing the original description.

bamboo-nova/meiseki43Updated Oct 20, 2026

日本語の文書を、公的ガイドライン準拠の「やさしい日本語」に書き換えるスキル。 「やさしい日本語にして」「やさしい日本語に翻訳して」「外国人にもわかるように書いて」 「平易な日本語にして」「N4レベルの日本語にして」「easy Japanese にして」などで発動する。 「やさしい日本語かチェックして」「判定だけして」「スコアを出して」なら書き換えずに判定だけ行う。 対象はお知らせ・案内・手続き説明・マニュアルなど、在留外国人や日本語学習者にも 読んでほしい説明文。根拠は「在留支援のためのやさしい日本語ガイドライン」 (出入国在留管理庁・文化庁、2020)。二重否定・受身・推測表現・敬語・表記を textlint と prh 辞書で機械検出し、語彙レベル(既定 N4 相当・推定値)を同梱リストで機械判定する。 明晰化(meiseki)とは対象読者が違う。日本語ネイティブ向けの推敲は meiseki を使う。

The English summary is being prepared. Showing the original description.

bamboo-nova/meiseki43Updated Oct 20, 2026

See all skills by bamboo-nova

Report a problem with this skill