diff --git a/src/fr/inrialpes/exmo/align/cli/GroupOutput.java b/src/fr/inrialpes/exmo/align/cli/GroupOutput.java
index b14c2eb66712f50f759d53b6551531f393aa3d00..f6ff522138a93a014dcece0db93d800fda9475f8 100644
--- a/src/fr/inrialpes/exmo/align/cli/GroupOutput.java
+++ b/src/fr/inrialpes/exmo/align/cli/GroupOutput.java
@@ -54,7 +54,8 @@ import gnu.getopt.Getopt;
 
 import fr.inrialpes.exmo.align.parser.AlignmentParser;
 
-/** A basic class for synthesizing the alignment results of an algorithm with regard to the ontology characteristics as a colored module.
+/** A basic class for synthesizing the alignment results of an algorithm with
+ * regard to the ontology characteristics as a colored module.
  *
  * These modules are however computed on averaging the precision recall/graphs
  * on test directories instead of recording the actual precision recall graphs
@@ -69,6 +70,8 @@ import fr.inrialpes.exmo.align.parser.AlignmentParser;
  *  <pre>
  *  -o filename --output=filename
  *  -c --color
+ *  -v --value
+ *  -e --labels
  *  -d debug --debug=level
  *  -l list of compared algorithms
  *  -t output --type=output: xml/tex/html/ascii
@@ -114,6 +117,8 @@ public class GroupOutput {
     String outFile = null;
     String type = "tex";
     String color = null;
+    boolean labels = false;
+    boolean value = false;
     int debug = 0;
     PrintWriter output = null;
 
@@ -123,7 +128,7 @@ public class GroupOutput {
     }
 
     public void run(String[] args) throws Exception {
-	LongOpt[] longopts = new LongOpt[8];
+	LongOpt[] longopts = new LongOpt[9];
 
  	longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
 	longopts[1] = new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o');
@@ -131,8 +136,10 @@ public class GroupOutput {
 	longopts[3] = new LongOpt("type", LongOpt.REQUIRED_ARGUMENT, null, 't');
 	longopts[4] = new LongOpt("debug", LongOpt.OPTIONAL_ARGUMENT, null, 'd');
 	longopts[6] = new LongOpt("list", LongOpt.REQUIRED_ARGUMENT, null, 'l');
+	longopts[7] = new LongOpt("value", LongOpt.NO_ARGUMENT, null, 'v');
+	longopts[8] = new LongOpt("labels", LongOpt.NO_ARGUMENT, null, 'e');
 
-	Getopt g = new Getopt("", args, "ho:c::d::l:t:", longopts);
+	Getopt g = new Getopt("", args, "hveo:c::d::l:t:", longopts);
 	int c;
 	String arg;
 
@@ -141,6 +148,12 @@ public class GroupOutput {
 	    case 'h' :
 		usage();
 		return;
+	    case 'v' :
+		value = true;
+		break;
+	    case 'e' :
+		labels = true;
+		break;
 	    case 'o' :
 		/* Write output here */
 		outFile = g.getOptarg();
