diff options
Diffstat (limited to 'source/luametatex/source/tex/texmath.c')
-rw-r--r-- | source/luametatex/source/tex/texmath.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/luametatex/source/tex/texmath.c b/source/luametatex/source/tex/texmath.c index e93714000..d849d4d52 100644 --- a/source/luametatex/source/tex/texmath.c +++ b/source/luametatex/source/tex/texmath.c @@ -4066,6 +4066,7 @@ void tex_run_math_fence(void) halfword leftclass = unset_noad_class; halfword rightclass = unset_noad_class; halfword source = 0; + halfword factor = scaling_factor; halfword attrlist = null; quarterword st = (quarterword) cur_chr; halfword style = cur_list.math_style; @@ -4090,7 +4091,7 @@ void tex_run_math_fence(void) } while (1) { /* todo: break down */ - switch (tex_scan_character("hdanlevpcrsutbHDANLEVPCRSUTB", 0, 1, 0)) { + switch (tex_scan_character("hdanlevpcrsutbfHDANLEVPCRSUTBF", 0, 1, 0)) { case 0: goto CHECK_PAIRING; case 'a': case 'A': @@ -4125,6 +4126,11 @@ void tex_run_math_fence(void) dp = tex_scan_dimen(0, 0, 0, 0, NULL); } break; + case 'f': case 'F': + if (tex_scan_mandate_keyword("factor", 1)) { + factor = tex_scan_int(0, NULL); + } + break; case 'h': case 'H': if (tex_scan_mandate_keyword("height", 1)) { ht = tex_scan_dimen(0, 0, 0, 0, NULL); @@ -4353,12 +4359,14 @@ void tex_run_math_fence(void) switch (st) { case left_fence_side: tex_aux_append_math_fence(fence, open_noad_subtype); + fence_nesting_factor(fence) = factor; break; case middle_fence_side: tex_aux_append_math_fence(fence, middle_noad_subtype); break; case right_fence_side: tex_aux_append_math_fence(fence, close_noad_subtype); + fence_nesting_factor(fence) = factor; break; case left_operator_side: { |