X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_notation%2FcicNotationPres.ml;h=633d702a90c554c3acc6bf02a6802658579ac66c;hb=5c9e1997848c2f74297a5a243679f4bcb6ae0dc7;hp=8d548e1ebf641c72b034589aead5edb8bd485a1a;hpb=1ca0ec89cfc2c3f85af95d5b1bdad07597d976bd;p=helm.git diff --git a/helm/ocaml/cic_notation/cicNotationPres.ml b/helm/ocaml/cic_notation/cicNotationPres.ml index 8d548e1eb..633d702a9 100644 --- a/helm/ocaml/cic_notation/cicNotationPres.ml +++ b/helm/ocaml/cic_notation/cicNotationPres.ml @@ -35,13 +35,6 @@ let atop_attributes = [None, "linethickness", "0pt"] let to_unicode = Utf8Macro.unicode_of_tex -(* let rec make_attributes l1 = function - | [] -> [] - | None :: tl -> make_attributes (List.tl l1) tl - | Some s :: tl -> - let p,n = List.hd l1 in - prerr_endline (Printf.sprintf "make_attributes %s %s" n s); - (p,n,s) :: make_attributes (List.tl l1) tl *) let rec make_attributes l1 = function | [] -> [] | hd :: tl -> @@ -49,18 +42,21 @@ let rec make_attributes l1 = function | None -> make_attributes (List.tl l1) tl | Some s -> let p,n = List.hd l1 in -(* prerr_endline (Printf.sprintf "make_attributes %s %s" n s); *) hd := None; (p,n,s) :: make_attributes (List.tl l1) tl) let box_of_mpres = function - Mpresentation.Mobject (_, box) -> box + | Mpresentation.Mobject (attrs, box) -> + assert (attrs = []); + box | mpres -> Box.Object ([], mpres) let mpres_of_box = function - Box.Object (_, mpres) -> mpres + | Box.Object (attrs, mpres) -> + assert (attrs = []); + mpres | box -> Mpresentation.Mobject ([], box) let rec genuine_math = @@ -86,9 +82,19 @@ let rec promote_to_math = let small_skip = Mpresentation.Mspace (RenderingAttrs.small_skip_attributes `MathML) +let rec add_mpres_attributes new_attr = function + | Mpresentation.Mobject (attr, box) -> + Mpresentation.Mobject (attr, add_box_attributes new_attr box) + | mpres -> + Mpresentation.set_attr (new_attr @ Mpresentation.get_attr mpres) mpres +and add_box_attributes new_attr = function + | Box.Object (attr, mpres) -> + Box.Object (attr, add_mpres_attributes new_attr mpres) + | box -> Box.set_attr (new_attr @ Box.get_attr box) box + let box_of mathonly spec attrs children = match children with - | [t] -> t + | [t] -> add_mpres_attributes attrs t | _ -> let kind, spacing, indent = spec in let dress children = @@ -239,7 +245,7 @@ let render ids_to_uris = | A.Uri (literal, subst) -> let attrs = (RenderingAttrs.ident_attributes `MathML) - @ make_href xmlattrs xref (ref []) + @ make_href xmlattrs xref uris in let name = Mpres.Mi (attrs, to_unicode literal) in (match subst with