diff --git a/Common/Options.cpp b/Common/Options.cpp
index 79dcf62f77537af1c9783cf0d7567871800aa591..6b9548bf64903d145ce5f903eb862ad3bf295795 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -593,6 +593,18 @@ static void Print_ColorTable(int num, int diff, const char *prefix, FILE *file)
 #endif
 }
 
+//used in field options, sorry if it's already implemented somewhere else...
+static void Sanitize_String_Texi(std::string &s){
+  int i=-1;
+  while ((i=s.find('\n',i+1))>=0){
+    s.insert(i,"@*");
+    i+=2;
+  }
+  i=-1;
+  while ((i=s.find_first_of("{}",i+1))>=0)
+    s.insert(i++,"@");
+}
+
 void Print_Options(int num, int level, int diff, int help, const char *filename)
 {
   FILE *file;
@@ -856,20 +868,24 @@ void Print_OptionsDoc()
   FieldManager &fields = *GModel::current()->getFields();
   for(std::map<std::string, FieldFactory*>::iterator it = fields.map_type_name.begin();
       it != fields.map_type_name.end(); it++){
-    fprintf(file, "@item %s\n\n", it->first.c_str());
-    fprintf(file, "Options:\n");
-    fprintf(file, "@table @code\n");
+    fprintf(file, "@item %s\n", it->first.c_str());
     Field *f = (*it->second)();
+    std::string field_description=f->get_description();
+    Sanitize_String_Texi(field_description);
+    fprintf(file,"%s@*\n",field_description.c_str());
+    fprintf(file, "Options:@*\n");
+    fprintf(file, "@table @code\n");
     for(std::map<std::string, FieldOption*>::iterator it2 = f->options.begin();
 	it2 != f->options.end(); it2++){
       fprintf(file, "@item %s\n", it2->first.c_str());
       std::string val;
       it2->second->get_text_representation(val);
-      fprintf(file, "%s (type: %s; default value: %s)\n",
+      Sanitize_String_Texi(val);
+      fprintf(file, "%s@*\ntype: %s@*\ndefault value: @code{%s}\n",
           it2->second->get_description().c_str(),
           it2->second->get_type_name().c_str(),val.c_str());
     }
-    fprintf(file, "@end table\n");
+    fprintf(file, "@end table\n\n");
   }
   fprintf(file, "@end ftable\n");
   fclose(file);
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 4fe2e9e74466c8fa2f1cfe8db02125b9cc366bd1..dab66cf2d4402cfb73c787872ddb8a9a84968edd 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1633,7 +1633,7 @@ void GUI::set_status(const char *msg, int num)
   }
 }
 
