49
49

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LuaLaTeXのすゝめ

49
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)
49
49
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
49
49

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?