diff --git a/source/texk/web2c/luatexdir/tex/mlist.w b/source/texk/web2c/luatexdir/tex/mlist.w index 1695fb7ac8eac644bac89997fc9ede7bfe52f7c5..32a8c9b61f34147b49e450b58aa99eb462528843 100644 --- a/source/texk/web2c/luatexdir/tex/mlist.w +++ b/source/texk/web2c/luatexdir/tex/mlist.w @@ -2186,6 +2186,7 @@ static void do_make_math_accent(pointer q, internal_font_number f, int c, int fl scaled w; /* width of the accentee, not including sub/superscripts */ boolean s_is_absolute; /* will be true if a top-accent is placed in |s| */ scaled fraction ; + scaled ic = 0; scaled target ; extinfo *ext; pointer attr_p; @@ -2277,6 +2278,12 @@ static void do_make_math_accent(pointer q, internal_font_number f, int c, int fl delta = delta + height(x) - h; h = height(x); } + } else if ((vlink(q) != null) && (type(nucleus(q)) == math_char_node)) { + /* only pure math char nodes */ + internal_font_number f = fam_fnt(math_fam(nucleus(q)),cur_size); + if (is_new_mathfont(f)) { + ic = char_italic(f,math_character(nucleus(q))); + } } /* the top accents of both characters are aligned */ if (s_is_absolute) { @@ -2340,6 +2347,10 @@ static void do_make_math_accent(pointer q, internal_font_number f, int c, int fl } else { shift_amount(y) = -(h - height(y)); } + if (ic != 0) { + /* old font codepath has ic built in, new font code doesn't */ + width(r) += ic ; + } math_list(nucleus(q)) = y; type(nucleus(q)) = sub_box_node; }