- Mi (attr,s) -> X.xml_nempty "mi" attr (X.xml_cdata s)
- | Mn (attr,s) -> X.xml_nempty "mn" attr (X.xml_cdata s)
- | Mo (attr,s) -> X.xml_nempty "mo" attr (X.xml_cdata s)
- | Mtext (attr,s) -> X.xml_nempty "mtext" attr (X.xml_cdata s)
- | Mspace attr -> X.xml_empty "mspace" attr
- | Ms (attr,s) -> X.xml_nempty "ms" attr (X.xml_cdata s)
- | Mgliph (attr,s) -> X.xml_nempty "mgliph" attr (X.xml_cdata s)
- (* General Layout Schemata *)
- | Mrow (attr,l) ->
- X.xml_nempty "mrow" attr
- [< (List.fold_right (fun x i -> [< (print_mpres x) ; i >]) l [<>])
- >]
- | Mfrac (attr,m1,m2) ->
- X.xml_nempty "mfrac" attr
- [< print_mpres m1;
- print_mpres m2
- >]
- | Msqrt (attr,m) ->
- X.xml_nempty "msqrt" attr [< print_mpres m >]
- | Mroot (attr,m1,m2) ->
- X.xml_nempty "mroot" attr
- [< print_mpres m1;
- print_mpres m2
- >]
- | Mstyle (attr,m) ->
- X.xml_nempty "mstyle" attr [< print_mpres m >]
- | Merror (attr,m) ->
- X.xml_nempty "merror" attr [< print_mpres m >]
- | Mpadded (attr,m) ->
- X.xml_nempty "mpadded" attr [< print_mpres m >]
- | Mphantom (attr,m) ->
- X.xml_nempty "mphantom" attr [< print_mpres m >]
- | Mfenced (attr,l) ->
- X.xml_nempty "mfenced" attr
- [< (List.fold_right (fun x i -> [< (print_mpres x) ; i >]) l [<>])
- >]
- | Menclose (attr,m) ->
- X.xml_nempty "menclose" attr [< print_mpres m >]
- (* Script and Limit Schemata *)
- | Msub (attr,m1,m2) ->
- X.xml_nempty "msub" attr
- [< print_mpres m1;
- print_mpres m2
- >]
- | Msup (attr,m1,m2) ->
- X.xml_nempty "msup" attr
- [< print_mpres m1;
- print_mpres m2
- >]
- | Msubsup (attr,m1,m2,m3) ->
- X.xml_nempty "msubsup" attr
- [< print_mpres m1;
- print_mpres m2;
- print_mpres m3
- >]
- | Munder (attr,m1,m2) ->
- X.xml_nempty "munder" attr
- [< print_mpres m1;
- print_mpres m2
- >]
- | Mover (attr,m1,m2) ->
- X.xml_nempty "mover" attr
- [< print_mpres m1;
- print_mpres m2
- >]
- | Munderover (attr,m1,m2,m3) ->
- X.xml_nempty "munderover" attr
- [< print_mpres m1;
- print_mpres m2;
- print_mpres m3
- >]
-(* | Multiscripts of ??? NOT IMPLEMEMENTED *)
- (* Tables and Matrices *)
- | Mtable (attr, rl) ->
- X.xml_nempty "mtable" attr
- [< (List.fold_right (fun x i -> [< (print_mrow x) ; i >]) rl [<>])
- >]
- (* Enlivening Expressions *)
- | Maction (attr, l) ->
- X.xml_nempty "maction" attr
- [< (List.fold_right (fun x i -> [< (print_mpres x) ; i >]) l [<>])
- >]
-
-and print_mrow =
- let module X = Xml in
- function
- Mtr (attr, l) ->
- X.xml_nempty "mtr" attr
- [< (List.fold_right (fun x i -> [< (print_mtd x) ; i >]) l [<>])
- >]
-
-and print_mtd =
- let module X = Xml in
- function
- Mtd (attr,m) -> X.xml_nempty "mtd" attr (print_mpres m)
+ Mi (attr,s) -> X.xml_nempty ~prefix "mi" attr (X.xml_cdata s)
+ | Mn (attr,s) -> X.xml_nempty ~prefix "mn" attr (X.xml_cdata s)
+ | Mo (attr,s) -> X.xml_nempty ~prefix "mo" attr (X.xml_cdata s)
+ | Mtext (attr,s) -> X.xml_nempty ~prefix "mtext" attr (X.xml_cdata s)
+ | Mspace attr -> X.xml_empty ~prefix "mspace" attr
+ | Ms (attr,s) -> X.xml_nempty ~prefix "ms" attr (X.xml_cdata s)
+ | Mgliph (attr,s) -> X.xml_nempty ~prefix "mgliph" attr (X.xml_cdata s)
+ (* General Layout Schemata *)
+ | Mrow (attr,l) ->
+ X.xml_nempty ~prefix "mrow" attr
+ [< (List.fold_right (fun x i -> [< (aux x) ; i >]) l [<>])
+ >]
+ | Mfrac (attr,m1,m2) ->
+ X.xml_nempty ~prefix "mfrac" attr [< aux m1; aux m2 >]
+ | Msqrt (attr,m) ->
+ X.xml_nempty ~prefix "msqrt" attr [< aux m >]
+ | Mroot (attr,m1,m2) ->
+ X.xml_nempty ~prefix "mroot" attr [< aux m1; aux m2 >]
+ | Mstyle (attr,m) -> X.xml_nempty ~prefix "mstyle" attr [< aux m >]
+ | Merror (attr,m) -> X.xml_nempty ~prefix "merror" attr [< aux m >]
+ | Mpadded (attr,m) -> X.xml_nempty ~prefix "mpadded" attr [< aux m >]
+ | Mphantom (attr,m) -> X.xml_nempty ~prefix "mphantom" attr [< aux m >]
+ | Mfenced (attr,l) ->
+ X.xml_nempty ~prefix "mfenced" attr
+ [< (List.fold_right (fun x i -> [< (aux x) ; i >]) l [<>])
+ >]
+ | Menclose (attr,m) -> X.xml_nempty ~prefix "menclose" attr [< aux m >]
+ (* Script and Limit Schemata *)
+ | Msub (attr,m1,m2) ->
+ X.xml_nempty ~prefix "msub" attr [< aux m1; aux m2 >]
+ | Msup (attr,m1,m2) ->
+ X.xml_nempty ~prefix "msup" attr [< aux m1; aux m2 >]
+ | Msubsup (attr,m1,m2,m3) ->
+ X.xml_nempty ~prefix "msubsup" attr [< aux m1; aux m2; aux m3 >]
+ | Munder (attr,m1,m2) ->
+ X.xml_nempty ~prefix "munder" attr [< aux m1; aux m2 >]
+ | Mover (attr,m1,m2) ->
+ X.xml_nempty ~prefix "mover" attr [< aux m1; aux m2 >]
+ | Munderover (attr,m1,m2,m3) ->
+ X.xml_nempty ~prefix "munderover" attr [< aux m1; aux m2; aux m3 >]
+ (* | Multiscripts of ??? NOT IMPLEMEMENTED *)
+ (* Tables and Matrices *)
+ | Mtable (attr, rl) ->
+ X.xml_nempty ~prefix "mtable" attr
+ [< (List.fold_right (fun x i -> [< (aux_mrow x) ; i >]) rl [<>]) >]
+ (* Enlivening Expressions *)
+ | Maction (attr, l) ->
+ X.xml_nempty ~prefix "maction" attr
+ [< (List.fold_right (fun x i -> [< (aux x) ; i >]) l [<>]) >]
+ | Mobject (attr, obj) ->
+ X.xml_nempty ~prefix "semantics" attr (obj_printer obj)
+ and aux_mrow =
+ let module X = Xml in
+ function
+ Mtr (attr, l) ->
+ X.xml_nempty ~prefix "mtr" attr
+ [< (List.fold_right (fun x i -> [< (aux_mtd x) ; i >]) l [<>])
+ >]
+ and aux_mtd =
+ let module X = Xml in
+ function
+ Mtd (attr,m) -> X.xml_nempty ~prefix "mtd" attr
+ [< (aux m) ;
+ X.xml_nempty ~prefix "mphantom" []
+ (X.xml_nempty ~prefix "mtext" [] (X.xml_cdata "(")) >]
+ in
+ aux mpres