LuaLaTeX (2016/02/01) で数式が化ける

LuaLaTeX (2016/02/01) で数式が化ける

- aminophen の投稿
返信数: 13
以下のソースを,本日 tlmgr でアップデートした TeX Live 2015 環境で
lualatex を使ってタイプセットすると数式が化けます。
(化け方は添付画像のとおり)
LaTeX [2016/02/01] がインストールされた環境です。
OS X Lion (10.7.5) でも OS X El Capitan (10.11.3) でも報告されています。
# 以下,テストソース名が luatexja-test.tex となっているのは
# 最初 LuaTeX-ja のアップデートが原因かなと勘違いしていたため。

===== ソース =====
% luatexja-test.tex
\listfiles
\documentclass{article}
\begin{document}
\[
F(x)=a+b+c
\]
\end{document}
==========

===== ログ =====
This is LuaTeX, Version beta-0.80.0 (TeX Live 2015) (rev 5238) 
 restricted \write18 enabled.
(./luatexja-test.tex
LaTeX2e <2016/02/01>
Babel <3.9n> and hyphenation patterns for 79 languages loaded.
(/usr/local/texlive/2015/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2015/texmf-dist/tex/latex/base/size10.clo))
(./luatexja-test.aux) [1{/usr/local/texlive/2015/texmf-var/fonts/map/pdftex/updm</div><div>ap/pdftex.map}] (./luatexja-test.aux)

 *File List*
 article.cls    2014/09/29 v1.4h Standard LaTeX document class
  size10.clo    2014/09/29 v1.4h Standard LaTeX file (size option)
 ***********

)
 259 words of node memory still in use:
   2 hlist, 1 vlist, 1 rule, 2 glue, 39 glue_spec, 1 write nodes
   avail lists: 1:1,2:12,3:11,4:40,5:1,6:17,7:1,9:8
<</usr/local/texlive/2015/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb><
</usr/local/texlive/2015/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
Output written on luatexja-test.pdf (1 page, 16833 bytes).
Transcript written on luatexja-test.log.
==========

原因はまだ調べておりませんが,現象の報告まで。
添付 lualatex-20160201.png
aminophen への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- aminophen の投稿
LaTeX を最新の r39528
LaTeX2e <2016/02/01>
からひとつまえの r38732
LaTeX2e <2015/10/01> patch level 2
へ戻してフォーマットを作成し直せば,LuaLaTeX が正常になりました。

[1] tlmgr を使って過去のパッケージを復元
ターミナルから
$ sudo tlmgr restore latex
を入力すると
Available backups for latex: 38732 (2016-02-02 15:41) 
と表示されるので,この番号を指定して
$ sudo tlmgr restore latex 38732
とすると一応確認されます:
Do you really want to restore latex to revision 38732 (y/N):
y で進むと
Restoring latex, 38732 from /usr/local/texlive/2015/tlpkg/backups/latex.r38732.tar.xz
tlmgr: package log updated: /usr/local/texlive/2015/texmf-var/web2c/tlmgr.log
running mktexlsr ...
done running mktexlsr.
running mtxrun --generate ...
done running mtxrun --generate.
これで古い LaTeX が復活します。

[2] フォーマット再作成
fmtutil --byfmt lualatex
これで LuaLaTeX のフォーマットが再作成されます。

LaTeX2e <2016/02/01> は LuaTeX beta-0.85.0 に対応するために相当な
変更が加えられているため,TeX Live 2015 の LuaTeX beta-0.80.0 と
互換性がなくなったということでしょうか?
今後 tlmgr でアップデートする方はご注意ください…
aminophen への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- Akira Kakuto の投稿
> LaTeX2e <2016/02/01> は LuaTeX beta-0.85.0
> に対応するために相当な
> 変更が加えられているため,TeX Live 2015 の LuaTeX
> beta-0.80.0 と 互換性がなくなったということでしょうか?

luatex beta-0.89.0 でも同じ現象が見られます。
Akira Kakuto への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- aminophen の投稿
新しい LuaTeX でも再現するのですね。ありがとうございます。

Joseph から返事が来ました:
http://tug.org/pipermail/tex-live/2016-February/037714.html
どうやら latex.ltx ではなくサポートファイルの問題のようです。
# どおりで latexrelease.sty でも駄目なわけだ…
aminophen への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- Akira Kakuto の投稿
現在のところ,lualatex, xelatex 共に
unicode-math パッケージを使わないと化けるようです。
Akira Kakuto への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- aminophen の投稿
チョット unicode-math を試してみようと思って LuaTeX beta-0.80.0 の環境で再度
$ sudo tlmgr update latex
してみました。自動的に fmtutil-sys --byfmt ナントカ が実行されました。
(なお,私は昨日 r38732 を復旧したときに TEXMFVAR に lualatex.fmt を作って
しまったので,そちらは削除しました。)
これで LaTeX2e <2016/02/01> になったはずです。

昨日報告したとおり
\documentclass{article}
\begin{document}
\[
F(x)=ax^2+bx+c
\]
\end{document}
だとエラーが出ずに数学記号が化ける現象が再現しました。しかし
\usepackage{unicode-math}
を追加しても今度は

