let print_project_latex (hpr:string -> unit) (gl:student list) (padd:paddress) = 
    let module Out = struct let exthpr = hpr end in
    let module Latex = Latex.TEXHandler(Outin 
      (* Initialize LaTeX *)
      Latex.set_width 18.;
      Latex.set_height 25.;
      Latex.set_pagestyle "empty";
      Latex.initialize_output();
      (* Print groups *)
      for i = 1 to (List.length (!all_groups)) do
        (* Routine to compute the number of teams *)
        let gnum   = List.nth (!num_groups) (i-1) in 
        let tnums  = List.sort (compare) 
          (H.assoc_to_keys(get_group_project_teams gnum padd)) in
          hpr (Printf.sprintf 
         "\\begin{center} \\fbox{\\Large \\textsf{Groupe %d}}\\end{center}\n\n" gnum);
          List.iter (fun tnum -> 
            if (!do_assign_resp) then 
              print_team_by_group_project_latex_resp hpr gl gnum padd tnum
            else
              print_team_by_group_project_latex_noresp hpr gl gnum padd tnum
                    ) tnums;
          if (i<(List.length (!all_groups))) then
            hpr "\\pagebreak\n\n"
      done;
      (* Finalize LaTeX *)
      Latex.finalize_output()