luajittex のセットアップ

はじめに

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
すると、
fmtutil: fmtutil is using the following fmtutil.cnf files (in precedence order):
fmtutil:   /usr/local/texlive/2016/texmf-dist/web2c/fmtutil.cnf
fmtutil: fmtutil is using the following fmtutil.cnf file for writing changes:
fmtutil:   /usr/local/texlive/2016/texmf-config/web2c/fmtutil.cnf
fmtutil [INFO]: writing formats under /usr/local/texlive/2016/texmf-var/web2c
fmtutil [INFO]: --- remaking luajitlatex with luajittex
fmtutil: running `luajittex -ini   -jobname=luajitlatex -progname=luajitlatex lualatex.ini' ...
This is LuajitTeX, Version 0.95.0 (TeX Live 2016)  (INITEX)
 restricted system commands enabled.
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex-ini-files/lualatex.ini
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex-ini-files/luatexconfig.tex
(/usr/local/texlive/2016/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
) (/usr/local/texlive/2016/texmf-dist/tex/latex/base/latex.ltx
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/texsys.cfg)
./texsys.aux found


\@currdir set to: ./.


Assuming \openin and \input 
have the same search path.


Defining UNIX/DOS style filename parser.

catcodes, registers, compatibility for TeX 2,  parameters,
LaTeX2e <2016/03/31>
hacks, control, par, spacing, files, font encodings, lengths,
====================================

Local config file fonttext.cfg used

====================================
(/usr/local/texlive/2016/texmf-dist/tex/cslatex/base/fonttext.cfg
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/omlenc.def)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/t1enc.def)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/ot1enc.def)
(/usr/local/texlive/2016/texmf-dist/tex/cslatex/base/il2enc.def)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/omsenc.def)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/t1cmr.fd)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/ot1cmr.fd)
(/usr/local/texlive/2016/texmf-dist/tex/cslatex/base/il2cmr.fd)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/ot1cmss.fd)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/ot1cmtt.fd))
====================================

Local config file fontmath.cfg used

====================================
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/fontmath.cfg
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/fontmath.ltx
=== Don't modify this file, use a .cfg file instead ===

(/usr/local/texlive/2016/texmf-dist/tex/latex/base/omlcmm.fd)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/omscmsy.fd)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/omxcmex.fd)
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/ucmr.fd)))
====================================

Local config file preload.cfg used

=====================================
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/preload.cfg
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/preload.ltx)) page nos.,
x-ref, environments, center, verbatim, math definitions, boxes, title,
sectioning, contents, floats, footnotes, index, bibliography, output,
 Unicode character data,
(/usr/local/texlive/2016/texmf-dist/tex/generic/unicode-data/load-unicode-data.
tex 
load-unicode-data.tex v1.4a (2016-02-21)
Reading Unicode data
# UnicodeData-8.0.0.txt
# Downloaded 2015-12-01 09:00:00 GMT [JAW]
)
===========================================
Local configuration file hyphen.cfg used
===========================================
(/usr/local/texlive/2016/texmf-dist/tex/generic/babel/hyphen.cfg
(/usr/local/texlive/2016/texmf-dist/tex/generic/babel/luababel.def)
(/usr/local/texlive/2016/texmf-dist/tex/generic/babel/switch.def)
(/usr/local/texlive/2016/texmf-dist/tex/generic/hyphen/hyphen.tex))
))
Beginning to dump on file luajitlatex.fmt
 (format=luajitlatex 2016.5.21)
5010 strings using 35227 bytes
155217 memory locations dumped; current usage is 174&49745
3794 multiletter control sequences
\font\nullfont=nullfont
\font\OMX/cmex/m/n/10=cmex10
\font\tenln=line10
\font\tenlnw=linew10
\font\tencirc=lcircle10
\font\tencircw=lcirclew10
\font\OT1/cmr/m/n/5=cmr5
\font\OT1/cmr/m/n/7=cmr7
\font\OT1/cmr/m/n/10=cmr10
\font\OML/cmm/m/it/5=cmmi5
\font\OML/cmm/m/it/7=cmmi7
\font\OML/cmm/m/it/10=cmmi10
\font\OMS/cmsy/m/n/5=cmsy5
\font\OMS/cmsy/m/n/7=cmsy7
\font\OMS/cmsy/m/n/10=cmsy10
14 preloaded fonts
warning  (pdf backend): no pages of output.
Transcript written on luajitlatex.log.
fmtutil [INFO]: /usr/local/texlive/2016/texmf-var/web2c/luajittex/luajitlatex.fmt installed.
fmtutil [INFO]: Disabled formats: 5
fmtutil [INFO]: Successfully rebuilt formats: 1
fmtutil [INFO]: Not selected formats: 44
fmtutil [INFO]: Total formats: 50
fmtutil [INFO]: exiting with status 0
のように進行します。これで 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) 2016 Tamotsu Thomas UEDA