はじめに
この記事では高機能でイケイケな LuaLaTeX を紹介します。
現在日本で一般的に使用されている LaTeX は upLaTeX だと思います。upLaTeX は Unicode 対応の日本語 LaTeX エンジンが収録されている,pLaTeX の進化系みたいなものです。upLaTeX は pLaTeX からの移行が容易で,環境依存文字や JIS 第 1・第 2 水準の漢字を意識せずに使用できる点が初心者に好まれている理由の 1 つだと思います。
LaTeX は下の図の様に TeX ファイルの執筆から PDF の出力まで行います。レガシー LaTeX((u)pLaTeX など)は DVI ファイルを経由して PDF 作成します。それに対しモダン LaTeX(LuaLaTeX など)は直接 PDF を作成します。LuaLaTeX は海外でメジャーである pdfLaTeX に軽量スクリプト言語である Lua を組み込んだものです。pdfLaTeX の後継として期待されていて,LuaTeX-ja プロジェクトにより (u)pLaTeX 以上の自由度で和文組版が可能となっています。LuaLaTeX は Unicode に対応しています。さらにフォントの設定が簡単で,OpenType や TrueType フォントを直接扱うことができます。
フォント
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 を利用して $\sqrt{2}$ を表示してみます。以下に示すコードにより $\sqrt{2}$ が計算(?)できています。もっと詳しいことは徹底攻略! LuaLaTeX で Lua コードを「書く」ためのコツでわかりやすく説明されています。
\directlua{tex.print(math.sqrt(2))}
1.4142135623731
ドキュメントクラス
LuaLaTeX の jsclasses
互換クラス次の通りです。現在は (u)pLaTeX と LuaLaTeX の両方で使える,日本語組版処理の要件に準拠した jlreq
が人気です。詳しくは今度,別の記事で解説したいと思っています。
種類 | ドキュメントクラス | 内容 |
---|---|---|
article | ltjsarticle |
論文・レポート用 |
book | ltjsbook |
書籍用 |
report | ltjsreport |
レポート用 |
jspf | ltjspf |
某学会誌用 |
kiyou | ltjskiyou |
某紀要用 |
おまけ
(u)pLaTeX では全角文字の幅と高さを zw
と zh
という単位で表していたが,LuaLaTeX では \zw
と \zh
となりました。
実際に確かめたわけでは無いが,Windows 用の LuaLaTeX ではファイル名を日本語にしてもいいらしいです。どうせ日本語のファイル名にしないけどな~
おわりに
「はじめに」が大きくて頭でっかちな記事になってしまいました。まだ説明できていない内容があります。今後暇を見付けて記事のアップデートしていきたいと思います。楽しい LuaLaTeX ライフを願っています。