1. babelのbidi=defaultとLuaTeX-jaのエラー
\documentclass{article} \usepackage{luatexja} \usepackage[japanese, bidi=default]{babel} \begin{document} \footnote{あああ} \end{document}
以上のように、BabelでRTL言語を含む日本語文書をLuaLaTeXで書こうとすると、footnoteを使ったときに以下のようなエラーが出ます。
(実際にはjlreqを使っていますが、最小の再現コードにするため省いています)
warning (hpack filter): error: [\directlua]:1: attempt to index a nil value (f ield 'characters') . <to be read again> \ltj@@reset@badness l.6 \footnote{ あああ}
以前は問題なく動いていたのでBabelのバージョンを落として調べたところ、 https://github.com/latex3/babel/commit/0bf72d4a12f8d40d6b2215b9d35cfa0ca641ea4f のコミットで発生するようになったことが分かりました。
2. babelのbidi=basicとemダッシュの合字
上記のエラー自体はbidiオプションをbasicにすることで回避できたのですが、そうするとsourcehanを使ったときのemダッシュの合字が効かなくなってしまいました。
\documentclass{article} \usepackage[sourcehan-jp]{luatexja-preset} \usepackage[japanese, bidi=basic]{babel} \begin{document} ああ—— \end{document}
LuaTeX-jaとBabelのどちらの問題か分からないので、ここで質問させていただきます。何か解決の糸口を知っている人がいましたら、よろしくお願いします。
(もしどうしようもなかったら、諦めてbidi=basicにしつつ2倍ダッシュは別の方法で出力することになりそうです)