garakutabako’s blog

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

VScode:Markdown Preview Enhanced(MPE)~概略

概略

Markdown Preview Enhanced、インターネット上では単にMPEと略されることも多いようです。 VScodeのMarketPlaceでmarkdown @sort:installsと入力すると、インストール順では4番目に人気があるようです。

このMPE、拡張機能の良さはMarkdown文書をプレビューし、得たいフォーマット(主にPDF形式)にマウス操作で、変換できることです。 ただし、Markdownでは微調整が効かなかったり、ほかの文書形式にして、より高機能なこと(プログラムソースの流し込み、できないですよね?、できたら...)はAsciidocで行ったり、提出様式が決められている場合にはLatex、docx形式で整える場合も少なくないです。

マウス右クリックメニューは次のようなものです。

f:id:garakutabako:20200513164254p:plain
MPEのプレビュー(マウス右クリックメニュー表示)

これを、略図にしてみましょう。

f:id:garakutabako:20200521085038p:plain
MPEマウス右コンテキストメニューの概略

凡例をつけ忘れましたが。

  • 背景が緋色 (MPEなど)
  • 背景が黒(Papeteer、Calibre、Pandoc)
    • ライブラリと私は呼んでいますが、VScode外のほかのプログラムを呼び出す機能で変換を実現するメニューです。
  • HTML
    • HTMLも複数のメニューから生成できます。MPE内部になんらかの外部プログラム(javascript)などがあるのかもしれません。ただ、Calibreの出力が綺麗ならそちらを使うべきでしょう。
  • PDF
    • PDFもHTMLと同様に比較が必要ですね。
  • reveal.js
    • これは挑戦中なのですが、ここでは、PandocからAsciiDoc→AsciiDoc Slides(でオンライン?)HTMLプレゼンテーションをつくるのと、Pandocからそのままreveal.jsに変換する方法の二つがあります。

ただし、MPEからPandocを使う場合Word、RTF、(LaTexのプレゼンテーション)Beamerが標準的で、カスタム文書がどの程度変換できるかは、今は不明です。

Markdownから最終的にどの文書フォーマットで最終形式で結果を得るか。

これを極めるというか、自分のスタイルを見つけることが、拡張機能を少なくしたり、作業効率を上げるコツではないかと思っています。

Puppeteer

MPEのドキュメントに次のように書かれています。

You need to have the Chrome browser installed. There is an extension setting with name chromePath that allows you to >specify the path to the chrome executable. By default you don't have to >modify it. The MPE extension will look for the path automatically.

(意訳)Chrome ブラウザをインストールして、chromePathにそのインストール先(Path)を設定しろ。ただし、デフォルトではMPE拡張機能は自動的にPathを見つけるので、chromePathは触るな。

Chromeさえ入っていれば、何もしなくて良いらしい。

やってみます。

f:id:garakutabako:20200513174643p:plain
Chrome(Puppeteer)の出力

PDFはSumatraPDFで表示しています。簡単、お手軽でした。

Calibre

まず、CalibreをChocolateyでインストールします。PowerShellの管理者権限で実行しています。

入力

PS C:\Windows\system32> choco install calibre

出力

Chocolatey v0.10.15
Installing the following packages:
calibre
By installing you accept licenses for the packages.
Progress: Downloading calibre 4.15.0... 100%

calibre v4.15.0 [Approved]
calibre package files install completed. Performing other installation steps.
The package calibre wants to run 'chocolateyInstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): A

上の行でAを入力しました。

出力

Installing 64-bit calibre...
calibre has been installed.
  calibre may be able to be automatically uninstalled.
Environment Vars (like PATH) have changed. Close/reopen your shell to
 see the changes (or in powershell/cmd.exe just type `refreshenv`).
 The install of calibre was successful.
  Software installed to 'C:\Program Files\Calibre2\'

Chocolatey installed 1/1 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
PS C:\Windows\system32> refreshenv
Refreshing environment variables from registry for cmd.exe. Please wait...Finished..

インストールが終了しました。 テストします。

入力

PS C:\Windows\system32> ebook-convert

出力

使用法: ebook-convert.exe 電子書籍のフォーマットを変換します。

出力する電子書籍のフォーマットは、出力ファイルの拡張子から推測されます。出力ファイルの拡張子をEXTとして、output_file は 特別な形式 .EXT と指定することも可能です。この場合、出力ファイル名の本体部分は、入力ファイル名のものが使用されます。ファイル名の先頭にハイフンは使えませんので注意してください。output_file に拡張子をつけなかった場合、出力ファイル名はディレクトリとして見なされ、HTMLファイルで構成されれる "open ebook" (OEB) フォーマットで、指定したディレクトリに出力されます。

入力ファイルと出力ファイルを指定した後ろに、変換をカスタマイズするための様々なオプションを指定することができます。使用可能なオプションは、入出力のファイルタイプに依存します。使用可能なオプションとその使い方を見るためには、入出力のファイルを指定した後ろに、-h オプションを指定してください。

電子書籍変換システムについての完全なドキュメントは下記を参照してください
https://manual.calibre-ebook.com/conversion.html

スペースを含む引数を ebook-convert.exe に渡す場合には、クォーテーションマークでくくってください。例: "C:\some path with spaces"

オプション:
  --version       プログラムのバージョン番号を表示して終了

  -h, --help      このヘルプメッセージを表示して終了

  --list-recipes  ビルトイン・レシピ名の一覧を表示。以下のようにしてビルトイン・レシピから電子書籍を作成できます。: ebook-
                  convert "Recipe Name.recipe" output.epub


開発者: Kovid Goyal <kovid@kovidgoyal.net>

calibreからのPDF出力はMetadata(おまじない。とする)が必要のようです。MPEの画像の例を使っていますので、おまじないを次のように変更します。MPEのドキュメント

変更前

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

変更後

---
title: "Hi there"
output: pdf_document
ebook:
  pdf:
    paper-size: a4
    default-font-size: 19
---

SumatraPDFの出力。

f:id:garakutabako:20200513181823p:plain
Calibre-PDF出力

なんか変かもしれません。

今日はここまで。