こちらでも確認しました(plautopatch のモジュールである plsiunitx.sty でも確認)。lltjp-siunitx.sty のパッチの問題でのようですね。当てずっぽうで自分が何をやっているのかよくわかりませんが,
\token_if_eq_meaning:NNF #1 \relax {
の所を
\token_if_eq_meaning:NNF #1 \tex_relax:D {
にすればどちらの問題も起きなくなりました。
そもそもこのコードを作った理由は #38720 だと思いますが,そもそも上記の conditional が無くても正常に通っているようにも見えます。
確認しました.もう遅いので明日以降に考えます.
そもそもこのコードを作った理由は #38720 だと思いますが,そもそも上記の conditional が無くても正常に通っているようにも見えます。
そうすると,今度は #38720 が通らなくなります.私も完全に当時のことを覚えているわけではありませんが, dtx にある \__siunix_table_collect_not_braced:N の説明には
A few macros are simply passed through to be executed; this is mainly so that the table actually works. ...とあったため,LuaTeX-ja が表の各セルの最初に挿入する命令たち \relax, \ltjfakeboxbdd, \pltx@next@inhibitglue を \__siunix_table_collect_not_braced:N の判定部分に加えた記憶があります.
commit c846a8f で直しました(commit 82b302e でテストソース test91-siunitx.tex を追加しました).
パッチを当てたら通ることを確認しました.ありがとうございます.
LuaTeX-ja 20190708.0 を出したので,完了とします.
MWE:
luatexja を読み込むと,
環境: TeX Live 2019 (2018 でも再現しました)