Markdown形式のファイルを整形してPDFにする

Markdown形式で書いたテキストを、PDFファイルにするという苦行を達成した。とりあえず、以下の環境で作業する。

基本方針

  • Sublime Text 2のパッケージ「Markdown Preview」でHTML表示する
    • これをSafariの「ファイル」→「PDFとして書き出す」で出力する
  • コードのインライン表示(`....`)部分には、枠線を付ける

なおMarkdownファイルをPDFにするにはpandocというツールを使うと良いらしいのだけど、これは内部でLaTeXを使っているため、ここではもっと手軽に作ってみることにする。

Markdown Previewをインストール

まずSublime Text 2でMarkdownファイルをいい感じに整形するために、Markdown Previewパッケージを利用する。ただしこれをインストールするためには、先に「Package Control」というSublime Text用のパッケージマネージャをインストールする必要がある。

具体的には、「Ctrl + `」でSublime Text 2のコンソールを開き、上記Webサイトの「これを貼り付けろ」というテキストをペーストして実行するとインストールできる。

Package Controlがインストールできたら、「Command + Shift + p」でコマンドパレットを開く。

ここで、「Package Control: Install Package」を選択して実行。

するとリポジトリに接続後、パッケージリストが表示される。Markdown周りのパッケージはいくつかあるが、このうち「Markdown Preview」をインストール。

.mdファイルを整形して表示

Sublime Text 2はデフォルトでMarkdown形式に対応しているので、.mdファイルを開くといい感じに色分けして表示してくれる。

これを、Markdown Previewの機能でHTML出力してWebブラウザで表示してみる。具体的には、「Command + Shift + p」から「Markdown Preview: Preview in Browser」を選択する。

さらにサブメニューとして「github」フォーマットか「markdown」フォーマットかを聞かれるため、markdownを選択する。

これでSafariが自動的に起動されて、HTML形式に整形されたMarkdownファイルが表示される。

あとはSafariの「ファイル」→「PDFとして書き出す」で、PDFに出力することができる。

コードのインライン表示に枠線を付ける

このままだと、コードのインライン表示(`....`)がどうしても見にくい。背景色がグレーになっているだけで地の文と区別しにくいのだ。(具体的には、「ps xとして実行してみましょう。」の「ps x」のところ)

ということで、コードのインライン表示に枠線を付けることにする。具体的には、/Users/ユーザ名/Library/Application Support/Sublime Text 2/Packages/Markdown Preview/markdown.cssスタイルシートなので、これをいじることにする。

.markdown-body code,
.markdown-body samp {
  padding: 0;
  padding-top: 0.2em;
  padding-bottom: 0.2em;
  margin: 0;
  font-size: 85%;
  background-color: rgba(0,0,0,0.04);
  border-radius: 3px;
}

ここに、1行だけ次のように加えれば良い。

  border: 1px solid #000000;

こうすれば、次のように「ps x」のところに枠線が付く。これで地の文との区別がはっきりできて、見やすい。

あとはSafariの「ファイル」メニューで、PDFとして書き出せばOK。

おしまい。