luajittex のセットアップ

【後記:必ずここから読んで下さい】

LuaJITTeX / LuaJITLaTeX ですが、どうもこの先、特に日本語の文書処理に関しては使えないということになりそうです。というのも、LuaJIT が基にしている Lua 5.3 において UTF-8 の取り扱いに問題があるようで、2019年以来、luajitlatex で日本語文書を処理できない状態が続いています。これに関しては texlive の方でもどうこうするということはないようで、既に Windows 版では luajitlatex.exe が削除されています。

巨大なフォントファイルを使う日本語の場合、LuaJITLaTeX を使うメリットは大きいものがありますが、欧米圏ではそのようなニーズはないわけです。ですから、少なくとも現状において、ここに書かれていることは obsolete ということになってしまいました。luatex-ja を使用される方々も、基本的には luatex / lualatex を使用するということでご理解下さい。

はじめに

LuaTeX-ja を使っているときなど、platex を使用しているときと比較して、その遅さに閉口させられることが少なくありません。当然、これは Lua を組み込んでいるからなのですが、Lua の実行時に機械語にコンパイル、実行を行う LuaJIT を使用した LuaJITTeX が、TeX Live には収録されています。

となれば、これを有効に使って LuaLaTeX を活用したいところです。Windows 版の TeX Live の場合は、luajitlatex.exe が収録されているので、従来 lualatex コマンドを使用していたところをそのまま luajitlatex に置き換えればよいだけです。

ところが、Linux 版や Mac OS 版の TeX Live には luajitlatex という名前の実行形式のファイルは収録されていません。そこで、ここでは Linux 版や Mac OS 版の TeX Live での luajitlatex の利用法について補足しておきます。

手順

TeX Live を使用できるようにしておく

これは当然と言えば当然なのですが、まずは TeX Live のインストール、設定を済ませておきましょう。

fmtutil.cnf を探す

設定の第一歩は fmtutil.cnf を探すことです。これは、TeX Live のセッティングができているならば、

$ kpsewhich fmtutil.cnf
で path が出てきます。

fmtutil.cnf を編集する

fmtutil.cnf に修正を加えます。

$ sudo vi `kpsewhich fmtutil.cnf`
(bash 等の場合)のようにすると楽に開けるでしょう。私はこういうときには vi (vim) を使用しますが、御自分で管理用に使っているエディタを使っていただければ OK です。

"luajitlatex" という文字列で検索をかけると、この辺りに飛ぶと思います。
# from latex-bin:
latex pdftex language.dat -translate-file=cp227.tcx *latex.ini
pdflatex pdftex language.dat -translate-file=cp227.tcx *pdflatex.ini
dvilualatex luatex language.dat,language.dat.lua dvilualatex.ini
lualatex luatex language.dat,language.dat.lua lualatex.ini
#! luajitlatex luajittex language.dat,language.dat.lua lualatex.ini
#
# from lollipop:
lollipop tex - lollipop.ini
#
この赤字の部分でコメントアウトされているわけですが、赤字箇所を削除して、この行を効力のある状態にしてセーブしておきます。

luajitlatex.fmt を作成する

セーブしたら、下記コマンドを実行します。

$ sudo fmtutil-sys --byfmt luajitlatex
すると、luajitlatex.fmt が作成され、luajitlatex を使用する準備が整いました。

alias の作成

あとは、~/.bashrc 等に alias を設定しておきます。

alias luajitlatex='luajittex --fmt=luajitlatex.fmt'

$ . ~/.bashrc
のように実行するか、一度ログアウトする等して、この alias を有効にすれば、lualatex の代わりに luajitlatex を使用することができるようになります。


Go back to the top
Go back to the index

Copyright(C) 2020 Tamotsu Thomas UEDA