diff --git a/Surface_mesh_approximation/doc/Surface_mesh_approximation/Doxyfile.in b/Surface_mesh_approximation/doc/Surface_mesh_approximation/Doxyfile.in
index 30962bd7bca..6fe3156e808 100644
--- a/Surface_mesh_approximation/doc/Surface_mesh_approximation/Doxyfile.in
+++ b/Surface_mesh_approximation/doc/Surface_mesh_approximation/Doxyfile.in
@@ -8,7 +8,7 @@ HIDE_UNDOC_MEMBERS = true
HIDE_UNDOC_CLASSES = true
# macros to be used inside the code
-ALIASES += "cgalNamedParamsBegin=
- Named Parameters
-
"
+ALIASES += "cgalNamedParamsBegin{1}=- \1
-
"
ALIASES += "cgalNamedParamsEnd=
"
ALIASES += "cgalParamBegin{1}=| \ref VSA_\1 \"\1\" | "
ALIASES += "cgalParamEnd= |
"
diff --git a/Surface_mesh_approximation/doc/Surface_mesh_approximation/NamedParameters.txt b/Surface_mesh_approximation/doc/Surface_mesh_approximation/NamedParameters.txt
index 4ba6f5c34d5..086eb59ce7b 100644
--- a/Surface_mesh_approximation/doc/Surface_mesh_approximation/NamedParameters.txt
+++ b/Surface_mesh_approximation/doc/Surface_mesh_approximation/NamedParameters.txt
@@ -45,7 +45,11 @@ In the following, we assume that the following types are provided as template pa
- `GeomTraits` a geometric traits class in which constructions are performed and predicates evaluated. Throughout this package, a \cgal `Kernel` fulfills the requirements.
-Here is the list of the named parameters available in this package:
+The named parameters available in this package are grouped into 3 modules listed below.
+
+\defgroup vsa_np_algorithm Algorithm Parameters
+\ingroup vsa_namedparameters
+\cgalHeading{Parameters for the Approximation Step}
\cgalNPTableBegin
@@ -104,6 +108,14 @@ the number of relaxation iterations interleaved within seeding.\n
\b Default value is `5`
\cgalNPEnd
+\cgalNPTableEnd
+
+\defgroup vsa_np_meshing Meshing Parameters
+\ingroup vsa_namedparameters
+\cgalHeading{Parameters for the Meshing Step}
+
+\cgalNPTableBegin
+
\cgalNPBegin{subdivision_ratio} \anchor VSA_subdivision_ratio
the chord subdivision ratio threshold used by the meshing step.\n
\b Type : `GeomTraits::FT` \n
@@ -133,6 +145,14 @@ set the plane approximated with the PCA algorithm in the meshing step.\n
\b Default value is `false`
\cgalNPEnd
+\cgalNPTableEnd
+
+\defgroup vsa_np_output Output Parameters
+\ingroup vsa_namedparameters
+\cgalHeading{Parameters for Retrieving the Results}
+
+\cgalNPTableBegin
+
\cgalNPBegin{face_proxy_map} \anchor VSA_face_proxy_map
the property map outputs the proxy index of each face of the input polygon mesh.\n
\b Type: a class model of `ReadWritePropertyMap` with `boost::graph_traits::%face_descriptor` as key type and the value type `std::size_t`\n
diff --git a/Surface_mesh_approximation/include/CGAL/Variational_shape_approximation.h b/Surface_mesh_approximation/include/CGAL/Variational_shape_approximation.h
index c7d47935385..922fca48686 100644
--- a/Surface_mesh_approximation/include/CGAL/Variational_shape_approximation.h
+++ b/Surface_mesh_approximation/include/CGAL/Variational_shape_approximation.h
@@ -874,7 +874,7 @@ public:
* @param np optional sequence of \ref vsa_namedparameters among the ones listed below
* @return `true` if the extracted surface mesh is manifold, `false` otherwise.
*
- * \cgalNamedParamsBegin
+ * \cgalNamedParamsBegin{Meshing Named Parameters}
* \cgalParamBegin{subdivision_ratio} chord subdivision ratio threshold to the chord length or average edge length.
* \cgalParamEnd
* \cgalParamBegin{relative_to_chord} set `true` if the subdivision_ratio is the ratio of the
diff --git a/Surface_mesh_approximation/include/CGAL/approximate_mesh.h b/Surface_mesh_approximation/include/CGAL/approximate_mesh.h
index 64e3f24daa1..e3882ae04ef 100644
--- a/Surface_mesh_approximation/include/CGAL/approximate_mesh.h
+++ b/Surface_mesh_approximation/include/CGAL/approximate_mesh.h
@@ -55,7 +55,7 @@ unspecified_type all_default();
* @param np optional sequence of \ref vsa_namedparameters among the ones listed below
* @return `true` if the indexed triangles represent a 2-manifold, oriented surface mesh, and `false` otherwise.
*
- * \cgalNamedParamsBegin
+ * \cgalNamedParamsBegin{Algorithm Named Parameters}
* \cgalParamBegin{geom_traits} a geometric traits class instance, model of Kernel.
* Exact constructions kernels are not supported by this function.
* \cgalParamEnd
@@ -74,6 +74,8 @@ unspecified_type all_default();
* \cgalParamEnd
* \cgalParamBegin{nb_of_relaxations} number of relaxation iterations interleaved within seeding.
* \cgalParamEnd
+ * \cgalNamedParamsEnd
+ * \cgalNamedParamsBegin{Meshing Named Parameters}
* \cgalParamBegin{subdivision_ratio} chord subdivision ratio threshold to the chord length or average edge length.
* \cgalParamEnd
* \cgalParamBegin{relative_to_chord} if `true` the `subdivision_ratio` is the ratio of the
@@ -85,6 +87,8 @@ unspecified_type all_default();
* \cgalParamEnd
* \cgalParamBegin{pca_plane} set `true` if use PCA plane fitting, otherwise use the default area averaged plane parameters.
* \cgalParamEnd
+ * \cgalNamedParamsEnd
+ * \cgalNamedParamsBegin{Output Named Parameters}
* \cgalParamBegin{face_proxy_map} a ReadWritePropertyMap with
* `boost::graph_traits::%face_descriptor` as key and `std::size_t` as value type.
* A proxy is a set of connected faces which are placed under the same proxy patch (see \cgalFigureRef{iterations}).