追加情報です.最初の gather が来る前にインライン数式や equation が入っているとエラーは出ないみたいです.
\documentclass{article}
\usepackage{luatexja}
\usepackage{amsmath}
\begin{document}
$a$
\begin{gather}
a
\end{gather}
\end{document}
もう少し調査したところ,lltjdefs.sty の以下の行をコメントアウトするとエラーが出なくなりました.私には理由はよくわかりませんが…….
\DeclareSymbolFont{mincho}{JY3}{mc}{m}{n}
\jfam\symmincho
\SetSymbolFont{mincho}{bold}{JY3}{gt}{m}{n}
\DeclareSymbolFontAlphabet{\mathmc}{mincho}
\DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n}
ほんとだ,確認しました.どうやら,\getanddefine@fontsの if文から抜け出せずにいるようです.数時間後に対処方法を考えてみます.
luatexja-core.sty 中に,次のようなコードがあります:
\def\ltj@@set@stackfont#1,#2:#3{%
{\directlua{tex.globaldefs=0}\ltj@curjfnt=-1 #2%
\global\ltj@tempcnta=\ltj@curjfnt}%
...}
ここに載せている部分は \jfont で定義された \tenmin 等の制御綴(これらの展開結果は「\ltj@curjfnt=xx\relax」)から,その xx の内容を取得するコードです.
しかし,この {...} が数式中では空の数式になってしまっています.
commit 03b1187 で直ったと思います.
修正を確認しました.ありがとうございます.
test07-math.tex に
アルファベットがなぜか出ない(Lua\TeX-ja非読み込み時でも)
とありますが,unicode-math では mathversion は使わずに \mathbf を使うのが標準みたいです. \setmathfont にオプションで [version=bold] の指定を渡すと \mathversion{bold} でも文字が出ます.
以下のソースでエラーが出ます.
\documentclass{article} \usepackage{luatexja} \usepackage{amsmath} \begin{document} \begin{gather} a \end{gather} \end{document}ログ:
! Improper \halign inside $$'s. \next@ ...skip \z@skip \global \row@ \@ne \halign to\displaywidth \bgroup \s... l.7 \end{gather} ?multline, align でも同種のエラーが出ます.