pdf-generation について
Pandoc と Eisvogel テンプレートで Markdown からスタイル付き PDF を作成するスキルです。印刷用・モバイル用レイアウト、テーマカラー、目次を備え、英語とロシア語の文書に対応します。
主な機能
- 01Pandoc による Markdown の PDF 化
- 02印刷用・モバイル用レイアウト
- 03Eisvogel テンプレートのスタイル
- 04テーマカラーとタイトルページ
- 05EB Garamond によるロシア語組版
- 06Markdown リストの間隔修正
活用シーン
- 01印刷用文書の作成
- 02スマートフォンやタブレット向け PDF の作成
- 03ロシア語文書の組版
- 04Markdown からテーマ付き PDF を生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ glebis/ claude-skills --skill pdf-generationインストール後、Claude Code で/pdf-generationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.md.claude-plugin/plugin.jsonreferences/frontmatter_templates.mdpandoc_reference.mdscripts/fix_markdown.pygenerate_pdf.py詳細
PDF 生成
概要
Pandoc と Eisvogel テンプレートのスタイルを使用して、Markdown ファイルからプロフェッショナルな PDF を生成します。カスタマイズ可能なテーマ、目次、ロシア語テキスト用の EB Garamond フォントを含むプロフェッショナルなタイポグラフィに対応しており、英語とロシア語のドキュメントをサポートします。
クイックスタート
基本的なコマンド:
# Desktop/Print PDF (A4 format)
pandoc doc.md -o doc.pdf --pdf-engine=xelatex --toc --toc-depth=2 -V geometry:margin=2.5cm -V fontsize=11pt -V documentclass=article
# Mobile-friendly PDF (6x9 phone screen optimized)
pandoc doc.md -o doc-mobile.pdf --pdf-engine=xelatex --toc --toc-depth=2 -V geometry:paperwidth=6in -V geometry:paperheight=9in -V geometry:margin=0.5in -V fontsize=10pt -V linestretch=1.2
# Russian PDF with EB Garamond
pandoc doc-ru.md -o doc.pdf --pdf-engine=xelatex --toc --toc-depth=2 -V geometry:margin=2.5cm -V fontsize=11pt -V documentclass=article -V mainfont="EB Garamond"
# Russian Mobile PDF
pandoc doc-ru.md -o doc-mobile.pdf --pdf-engine=xelatex --toc --toc-depth=2 -V geometry:paperwidth=6in -V geometry:paperheight=9in -V geometry:margin=0.5in -V fontsize=10pt -V linestretch=1.2 -V mainfont="EB Garamond"
ドキュメントのテーマカラー
- ホワイトペーパー - 青(1e3a8a)
- マーケティング - 緑(059669)
- 研究 - 紫(7c3aed)
- 技術 - グレー(374151)
YAML フロントマターの例
---
title: "Document Title"
subtitle: "Subtitle"
author: "Author"
date: "2025-11-18"
titlepage: true
titlepage-color: "1e3a8a"
titlepage-text-color: "ffffff"
book: true
---
テンプレートの全容については、references/frontmatter_templates.md を参照してください。
Markdown の書式設定に関するベストプラクティス
PDF を最適にレンダリングするには、次の点を確認してください。
- リストの前に空行を入れる - リストを正しくレンダリングするために必要です
- 見出しの後に空行を入れる - 余白が整います
- ネストしたリストのインデント - サブ項目にはスペースを 3 つ使用します
Claude Code でよく使われるパターン
コロンの後にリストを置く場合は、空行が必要です。
Your data spans 9 years with complete tracking:
- Item 1
- Item 2
コロンの後に空行がないと、インラインテキストとしてレンダリングされます。
自動修正
前処理スクリプトを使用します。
scripts/fix_markdown.py input.md output.md
次の項目を自動的に検出して修正します。
- コロンの後のリスト(Claude Code 形式)
- 見出しの後のリスト
- ネストしたリストの間隔
レイアウトオプション
デスクトップ/印刷レイアウト(A4)
- 用紙:210mm x 297mm(A4)
- 余白:2.5cm
- フォントサイズ:11pt
- 適した用途:印刷、大画面での閲覧、長期保存
モバイルレイアウト(スマートフォン向け)
- 用紙:6in x 9in(スマートフォンの縦横比)
- 余白:0.5in(画面スペースを確保するため最小限)
- フォントサイズ:10pt、行間隔 1.2
- 適した用途:スマートフォン/タブレットでの閲覧、Telegram/メッセージアプリ
Telegram ボットのデフォルト:ユーザーが印刷/デスクトップ版を明示的にリクエストしない限り、Telegram 経由で送信するすべての PDF にモバイルレイアウトを使用します。
生成ワークフロー
ワークフロー 1:シンプルな PDF
- コンテキストを確認します(Telegram の場合はモバイル、それ以外はデスクトップ)
- ロシア語かどうかを確認します(該当する場合は EB Garamond を使用)
- 適切な pandoc コマンドを実行します
- 出力を確認します
ワークフロー 2:プロフェッショナルなタイトルページ
- テーマカラーを指定した YAML フロントマターを追加します
- メタデータ(タイトル、著者、日付)を含めます
- レイアウト(モバイルまたはデスクトップ)を選択します
- xelatex で生成します
ワークフロー 3:スクリプトの使用
scripts/generate_pdf.py doc.md -t white-paper
scripts/generate_pdf.py doc.md -t marketing --russian
scripts/generate_pdf.py doc.md --mobile # Mobile layout
リソース
- scripts/generate_pdf.py - 自動生成
- references/frontmatter_templates.md - YAML テンプレート
- references/pandoc_reference.md - コマンドリファレンス
トラブルシューティング
pandoc をインストールします:brew install pandoc
LaTeX をインストールします:brew install --cask mactex
モバイル向け PDF
スマートフォンやタブレットで閲覧する場合は、モバイルレイアウトオプションを使用します。
# Using script (recommended)
scripts/generate_pdf.py doc.md --mobile
# Direct pandoc command
pandoc doc.md -o doc-mobile.pdf \
--pdf-engine=xelatex \
--toc --toc-depth=2 \
-V geometry:paperwidth=6in \
-V geometry:paperheight=9in \
-V geometry:margin=0.5in \
-V fontsize=10pt \
-V linestretch=1.2 \
-V colorlinks=true \
-V linkcolor=blue \
-V urlcolor=blue
モバイルレイアウトの特長:
- 6x9 インチのページサイズ(モバイル画面に最適)
- 10pt のフォント(小さな画面でも読みやすいサイズ)
- 0.5in の余白(コンテンツ領域を最大化)
- 行間隔 1.2(読みやすさを向上)
-mobile.pdfのファイル名サフィックスを自動付与
モバイルレイアウトの用途:
- Telegram/メッセージアプリで研究資料を共有する
- スマートフォンやタブレットで読む
- 持ち運びやすい参考資料を作成する
- 外出先ですばやく内容を確認する
デフォルトのコンテキスト:Telegram ボット経由で PDF を生成する場合は、モバイルでの閲覧に最適なモバイルレイアウトがデフォルトで使用されます。