よくわからんけど動いた!
(La)TeXに入門しようと思って、[改訂第7版]LaTeX2ε美文書作成入門を買ってきました。
とりあえず読み進めています。環境構築がほぼ何も考えずにTeXLiveでOKなので楽な時代なんだろうな…と思っています(niszetは(La)TeXのことをよく知らないし、2年くらい前に触ったときもTeXLiveなのでそれ以前を知らない)
3年に一度?のペースで更新しているらしいので、今年出るのでは…買うのは時期が悪いのでは…と後で思いましたが必要な時に買わないでいつ買うんでしょうかね…。(なお、本当に今必要なのかはよくわからない)
とりあえず十分な時間待てば完了するので、その間に本を読んでました。
一方、(La)TeX界隈はLuaLaTeXが人気だそうで。2019のアドカレにも書いてある。
なので、LuaLaTeXを使っていこうと思ったのですが、ちょっとハマったので自分のためにメモです。日本語を含む文書で無駄に時間を溶かさないように…。
LuaLaTeXから始めるTeX…の道はなんか険しそうですが、何もわからんので逆に良さそう。
ドキュメントクラス
まずはじめにはまったのがコレ。 美文書は(u)pLaTeXの使用を前提としているので、LuaLaTeXを使う場合は注意。LuaTeX-jaのページによると、
使用可能なドキュメントクラスは ltjarticle, ltjsarticle, bxjsarticle, beamer などがあります. (u)jarticle や jsarticle などの (e-)(u)pTeX の使用を前提としたものは使用できません.
とのこと。とりあえずは頭にltってつけると対応するドキュメントクラスがありそう。ただ、後述のとおりこれらは使わないことにしたです。
エラーメッセージ読んでも全然わからん…ってなるのがツライ。あと場合によってエラーなく変換されるけど日本語部分が全部消えているってのもツライ…。
こういうエラーが出たりする。(pdflatexではなく)lualatex指定しているのになぁ…となる場合はドキュメントクラスを疑うべき。
RMarkdownと組み合わせるとちょっとつらい。
2018年のAtusyさんの記事がこちらにあるので、大体これを読めばよいのですが、私は上に書いた通りLuaLaTeXを使うniszetなので、ここを参考にしつつ、LuaLaTeXを使っていくのでした。
rmarkdown::pdf_documentのマニュアルを読むと、latex_engine
の取れる値は3つ。
LaTeX engine for producing PDF output. Options are "pdflatex", "lualatex", and "xelatex".
なのでpLaTeXとかはそもそも選択できないのである…。
まぁそもそも、Pandocのオプションにもplatexはないんだけどね…。rmarkdownが上記3つのengineにしか対応していないのは謎です。
色々さがしていく…
ひとまず変換できるところまで行った。このとき、RmdファイルのYAML部分は以下のようになっている。
これで問題なく日本語の文字が入っていても変換できる。
output: pdf_document: latex_engine: lualatex documentclass: ltjsarticle
しかし、出力に大量の警告メッセージ…
警告メッセージ: Package microtype Warning: Could not parse font size
10\jsc@mpt ' (microtype) in font set
basicmath' on input line 74.
気になって検索すると、BXjscls パッケージのマニュアル(正確にはソースコード説明書)が見つかった。
http://ctan.math.washington.edu/tex-archive/language/japanese/BX/bxjscls/bxjscls.pdf
作者の人、どこかで見た名前だ…と思いつつ検索すると、TeX wikiにも記載がある(そらそうだ)
よさそうなのでこちらに乗り換える。TeX Liveに含まれているらしいので、そのまま使える。
先のYAMLでdocumentclass: bxjsarticle
と指定するが日本語部分が消えている。
Wikiによればja=standard
の指定が必要とのこと。しかしこれだけ設定してもエラー。ドキュメントクラスの指定が必要とのこと。
結局、下記のように指定するのが正しいようだ。
output: pdf_document: latex_engine: lualatex documentclass: bixjsarticle classoption: lualatex, ja=standard
これでいい感じにLuaLaTeXで日本語を含んだ文書作成が出来そう。
しかし、ビルド(とは呼ばないらしいが)がすごい遅い気がするんだけど…。リアルタイムプレビューとかは難しそうですね…。