* <li> Most of the functions in the GridGenerator namespace take an optional
* argument <code>colorize</code>. This argument controls whether or not the
* different parts of the boundary will be assigned different
- * @ref GlossBoundaryIndicator "boundary indicators". Some functions also assign
- * different
- * @ref GlossMaterialId "material indicators" as well.</li>
+ * @ref GlossBoundaryIndicator "boundary indicators".
+ * Some functions also assign different
+ * @ref GlossMaterialId "material indicators"
+ * as well.</li>
* <li> The function GraphColoring::make_graph_coloring() computes a
* decomposition of a Triangulation (more exactly, a range of iterators). No
* two adjacent cells are given the same color.</li>
*
* <dt class="glossary">@anchor GlossDimension <b>Dimensions @p dim and @p spacedim</b></dt>
*
- * <dd>
- * Many classes and functions in deal.II have two template parameters,
+ * <dd> Many classes and functions in deal.II have two template parameters,
* @p dim and @p spacedim. An example is the basic Triangulation class:
* @code
* template <int dim, int spacedim=dim>
* @endcode
* In all of these contexts where you see @p dim and @p spacedim referenced,
* these arguments have the following meaning:
- * - @p dim denotes the dimensionality of the mesh. For example, a mesh that
- * consists of line segments is one-dimensional and consequently corresponds
- * to `dim==1`. A mesh consisting of quadrilaterals then has `dim==2` and a
- * mesh of hexahedra has `dim==3`.
- * - @p spacedim denotes the dimensionality of the space in which such a mesh
- * lives. Generally, one-dimensional meshes live in a one-dimensional space,
- * and similarly for two-dimensional and three-dimensional meshes that
- * subdivide two- and three-dimensional domains. Consequently, the
- * @p spacedim template argument has a default equal to @p dim. But this need
+ *
+ * <ul>
+ * <li> @p dim denotes the dimensionality of the mesh. For example, a mesh
+ * that consists of line segments is one-dimensional and consequently
+ * corresponds to `dim==1`. A mesh consisting of quadrilaterals then has
+ * `dim==2` and a mesh of hexahedra has `dim==3`.</li>
+ *
+ * <li> @p spacedim denotes the dimensionality of the space in which such a
+ * mesh lives. Generally, one-dimensional meshes live in a one-dimensional
+ * space, and similarly for two-dimensional and three-dimensional meshes
+ * that subdivide two- and three-dimensional domains. Consequently, the @p
+ * spacedim template argument has a default equal to @p dim. But this need
* not be the case: For example, we may want to solve an equation for
* sediment transport on the surface of the Earth. In this case, the domain
* is the two-dimensional surface of the Earth (`dim==2`) that lives in a
- * three-dimensional coordinate system (`spacedim==3`).
+ * three-dimensional coordinate system (`spacedim==3`).</li>
+ * </ul>
+ *
* More generally, deal.II can be used to solve partial differential
* equations on <a href="https://en.wikipedia.org/wiki/Manifold">manifolds</a>
* that are embedded in higher dimensional space. In other words,
* the map using the resolve_explicit_dependencies() function.
*
* Examples:
- * 1. If <tt>map["a"] == 1</tt> and <tt>map["b"] == "a" + 2</tt>,
- * then the function $f(a,b(a)) := a+b$ will be evaluated and the result
- * $f\vert_{a=1,b=a+2} = 3+a$ is returned. This return is because the
- * symbol "a" is substituted throughout the function first, and only
- * then is the symbol "b(a)" substituted, by which time its explicit
- * dependency on "a" cannot be resolved.
- * 2. If <tt>map["a"] == "b"+2</tt> and <tt>map["b"] == 1</tt>,
- * then the function $f(a(b),b): = a+b$ will be evaluated and the result
- * $f\vert_{a=b+2, b} = [b+2+b]_{b=1} = 4$ is returned. This is because
- * the explicitly dependent symbol "a(b)" is substituted first followed
- * by the symbol "b".
+ * <ol>
+ * <li>If <tt>map["a"] == 1</tt> and <tt>map["b"] == "a" + 2</tt>, then
+ * the function $f(a,b(a)) := a+b$ will be evaluated and the result
+ * $f\vert_{a=1,b=a+2} = 3+a$ is returned. This return is because the
+ * symbol "a" is substituted throughout the function first, and only
+ * then is the symbol "b(a)" substituted, by which time its explicit
+ * dependency on "a" cannot be resolved.</li>
+ *
+ * <li>If <tt>map["a"] == "b"+2</tt> and <tt>map["b"] == 1</tt>, then
+ * the function $f(a(b),b): = a+b$ will be evaluated and the result
+ * $f\vert_{a=b+2, b} = [b+2+b]_{b=1} = 4$ is returned. This is because
+ * the explicitly dependent symbol "a(b)" is substituted first followed
+ * by the symbol "b".</li>
+ * </ol>
*/
Expression
substitute(const Expression & expression,