Markdown Preview Enhanced × PrinceXML が動かない原因は「設定ファイル」だった話

この記事の内容について、業務や開発でお困りの場合は個別に対応できます。

Markdown Preview Enhanced(MPE)で PDF を生成するときに、

  • CSS が反映されない
  • PrinceXML が呼び出せず、エラーで止まる
  • 設定がどこにあるのか分からない

こうしたトラブルの多くは、VS Code の設定ファイル(settings.json)と MPE の CSS 設定、さらに Windows の PATH のどこかでつまずいているだけだ。

この記事では “設定ファイルまわり” に絞って、

  • settings.json の最低限いじるべき項目
  • CSS が読み込まれない理由
  • Windows で PrinceXML の PATH を正しく通す方法

この3つを整理する。


✔ まず前提:MPE が読みに行く設定は「settings.json」と「.mume/style.less」

MPE で触る設定は主に2つだけ。


1. settings.json(VS Code 全体の設定)

ここでは プレビューの挙動 を制御する。

実在する代表的なキーはこれだけで十分:

{
  // 改行をそのまま反映
  "markdown-preview-enhanced.breakOnSingleNewLine": true,

  // MathJax で数式をレンダリング
  "markdown-preview-enhanced.mathRenderingOption": "MathJax",

  // スクリプト実行(目次・HTML埋め込みで必要になることがある)
  "markdown-preview-enhanced.enableScriptExecution": true,

  // プレビュー用テーマ
  "markdown-preview-enhanced.previewTheme": "github-dark.css"
}

注意:
MPE には princePathexportPDF のような「プリンターのパスを settings.json で指定するキー」は存在しない。
PrinceXML を認識させるのは Windows の PATH 側が本体


2. CSS の設定は “Customize CSS” から操作する

MPE のメニューから Markdown Preview Enhanced → Customize CSS を開くと、

~/.mume/style.less

が生成される。ここに書いた内容が プレビューと PDF 両方に反映される。

例:

body {
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.7;
}

.prince {
  @page {
    margin: 20mm;
  }
}

CSS が効かないときの典型は:

  • パス付きの外部 CSS を読もうとしている
  • 日本語パスのせいで読み込み失敗
  • .mume/style.less を編集していない

のどれか。


✔ PrinceXML が動かない原因は 90%「PATH が通っていない」

VS Code/MPE が PrinceXML を呼び出すときは、内部で単に:

prince input.html -o output.pdf

というコマンドを叩いているだけ。

つまり、Windows の PATH に prince.exe が登録されていないと絶対に動かない


【手順】Windows で PATH を確認する

① PowerShell を開く

Win + R → <code>powershell</code>

② Prince の実行ファイルを直接呼んでみる

"C:\Program Files (x86)\Prince\engine\bin\prince.exe" -v

バージョンが返ってくれば OK。

③ PATH が通っているか確認

where prince
  • 何も出ない → PATH が通っていない
  • 別ディレクトリが出る → 複数バージョンが競合

【手順】PATH を正しく通す

  1. Windows 検索 → 「環境変数」
  2. 「システム環境変数の編集」
  3. 環境変数 →「Path」
  4. 次を追加:
C:\Program Files (x86)\Prince\engine\bin
  1. PowerShell を再起動して確認
prince --version

これが通れば MPE からも呼び出せるようになる。


✔ まとめ(修正版)

MPE × PrinceXML のトラブルは、ほぼ次のどれか。

1. settings.json が正しく書けていない

  • previewTheme
  • breakOnSingleNewLine
  • enableScriptExecution
    など基本のキーのみでOK。

2. CSS を外部読み込みしようとして失敗している

  • .mume/style.less を編集すれば安定する。

3. Windows の PATH が通っていない(最も多い)

  • prince --version が通らない → MPE からも絶対に動かない。

この3つだけ整えれば、PDF 書き出しはほぼ確実に成功する。

ZIDOOKA!

この記事の内容について、対応できます

この記事に関連する技術トラブルや開発上の問題について個別対応を行っています。

個別対応は3,000円〜 内容・工数により事前にお見積りします
最後までお読みいただきありがとうございました

コメントを残す

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

AI活用に関するポリシー

当サイトでは、記事の執筆補助にAIを活用する場合がありますが、全面的な委任は行いません。