Use subsections instead of an enumeration for FAQs

Change-Id: I37c1256417240bf7decec1f756df8a8402f5c586
diff --git a/docs/source/modeling_faqs.rst b/docs/source/modeling_faqs.rst
index 0d23de4..b51380a 100644
--- a/docs/source/modeling_faqs.rst
+++ b/docs/source/modeling_faqs.rst
@@ -8,81 +8,76 @@
 Modeling
 ========
 
-#. Use analytical/automatic derivatives.
+Use analytical/automatic derivatives
+====================================
 
-   This is the single most important piece of advice we can give to
-   you. It is tempting to take the easy way out and use numeric
-   differentiation. This is a bad idea. Numeric differentiation is
-   slow, ill-behaved, hard to get right, and results in poor
-   convergence behaviour.
+This is the single most important piece of advice we can give to you. It is
+tempting to take the easy way out and use numeric differentiation. This is a bad
+idea. Numeric differentiation is slow, ill-behaved, hard to get right, and
+results in poor convergence behaviour.
 
-   Ceres allows the user to define templated functors which will
-   be automatically differentiated. For most situations this is enough
-   and we recommend using this facility. In some cases the derivatives
-   are simple enough or the performance considerations are such that
-   the overhead of automatic differentiation is too much. In such
-   cases, analytic derivatives are recommended.
+Ceres allows the user to define templated functors which will be automatically
+differentiated. For most situations this is enough and we recommend using this
+facility. In some cases the derivatives are simple enough or the performance
+considerations are such that the overhead of automatic differentiation is too
+much. In such cases, analytic derivatives are recommended.
 
-   The use of numerical derivatives should be a measure of last
-   resort, where it is simply not possible to write a templated
-   implementation of the cost function.
+The use of numerical derivatives should be a measure of last resort, where it is
+simply not possible to write a templated implementation of the cost function.
 
-   In many cases it is not possible to do analytic or automatic
-   differentiation of the entire cost function, but it is generally
-   the case that it is possible to decompose the cost function into
-   parts that need to be numerically differentiated and parts that can
-   be automatically or analytically differentiated.
+In many cases it is not possible to do analytic or automatic differentiation of
+the entire cost function, but it is generally the case that it is possible to
+decompose the cost function into parts that need to be numerically
+differentiated and parts that can be automatically or analytically
+differentiated.
 
-   To this end, Ceres has extensive support for mixing analytic,
-   automatic and numeric differentiation. See
-   :class:`CostFunctionToFunctor`.
+To this end, Ceres has extensive support for mixing analytic, automatic and
+numeric differentiation. See :class:`CostFunctionToFunctor`.
 
-#. When using Quaternions,  consider using :class:`QuaternionManifold`.
+When using Quaternions, consider using :class:`QuaternionManifold`
+==================================================================
 
-   `Quaternions <https://en.wikipedia.org/wiki/Quaternion>`_ are a
-   four dimensional parameterization of the space of three dimensional
-   rotations :math:`SO(3)`.  However, the :math:`SO(3)` is a three
-   dimensional set, and so is the tangent space of a
-   Quaternion. Therefore, it is sometimes (not always) beneficial to
-   associate a local parameterization with parameter blocks
-   representing a Quaternion. Assuming that the order of entries in
-   your parameter block is :math:`w,x,y,z`, you can use
-   :class:`QuaternionManifold`.
+`Quaternions <https://en.wikipedia.org/wiki/Quaternion>`_ are a four dimensional
+parameterization of the space of three dimensional rotations :math:`SO(3)`.
+However, the :math:`SO(3)` is a three dimensional set, and so is the tangent
+space of a Quaternion. Therefore, it is sometimes (not always) beneficial to
+associate a local parameterization with parameter blocks representing a
+Quaternion. Assuming that the order of entries in your parameter block is
+:math:`w,x,y,z`, you can use :class:`QuaternionManifold`.
 
-   .. NOTE::
+.. NOTE::
 
-     If you are using `Eigen's Quaternion
-     <http://eigen.tuxfamily.org/dox/classEigen_1_1Quaternion.html>`_
-     object, whose layout is :math:`x,y,z,w`, then you should use
-     :class:`EigenQuaternionManifold`.
+ If you are using `Eigen's Quaternion
+ <http://eigen.tuxfamily.org/dox/classEigen_1_1Quaternion.html>`_
+ object, whose layout is :math:`x,y,z,w`, then you should use
+ :class:`EigenQuaternionManifold`.
 
 
-#. How do I solve problems with general linear & non-linear
-   **inequality** constraints with Ceres Solver?
+How do I solve problems with general linear & non-linear **inequality** constraints with Ceres Solver?
+======================================================================================================
 
-   Currently, Ceres Solver only supports upper and lower bounds
-   constraints on the parameter blocks.
+Currently, Ceres Solver only supports upper and lower bounds constraints on the
+parameter blocks.
 
-   A crude way of dealing with inequality constraints is have one or
-   more of your cost functions check if the inequalities you are
-   interested in are satisfied, and if not return false instead of
-   true. This will prevent the solver from ever stepping into an
-   infeasible region.
+A crude way of dealing with inequality constraints is have one or more of your
+cost functions check if the inequalities you are interested in are satisfied,
+and if not return false instead of true. This will prevent the solver from ever
+stepping into an infeasible region.
 
-   This requires that the starting point for the optimization be a
-   feasible point.  You also risk pre-mature convergence using this
-   method.
+This requires that the starting point for the optimization be a feasible point.
+You also risk pre-mature convergence using this method.
 
-#. How do I solve problems with general linear & non-linear **equality**
-   constraints with Ceres Solver?
+How do I solve problems with general linear & non-linear **equality** constraints with Ceres Solver?
+====================================================================================================
 
-   There is no built in support in ceres for solving problems with
-   equality constraints.  Currently, Ceres Solver only supports upper
-   and lower bounds constraints on the parameter blocks.
+There is no built in support in ceres for solving problems with equality
+constraints.  Currently, Ceres Solver only supports upper and lower bounds
+constraints on the parameter blocks.
 
-   The trick described above for dealing with inequality
-   constraints will **not** work for equality constraints.
+The trick described above for dealing with inequality constraints will **not**
+work for equality constraints.
 
-#. How do I set one or more components of a parameter block constant?
+How do I set one or more components of a parameter block constant?
+==================================================================
 
-   Using :class:`SubsetManifold`.
+Using :class:`SubsetManifold`.