diff options
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/tex/mlist.c')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/tex/mlist.c | 37 |
1 files changed, 10 insertions, 27 deletions
diff --git a/Build/source/texk/web2c/luatexdir/tex/mlist.c b/Build/source/texk/web2c/luatexdir/tex/mlist.c index 43db6adbbb2..c34dee48839 100644 --- a/Build/source/texk/web2c/luatexdir/tex/mlist.c +++ b/Build/source/texk/web2c/luatexdir/tex/mlist.c @@ -1248,13 +1248,6 @@ static void stack_glue_into_box(pointer b, scaled min, scaled max) { int cur_size = 0; -/*tex A few state variables: */ - -halfword del_height = 0; -halfword del_depth = 0; -halfword del_width = 0; -halfword del_shift = 0; - static pointer get_delim_box(internal_font_number fnt, halfword chr, scaled v, scaled min_overlap, int horizontal, halfword att) { int callback_id = callback_defined(make_extensible_callback); @@ -1549,10 +1542,8 @@ static pointer do_delimiter(pointer q, pointer d, int s, scaled v, boolean flat, if (d && ! small_fam(d) && ! large_fam(d) && ! small_char(d) && ! large_char(d)) { halfword b = new_null_box(); subtype(b) = math_v_delimiter_list; - height(b) = del_height; - depth(b) = del_depth; - width(b) = del_width; - shift_amount(b) = del_shift; + if (! flat) + width(b) = null_delimiter_space_par; node_attr(b) = node_attr(d); node_attr(d) = null; flush_node(d); @@ -1709,12 +1700,6 @@ static pointer do_delimiter(pointer q, pointer d, int s, scaled v, boolean flat, } DONE: delete_attribute_ref(att); - - del_height = height(b); - del_depth = depth(b); - del_width = width(b); - del_shift = shift_amount(b); - return b; } @@ -3003,10 +2988,7 @@ static void make_fraction(pointer q, int cur_style) /*tex This also equals |width(z)|. */ width(v) = width(x); reset_attributes(v, node_attr(q)); - if (thickness(q) == 0) { - p = new_kern((shift_up - depth(x)) - (height(z) - shift_down)); - couple_nodes(p,z); - } else { + if (thickness(q) && ! fractionnorule(q)) { y = do_fraction_rule(thickness(q), node_attr(q), math_fraction_rule, cur_size, used_fam); p = new_kern((math_axis_size(cur_size) - delta) - (height(z) - shift_down)); reset_attributes(p, node_attr(q)); @@ -3014,6 +2996,9 @@ static void make_fraction(pointer q, int cur_style) couple_nodes(p,z); p = new_kern((shift_up - depth(x)) - (math_axis_size(cur_size) + delta)); couple_nodes(p,y); + } else { + p = new_kern((shift_up - depth(x)) - (height(z) - shift_down)); + couple_nodes(p,z); } reset_attributes(p, node_attr(q)); couple_nodes(x,p); @@ -3321,12 +3306,10 @@ static scaled make_op(pointer q, int cur_style) shift_down = limit_below_bgap(cur_style) - height(z); if (shift_down < limit_below_vgap(cur_style)) shift_down = limit_below_vgap(cur_style); - if (shift_down > 0) { - p = new_kern(shift_down); - reset_attributes(p, node_attr(q)); - couple_nodes(y,p); - couple_nodes(p,z); - } + p = new_kern(shift_down); + reset_attributes(p, node_attr(q)); + couple_nodes(y,p); + couple_nodes(p,z); p = new_kern(limit_below_kern(cur_style)); reset_attributes(p, node_attr(q)); couple_nodes(z,p); |