Index: anr/gantt.l
===================================================================
--- anr/gantt.l	(revision 54)
+++ anr/gantt.l	(revision 59)
@@ -29,4 +29,5 @@
 
 char* task_names[] = {
+    0,
     "Project management",
     "Backbone infrastructure",
@@ -39,18 +40,18 @@
     0
 };
-struct partner_def { char *key, *name, *file; } partner_table[] = {
-    { "UNKNOW", "relax",   0,                 },
-    { "irisa",  "irisa",   "table_irisa.tex"  },
-    { "lip",    "lip",     "table_lip.tex"    },
-    { "tima",   "tima",    "table_tima.tex"   },
-    { "ubs",    "ubs",     "table_ubs.tex"    },
-    { "upmc",   "upmc",    "table_upmc.tex"   },
-    { "altera", "altera",  "table_altera.tex" },
-    { "xilinx", "xilinx",  "table_xilinx.tex" },
-    { "bull",   "bull",    "table_bull.tex"   },
-    { "thales", "thales",  "table_thales.tex" },
-    { "zied",   "zied",    "table_zied.tex"   },
-    { "navtel", "navtel",  "table_navtel.tex" },
-    { 0,        0,         0                  },
+struct partner_def { char *key, *name, *fnfull, *fnshort; } partner_table[] = {
+    { "UNKNOW" ,"relax"  ,0                       ,0                        },
+    { "irisa"  ,"irisa"  ,"table_irisa_full.tex"  ,"table_irisa_short.tex"  },
+    { "lip"    ,"lip"    ,"table_lip_full.tex"    ,"table_lip_short.tex"    },
+    { "tima"   ,"tima"   ,"table_tima_full.tex"   ,"table_tima_short.tex"   },
+    { "ubs"    ,"ubs"    ,"table_ubs_full.tex"    ,"table_ubs_short.tex"    },
+    { "upmc"   ,"upmc"   ,"table_upmc_full.tex"   ,"table_upmc_short.tex"   },
+    { "altera" ,"altera" ,"table_altera_full.tex" ,"table_altera_short.tex" },
+    { "xilinx" ,"xilinx" ,"table_xilinx_full.tex" ,"table_xilinx_short.tex" },
+    { "bull"   ,"bull"   ,"table_bull_full.tex"   ,"table_bull_short.tex"   },
+    { "thales" ,"thales" ,"table_thales_full.tex" ,"table_thales_short.tex" },
+    { "zied"   ,"zied"   ,"table_zied_full.tex"   ,"table_zied_short.tex"   },
+    { "navtel" ,"navtel" ,"table_navtel_full.tex" ,"table_navtel_short.tex" },
+    { 0        ,0        ,0                       ,0                        },
 };
 
@@ -612,10 +613,10 @@
 }
 
-void do_partner_table(int partner)
+void do_partner_table_full(int partner)
 {
     struct partner_def* part = partner_table+partner;
-    if ( (curr->os=fopen(part->file,"w"))==0 ) {
-        fprintf(stderr,"can not open %s file for writing.\n",part->file);
-        fprintf(stderr,"generation of %s partner table is skipped.\n",part->file);
+    if ( (curr->os=fopen(part->fnfull,"w"))==0 ) {
+        fprintf(stderr,"can not open %s file for writing.\n",part->fnfull);
+        fprintf(stderr,"generation of %s partner table is skipped.\n",part->fnfull);
         return;
     }
@@ -674,5 +675,5 @@
     }
     if ( an!=(an1+an2+an3) ) {
-        fprintf(stderr,"bad computation in %s table.\n",part->file);
+        fprintf(stderr,"bad computation in %s table.\n",part->fnfull);
     }
     fprintf(curr->os,"\\hline\n");
@@ -685,8 +686,75 @@
 }
 