! LuaTeX error .../texlive/2015/texmf-dist/tex/latex/fontspec/fontspec.lua:65: a
ttempt to call field 'sprint' (a nil value)
stack traceback:
.../texlive/2015/texmf-dist/tex/latex/fontspec/fontspec.lua:65: in function 'ma
thfontdimen'
[\directlua]:1: in main chunk.
\__um_get_fontparam:nn ...imen("l__um_font","#2")}
 
l.3 \begin{document}
 
?
というエラーが出て進めませんでした。
TEXMFVAR にあるキャッシュ luatex-cache/generic を削除しても
やはり同じエラーが出ます。
aminophen への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- Akira Kakuto の投稿
lualatex (on beta-0.89.0) と xelatex
で unicode-math でエラーにならなかったのですが,
最新の unicode-data (by Joseph Wright)
をインストールすると,unicode-math を使わない
でも化けなくなります。
Akira Kakuto への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- aminophen の投稿
GitHub の Release tag から unicode-data v1.2 を取ってくることはできましたが,
https://github.com/latex3/unicode-data/releases/tag/v1.2
インストール法というか使いかたがわかっていないので少々時間がかかりそうです。

TeX Live 2015 の XeLaTeX のほうは,LaTeX <2016/02/01> で
\documentclass{article}
\begin{document}
\[
F(x)=ax^2+bx+c
\]
\end{document}
は化けますが
\documentclass{article}
\usepackage{unicode-math}
\begin{document}
\[
F(x)=ax^2+bx+c
\]
\end{document}
は化けないことを確認しました。ありがとうございます。
aminophen への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- Akira Kakuto の投稿
> インストール法というか使いかたがわかっていないので
> 少々時間がかかりそうです。

CTAN にあるのでよいのですが,すぐに TeX Live に
入るので急ぐ必要はありません。
フォーマット作成時に読み込まれるデータです。

Akira Kakuto への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- aminophen の投稿
CTAN にあるのでよいのですが,
そうだったのですね。CTAN も GitHub と同じ v1.2 に上がったばかりのようです。
https://www.ctan.org/pkg/unicode-data

フォーマット作成時に読み込まれるデータです。
ああ,これもフォーマット作成時に読まれるのですね。ありがとうございます。
v1.2 の unicode-data を解凍してインストール(build.lua 使用)したあと
$ fmtutil --byfmt lualatex
で再作成すると,LuaTeX beta-0.80.0 でも従来どおり
\documentclass{article}
\begin{document}
\[
F(x)=ax^2+bx+c
\]
\end{document}
が化けなくなりました。
ということは,いま tlmgr でアップデートしないほうがよい雰囲気になって
いますが,unicode-data v1.2 が TeX Live のミラーに入り次第,tlmgr による
アップデートを再開しても支障はなさそうです。
aminophen への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- Akira Kakuto の投稿
luatex-ja とは,うまくマッチしていないような
気がします。間違っているかもしれません。
Akira Kakuto への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- Akira Kakuto の投稿
test02-latex.tex でテストすると,

\documentclass[a4paper]{ltjsarticle}
だけでは,サイズがおかしくなりました。

luatex beta-0.80.0 なら
\documentclass[a4paper]{ltjsarticle}
\pdfpagewidth=210mm
\pdfpageheight=297mm

luatex beta-0.89.0 なら
\documentclass[a4paper]{ltjsarticle}
\pagewidth=210mm
\pageheight=297mm

としてサイズを指定すると,よくなりました。
Akira Kakuto への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- 北川 弘典 の投稿
すみません,20160131.0 で ltjsclasses の \[pdf]page{width,height}
の設定部分を間違って編集してしまいました.
\setlength{\pdfpagewidth}{\@tempdima}
\setlength{\pdfpageheight}{\@tempdimb}
というコードがありますが,肝心の \@tempdima が
\paperwidth の値に初期化されていません.
aminophen への返信

Re: LuaLaTeX (2016/02/01) で数式が化ける

- aminophen の投稿
このトピックの
2016年 02月 02日(火曜日) 18:26 - アセト アミノフェン の投稿
を見て「古い LaTeX」を復旧した方が少なくとも数名いらっしゃることを察知しました
ので,後始末として「再度新しい LaTeX」を入れ直す方法を書いておきます。
# いま tlmgr を確認したら「unicode-data v1.2」がミラーに来ていましたので。

$ sudo tlmgr update --self --all
とすると,先日アンインストールした「新しい LaTeX」r39528 も再度インストールされ,
併せて「新しい unicode-data v1.2」r39560 もインストールされます。
この場合,おそらくフォーマットは自動的に再作成されると思います。
先日手動で fmtutil --byfmt lualatex を実行したときに出来たフォーマットを削除
しないと,今回の更新で自動作成されたフォーマットが認識されませんので,
TEXMFVAR/web2c/luatex/lualatex.fmt
を削除してください。多くの Unix 環境では,TEXMFVAR とは
~/Library/texlive/2015/texmf-var
のことを指すと思います。
(kpsewhich -var-value TEXMFVAR を実行して知ることもできます。)