diff --git a/Documentation/doc/resources/1.8.13/BaseDoxyfile.in b/Documentation/doc/resources/1.8.13/BaseDoxyfile.in
index 83043b16504..7d6685977cf 100644
--- a/Documentation/doc/resources/1.8.13/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.8.13/BaseDoxyfile.in
@@ -351,7 +351,8 @@ ALIASES = "cgal=%CGAL" \
"cgalParamExtra{1}=
Extra: \1" \
"cgalParamNEnd= \htmlonly[block] \endhtmlonly | " \
"cgalParamSectionBegin{1}=\cgalParamNBegin{\1}" \
- "cgalParamSectionEnd=\cgalParamNEnd"
+ "cgalParamSectionEnd=\cgalParamNEnd" \
+ "cgalParamPrecondition{1}=Precondition: \1"
# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
diff --git a/Documentation/doc/resources/1.8.14/BaseDoxyfile.in b/Documentation/doc/resources/1.8.14/BaseDoxyfile.in
index b50b8b27c69..44a6b9f72b3 100644
--- a/Documentation/doc/resources/1.8.14/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.8.14/BaseDoxyfile.in
@@ -352,7 +352,8 @@ ALIASES = "cgal=%CGAL" \
"cgalParamExtra{1}=Extra: \1" \
"cgalParamNEnd= \htmlonly[block] \endhtmlonly | " \
"cgalParamSectionBegin{1}=\cgalParamNBegin{\1}" \
- "cgalParamSectionEnd=\cgalParamNEnd"
+ "cgalParamSectionEnd=\cgalParamNEnd" \
+ "cgalParamPrecondition{1}=Precondition: \1"
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
diff --git a/Documentation/doc/resources/1.8.20/BaseDoxyfile.in b/Documentation/doc/resources/1.8.20/BaseDoxyfile.in
index 571028383ef..7f258d33a4b 100644
--- a/Documentation/doc/resources/1.8.20/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.8.20/BaseDoxyfile.in
@@ -374,7 +374,8 @@ ALIASES = "cgal=%CGAL" \
"cgalParamExtra{1}=Extra: \1" \
"cgalParamNEnd= \htmlonly[block] \endhtmlonly | " \
"cgalParamSectionBegin{1}=\cgalParamNBegin{\1}" \
- "cgalParamSectionEnd=\cgalParamNEnd"
+ "cgalParamSectionEnd=\cgalParamNEnd" \
+ "cgalParamPrecondition{1}=Precondition: \1"
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
diff --git a/Documentation/doc/resources/1.8.4/BaseDoxyfile.in b/Documentation/doc/resources/1.8.4/BaseDoxyfile.in
index 43681a4c2dd..45d422384df 100644
--- a/Documentation/doc/resources/1.8.4/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.8.4/BaseDoxyfile.in
@@ -358,6 +358,7 @@ ALIASES+= "cgalParamExtra{1}=Extra: \1"
ALIASES+= "cgalParamNEnd= \htmlonly[block] \endhtmlonly | "
ALIASES+= "cgalParamSectionBegin{1}=\cgalParamNBegin{\1}"
ALIASES+= "cgalParamSectionEnd=\cgalParamNEnd"
+ALIASES+= "cgalParamPrecondition{1}=Precondition: \1"
# This tag can be used to specify a number of word-keyword mappings (TCL only).
diff --git a/Documentation/doc/resources/1.9.3/BaseDoxyfile.in b/Documentation/doc/resources/1.9.3/BaseDoxyfile.in
index 99f3dddbd5a..1977f82b158 100644
--- a/Documentation/doc/resources/1.9.3/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.9.3/BaseDoxyfile.in
@@ -374,7 +374,8 @@ ALIASES = "cgal=%CGAL" \
"cgalParamExtra{1}=Extra: \1" \
"cgalParamNEnd= \htmlonly[block] \endhtmlonly | " \
"cgalParamSectionBegin{1}=\cgalParamNBegin{\1}" \
- "cgalParamSectionEnd=\cgalParamNEnd"
+ "cgalParamSectionEnd=\cgalParamNEnd" \
+ "cgalParamPrecondition{1}=Precondition: \1"
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
diff --git a/Mesh_3/include/CGAL/exude_mesh_3.h b/Mesh_3/include/CGAL/exude_mesh_3.h
index 78d3d644de3..f39e21c6db1 100644
--- a/Mesh_3/include/CGAL/exude_mesh_3.h
+++ b/Mesh_3/include/CGAL/exude_mesh_3.h
@@ -53,7 +53,7 @@ namespace CGAL {
* is stopped. This time is measured using the `Real_timer` class. The default value is
* 0 and means that there is no time limit.}
* \cgalParamType{`double`}
- * \cgalParamExtra{\pre `time_limit >= 0`}
+ * \cgalParamPrecondition{`time_limit >= 0`}
* \cgalParamDefault{0}
* \cgalParamNEnd
* \cgalParamNBegin{sliver_bound}
@@ -64,7 +64,7 @@ namespace CGAL {
* default value is 0 and means that there is no targeted bound: the exuder then runs as long
* as it can improve the smallest dihedral angles of the set of cells incident to some vertices.}
* \cgalParamType{`double`}
- * \cgalParamExtra{\pre `sliver_bound <= 180`}
+ * \cgalParamPrecondition{`0<= sliver_bound <= 180`}
* \cgalParamDefault{0}
* \cgalParamNEnd
* \cgalNamedParamsEnd
diff --git a/Mesh_3/include/CGAL/lloyd_optimize_mesh_3.h b/Mesh_3/include/CGAL/lloyd_optimize_mesh_3.h
index 5215190a1a8..5591185ce5b 100644
--- a/Mesh_3/include/CGAL/lloyd_optimize_mesh_3.h
+++ b/Mesh_3/include/CGAL/lloyd_optimize_mesh_3.h
@@ -64,13 +64,13 @@ namespace CGAL {
* \cgalParamDescription{to set up, in seconds, a CPU time limit after which the optimization process is stopped.
* This time is measured using `CGAL::Real_timer`. 0 means that there is no time limit.}
* \cgalParamType{`double`}
- * \cgalParamExtra{\pre `time_limit >= 0`}
+ * \cgalParamPrecondition{`time_limit >= 0`}
* \cgalParamDefault{0}
* \cgalParamNEnd
* \cgalParamNBegin{max_iteration_number}
* \cgalParamDescription{limit on the number of performed iterations. 0 means that there is
* no limit on the number of performed iterations.}
- * \cgalParamExtra{\pre `max_iteration_number >=0`}
+ * \cgalParamPrecondition{`max_iteration_number >=0`}
* \cgalParamType{`int`}
* \cgalParamDefault{0}
* \cgalParamNEnd
@@ -80,7 +80,7 @@ namespace CGAL {
* of its shortest incident edge, is frozen (i.e.\ is not relocated).
* The parameter `freeze_bound` gives the threshold ratio.
* If it is set to 0, freezing of vertices is disabled.}
- * \cgalParamExtra{\pre `0<= freeze_bound <=1`}
+ * \cgalParamPrecondition{`0<= freeze_bound <=1`}
* \cgalParamType{`double`}
* \cgalParamDefault{0.001}
* \cgalParamNEnd
@@ -88,7 +88,7 @@ namespace CGAL {
* \cgalParamDescription{threshold ratio of stopping criterion based on convergence: the optimization process is stopped
* when at the last iteration the displacement of any vertex is less than
* a given fraction of the length of the shortest edge incident to that vertex.}
- * \cgalParamExtra{\pre `0 <=convergence <= 1`}
+ * \cgalParamPrecondition{`0 <=convergence <= 1`}
* \cgalParamType{`double`}
* \cgalParamDefault{0.02}
* \cgalParamNEnd
diff --git a/Mesh_3/include/CGAL/odt_optimize_mesh_3.h b/Mesh_3/include/CGAL/odt_optimize_mesh_3.h
index 0d939726df9..40ee94753fe 100644
--- a/Mesh_3/include/CGAL/odt_optimize_mesh_3.h
+++ b/Mesh_3/include/CGAL/odt_optimize_mesh_3.h
@@ -65,7 +65,7 @@ namespace CGAL {
* measured using `Real_timer`.
* The default value is 0 and means that there is no time limit.}
* \cgalParamType{`double`}
- * \cgalParamExtra{\pre `time_limit >= 0`}
+ * \cgalParamPrecondition{`time_limit >= 0`}
* \cgalParamDefault{0}
* \cgalParamNEnd
* \cgalParamNBegin{max_iteration_number}
@@ -82,7 +82,7 @@ namespace CGAL {
* the shortest edge incident to that vertex.
* The parameter `convergence` gives the threshold ratio.}
* \cgalParamType{`double`}
- * \cgalParamExtra{\pre `0 <= convergence <= 1`}
+ * \cgalParamPrecondition{`0 <= convergence <= 1`}
* \cgalParamDefault{0.02}
* \cgalParamNEnd
* \cgalParamNBegin{freeze_bound}
@@ -90,7 +90,7 @@ namespace CGAL {
* that has a displacement less than a given percentage of the length of its shortest incident edge, is frozen (i.e.\ is
* not relocated). The parameter `freeze_bound` gives the threshold ratio.}
* \cgalParamType{`double`}
- * \cgalParamExtra{\pre `0 <= freeze_bound <= 1`}
+ * \cgalParamPrecondition{`0 <= freeze_bound <= 1`}
* \cgalParamDefault{0.01}
* \cgalParamNEnd
* \cgalParamNBegin{do_freeze}
diff --git a/Mesh_3/include/CGAL/perturb_mesh_3.h b/Mesh_3/include/CGAL/perturb_mesh_3.h
index 2de68221b72..ac6d1b338d8 100644
--- a/Mesh_3/include/CGAL/perturb_mesh_3.h
+++ b/Mesh_3/include/CGAL/perturb_mesh_3.h
@@ -61,7 +61,7 @@ namespace CGAL {
* is stopped. This time is measured using the `Real_timer` class. The default value is
* 0 and means that there is no time limit.}
* \cgalParamType{`double`}
- * \cgalParamExtra{\pre `0 <= sliver_bound <= 180`}
+ * \cgalParamPrecondition{`0 <= sliver_bound <= 180`}
* \cgalParamDefault{0}
* \cgalParamNEnd
* \cgalParamNBegin{sliver_bound}
@@ -72,7 +72,7 @@ namespace CGAL {
* default value is 0 and means that there is no targeted bound: the exuder then runs as long
* as it can improve the smallest dihedral angles of the set of cells incident to some vertices.}
* \cgalParamType{`double`}
- * \cgalParamExtra{\pre `time_limit >= 0`}
+ * \cgalParamPrecondition{`time_limit >= 0`}
* \cgalParamDefault{0}
* \cgalParamNEnd
* \cgalNamedParamsEnd