Mark Down to PDF ~Pandocを使ってPDFを生成~(失敗)

イントロダクション

Atomを使用してMDファイルを作成しているのですが、インストールしたパッケージの動きがイマイチ、PDFではなくHTMLが生成されるので、別な方法を使うことにしました。

MACをつかう と うまくいくかも?

理想としては、コマンドで複数ファイルをいっぺんにPDFに変換できるとよいです。

PANDOCを使う

PANDOCというツールがあるようです。詳細はこちらのページが本家のサイトです。

このページにはWindows用のインストーラーがあったのでインストールはクリックで終りました。

コマンドプロンプトで確認すると下のように、コマンドで実行することができます。

使い方は、こちらのページにあるように、下のようなコマンドで実行できるようです。

HTML fragment:

pandoc MANUAL.txt -o example1.html
Standalone HTML file:

pandoc -s MANUAL.txt -o example2.html
HTML with table of contents, CSS, and custom footer:

pandoc -s --toc -c pandoc.css -A footer.html MANUAL.txt -o example3.html
LaTeX:

pandoc -s MANUAL.txt -o example4.tex
From LaTeX to markdown:

pandoc -s example4.tex -o example5.text
reStructuredText:

pandoc -s -t rst --toc MANUAL.txt -o example6.text
Rich text format (RTF):

pandoc -s MANUAL.txt -o example7.rtf
Beamer slide show:

pandoc -t beamer SLIDES -o example8.pdf
DocBook XML:

pandoc -s -t docbook MANUAL.txt -o example9.db
Man page:

pandoc -s -t man pandoc.1.md -o example10.1
ConTeXt:

pandoc -s -t context MANUAL.txt -o example11.tex
Converting a web page to markdown:

pandoc -s -r html http://www.gnu.org/software/make/ -o example12.text
From markdown to PDF:

pandoc MANUAL.txt --pdf-engine=xelatex -o example13.pdf

そして、今回注目したいのが、以下の部分のコマンドです。

From markdown to PDF:

pandoc MANUAL.txt --pdf-engine=xelatex -o example13.pdf

しかし、「.txt」から変換しているようです。細かい部分はさておきにしてとりあえずは動かしてみます。

xelatex not found. Please select a different --pdf-engine or install xelatex

上のようなメッセージが出ました。こちらのサイトを参考にすると変換するエンジンに「xelatex」を使用するということがわかりました。

では、インストール方法は?

大まかにこちらのサイトにある情報が「xelatex」のインストールに関連する情報であろうと思います。
抽象的な言い方なのは、英語だからです。しかし、ばっちりとインストールについての記載がありました。

そして、以下のリンクからかくOSでのインストールができるようです。

結局はインストールファイルを落とすようです。

そして、上にも書きましたが、下のコマンドを実行します。

pandoc 変換するファイル --pdf-engine=xelatex -o example13.pdf

実際に実行したコマンドは以下のものです。

pandoc "0-1 教材の概要.md" --pdf-engine=xelatex -o example13.pdf

しかし、なかなかファイルが生成されず、おかしいと思っていたら下のように不足するものをインストールするダイアログが表示されました。

これが、何個か続いた後に。。。変換処理が走ったのですが、ワーニングが出ました。

どうやら下のようなコマンドでやるのが良いみたいです。(参考ページ)

pandoc 変換するファイル.md -o 変換後.pdf --pdf-engine=xelatex -V documentclass=bxjsarticle -V classoption=pandoc

そして、次には下のようなワーニングが出ました。

Missing character: There is no ① (U+2460) in font [lmroman10-regular]:mapping=tex-text;!

どうやら、フォントの設定を行う必要があるようです。参照先はこちらです。

XELATEXを使う

つまるところ、こちらのファイルを作成して下のようなコマンドで実行すれば、必要なファイルをインストールしてくれるようです。

xelatex test

上のコマンドは、以下の手順で実行しました。

  1. こちらのファイルの内容を書きだした「test.tex」というファイルを作成
  2. このファイルのあるディレクトリに移動
  3. xelatex testとコマンドを実行

すると下のようなファイルをダウンロードしてくれます。

======================================================================

(C:\Program Files\MiKTeX\tex/latex/everysel\everysel.sty
(C:\Program Files\MiKTeX\tex/latex/everysel\everysel-2011-10-28.sty))
(C:\Program Files\MiKTeX\tex/latex/ctex/config\ctexopts.cfg)
(C:\Program Files\MiKTeX\tex/latex/ctex/engine\ctex-engine-xetex.def
(C:\Program Files\MiKTeX\tex/xelatex/xecjk\xeCJK.sty
(C:\Program Files\MiKTeX\tex/latex/l3packages/xtemplate\xtemplate.sty)
(C:\Program Files\MiKTeX\tex/latex/fontspec\fontspec.sty
(C:\Program Files\MiKTeX\tex/latex/fontspec\fontspec-xetex.sty
(C:\Program Files\MiKTeX\tex/latex/base\fontenc.sty)
(C:\Program Files\MiKTeX\tex/latex/fontspec\fontspec.cfg)))
(C:\Program Files\MiKTeX\tex/xelatex/xecjk\xeCJK.cfg)))

エラーが出る

UTF-8 decoding error in - at byte offset 87 (8a).

これはコマンドプロンプトの文字コードをUTF-8に変換することで解決:

chcp 65001

参考になるサイトとしてはこのサイトがエラーに対応する方法がありました。

PDFをまとめる

下のようなコマンドで、1ファイルにまとめることができるようです。

dir /b /s *.md | pandoc -f markdown -o output.pdf --pdf-engine=lualatex

dir /b /s *.md

このコマンドで、MDファイルの一覧を表示して、

pandoc -f markdown -o output.pdf --pdf-engine=lualatex

このコマンドで、PDFを出力します。。。しかし、エラーが出て解決できなくなりました。

最終的に

Windowsの設定(フォントの設定)が足りないらしく。。。うまくいきませんでした。

投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す