Daiji Blog

LuaLaTeXのすゝめ

公開:
更新:

はじめに

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

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

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

LaTeXがPDFを作成するまでの流れ

フォント

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

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

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

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

\usepackage[ipa]{luatexja-preset}

Luaを書く

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

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

ドキュメントクラス

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

種類ドキュメントクラス内容
articleltjsarticle論文レポート用
bookltjsbook書籍用
reportltjsreportレポート用
jspfltjspf某学会誌用
kiyoultjskiyou某紀要用

おまけ

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

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

おわりに

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

文献

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