PandocでMarkdownファイルをTeXに変換

(追記:2017年12月14日)

コメントでソースコードのフォントと行番号の色についてアドバイスをいただき、記事を修正しました。

hidarumaさん、ありがとうございます!


どうしてもMarkdownでレポートが書きたかったのでメモ。

結論としては、前回よりいい感じに生成できたけど依然として最適解ではない感じです。

ちょっと癖があるので、素直にLaTeXで書くのが一番いいのかもしれません・・・

環境

  • Apple MacBook(Eearly 2016)
  • Windows 10 64bit

インストールしたもの

TeX Liveはイメージファイルからインストールしましたが、Windows 10はデフォルトでisoをマウントできたので追加のツールは必要ありませんでした。

変換対象

ソースコードを含む文章をレポート形式で出力したかったのです。

なるべくソースコードが綺麗に載るように調整を行いました。

変換

まずはMarkdownを書きます。

この記事もMarkdownで書いているので、記事に掲載はできませんが、添付しておきます。

test.md

これをTeXに変換するのですが、その際にpandocのテンプレートを使います。

テンプレートはこちらを参考にして、コードがうまく載るようにカスタマイズします。

ついでに最低限見栄えがおかしくならないよう、色々を調整を行っています。

custom.latex

こちらをcustom.latexというファイル名でMarkdownと同じディレクトリに保存します。

次にコマンドプロンプトで以下を実行します。

pandoc --mathml --listings --template=custom -V monofont=NotoSansMonoCJKJP test.md -o test.tex

ここでは先ほどインストールしたNotoSansMonoCJKJPをソースコードのフォントとして指定していますね。

これでtest.texができると思うので、TeXworks EditorでLuaLaTeXを指定してコンパイルします。

その結果出力されたPDFがこちらになります。

test.pdf

所感

Markdownでレポートを書くには結局LaTexの深い知識が必要になる事が分かりました。

そしてその知識が圧倒的に足りていないことを痛感。まだまだ道は長そうです。

完璧な出力を得られるころにはLaTeXマスターになってそう・・・

参考

  • https://tex.stackexchange.com/questions/33685/set-the-font-family-for-lstlisting
  • https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings
  • http://sky-y.github.io/site-pandoc-jp/users-guide/#templates
  • http://tech.lauritz.me/easy-latex-with-markdown-pandoc/
  • https://texwiki.texjp.org/?TeX%20Live%2FWindows

「PandocでMarkdownファイルをTeXに変換」への2件のフィードバック

  1. ソースコードのフォントはbasicstyle=ttfamilyが指定されているので、Pandocを叩く際に

    -V monofont=該当フォント

    とすれば変更可能な筈です。僕はNotoSansMonoCJKJPとか設定しています。

    行番号の色は
    \usepakckage{xcolor}をヘッダ(プリアンブル)に入れて(–include-in-header=header かテンプレートに書きこんで)、lstsetにnumberstyle=\color{色名} を入れるといいかと思います。

    1. 丁寧なアドバイスをありがとうございます!試してみたところ求めていた動作を得ることができました。

      LaTexには様々な機能があり、自分はその知見がまだまだ足りていないようです。いろいろと調べつつ、理想のレポートライフに近付けるようもう少し頑張ってみたいと思います。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です