Markdown PDF 変換 方法:VS Codeとpandocで簡単にPDF生成を実現!

はじめに

近年、情報発信の場で Markdown は非常に人気を集めています。シンプルな記法で文章を高速に書けるだけでなく、GitHub 等のリポジトリでも容易に管理できます。しかし、Markdown だけでは最終的な配布資料やレポートの作成は少し手間がかかります。ここでは、VS CodePandoc を組み合わせて、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 --versionlatex --version を実行し、バージョン情報が表示されれば OK です。


Markdown から PDF を生成する基本手順

以下では、VS Code 上で単一の Markdown ファイルを PDF に変換する最も簡単な手順を示します。

  1. Markdown ファイルを作成
    sample.md という名前で以下のような内容を入れます。

    # My First PDF
    
    これは Markdown を PDF に変換するサンプルです。
    
    - 項目 1
    - 項目 2
    
    ![画像](image.png)
    
  2. Visual Studio Code のコマンドパレットを開く
    Ctrl+Shift+P でコマンドパレットを起動し、Markdown PDF: Export (pdf) を選択。
    すると sample.pdf が同じフォルダに生成されます。

  3. オプション付きの変換
    コマンドパレットで 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 内で位置を揃えたい場合は ![Alt Text](image.png){ width=80%} と書くことでサイズを変更できます。


画像・フォントの設定方法

PDF 生成時に画像サイズが大きくなる、またはフォントが欠落してしまうケースがあります。以下の設定で対処します。

問題 解決策
画像がページをはみ出す Markdown 内で ![](image.png){ 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+POpen Keyboard Shortcuts で、以下のように Ctrl+Alt+Pmarkdown-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 CodePandoc で簡単に Markdown → PDF
  • 拡張機能 でプレビューやテンプレート管理
  • タスク でワンクリック実行
  • LaTeX テンプレート でフォーマット自由自在
  • GitHub Actions で CI 統合

この組み合わせは、学術論文、技術仕様書、ブログ記事全てに使える汎用性を持っています。ぜひ自分のワークフローに組み込んで、Markdown を活用した PDF 作成をよりスムーズに実現してみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です