はじめに
近年、情報発信の場で Markdown は非常に人気を集めています。シンプルな記法で文章を高速に書けるだけでなく、GitHub 等のリポジトリでも容易に管理できます。しかし、Markdown だけでは最終的な配布資料やレポートの作成は少し手間がかかります。ここでは、VS Code と Pandoc を組み合わせて、Markdown から PDF をシンプルに生成する手順を解説します。プログラミング経験が浅くても、誰でもできるようにステップごとに説明しますので、ぜひ最後までご覧ください。
VS Code の準備
1. VS Code のインストール
まずは公式サイトから最新バージョンの VS Code をダウンロードし、インストールします。Windows だけでなく macOS・Linux でも同じ手順で設定できます。
2. 必要な拡張機能を追加
| 拡張機能 | 役割 |
|---|---|
| Markdown PDF | Markdown を PDF へ変換(簡易版) |
| Markdown Preview Enhanced | 高度なプレビュー&PDF生成 |
| LaTeX Workshop | LaTeX 文書のコンパイルサポート |
| Pandoc | Pandoc コマンドを補完 |
VS Code の左側にある拡張機能アイコンをクリックし、上記を検索してインストールします。これにより、コマンドパレット(Ctrl+Shift+P)から即座に PDF 生成コマンドが呼び出せます。
3. デフォルト設定を確認
settings.json で以下のような設定を加えると、PDF 生成時に使うパラメータが管理しやすくなります。
{
"markdown-pdf.options": {
"engine": "pandoc",
"pdf": {
"papersize": "a4",
"margin": {
"top": "2cm",
"bottom": "2cm"
}
}
}
}
この設定で pandoc エンジンを明示的に指定し、A4 用紙サイズと余白を調整できます。
Pandoc のインストール
Pandoc は Markdown から PDF への変換に非常に強力なツールです。以下の手順でインストールします。
1. Pandoc をダウンロード
- Windows:公式サイトの「pandoc‑x.x.x‑x86_64‑setup.exe」を実行
- macOS:
brew install pandoc(Homebrew が必要) - Linux:
sudo apt install pandoc(Ubuntu 系)やsudo dnf install pandoc(Fedora 系)
2. LaTeX ディストリビューションを準備
Pandoc が PDF を生成する際に PDFLaTeX/XeLaTeX を呼び出します。したがって、LaTeX ディストリビューションが必要です。
-
TeX Live(Linux/Windows):
sudo apt install texlive-full -
MacTeX(macOS):
brew install --cask mactex(Mac ユーザー向け) - MiKTeX(Windows): 公式サイトからインストール
3. パスの確認
それぞれのコンポーネントが正しく PATH に通っているか確認します。ターミナルで pandoc --version と latex --version を実行し、バージョン情報が表示されれば OK です。
Markdown から PDF を生成する基本手順
以下では、VS Code 上で単一の Markdown ファイルを PDF に変換する最も簡単な手順を示します。
-
Markdown ファイルを作成
sample.mdという名前で以下のような内容を入れます。# My First PDF これは Markdown を PDF に変換するサンプルです。 - 項目 1 - 項目 2  -
Visual Studio Code のコマンドパレットを開く
Ctrl+Shift+Pでコマンドパレットを起動し、Markdown PDF: Export (pdf)を選択。
するとsample.pdfが同じフォルダに生成されます。 -
オプション付きの変換
コマンドパレットでMarkdown PDF: Export with pandocを選択すると、Pandoc が実行されます。
settings.jsonで設定したオプションは自動で適用されます。
VS Code タスクで自動化
日常的に文書を作成する場合、毎回コマンドパレットを開く手間は面倒です。VS Code のタスク機能を使えば、Ctrl+Shift+B だけで PDF を生成できます。
1. タスク定義ファイルの作成
.vscode/tasks.json に以下を追加します。
{
"version": "2.0.0",
"tasks": [
{
"label": "Pandoc: Markdown to PDF",
"type": "shell",
"command": "pandoc \"${file}\" -o \"${fileDirname}/${fileBasenameNoExtension}.pdf\" --pdf-engine=xelatex -V geometry:margin=2cm",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": []
}
]
}
${file}は現在開いている Markdown ファイルを指し、${fileDirname}や${fileBasenameNoExtension}は自動で path を参照します。
2. タスクの実行
Markdown ファイルを開き、Ctrl+Shift+B を押すと上記タスクが走り、PDF が生成されます。
より高度なカスタマイズ
Pandoc だけではなく、LaTeX テンプレートや引用管理まで含めて PDF 作成を高度に制御できます。
1. LaTeX テンプレートの作成
template.tex に以下のような基本レイアウトを書きます。
\documentclass{article}
\usepackage[margin=2cm]{geometry}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\begin{document}
$body$
\end{Document}
Pandoc で変換する際に --template=template.tex オプションを付け込むことで、カスタムレイアウトが適用されます。
2. 引用管理(Citations)
文献引用を行う場合は、.bib ファイルを用意し、Pandoc コマンドに --bibliography=references.bib --csl=apa.csl を追加します。Citeproc で自動的に APA などのスタイルで引用・文献リストが生成されます。
3. 数式・表・図を含む高度な書式
Markdown 内で LaTeX の数式を $$ ... $$ で囲むと Pandoc が自動で処理します。また、画像は PDF 内で位置を揃えたい場合は { width=80%} と書くことでサイズを変更できます。
画像・フォントの設定方法
PDF 生成時に画像サイズが大きくなる、またはフォントが欠落してしまうケースがあります。以下の設定で対処します。
| 問題 | 解決策 |
|---|---|
| 画像がページをはみ出す | Markdown 内で { width=5cm } と記述 |
| 日本語フォントが欠落 | LaTeX エンジンを xelatex にし、fontspec パッケージで setmainfont を指定 |
トラブルシューティング
| 状況 | 原因 | 具体例 | 対処 |
|---|---|---|---|
| PDF が生成されない | pandoc がインストールされていない |
pandoc: command not found |
インストールを確認 |
| 画像が欠落 | 画像パスが相対パスで間違っている | image.png が別フォルダにある |
../image.png などパスを修正 |
| フォントが欠ける | LaTeX の xelatex が無い |
xelatex not found |
TeX Live / MacTeX の再インストール |
| 論文スタイルが崩れる | --template が無い |
余白が極端に狭い | 例: --template=template.tex --top-level-division=chapter を追加 |
便利なコマンドのショートカット
VS Code ではショートカットをカスタマイズできます。Ctrl+Shift+P → Open Keyboard Shortcuts で、以下のように Ctrl+Alt+P を markdown-pdf: export に割り当てると便利です。
{
"key": "ctrl+alt+p",
"command": "markdown-pdf.export",
"when": "editorTextFocus && editorLangId == markdown"
}
継続的インテグレーションで自動化
大量の Markdown 文書を管理しているプロジェクトでは、GitHub Actions を利用してリポジトリにプッシュすると PDF を自動生成させる設定も可能です。
name: Generate PDF
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Pandoc
run: sudo apt install pandoc texlive-latex-base
- name: Build PDF
run: pandoc sample.md -o sample.pdf --pdf-engine=xelatex
- name: Upload PDF
uses: actions/upload-artifact@v3
with:
name: pdf
path: sample.pdf
まとめ
- VS Code ⇔ Pandoc で簡単に Markdown → PDF
- 拡張機能 でプレビューやテンプレート管理
- タスク でワンクリック実行
- LaTeX テンプレート でフォーマット自由自在
- GitHub Actions で CI 統合
この組み合わせは、学術論文、技術仕様書、ブログ記事全てに使える汎用性を持っています。ぜひ自分のワークフローに組み込んで、Markdown を活用した PDF 作成をよりスムーズに実現してみてください。