LuaLaTeXのすゝめ

はじめに

この記事では高機能でイケイケLuaLaTeXを紹介します

現在日本で一般的に使用されているLaTeXupLaTeXだと思いますupLaTeXUnicode対応の日本語LaTeXエンジンが収録されているpLaTeXの進化系みたいなものですupLaTeXpLaTeXからの移行が容易で環境依存文字やJIS12水準の漢字を意識せずに使用できる点が初心者に好まれている理由の1つだと思います

LaTeXは下の図の様にTeXファイルの執筆からPDFの出力まで行いますレガシーLaTeX(u)pLaTeXなどDVIファイルを経由してPDF作成しますそれに対しモダンLaTeXLuaLaTeXなど直接PDFを作成しますLuaLaTeXは海外でメジャーであるpdfLaTeXに軽量スクリプト言語であるLuaを組み込んだものですpdfLaTeXの後継として期待されていてLuaTeX-jaプロジェクトにより(u)pLaTeX以上の自由度で和文組版が可能となっていますLuaLaTeXUnicodeに対応していますさらにフォントの設定が簡単OpenTypeTrueTypeフォントを直接扱うことができます

フォント

LuaLaTeXの最大の強みと言えるのがフォントについてです昔ながらのLaTeXではフォントの設定が非常に難しいのに対してLuaLaTeXではソースファイル内で簡単に設定することができますfontspecを和文フォントに対応するように拡張したluatexja-fontspecを用いてフォントの設定を行います細かな設定方法についてはLuaLaTeXでフォント細かく変更する方法を参照してください

luatexja-fontspecを使用することで下に示すコードによりOSにインストールされているフォントをPDFに埋め込むことができますまたttfファイルなどを直接参照することもできます

1
2
3
\usepackage{luatexja-fontspec}
\setmainfont[Ligatures=TeX]{Times New Roman}
\setmainjfont[BoldFont=MS Gothic]{MS Mincho}

あらかじめ用意された和文フォントから選択することができるluatexja-presetというパッケージがあります例えばIPA明朝とIPAゴシックを使う設定する場合次のように書けばよいです他のフォントについてはLaTeX-jaの使い方を参照してください

1
\usepackage[ipa]{luatexja-preset}

Luaを書く

はじめにでも書きましたがLuaTeXからLuaを利用できますLuaLaTeXのソース中でLuaを書く場合には\directluaを使用しますLuaからTeXに出力するにはtex.printを使用します実際にLuaを利用して\sqrt{2}\sqrt{2}を表示してみます以下に示すコードにより\sqrt{2}\sqrt{2}が計算できていますもっと詳しいことは徹底攻略!LuaLaTeXLuaコードを書くためのコツでわかりやすく説明されています

1
\directlua{tex.print(math.sqrt(2))}
1.41421356237311.4142135623731

ドキュメントクラス

LuaLaTeXjsclasses互換クラス次の通りです現在は(u)pLaTeXLuaLaTeXの両方で使える日本語組版処理の要件に準拠したjlreqが人気です詳しくは今度別の記事で解説したいと思っています

種類 ドキュメントクラス 内容
article ltjsarticle 論文レポート用
book ltjsbook 書籍用
report ltjsreport レポート用
jspf ltjspf 某学会誌用
kiyou ltjskiyou 某紀要用

おまけ

(u)pLaTeXでは全角文字の幅と高さをzwzhという単位で表していたがLuaLaTeXでは\zw\zhとなりました

実際に確かめたわけでは無いがWindows用のLuaLaTeXではファイル名を日本語にしてもいいらしいですどうせ日本語のファイル名にしないけどな~

おわりに

はじめにが大きくて頭でっかちな記事になってしまいましたまだ説明できていない内容があります今後暇を見付けて記事のアップデートしていきたいと思います楽しいLuaLaTeXライフを願っています

文献

  1. 改定第8LaTeX2e美文書作成入門
  2. LaTeX入門/発展変(TeX Wiki)
  3. LuaTeX (TeX Wiki)
  4. LuaTeX-jaパッケージ(CTAN)
  5. LuaLaTeX-jajsclasses互換クラス(CTAN)
  6. LaTeX-jaの使い方(公式Wiki)
  7. LuaLaTeXでフォント細かく変更する方法(Qiita)
  8. 徹底攻略!LuaLaTeXLuaコードを書くためのコツ(Qiita)
  9. LuaLaTeXのすゝめ(Qiita)