-void GUI::add_multiline_in_browser(Fl_Browser * o, const char *prefix, const char *str)
+void GUI::add_multiline_in_browser(Fl_Browser * o, const char *prefix, const char *str, int wrap)
 {
   int start = 0, len;
   if(!str || !strlen(str) || !strcmp(str, "\n")) {
@@ -1641,7 +1641,13 @@ void GUI::add_multiline_in_browser(Fl_Browser * o, const char *prefix, const cha
     return;
   }
   for(unsigned int i = 0; i < strlen(str); i++) {
-    if(i == strlen(str) - 1 || str[i] == '\n') {
+    if(i == strlen(str) - 1 || str[i] == '\n' || (wrap > 0 && i-start==wrap)) {
+      if(wrap>0 && i-start == wrap){ //line is longer than wrap
+        while(str[i]!=' ' &&i>start) //go back to the previous space
+          i--;
+        if(i==start) //no space in this line, cut the word
+          i+=wrap;
+      }
       len = i - start + (str[i] == '\n' ? 0 : 1);
       char *buff = new char[len + strlen(prefix) + 2];
       strcpy(buff, prefix);
@@ -1649,6 +1655,7 @@ void GUI::add_multiline_in_browser(Fl_Browser * o, const char *prefix, const cha
       buff[len + strlen(prefix)] = '\0';
       o->add(buff);
       start = i + 1;
+      delete []buff;
     }
   }
 }
@@ -3891,14 +3898,14 @@ void GUI::edit_field(Field *f){
   int x=field_options_scroll->x();
   int yy=field_options_scroll->y()+WB;
   field_help_display->clear();
-  add_multiline_in_browser(field_help_display,"",f->get_description().c_str());
+  add_multiline_in_browser(field_help_display,"",f->get_description().c_str(),100);
   field_help_display->add("\n");
   field_help_display->add("@b@cOptions");
   for(std::map<std::string,FieldOption*>::iterator it=f->options.begin();it!=f->options.end();it++){
     Fl_Widget *input;
     field_help_display->add(("@b"+it->first).c_str());
     field_help_display->add(("@i"+it->second->get_type_name()).c_str());
-  add_multiline_in_browser(field_help_display,"",it->second->get_description().c_str());
+  add_multiline_in_browser(field_help_display,"",it->second->get_description().c_str(),100);
 	switch(it->second->get_type()){
 	case FIELD_OPTION_INT:
 	case FIELD_OPTION_DOUBLE:
diff --git a/Fltk/GUI.h b/Fltk/GUI.h
index 7602f69c3c37cd4cba75c7c63545ff9119ca9d2d..46474fb4caf975ace748a88a6771402a61c11e37 100644
--- a/Fltk/GUI.h
+++ b/Fltk/GUI.h
@@ -115,7 +115,7 @@ class GUI{
   int MH, fontsize;
   Fl_Scroll *m_scroll;
 
-  void add_multiline_in_browser(Fl_Browser *o, const char *prefix, const char *str);
+  void add_multiline_in_browser(Fl_Browser *o, const char *prefix, const char *str, int wrap=0);
 
 public:
 
diff --git a/Mesh/Field.cpp b/Mesh/Field.cpp
index 7cfd2ef31dde84dfdd7cba9fd603c58f4cc265a8..e6d1c80c81bb428678053aaf313718e1ef83758e 100644
--- a/Mesh/Field.cpp
+++ b/Mesh/Field.cpp
@@ -223,20 +223,20 @@ class StructuredField : public Field
     data = 0;
   }
   std::string get_description(){
-    return "Linearly interpolate between data provided on a 3D rectangular unstructured grid.\n"
-      "The format of the input file is :\n"
-      "Ox Oy Oz\n"
-      "Dx Dy Dz\n"
-      "nx ny nz\n"
-      "v(0,0,0) v(0,0,1) v(0,0,2) ...\n"
-      "v(0,1,0) v(0,1,1) v(0,1,2) ...\n"
-      "v(0,2,0) v(0,2,1) v(0,2,2) ...\n"
-      "...      ...      ...\n"
-      "v(1,0,0) ...      ...\n"
-      "where O are the coordinates of the first node,\n"
-      "D are the distances between nodes in each direction,\n"
-      "n are the numbers of nodes in each directions,\n"
-      "and v are the values on each nodes\n";
+    return "Linearly interpolate between data provided on a 3D rectangular structured grid. "
+      "The format of the input file is : \n"
+      "Ox Oy Oz \n"
+      "Dx Dy Dz \n"
+      "nx ny nz \n"
+      "v(0,0,0) v(0,0,1) v(0,0,2) ... \n"
+      "v(0,1,0) v(0,1,1) v(0,1,2) ... \n"
+      "v(0,2,0) v(0,2,1) v(0,2,2) ... \n"
+      "...      ...      ... \n"
+      "v(1,0,0) ...      ... \n"
+      "where O are the coordinates of the first node, "
+      "D are the distances between nodes in each direction, "
+      "n are the numbers of nodes in each directions, "
+      "and v are the values on each nodes.";
   }
   const char *get_name()
   {
@@ -285,8 +285,7 @@ class StructuredField : public Field
       }
       catch(...) {
         error_status = true;
-        Msg::Error("Field %i : error reading file %s", this->id,
-		   file_name.c_str());
+        Msg::Error("Field %i : error reading file %s", this->id, file_name.c_str());
       }
       update_needed = false;
     }
@@ -324,8 +323,8 @@ class UTMField : public Field
     Ap, Bp, Cp, Dp, Ep, e4, e6, ep, ep2, ep4, k0, mu_fact;
  public:
   std::string get_description(){
-      return "Evaluate Field[IField] in Universal Transverse Mercator coordinates.\n"
-        "The formulas for the coordinates transformation are taken from\n"
+      return "Evaluate Field[IField] in Universal Transverse Mercator coordinates. "
+        "The formulas for the coordinates transformation are taken from "
         "http://www.uwgb.edu/dutchs/UsefulData/UTMFormulas.HTM\n";
   }
   UTMField()
@@ -407,8 +406,8 @@ class LonLatField : public Field
   int field_id;
  public:
   std::string get_description(){
-    return "Evaluate Field[IField] in geographic coordinates (longitude,latitude).\n"
-           "F = Field[IField](arctan(y/x),arcsin(z/sqrt(x^2+y^2+z^2))\n";
+    return "Evaluate Field[IField] in geographic coordinates (longitude,latitude). \n"
+           "F = Field[IField](arctan(y/x),arcsin(z/sqrt(x^2+y^2+z^2))";
   }
   LonLatField()
   {
@@ -432,8 +431,8 @@ class BoxField : public Field
   double v_in, v_out, x_min, x_max, y_min, y_max, z_min, z_max;
  public:
   std::string get_description(){
-      return "The value of this field is VIn inside the box, VOut outside the box.\n"
-             "The box is given by Xmin<=x<=XMax && YMin<=y<=YMax && ZMin<=z<=ZMax\n";
+      return "The value of this field is VIn inside the box, VOut outside the box. \n"
+             "The box is given by Xmin<=x<=XMax && YMin<=y<=YMax && ZMin<=z<=ZMax";
   }
   BoxField()
   {
@@ -471,7 +470,7 @@ class ThresholdField : public Field
   std::string get_description(){
       return "F = LCMin if Field[IField] <= DistMin\n"
         "F = LCMax if Field[IField] >= DistMax\n"
-        "F = Interpolation between LcMin and LcMax if DistMin<Field[IField]<DistMax\n";
+        "F = Interpolation between LcMin and LcMax if DistMin<Field[IField]<DistMax";
   }
   ThresholdField()
   {
@@ -526,8 +525,8 @@ class GradientField : public Field
     return "Gradient";
   }
   std::string get_description(){
-    return "Compute the finite difference gradient of Field[IField].\n"
-      "F = (Field[IField](X + Delta/2) - Field[IField](X - Delta/2))/Delta\n";
+    return "Compute the finite difference gradient of Field[IField].\n "
+      "F = (Field[IField](X + Delta/2) - Field[IField](X - Delta/2))/Delta";
   }
   GradientField() : iField(0), kind(3), delta(CTX.lc / 1e4)
   {
@@ -582,7 +581,7 @@ class CurvatureField : public Field
     return "Curvature";
   }
   std::string get_description(){
-    return "Compute the curvature of Field[IField].\n"
+    return "Compute the curvature of Field[IField]. \n"
       "F = divergence( || grad( Field[IField] ) || )";
   }
   CurvatureField() : iField(0), delta(CTX.lc / 1e4)
@@ -634,10 +633,10 @@ class MaxEigenHessianField : public Field
     return "MaxEigenHessian";
   }
   std::string get_description(){
-      return "Compute the maximum eigen value of the Hessian matrix of Field[IField].\n"
-        "F = max ( eigenvalues ( grad ( grad ( Field[IField] ) ) ) )\n"
-        "Gradients are evaluated by finite differences,\n"
-        "eigenvalues are computed using the GSL library.\n";
+      return "Compute the maximum eigen value of the Hessian matrix of Field[IField]. "
+        "Gradients are evaluated by finite differences, "
+        "eigenvalues are computed using the GSL library.";
+        "F = max ( eigenvalues ( grad ( grad ( Field[IField] ) ) ) ) ";
   }
   MaxEigenHessianField() : iField(0), delta(CTX.lc / 1e4)
   {
@@ -701,9 +700,9 @@ class LaplacianField : public Field
   }
   std::string get_description(){
       return "Compute finite difference the Laplacian of Field[IField].\n"
-        "F = divergence(gradient(Field[IField]))\n"
-        "F = G(x+d,y,z)+G(x-d,y,z)+G(x,y+d,z)+G(x,y-d,z)+\n"
-         "\t+G(x,y,z+d)+G(x,y,z-d)-6*G(x,y,z)\n"
+        "F = divergence(gradient(Field[IField])) \n"
+        "F = G(x+d,y,z)+G(x-d,y,z)+G(x,y+d,z)+G(x,y-d,z)+ "
+         "+G(x,y,z+d)+G(x,y,z-d)-6*G(x,y,z) "
          "where G=Field[IField] and d=delta\n";
   }
   LaplacianField() : iField(0), delta(CTX.lc / 1e4)
@@ -735,11 +734,11 @@ class MeanField : public Field
   }
   std::string get_description(){
       return "Very simple smoother.\n"
-        "F = (G(x+delta,y,z)+G(x-delta,y,z)\n"
-        "\t+G(x,y+delta,z)+G(x,y-delta,z)\n"
-        "\t+G(x,y,z+delta)+G(x,y,z-delta)\n"
-        "\t+G(x,y,z))/7\n"
-        "where G=Field[IField]\n";
+        "F = (G(x+delta,y,z)+G(x-delta,y,z) "
+        "+G(x,y+delta,z)+G(x,y-delta,z) "
+        "+G(x,y,z+delta)+G(x,y,z-delta) "
+        "+G(x,y,z))/7 "
+        "where G=Field[IField]";
   }
   MeanField() : iField(0), delta(CTX.lc / 1e4)
   {
@@ -857,7 +856,7 @@ class MathEvalField : public Field
   MathEvalField()
   {
     options["F"] = new FieldOptionString(f, "Mathematical function to evaluate.", &update_needed);
-    f="F2 + Sin(z)\n";
+    f="F2 + Sin(z)";
   }
   double operator() (double x, double y, double z)
   {
@@ -874,11 +873,11 @@ class MathEvalField : public Field
     return "MathEval";
   }
   std::string get_description(){
-    return "Evaluate a mathematical expression.\n"
-      "The expression can contains x, y, z for spatial coordinates, F0, F1, ... for field values,\n"
-      "and the mathematical functions supported by the gmsh parser.\n"
-      "Example : F2 + Sin(z)\n"
-      "This evaluator is based on a modified version of the GNU libmatheval library.";
+    return "Evaluate a mathematical expression. "
+      "The expression can contains x, y, z for spatial coordinates, F0, F1, ... for field values, "
+      "and mathematical functions. "
+      "This evaluator is based on a modified version of the GNU libmatheval library. \n"
+      "Example : F2 + Sin(z)";
   }
 };
 
@@ -900,9 +899,9 @@ class ParametricField : public Field
 					  &update_needed);
   }
   std::string get_description(){
-    return "Evaluate Field IField in parametric coordinate\n"
-      "F = Field[IField](FX,FY,FZ)\n"
-      "See MathEval Field help to get a description of valid FX, FY and FZ expression\n";
+    return "Evaluate Field IField in parametric coordinate. "
+      "See MathEval Field help to get a description of valid FX, FY and FZ expressions.\n"
+      "F = Field[IField](FX,FY,FZ) ";
   }
   double operator() (double x, double y, double z)
   {
@@ -976,7 +975,7 @@ class PostViewField : public Field
     return "PostView";
   }
   std::string get_description(){
-      return "Evaluate the post processing view IView\n";
+      return "Evaluate the post processing view IView.";
   }
   PostViewField()
   {
@@ -1003,7 +1002,7 @@ class MinField : public Field
 						&update_needed);
   }
   std::string get_description(){
-    return "Take the minimum value of a list of fields.\n";
+    return "Take the minimum value of a list of fields. ";
   }
   double operator() (double x, double y, double z)
   {
@@ -1030,7 +1029,7 @@ class MaxField : public Field
 						&update_needed);
   }
   std::string get_description(){
-    return "Take the maximum value of a list of fields.\n";
+    return "Take the maximum value of a list of fields.";
   }
   double operator() (double x, double y, double z)
   {
@@ -1087,10 +1086,10 @@ class AttractorField : public Field
     return "Attractor";
   }
   std::string get_description(){
-      return "Compute the distance from the nearest node in a list.\n"
-        "It can also be used to compute distance from curves, in this case each curve is replaced"
-        "by NNodesByEdge equidistant nodes and the distance from those nodes is computed.\n"
-        "The ANN library is used to find the nearest node : http://www.cs.umd.edu/~mount/ANN/\n";
+      return "Compute the distance from the nearest node in a list. "
+        "It can also be used to compute distance from curves, in this case each curve is replaced "
+        "by NNodesByEdge equidistant nodes and the distance from those nodes is computed. \n"
+        "The ANN library is used to find the nearest node : http://www.cs.umd.edu/~mount/ANN/ ";
   }
   virtual double operator() (double X, double Y, double Z)
   {
diff --git a/doc/texinfo/opt_fields.texi b/doc/texinfo/opt_fields.texi
index f4924bc18d7c31edb6eb6fdb416efce1d9ce9111..f0fb4211c68804f987b959ecad8540304f11a94b 100644
--- a/doc/texinfo/opt_fields.texi
+++ b/doc/texinfo/opt_fields.texi
@@ -5,167 +5,291 @@
 
 @ftable @code
 @item Attractor
-
-Options:
+Compute the distance from the nearest node in a list. It can also be used to compute distance from curves, in this case each curve is replaced by NNodesByEdge equidistant nodes and the distance from those nodes is computed. @*
+The ANN library is used to find the nearest node : http://www.cs.umd.edu/~mount/ANN/ @*
+Options:@*
 @table @code
 @item EdgesList
-Identification numbers of curves in the model (type: list; default value: {})
+Indices of curves in the geometric model@*
+type: list@*
+default value: @code{@{@}}
 @item NNodesByEdge
-Number of attractor nodes per curve (type: integer; default value: 20)
+Number of nodes used to discetized each curve@*
+type: integer@*
+default value: @code{20}
 @item NodesList
-Identification numbers of points in the model (type: list; default value: {})
+Indices of nodes in the geomtric model@*
+type: list@*
+default value: @code{@{@}}
 @end table
-@item Box
 
-Options:
+@item Box
+The value of this field is VIn inside the box, VOut outside the box. @*
+The box is given by Xmin<=x<=XMax && YMin<=y<=YMax && ZMin<=z<=ZMax@*
+Options:@*
 @table @code
 @item VIn
-Element size inside the box (type: float; default value: 0)
+Value inside the box@*
+type: float@*
+default value: @code{0}
 @item VOut
-Element size outside the box (type: float; default value: 0)
+Value outside the box@*
+type: float@*
+default value: @code{0}
 @item XMax
-Maximum X coordinate of the box (type: float; default value: 0)
+Maximum X coordinate of the box@*
+type: float@*
+default value: @code{0}
 @item XMin
-Minimum X coordinate of the box (type: float; default value: 0)
+Minimum X coordinate of the box@*
+type: float@*
+default value: @code{0}
 @item YMax
-Maximum Y coordinate of the box (type: float; default value: 0)
+Maximum Y coordinate of the box@*
+type: float@*
+default value: @code{0}
 @item YMin
-Minimum Y coordinate of the box (type: float; default value: 0)
+Minimum Y coordinate of the box@*
+type: float@*
+default value: @code{0}
 @item ZMax
-Maximum Z coordinate of the box (type: float; default value: 0)
+Maximum Z coordinate of the box@*
+type: float@*
+default value: @code{0}
 @item ZMin
-Minimum Z coordinate of the box (type: float; default value: 0)
+Minimum Z coordinate of the box@*
+type: float@*
+default value: @code{0}
 @end table
-@item Curvature
 
-Options:
+@item Curvature
+Compute the curvature of Field[IField]. @*
+F = divergence( || grad( Field[IField] ) || )@*
+Options:@*
 @table @code
 @item Delta
- (type: float; default value: 0)
+Step of the finite differences@*
+type: float@*
+default value: @code{0}
 @item IField
-Field index (type: integer; default value: 1)
+Field index@*
+type: integer@*
+default value: @code{1}
 @end table
-@item Gradient
 
-Options:
+@item Gradient
+Compute the finite difference gradient of Field[IField].@*
+ F = (Field[IField](X + Delta/2) - Field[IField](X - Delta/2))/Delta@*
+Options:@*
 @table @code
 @item Delta
- (type: float; default value: 0)
+Finite difference step@*
+type: float@*
+default value: @code{0}
 @item IField
-Field index (type: integer; default value: 1)
+Field index@*
+type: integer@*
+default value: @code{1}
 @item Kind
-0 for X, 1 for Y, 2 for Z, 3 for norm (type: integer; default value: 0)
+Component of the gradient to evaluate : 0 for X, 1 for Y, 2 for Z, 3 for the norm@*
+type: integer@*
+default value: @code{0}
 @end table
-@item Laplacian
 
-Options:
+@item Laplacian
+Compute finite difference the Laplacian of Field[IField].@*
+F = divergence(gradient(Field[IField])) @*
+F = G(x+d,y,z)+G(x-d,y,z)+G(x,y+d,z)+G(x,y-d,z)+ +G(x,y,z+d)+G(x,y,z-d)-6*G(x,y,z) where G=Field[IField] and d=delta@*
+@*
+Options:@*
 @table @code
 @item Delta
- (type: float; default value: 0)
+Finite difference step@*
+type: float@*
+default value: @code{0.1}
 @item IField
-Field index (type: integer; default value: 1)
+Field index@*
+type: integer@*
+default value: @code{1}
 @end table
-@item LonLat
 
-Options:
+@item LonLat
+Evaluate Field[IField] in geographic coordinates (longitude,latitude). @*
+F = Field[IField](arctan(y/x),arcsin(z/sqrt(x^2+y^2+z^2))@*
+Options:@*
 @table @code
 @item IField
-Field index (type: integer; default value: 1)
+Index of the field to evaluate.@*
+type: integer@*
+default value: @code{1}
 @end table
-@item MathEval
 
-Options:
+@item MathEval
+Evaluate a mathematical expression. The expression can contains x, y, z for spatial coordinates, F0, F1, ... for field values, and mathematical functions. This evaluator is based on a modified version of the GNU libmatheval library. @*
+Example : F2 + Sin(z)@*
+Options:@*
 @table @code
 @item F
-Mathematical function (possible arguments: x, y, z for spatial coordinates or F0, F1, ..., for field values) (type: string; default value: "")
+Mathematical function to evaluate.@*
+type: string@*
+default value: @code{"F2 + Sin(z)"}
 @end table
-@item Max
 
-Options:
+@item Max
+Take the maximum value of a list of fields.@*
+Options:@*
 @table @code
 @item FieldsList
-Field indices (type: list; default value: {})
+Field indices@*
+type: list@*
+default value: @code{@{@}}
 @end table
-@item MaxEigenHessian
 
-Options:
+@item MaxEigenHessian
+Compute the maximum eigen value of the Hessian matrix of Field[IField]. Gradients are evaluated by finite differences, eigenvalues are computed using the GSL library.@*
+Options:@*
 @table @code
 @item Delta
- (type: float; default value: 0)
+Step used for the finite differences@*
+type: float@*
+default value: @code{0}
 @item IField
-Field index (type: integer; default value: 1)
+Field index@*
+type: integer@*
+default value: @code{1}
 @end table
-@item Mean
 
-Options:
+@item Mean
+Very simple smoother.@*
+F = (G(x+delta,y,z)+G(x-delta,y,z) +G(x,y+delta,z)+G(x,y-delta,z) +G(x,y,z+delta)+G(x,y,z-delta) +G(x,y,z))/7 where G=Field[IField]@*
+Options:@*
 @table @code
 @item Delta
- (type: float; default value: 0)
+Distance used to compute the mean value@*
+type: float@*
+default value: @code{0.0001}
 @item IField
-Field index (type: integer; default value: 1)
+Field index@*
+type: integer@*
+default value: @code{0}
 @end table
-@item Min
 
-Options:
+@item Min
+Take the minimum value of a list of fields. @*
+Options:@*
 @table @code
 @item FieldsList
-Field indices (type: list; default value: {})
+Field indices@*
+type: list@*
+default value: @code{@{@}}
 @end table
-@item Param
 
-Options:
+@item Param
+Evaluate Field IField in parametric coordinate. See MathEval Field help to get a description of valid FX, FY and FZ expressions.@*
+F = Field[IField](FX,FY,FZ) @*
+Options:@*
 @table @code
 @item FX
-X component of parametric function (type: string; default value: "")
+X component of parametric function@*
+type: string@*
+default value: @code{""}
 @item FY
-Y component of parametric function (type: string; default value: "")
+Y component of parametric function@*
+type: string@*
+default value: @code{""}
 @item FZ
-Z component of parametric function (type: string; default value: "")
+Z component of parametric function@*
+type: string@*
+default value: @code{""}
 @item IField
-Field index (type: integer; default value: 1)
+Field index@*
+type: integer@*
+default value: @code{1}
 @end table
-@item PostView
 
-Options:
+@item PostView
+Evaluate the post processing view IView.@*
+Options:@*
 @table @code
 @item IView
-Post-processing view index (type: integer; default value: 0)
+Post-processing view index@*
+type: integer@*
+default value: @code{0}
 @end table
-@item Structured
 
-Options:
+@item Structured
+Linearly interpolate between data provided on a 3D rectangular structured grid. The format of the input file is : @*
+Ox Oy Oz @*
+Dx Dy Dz @*
+nx ny nz @*
+v(0,0,0) v(0,0,1) v(0,0,2) ... @*
+v(0,1,0) v(0,1,1) v(0,1,2) ... @*
+v(0,2,0) v(0,2,1) v(0,2,2) ... @*
+...      ...      ... @*
+v(1,0,0) ...      ... @*
+where O are the coordinates of the first node, D are the distances between nodes in each direction, n are the numbers of nodes in each directions, and v are the values on each nodes.@*
+Options:@*
 @table @code
 @item FileName
-Name of the input file (type: path; default value: "")
+Name of the input file@*
+type: path@*
+default value: @code{""}
 @item TextFormat
-True for ASCII input files, false for binary files (type: boolean; default value: 0)
+True for ASCII input files, false for binary files
+(4 bite signed integers for n, double precision floating points for v, D and O)@*
+type: boolean@*
+default value: @code{0}
 @end table
-@item Threshold
 
-Options:
+@item Threshold
+F = LCMin if Field[IField] <= DistMin@*
+F = LCMax if Field[IField] >= DistMax@*
+F = Interpolation between LcMin and LcMax if DistMin<Field[IField]<DistMax@*
+Options:@*
 @table @code
 @item DistMax
-Distance from entity after whichelement size will be LcMax (type: float; default value: 10)
+Distance from entity after whichelement size will be LcMax@*
+type: float@*
+default value: @code{10}
 @item DistMin
-Distance from entity up to which element size will be LcMin (type: float; default value: 1)
+Distance from entity up to which element size will be LcMin@*
+type: float@*
+default value: @code{1}
 @item IField
-Field index (type: integer; default value: 0)
+Index of the field to evaluate@*
+type: integer@*
+default value: @code{0}
 @item LcMax
-Element size outside DistMax (type: float; default value: 1)
+Element size outside DistMax@*
+type: float@*
+default value: @code{1}
 @item LcMin
-Element size inside DistMin (type: float; default value: 0.1)
+Element size inside DistMin@*
+type: float@*
+default value: @code{0.1}
 @item Sigmoid
-True to interpolate between LcMin and LcMax using a sigmoid, false to interpolate linearly (type: boolean; default value: 0)
+True to interpolate between LcMin and LcMax using a sigmoid, false to interpolate linearly@*
+type: boolean@*
+default value: @code{0}
 @item StopAtDistMax
-True to not impose element size outside DistMax (type: boolean; default value: 0)
+True to not impose element size outside DistMax (i.e. F = a very big value if Field[IField]>DistMax)@*
+type: boolean@*
+default value: @code{0}
 @end table
-@item UTM
 
-Options:
+@item UTM
+Evaluate Field[IField] in Universal Transverse Mercator coordinates. The formulas for the coordinates transformation are taken from http://www.uwgb.edu/dutchs/UsefulData/UTMFormulas.HTM@*
+@*
+Options:@*
 @table @code
 @item IField
-Field index (type: integer; default value: 1)
+Index of the field to evaluate@*
+type: integer@*
+default value: @code{1}
 @item Zone
- (type: integer; default value: 0)
+Zone of the UTM projection@*
+type: integer@*
+default value: @code{0}
 @end table
+
 @end ftable
diff --git a/doc/texinfo/opt_general.texi b/doc/texinfo/opt_general.texi
index 2294b8c1c1433b8cd4934c8b61130cecea125985..b9ab252e6b0d13d7e4c17b79270246ba247d77f3 100644
--- a/doc/texinfo/opt_general.texi
+++ b/doc/texinfo/opt_general.texi
@@ -76,7 +76,7 @@ Saved in: @code{-}
 
 @item General.TextEditor
 System command to launch a text editor@*
-Default value: @code{"open -t %s"}@*
+Default value: @code{"emacs %s &"}@*
 Saved in: @code{General.OptionsFileName}
 
 @item General.TmpFileName
@@ -86,7 +86,7 @@ Saved in: @code{General.SessionFileName}
 
 @item General.WebBrowser
 System command to launch a web browser@*
-Default value: @code{"open %s"}@*
+Default value: @code{"firefox %s &"}@*
 Saved in: @code{General.OptionsFileName}
 
 @item General.AlphaBlending
@@ -756,7 +756,7 @@ Saved in: @code{General.OptionsFileName}
 
 @item General.PolygonOffsetFactor
 Polygon offset factor (offset = factor * DZ + r * units)@*
-Default value: @code{0.5}@*
+Default value: @code{1}@*
 Saved in: @code{General.OptionsFileName}
 
 @item General.PolygonOffsetUnits
diff --git a/doc/texinfo/opt_mesh.texi b/doc/texinfo/opt_mesh.texi
index 9087c4ad3e8ec165ac88f7dd710d5faad75d33f7..d5b652eafee60535ed9cd3b624a1b6459dc86973 100644
--- a/doc/texinfo/opt_mesh.texi
+++ b/doc/texinfo/opt_mesh.texi
@@ -516,7 +516,7 @@ Saved in: @code{General.OptionsFileName}
 
 @item Mesh.ZoneDefinition
 Method for defining a zone (0=single zone, 1=by partition, 2=by physical)@*
-Default value: @code{2}@*
+Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Points