@@ -194,7 +207,6 @@ public class GroupOutput {
 	if ( type.equals("tex") ) {
 	    output.println("\\documentclass[11pt]{book}");
 	    output.println();
-	    output.println("\\usepackage{figureflt}");
 	    output.println("\\usepackage{pgf}");
 	    output.println("\\usepackage{tikz}");
 	    output.println("\\usepackage{pgflibraryshapes}");
@@ -280,38 +292,55 @@ public class GroupOutput {
 
     public void printPGFTeX( String algo, double[] cells ){
 	output.println("\n%% Plot generated by GroupOutput of alignapi");
-	output.println("\\begin{floatingigure}[r]{6.5cm}");
 	output.println("\\begin{figure}[!h]");
 	output.println("\\begin{center}");
 	output.println("\\begin{tikzpicture}");
 
-	output.println("\\draw (-.5,2.) node[anchor=east] {labels};");
-	output.println("\\draw (0,2.) node[diamond,minimum size=.5cm"+colorFormat(cells[11])+"] {"+stringFormat(cells[11])+"}; % l");
-	output.println("\\draw (0,1.) node[diamond,minimum size=.5cm"+colorFormat(cells[5])+"] {"+stringFormat(cells[5])+"}; % lp");
-	output.println("\\draw (0.5,1.5) node[diamond,minimum size=.5cm"+colorFormat(cells[2])+"] {"+stringFormat(cells[2])+"}; % lip");
-	output.println("\\draw (1.,2.) node[diamond,minimum size=.5cm"+colorFormat(cells[6])+"] {"+stringFormat(cells[6])+"}; %li");
-	output.println("");
-	output.println("\\draw (-.5,0.) node[anchor=east] {properties};");
-	output.println("\\draw (-0.5,-0.5) node[diamond,minimum size=.5cm"+colorFormat(cells[9])+"] {"+stringFormat(cells[9])+"}; % ip");
-	output.println("\\draw (0,0) node[diamond,minimum size=.5cm"+colorFormat(cells[12])+"] {"+stringFormat(cells[12])+"}; %p");
-	output.println("\\draw (.5,.5) node[diamond,minimum size=.5cm"+colorFormat(cells[3])+"] {"+stringFormat(cells[3])+"}; % lph");
-	output.println("\\draw (1.,1.) node[diamond,minimum size=.5cm"+colorFormat(cells[0])+"] {"+stringFormat(cells[0])+"}; % liph");
-	output.println("\\draw (1.5,1.5) node[diamond,minimum size=.5cm"+colorFormat(cells[4])+"] {"+stringFormat(cells[4])+"}; %hil");
-	output.println("\\draw (2.,2.) node[diamond,minimum size=.5cm"+colorFormat(cells[14])+"] {"+stringFormat(cells[14])+"}; %i");
-	output.println("\\draw (2.5,2.0) node[anchor=west] {instances};");
-	output.println("");
-	output.println("\\draw (2.,1.) node[diamond,minimum size=.5cm"+colorFormat(cells[10])+"] {"+stringFormat(cells[10])+"}; % hi");
-	output.println("\\draw (1.5,0.5) node[diamond,minimum size=.5cm"+colorFormat(cells[1])+"] {"+stringFormat(cells[1])+"}; % phi");
-	output.println("\\draw (1.,0) node[diamond,minimum size=.5cm"+colorFormat(cells[8])+"] {"+stringFormat(cells[8])+"}; % ph");
-	output.println("\\draw (2.,0) node[diamond,minimum size=.5cm"+colorFormat(cells[13])+"] {"+stringFormat(cells[13])+"}; % h");
-	output.println("\\draw (2.5,0.) node[anchor=west] {hierarchy};");
-	output.println("\\draw (2.5,-0.5) node[diamond,minimum size=.5cm"+colorFormat(cells[7])+"] {"+stringFormat(cells[7])+"}; % hl");
+	output.println("\\begin{scope}[minimum size=1cm]");
+	if ( labels ) {
+	    output.println("\\draw (-.5,2.) node[anchor=east] {labels};");
+	    output.println("\\draw (2.5,0.) node[anchor=west] {hierarchy};");
+	    output.println("\\draw (-.5,0.) node[anchor=east] {properties};");
+	    output.println("\\draw (2.5,2.0) node[anchor=west] {instances};");
+	}
 
+	output.println("\\draw (0,2.) node[diamond"+colorFormat(cells[11])+"] {}; % l");
+	if (value) output.println("\\draw (0,2.) node {"+stringFormat(cells[11])+"}; % l");
+	output.println("\\draw (0,1.) node[diamond"+colorFormat(cells[5])+"] {}; % lp");
+	if (value) output.println("\\draw (0,1.) node {"+stringFormat(cells[5])+"}; % lp");
+	output.println("\\draw (0.5,1.5) node[diamond"+colorFormat(cells[2])+"] {}; % lip");
+	if (value) output.println("\\draw (0.5,1.5) node {"+stringFormat(cells[2])+"}; % lip");
+	output.println("\\draw (1.,2.) node[diamond"+colorFormat(cells[6])+"] {}; %li");
+	if (value) output.println("\\draw (1.,2.) node {"+stringFormat(cells[6])+"}; %li");
+	output.println("\\draw (-0.5,-0.5) node[diamond"+colorFormat(cells[9])+"] {}; % ip");
+	if (value) output.println("\\draw (-0.5,-0.5) node {"+stringFormat(cells[9])+"}; % ip");
+	output.println("\\draw (0,0) node[diamond"+colorFormat(cells[12])+"] {}; %p");
+	if (value) output.println("\\draw (0,0) node {"+stringFormat(cells[12])+"}; %p");
+	output.println("\\draw (.5,.5) node[diamond"+colorFormat(cells[3])+"] {}; % lph");
+	if (value) output.println("\\draw (.5,.5) node {"+stringFormat(cells[3])+"}; % lph");
+	output.println("\\draw (1.,1.) node[diamond"+colorFormat(cells[0])+"] {}; % liph");
+	if (value) output.println("\\draw (1.,1.) node {"+stringFormat(cells[0])+"}; % liph");
+	output.println("\\draw (1.5,1.5) node[diamond"+colorFormat(cells[4])+"] {}; %hil");
+	if (value) output.println("\\draw (1.5,1.5) node {"+stringFormat(cells[4])+"}; %hil");
+	output.println("\\draw (2.,2.) node[diamond"+colorFormat(cells[14])+"] {}; %i");
+	if (value) output.println("\\draw (2.,2.) node {"+stringFormat(cells[14])+"}; %i");
+	output.println("\\draw (2.,1.) node[diamond"+colorFormat(cells[10])+"] {}; % hi");
+	if (value) output.println("\\draw (2.,1.) node {"+stringFormat(cells[10])+"}; % hi");
+	output.println("\\draw (1.5,0.5) node[diamond"+colorFormat(cells[1])+"] {}; % phi");
+	if (value) output.println("\\draw (1.5,0.5) node {"+stringFormat(cells[1])+"}; % phi");
+	output.println("\\draw (1.,0) node[diamond"+colorFormat(cells[8])+"] {}; % ph");
+	if (value) output.println("\\draw (1.,0) node {"+stringFormat(cells[8])+"}; % ph");
+	output.println("\\draw (2.,0) node[diamond"+colorFormat(cells[13])+"] {}; % h");
+	if (value) output.println("\\draw (2.,0) node {"+stringFormat(cells[13])+"}; % h");
+	output.println("\\draw (2.5,-0.5) node[diamond"+colorFormat(cells[7])+"] {}; % hl");
+	if (value) output.println("\\draw (2.5,-0.5) node {"+stringFormat(cells[7])+"}; % hl");
+
+	output.println("\\end{scope}");
 
 	output.println("\\end{tikzpicture} ");
 	output.println("\\caption{"+algo+" evaluation on F-measure (the darkest the best).}\\label{fig:diag"+algo+"}");
 	output.println("\\end{center}");
-	output.println("\\end{floatingfigure}");
+	output.println("\\end{figure}");
     }
 
     public void printTSV( double[][] result ) {