事の経緯
ここ数年間Markdownで様々なメモや実験プロトコルをVScode+pandocで作製していたが、日本語markdownは専らWordファイルに変換していました。最近TeXliveを(なんとなく)導入したので「latex+pandocでmarkdown→pdfできたら便利じゃない?」と思いpdf化に勤しんでいたら何故か日本語の含まれている文書ではpdf化できないらしいので、その解決策を備忘録代わりにQiitaにあげておきます。他にハマっている人(いるか知らないけど)の助けになるかも?
原因
@sky_y さんの書かれた『[メモ:Pandoc+LaTeXで気軽に日本語PDFを出力する][2]』に非常にわかりやすく原因(+解決策)が書かれています。是非ご参照ください。
[2]:https://qiita.com/sky_y/items/15bf7737f4b37da50372
簡単に言いますと
- Pandocが使うPDF変換エンジンは、デフォルトでpdflatex
- pdflatexは日本語に対応していない
- 対応しているエンジン(lualatex)は和文フォントを無視して出力する(
なんでやねん)
...と日本人にはありがたくない仕様になっています。そこで、
- pdf化に用いるエンジンをlualatexに変える
- pdfにフォントを埋め込む
という二段階の設定をvscode-pandocにしてあげれば万事解決!というわけです
方法
環境設定
- windows 10
- VScode v1.38.1
- pandoc v2.7.3
- vscode-pandoc
- Tex live 2019
多分、Tex liveは最新版である必要ないはずですが、日本語対応パッケージがマージされたTex live 2010以上を推奨します(2016以上のほうが良い?)。
それ未満のものを使っている人はアプデしましょう。tlmgrコマンドが使えます。詳細は[こちら][1]
[1]:https://texwiki.texjp.org/?tlmgr
細かいインストール方法は書くのがめんどくさい丁寧な記事が多く存在するので割愛します。
これらをインストールしたら、VScodeを起動しctrl+,
で設定画面に飛びます。
その後、Setting.json(右上のアイコンから入れる)で
"pandoc.pdfOptString": "--pdf-engine=lualatex -V documentclass=ltjsarticle -V luatexjapresetoption=ms",
を追加します。
--pdf-engine=lualatex
でpdfエンジンを変更し、-V documentclass=ltjsarticle -V luatexjapresetoption=ms
で和文pdf作製&フォント指定を行います。-V luatexjapresetoption=
がフォント指定のコマンドになっています。
「MSフォントなんか使いたくねぇ!」という人は游明朝やヒラギノ、IPAexフォントを指定できます。
以下、フォントについて『[LuaTeX-ja の使い方][3]』からの引用
[3]:https://ja.osdn.net/projects/luatex-ja/wiki/LuaTeX-ja%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9
noembed: 非埋込
kozuka-pro: 小塚フォント (Pro)
kozuka-pr6: 小塚フォント (ProVI)
kozuka-pr6n: 小塚フォント (Pr6N)
hiragino-pro: ヒラギノフォント (Pro, Std)
hiragino-pron: ヒラギノフォント (ProN, StdN)
morisawa-pro: モリサワフォント (Pro)
morisawa-pr6n: モリサワフォント (Pr6N)
ipa: IPAフォント
ipaex: IPAexフォント
ms: MS 明朝,MS ゴシック
moga-mobo: MogaMincho, MogaGothic, MoboGothic(20150420.0 以降)
yu-win: Windows 8.1 に付属する游書体(20140114.0 以降)
yu-osx: OS X 10.9 に付属する游書体(20140114.0 以降)
sourcehan: 源ノ明朝,源ノ角ゴシック
以上です。
参考文献
[メモ:Pandoc+LaTeXで気軽に日本語PDFを出力する][2]
[Tex Wiki][1]
[LuaTex-ja][3]