let latex_of_key_bindings l =
  let b = Buffer.create 256 in
  Buffer.add_string b "\\begin{tabular}{|l|l|}\\hline\n";
  let f (ks, command) =
    Printf.bprintf b "{\\bf %s} & %s \\\\ \\hline\n"
      (string_of_state ks) command
  in
  List.iter f l;
  Buffer.add_string b "\\end{tabular}\n";
  let s = Buffer.contents b in
  Cam_misc.replace_in_string ~pat: "_" ~subs: "\\_" ~s