41
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LuaLaTeX のすゝめ

Last updated at Posted at 2021-02-07

はじめに

この記事では高機能でイケイケな 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 では全角文字の幅と高さを zwzh という単位で表していたが,LuaLaTeX では \zw\zh となりました。

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

おわりに

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

文献

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?