commit 9b1a0ba の一部で直してみました(luatexja.jfmglue.main の call ごとに unique な自然数が割り当てられるようにした). もうちょっと整理してから master に送ります.
commit 9b1a0ba の一部
すみません,直っていませんでした.
\unhbox 由来ノードリストの uniq_id の更新を忘れており,次ソースからの出力の 1 行目が意図しない結果になります:
\input luatexja.sty
\setbox0=\hbox{)}\setbox1=\hbox{a}
\setbox2=\hbox{\unhcopy0\unhcopy1}
\unhbox2
\unhbox0\unhbox1\end
commit 8e07831 でこんどこそ直したはず.
違う box が unbox されたときはよいですが,
\setbox2=\hbox{(」「)}
A\unhcopy2\unhbox2B
と同じ box が2回 unbox された場合に,依然として意図しない結果(“)(”の間に空白が入らない)になってしまっています.同じ box が2回 unbox された場合
commit a975e31 で直しました.
なお,以前の commit で導入した
luatexja.jfmglue.main の call ごとに unique な自然数が割り当てられるように
はなくても問題がなさそうだったので,オフにしてみました.
こちらも完了としておきます.
以下のソースをコンパイルした時,LuaLaTeX-ja では四分空きが入りません. なお,pTeX では四分空きは無事にはいります.
\documentclass{article} \ifdefined\directlua\usepackage{luatexja}\fi \begin{document} \setbox0=\hbox{あ} \setbox1=\hbox{a} \unhbox0\unhbox1 \end{document}LuaTeX-ja では \unhbox 由来のノード達が二回処理されないように 「既に処理し終わった」フラグをたてているのですが, 今回の場合は \unhbox0, \unhbox1 由来の「処理し終わった」ノード達が連続し, 一塊になってしまっているようです.
※2012/8/18 再オープン→ 2012/09/11 完了