garakutabako’s blog

とめどないことを延々と書き続ける、ガラクタ箱のようなブログです。

VScode:Markdown Preview Enhanced(MPE)~Pandoc

MPEの第2回目、いろいろな出力形式を比較しています。 今日はPandocについてやってみたことを書きます。と、その前にPandocのオンラインマニュアルを参照します。

Pandoc オンラインマニュアル

日本Pandocユーザー会 pandoc-doc-ja.readthedocs.io

Pandoc User's Guide

pandoc.org

この中で注意するのは次のようなもの

  • PDFへの変換にはLaTexを使っていて、TexLiveに入っているということ。(ただし、英語圏など用)
  • 文字コードUTF-8
  • pandocは文書をネイティブ表現にするReader群とターゲットの出力形式にするWriter群から構成される。
  • (どこで見たか忘れましたが。)ネイティブ表現=中間形式?はHTMLのようなもの。

日本語PDFは拡張機能Latex Workshopで整理することにして、とりあえず英語の変換を行ってみます。

Pandocのインストール(by chocolatery)

Powershellコマンドプロンプトを管理者権限で起動して、chocolateyからインストールします。

> choco install pandoc

MPEのマニュアル

このマニュアルを参照します。

shd101wyy.github.io

意訳してみましょう。

Markdown Preview Enhanced supports pandoc document export feature that works similarly to RStudio Markdown. To use this feature, you need to have pandoc installed.

(意訳) MPEはRStudio Markdownと同様に機能するpandoc docment exportをサポートしています。この機能を使うには、pandocのインストールが必要です。(Rstudio Markdownもwordやhtmlに変換できますが、MPEはこれにインスパイアされたのかもしれません。)

Installation instruction of pandoc can be found here. You can use pandoc document export by right clicking at the preview, then you will see it on the context menu.

(意訳)インストール方法はここ(リンク先)で見つけることができます。pandoc document exportはプレビュー画面でマウスボタンを右クリックし、コンテキストメニューで見つけられます。

Pandoc parser

By default Markdown Preview Enhanced uses markdown-it to parse markdown.You can also set it to pandoc parser from package settings.

(意訳)既定のMPEはmarkdownをパース(翻訳、変換)するのに https://github.com/markdown-it/markdown-it を使います。pandocのパーサー(翻訳器、変換器)を使うにはパッケージの設定をしてください。

You can also set pandoc arguments for individual files by writing front-matter

(意訳)個々のファイルのフロントマターにpandocの引数を書くことができます。

---
pandoc_args: ["--toc", "--toc-depth=2"]
---

Attention: This feature is still experimental. Feel free to post issues or suggestions.

(意訳)注意:この機能はまだ実験的な機能です。問題や議論は自由に投稿してください。

Known Issues & Limitations:

(意訳)既知の問題と制限:

  1. ebook export has problem.

(意訳) ebookへの出力には問題があります。

  1. Code Chunk is sometimes buggy.

(意訳)コードチャンクは時々バグが発生します。

ここまで意訳してきて、このコードチャンクやプログラムチャンクは、markdown文書の中に実際のプログラムを書いて、実行した結果を文書に反映させるような機能です。Rmdの主要な機能なので、もしかしたら別途入れている拡張機能「R Markdown All in One」の方が、pandocの機能を生かす場合には良いかもしれませんね。

wordへの出力

pandoc、Latex、R markdown All in One、vscode-pandocなどいろいろなからみが出てきそうなので、ここではMicrosoft Word(docx)の出力方法のみをまとめてみます。

フロントマターは例題ではつぎのようになっています。

--
title: "Hi there"
output: pdf_document
---

これを、ドキュメントを参考にしてつぎのように変更しました。

---
title: "Habits"
author: John Doe
date: March 22, 2005
output:
   word_document:
       path: ./Habits.docx
       highlight: breezeDark
---

docxへの変換は次のようになりました。

f:id:garakutabako:20200519144611p:plain
MPE:Pandocからdocxへの変換結果

数式なども変換されていてびっくりです。書式は「表題」、「見出し1」などに設定されていて編集するのも楽そうですが、「段落」は「First paragraph」になっているなど、もう少し勉強してみる必要があるようです。でも満足。

highlight: breezeDarkはいくつかテーマを選べるようです。

qiita.com

また、「見出し」の書式などをあらかじめ設定したdocx(ここでは、mystyles.docx)を用意しておき、その書式に沿って変換する場合には、

output:
   word_document:
       path: ./Habits.docx
       highlight: breezeDark
       reference_docx: mystyles.docx

という風にする。とドキュメントにあります。

Pandocはもう少し勉強してみる必要がありますね。