let get_font (tag : string) (choices : string list) : Tk.font =
  let all = Font.families () in
  let rec find ch =
    match ch with
    | [] -> None
    | f::tail ->
      ( try Some (List.find (( = ) f) all)
        with Not_found -> find tail ) in
  match find choices with
  | None -> Font.create ~name:tag ~size:10 ()
  | Some fam -> Font.create ~name:tag ~family:fam ~size:10 ()