and aux_layout mathonly xref pos prec uris l =
let attrs = make_xref xref in
let invoke' t = aux [] true (ref None) pos prec uris t in
+ (* use the one below to reset precedence and associativity *)
+ let invoke_reinit t = aux [] true (ref None) `None 0 uris t in
match l with
- | A.Sub (t1, t2) -> Mpres.Msub (attrs, invoke' t1, invoke' t2)
- | A.Sup (t1, t2) -> Mpres.Msup (attrs, invoke' t1, invoke' t2)
- | A.Below (t1, t2) -> Mpres.Munder (attrs, invoke' t1, invoke' t2)
- | A.Above (t1, t2) -> Mpres.Mover (attrs, invoke' t1, invoke' t2)
+ | A.Sub (t1, t2) -> Mpres.Msub (attrs, invoke' t1, invoke_reinit t2)
+ | A.Sup (t1, t2) -> Mpres.Msup (attrs, invoke' t1, invoke_reinit t2)
+ | A.Below (t1, t2) -> Mpres.Munder (attrs, invoke' t1, invoke_reinit t2)
+ | A.Above (t1, t2) -> Mpres.Mover (attrs, invoke' t1, invoke_reinit t2)
| A.Frac (t1, t2)
- | A.Over (t1, t2) -> Mpres.Mfrac (attrs, invoke' t1, invoke' t2)
+ | A.Over (t1, t2) -> Mpres.Mfrac (attrs, invoke_reinit t1, invoke_reinit t2)
| A.Atop (t1, t2) ->
- Mpres.Mfrac (atop_attributes @ attrs, invoke' t1, invoke' t2)
- | A.Sqrt t -> Mpres.Msqrt (attrs, invoke' t)
- | A.Root (t1, t2) -> Mpres.Mroot (attrs, invoke' t1, invoke' t2)
+ Mpres.Mfrac(atop_attributes @ attrs, invoke_reinit t1, invoke_reinit t2)
+ | A.Sqrt t -> Mpres.Msqrt (attrs, invoke_reinit t)
+ | A.Root (t1, t2) -> Mpres.Mroot (attrs, invoke_reinit t1, invoke_reinit t2)
| A.Box ((_, spacing, _) as kind, terms) ->
let children =
aux_children mathonly spacing xref pos prec uris