次を luajitlatex foo でコンパイル
---------------------
\documentclass{ltjbook} or {ltjreport}
\begin{document}
\chapter{Sample}
TEST test
\end{document}
---------------------
error: ...ex/share/texmf-dist/tex/luatex/luatex-ja/ltj-jfmglue.lua:400: attempt
to call a nil value.
\par
l.3 \chapter{Sample}
よろしく,お願いします.
報告ありがとうございます.
linux 上の
> This is LuaTeX, Version beta-0.78.2 (TeX Live 2014/dev) (rev 4770)
> This is LuajitTeX, Version beta-0.78.2 (TeX Live 2014/dev) (rev 78)
及び,W32TeX 上の
> This is LuaTeX, Version beta-0.78.2 (TeX Live 2013/W32TeX) (rev 4771)
> This is LuajitTeX, Version beta-0.78.2 (TeX Live 2013/W32TeX) (rev 78)
で再現しました.
少なくとも linux 上では,
> This is LuajitTeX, Version beta-0.78.1-2014010410 (rev 54)
> This is LuaTeX, Version beta-0.78.1 (TeX Live 2014/dev) (rev 4732)
では安全でした.
エラー自体は ltj-jfmglue.lua で起こっていますが,
その原因を作っているのは,ノードが
A. glyph 第 ……これが p
B. glue (xkanjiskip)
C. glyph 1
D. glue (xkanjiskip)
E. glyph 章
F. glue
と並んでいるとき,「第」「章」を必要なら \hbox にカプセル化する ltj-setwidth.lua です.
ltj-setwidth.lua l. 77 の
> head, q = node.remove(head, p)
の実行後に
head と q は共に ノード B. glue (xkanjiskip) となるはずですが,
なぜかこのノードが attribute node に変化してしまっています.
(メモリ上では同じノードを指していますが)
linux 上の
> This is LuaTeX, Version beta-0.78.2 (TeX Live 2014/dev) (rev 4770)
> This is LuajitTeX, Version beta-0.78.2 (TeX Live 2014/dev) (rev 78)
及び,W32TeX 上の
> This is LuaTeX, Version beta-0.78.2 (TeX Live 2013/W32TeX) (rev 4771)
> This is LuajitTeX, Version beta-0.78.2 (TeX Live 2013/W32TeX) (rev 78)
で再現しました.
少なくとも linux 上では,
> This is LuajitTeX, Version beta-0.78.1-2014010410 (rev 54)
> This is LuaTeX, Version beta-0.78.1 (TeX Live 2014/dev) (rev 4732)
では安全でした.
エラー自体は ltj-jfmglue.lua で起こっていますが,
その原因を作っているのは,ノードが
A. glyph 第 ……これが p
B. glue (xkanjiskip)
C. glyph 1
D. glue (xkanjiskip)
E. glyph 章
F. glue
と並んでいるとき,「第」「章」を必要なら \hbox にカプセル化する ltj-setwidth.lua です.
ltj-setwidth.lua l. 77 の
> head, q = node.remove(head, p)
の実行後に
head と q は共に ノード B. glue (xkanjiskip) となるはずですが,
なぜかこのノードが attribute node に変化してしまっています.
(メモリ上では同じノードを指していますが)
調べたところ,r4760
> fix remove fo the case head==current
以降(手元には r4770 まであります)でエラーが発生します.
さっきの返信で
> なぜかこのノードが attribute node に変化してしまっています.
> (メモリ上では同じノードを指していますが)
と書きましたが,
> local box = node_new(id_hlist)
の実行後に id が置き換わっているようです.
r4760 の中身に
+ if (alink(current) && vlink(current) ){
+ vlink( alink(current) ) = vlink(current); // vlink(prev) = next
+ alink( vlink(current) ) = alink(current); // alink(next) = prev
+ }
というのがあります.
pre_linebreak_filter, hpack_filter に渡されるノードリストの始点
head の直前には nested_node なる謎のノードがあるので
(これもまたいつのまにか id が attribute_list に変わっている),
上に載せた部分が怪しそうな気がしますが,よくわかりません.
> fix remove fo the case head==current
以降(手元には r4770 まであります)でエラーが発生します.
さっきの返信で
> なぜかこのノードが attribute node に変化してしまっています.
> (メモリ上では同じノードを指していますが)
と書きましたが,
> local box = node_new(id_hlist)
の実行後に id が置き換わっているようです.
r4760 の中身に
+ if (alink(current) && vlink(current) ){
+ vlink( alink(current) ) = vlink(current); // vlink(prev) = next
+ alink( vlink(current) ) = alink(current); // alink(next) = prev
+ }
というのがあります.
pre_linebreak_filter, hpack_filter に渡されるノードリストの始点
head の直前には nested_node なる謎のノードがあるので
(これもまたいつのまにか id が attribute_list に変わっている),
上に載せた部分が怪しそうな気がしますが,よくわかりません.