Project Fx 2.0

怪文書と備忘録を書きます

VSCodeで数式入りMarkdownを書いてPDF出力をした時に試したこと

表題の通りです。Wordの数式入力の面倒さに嫌気が差したので、VSCodeTeX入りMarkdownを書きPDF出力して優勝することにしました。
他に同じことが出来る方法をご存じの方はコメントなどでぜひ情報をお願いします。

概要

VSCodeはデフォルトで数式のMarkdownプレビューが出来ない
拡張機能Markdown Preview Enhanced」(以下MPE)、または「Markdown+Math」(以下M+M)を入れ、数式のプレビューが出来るようにする
・PDF出力にはいくつかの方法がある。以下に自分が試した3つを列挙してみたが、他にも色々方法があるらしい

1. MPEのPDF出力機能を使い、.mdファイルをPDFに変換する

メリット:MPEだけで完結するので楽。安定している。PDFへの変換方法を複数の中から選べる
デメリット:デフォルトで使用できるPDFへの変換方法が1個だけ(他のは外部ツールが必要)。書式を整えるのが面倒

2. MPEまたはM+MのHTML出力機能を使い、.mdファイルをHTMLに変換し、ChromeでHTMLをPDFに変換する

メリット:HTMLを経由するのでCSSでファイルをいじることができ、書式の自由度が高い
デメリット:書式を整えるのが面倒

3. 拡張機能Markdown PDF」を入れ、.mdファイルをPDFに変換する

・この方法の場合、数式をKaTeXのCDNレンダリングするために「Markdown PDF」の出力テンプレートHTMLファイルを書き換える必要がある。詳しくは下記記事を参照。 qiita.com

メリット:「Markdown PDF」のオプションが豊富で書式を整えやすい
デメリット:数式が正しくレンダリングできない場合がある(できたという人とできなかったという人がいる。自分は後者。KaTeX側の問題か、あるいは「Markdown PDF」側のオンラインCSSがうまく適用されない既知の問題のせいなのか...?)

拡張機能

上で挙げた拡張機能の一覧です。Markdownの数式プレビューやMarkdown→PDFの変換を出来るようにする拡張機能は、外部ツールを使うものも含めて他にも色々あります。

Markdown Preview Enhanced

shd101wyy.github.io できること:LaTeXなど複数の形式に対応したMarkdown数式入力・プレビュー、複数形式での図表・グラフの入力、HTML・PDFなど複数形式でのファイル出力

Markdown+Math

marketplace.visualstudio.com できること:KaTeX準拠のMarkdown数式入力・プレビュー、HTML出力(CSSファイル指定可)
MPEよりも機能の幅は狭いですが、こちらはMarkdownLaTeXをスムーズに入出力することに特化しているようです。
なお、VSCode v1.46.0ではHTML出力が出来ないバグがあるようです(2020/06/14現在)。自分はVSCode v1.44.2にロールバックしました。

Markdown PDF

marketplace.visualstudio.com 日本語のreadmeがあるのが地味にうれしい。PDFへの変換にChromiumを使うため自動でChromiumがダウンロードされますが、インストール済みのChrome/Chromiumを使うこともできます。