再現しました。
※ LuaTeX は \mag がサポートされていないので,nomag* がデフォルトになっていることに注意
の時に再現するように見えます。つまり
\documentclass[14pt,nomag*,autodetect-engine,ja=standard]{bxjsarticle}
なら XeLaTeX + bxjsarticle でも起きるので,nomag* スケーリングの実装の中の何かと unicode-math が衝突しているのかもしれません。
なので,\documentclass のオプションに nomag を付ければ,とりあえずの回避になりそうです。
犯人はnomag*で、XeTeXでも再現すのですね。それならば、 https://github.com/zr-tex8r/BXjscls にもissueを立てたほうがいいですか?
確認しました.
unicode-math-luatex.sty 中の \__um_fontspec_select_font: の定義では \scriptstyle, \textstyle それぞれにおけるフォントサイズ \sf@size, \tf@sizeが使われていますが,これが nomag* によってスケールされた後(この例だと 1.44 倍)の値になっていました.
プリアンブルで,該当部分を「スケールを戻す」処理を加えて以下のように再定義してしまえばひとまず直るようですが,どこかしっくりきません.
- \usepackage{unicode-math}
- \ExplSyntaxOn
- \makeatletter
- \cs_set:Nn \__um_fontspec_select_font:
- {
- \tl_set:Nx \l__um_font_keyval_tl {
- Renderer = Basic,
- BoldItalicFont = {}, ItalicFont = {},
- Script = Math,
- SizeFeatures =
- {
- {
- Size = \directlua{luatexja.ltjs_unmagnify_fsize(\tf@size)}-
- } ,
- {
- Size = \directlua{luatexja.ltjs_unmagnify_fsize(\sf@size)}-\directlua{luatexja.ltjs_unmagnify_fsize(\tf@size)} ,
- Font = \l__um_script_font_tl ,
- \l__um_script_features_tl
- } ,
- {
- Size = -\directlua{luatexja.ltjs_unmagnify_fsize(\sf@size)} ,
- Font = \l__um_sscript_font_tl ,
- \l__um_sscript_features_tl
- }
- } ,
- \l__um_unknown_keys_clist
- }
- \fontspec_set_fontface:NNxn \l__um_font \l__um_family_tl
- {\l__um_font_keyval_tl} {\l__um_fontname_tl}
- \group_begin:
- \fontfamily{\l__um_family_tl}\selectfont
- \fontspec_if_script:nF {math} {\bool_gset_false:N \l__um_ot_math_bool}
- \group_end:
- }
- \ExplSyntaxOff
https://github.com/zr-tex8r/BXjscls/issues/8#issuecomment-353792852
にも書きましたが,unicode-math を使うときにはフォントが変わっていて「オプティカルサイズの調整が必要ない」ので,そもそも nomag* じゃなくて nomag を使う“べき”状況だと思います。
ただ,デフォルトが nomag* になっていることが原因とは気付きにくい気もするので,ドキュメントに書いておくとよいのではないでしょうか。あるいは,デフォルトが nomag でも(LuaTeX の強みが OpenType フォントの利便性であることを鑑みると)ほとんど困らないようにも思えてきます。
遅くなりましたが,139371e で直しました.bxjscls でも治っていると思います.
フォントが変わっていて「オプティカルサイズの調整が必要ない」
unicode-math には \scriptstyle,\scriptscriptstyle で別のフォント/feature を指定できるようになっていることを考えると「必要ない」というのは正しくないと思います.私は単純に「nomag* による追加パッチが unicode-math でも必要だった」だけだと捉えています.
以下のTeX文書をコンパイルすると数式が横長に引き伸ばされます。
\usepackage{unicode-math}または[14pt]を消すと数式が本来の縦横比になります。なお、ltjsarticleをltjsbookに変えても横長になります。
当方の環境は Windows 10 + TeXLive 2017 + Lua(JIT)LaTeX 1.0.4 + ltjsclasses 2017/9/19版 です。LuaLaTeXでもLuaJITLaTeXでも等しく再現されます。