\ltjdefcharrange{8}{"A7, "A8, "B0, "B1, "B4, "B6, "D7, "F7}
\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}}
+\directlua{for x=128,255 do luatexja.math.is_math_letters[x] = true end}
+
% END OF FILE
\endinput
%%% parameter
+\expandafter\csname JY3/mc/m/n/10\endcsname\relax
\ltjsetparameter{kanjiskip=0pt plus 0.4pt minus 0.4pt,
xkanjiskip=.25\zw plus 1pt minus 1pt,
autospacing, autoxspacing, jacharrange={-1},
\ltjdefcharrange{8}{"B4, "A8, "B1, "D7, "F7, "B0, "A7, "B6}
\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}}
+\directlua{for x=128,255 do luatexja.math.is_math_letters[x] = true end}
+
%%------------------ all done
\ltj@plain@AtEnd
\endinput
local ltjf_font_metric_table = ltjf.font_metric_table
local ltjf_find_char_class = ltjf.find_char_class
+-- table of mathematical characters
+is_math_letters = {}
+
local conv_jchar_to_hbox_A
-- sty : 0 (display or text), 1 (script), >=2 (scriptscript)
end
elseif p.id == id_mchar then
local fam = has_attr(p, attr_jfam) or -1
- if ltjc.is_ucs_in_japanese_char(p) and fam>=0 then
+ if (not is_math_letters[p.char]) and ltjc.is_ucs_in_japanese_char(p) and fam>=0 then
local mode = 'mjss'
if sty == 0 then mode = 'mjtext'
elseif sty == 1 then mode = 'mjscr'
--- /dev/null
+%#!lualatex
+\documentclass{article}
+\usepackage[a4paper]{geometry}
+\usepackage{luatexja}
+\makeatletter\ltj@alljachar %←全部の(>=U+0080な)文字を和文文字扱いに!
+
+\usepackage{fontspec,unicode-math}
+\ExplSyntaxOn
+\cs_set:Npn \um_set_mathcode:nnnn #1#2#3#4 {
+ \Umathcode \int_eval:n {#1} =
+ \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop:
+ \directlua{luatexja.math.is_math_letters[\int_eval:n {#4}]=true}
+}
+\cs_set:Npn \um_set_mathcode:nnn #1#2#3 {
+ \Umathcode \int_eval:n {#1} =
+ \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#1} \scan_stop:
+ \directlua{luatexja.math.is_math_letters[\int_eval:n {#1}]=true}
+}
+\cs_set:Npn \um_set_mathchar:NNnn #1#2#3#4 {
+ \Umathchardef #1 =
+ \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop:
+ \directlua{luatexja.math.is_math_letters[\int_eval:n {#4}]=true}
+}
+\ExplSyntaxOff
+
+\setmathfont{XITSMath}
+
+\begin{document}\makeatletter
+
+\[
+ \frac1{1^2}+\frac1{2^2}+\cdots=
+\sum_{n=1}^\infty \frac1{n^s}=\zeta(2)=\frac{\pi^2}{6}
+=\frac16\cdot \pi\times\pi,\qquad a_1,\dots,a_n
+\]
+aaa○×○漢×漢\times \dots←数式外では和文文字扱いのままになっている.
+\end{document}