+void do_partner_table_short(int partner)
+{
+    struct partner_def* part = partner_table+partner;
+    if ( (curr->os=fopen(part->fnshort,"w"))==0 ) {
+        fprintf(stderr,"can not open %s file for writing.\n",part->fnshort);
+        fprintf(stderr,"generation of %s partner table is skipped.\n",part->fnshort);
+        return;
+    }
+    fprintf(curr->os,"\\begin{center}\\begin{small}\\begin{tabular}{|c|l||r|r|r||r|}\\hline\n");
+    fprintf(curr->os,
+        " & title & \\multicolumn{3}{c||}{years } & total \\\\\\cline{3-5}\n");
+    fprintf(curr->os,
+        " &       & \\multicolumn{1}{c|}{1} & \\multicolumn{1}{c|}{2} & "
+                    "\\multicolumn{1}{c||}{3} &  \\\\\\hline\\hline\n");
+    int tn,stn,dn,v=0;
+    double an1=0,an2=0,an3=0,an=0;
+    double tsk1,tsk2,tsk3,tsk;
+    int newlineadded=1;
+    for (tn=0 ; tn<T_MAX ; tn++) {
+        if (curr->ls[tn][0][0][0]==0) break;
+		tsk1=tsk2=tsk3=tsk=0;
+        for (stn=0; stn<S_MAX; stn++) {
+            for (dn=0; dn<D_MAX; dn++) {
+                Tlivrable* top=curr->ls[tn][stn][dn][v];
+                if (top==0) continue;
+                Tlivrable* last=top->vers[top->nbvers-1];
+                if (last->partner!=partner) continue;
+                double sum1,sum2,sum3,sum=0;
+                sum1 = last->hman[0]; sum +=sum1;
+                sum2 = last->hman[1]; sum +=sum2;
+                sum3 = last->hman[2]; sum +=sum3;
+                an1 += sum1 ; tsk1 += sum1 ;
+                an2 += sum2 ; tsk2 += sum2 ;
+                an3 += sum3 ; tsk3 += sum3 ;
+                an  += sum  ; tsk  += sum  ;
+                newlineadded=0;
+                char label[1000];
+                gen_label_base(label,last);
+                if ( (sum1!=0 && sum1>last->nbma[0] ) || (sum1==0 && last->nbma[0]!=0) )
+                    fprintf(stderr,"ERROR: %s:%s probleme sur l'an 1 (in table=%2.1f, in gantt=%2.1f\n",
+                        part->name,label,sum1,last->nbma[0]);
+                if ( (sum2!=0 && sum2>last->nbma[1]) || (sum2==0 && last->nbma[1]!=0) )
+                    fprintf(stderr,"ERROR: %s:%s probleme sur l'an 2 (in table=%2.1f, in gantt=%2.1f\n",
+                        part->name,label,sum2,last->nbma[1]);
+                if ( (sum3!=0 && sum3>last->nbma[2]) || (sum3==0 && last->nbma[2]!=0) )
+                    fprintf(stderr,"ERROR: %s:%s probleme sur l'an 3 (in table=%2.1f, in gantt=%2.1f\n",
+                        part->name,label,sum3,last->nbma[2]);
+            }
+        }
+		if (tsk!=0)
+    	fprintf(curr->os,"Task-%d & %s & %2.1f & %2.1f & %2.1f & %2.1f \\\\\\hline\n",
+            curr->ls[tn][0][0][0]->tn,
+            task_names[curr->ls[tn][0][0][0]->tn],tsk1,tsk2,tsk3,tsk);
+		
+    }
+    if ( an!=(an1+an2+an3) ) {
+        fprintf(stderr,"bad computation in %s table.\n",part->fnshort);
+    }
+    fprintf(curr->os,"\\hline\n");
+    fprintf(curr->os," & %s &  %2.1f & %2.1f & %2.1f & %2.1f \\\\\\hline\n",
+            "total",an1,an2,an3,an);
+
+    fprintf(curr->os,"\\end{tabular}\\end{small}\\end{center}\n");
+    fclose(curr->os);
+    curr->os=0;
+}
+
 int main()
 {
-    int tnplus[10] = { 0, 6, 7, -1 };
-    int tnmoins[10] = { 0, 6, 7, -1 };
+    int tnplus[10] = { 1, 7, 8, -1 };
+    int tnmoins[10] = { 1, 7, 8, -1 };
 
     yylex();
@@ -700,6 +768,6 @@
     prepare2(curr);
     prepare3(curr);
-    do_partner_table(4);
-    do_partner_table(5);
+    do_partner_table_full(4); do_partner_table_short(4);
+    do_partner_table_full(5); do_partner_table_short(5);
 
     return 0;
