diff --git a/Documentation/ProjectFile/linear_solver/c_linear_solver.md b/Documentation/ProjectFile/linear_solver/c_linear_solver.md
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2421001b7de105ef51cf5db89ec0a636d0f37a25 100644
--- a/Documentation/ProjectFile/linear_solver/c_linear_solver.md
+++ b/Documentation/ProjectFile/linear_solver/c_linear_solver.md
@@ -0,0 +1,6 @@
+In this group the configuration of linear solvers is described.
+
+Unlike all other options, there can be configurations for linear solvers from
+the Eigen, LIS, PETSc, etc. libraries at the same time. Which solver will be
+applied in the end is determined by the build configuration of the OGS
+executable.
diff --git a/Documentation/ProjectFile/linear_solver/eigen/i_eigen.md b/Documentation/ProjectFile/linear_solver/eigen/i_eigen.md
index 576add64edccf5d980a0ff86143dc43a7109a788..dae5722ba942db73637d85cb38da193cd8d8e0dd 100644
--- a/Documentation/ProjectFile/linear_solver/eigen/i_eigen.md
+++ b/Documentation/ProjectFile/linear_solver/eigen/i_eigen.md
@@ -1 +1,3 @@
-\ogs_missing_documentation
+Configuration for solvers from the Eigen library.
+
+For details see also the [documentation of the Eigen library](https://eigen.tuxfamily.org/dox/group__Sparse__Reference.html).
diff --git a/Documentation/ProjectFile/linear_solver/eigen/t_error_tolerance.md b/Documentation/ProjectFile/linear_solver/eigen/t_error_tolerance.md
index 576add64edccf5d980a0ff86143dc43a7109a788..a04ed05818f6e2cc8a6ec74741f0f429c4f1ab91 100644
--- a/Documentation/ProjectFile/linear_solver/eigen/t_error_tolerance.md
+++ b/Documentation/ProjectFile/linear_solver/eigen/t_error_tolerance.md
@@ -1 +1,5 @@
-\ogs_missing_documentation
+The tolerance of the linear solver.
+
+This setting is only applied if an iterative solver is chosen.
+
+Its default values is \f$10^{-16}\f$.
diff --git a/Documentation/ProjectFile/linear_solver/eigen/t_max_iteration_step.md b/Documentation/ProjectFile/linear_solver/eigen/t_max_iteration_step.md
index 576add64edccf5d980a0ff86143dc43a7109a788..bf4f34849e6b42c8297a9ca276bc8cb66f2bbfb0 100644
--- a/Documentation/ProjectFile/linear_solver/eigen/t_max_iteration_step.md
+++ b/Documentation/ProjectFile/linear_solver/eigen/t_max_iteration_step.md
@@ -1 +1,5 @@
-\ogs_missing_documentation
+Defines the maximum number of iterations of the iterative solver.
+
+This setting is ignored if a direct solver is chosen.
+
+Its default value is \f$10^6\f$.
diff --git a/Documentation/ProjectFile/linear_solver/eigen/t_precon_type.md b/Documentation/ProjectFile/linear_solver/eigen/t_precon_type.md
index 576add64edccf5d980a0ff86143dc43a7109a788..4a19a2c9fe9ecda78ac8b3e2d65604af79e57db1 100644
--- a/Documentation/ProjectFile/linear_solver/eigen/t_precon_type.md
+++ b/Documentation/ProjectFile/linear_solver/eigen/t_precon_type.md
@@ -1 +1,7 @@
-\ogs_missing_documentation
+Chooses a specific preconditioner for the iterative linear solver.
+
+This setting is ignored if a direct solver is selected.
+
+Possible values are NONE, DIAGONAL and ILUT.
+
+The default is NONE.
diff --git a/Documentation/ProjectFile/linear_solver/eigen/t_solver_type.md b/Documentation/ProjectFile/linear_solver/eigen/t_solver_type.md
index 576add64edccf5d980a0ff86143dc43a7109a788..47d836f7c3723ad065f2d71a160f552dae535da5 100644
--- a/Documentation/ProjectFile/linear_solver/eigen/t_solver_type.md
+++ b/Documentation/ProjectFile/linear_solver/eigen/t_solver_type.md
@@ -1 +1,5 @@
-\ogs_missing_documentation
+Chooses a specific linear solver.
+
+Possible values are CG, BiCGSTAB, and SparseLU.
+
+The default is SparseLU.
diff --git a/Documentation/ProjectFile/linear_solver/petsc/i_petsc.md b/Documentation/ProjectFile/linear_solver/petsc/i_petsc.md
index 576add64edccf5d980a0ff86143dc43a7109a788..d140d41ce7ff839cc1b0fb0fbca084207e62c1cd 100644
--- a/Documentation/ProjectFile/linear_solver/petsc/i_petsc.md
+++ b/Documentation/ProjectFile/linear_solver/petsc/i_petsc.md
@@ -1 +1,4 @@
-\ogs_missing_documentation
+Configures options for linear solvers from the PETSc library.
+
+For further details see also the
+[documentation of the PETSc library](http://www.mcs.anl.gov/petsc/documentation/)
diff --git a/Documentation/ProjectFile/linear_solver/petsc/t_parameters.md b/Documentation/ProjectFile/linear_solver/petsc/t_parameters.md
index 576add64edccf5d980a0ff86143dc43a7109a788..816c46eb4695293150803e4314d82ce93ec79e9a 100644
--- a/Documentation/ProjectFile/linear_solver/petsc/t_parameters.md
+++ b/Documentation/ProjectFile/linear_solver/petsc/t_parameters.md
@@ -1 +1,8 @@
-\ogs_missing_documentation
+Sets PETSc options from the given parameter string.
+
+The default value is <tt>"-ksp_type cg -pc_type bjacobi -ksp_rtol 1e-16 -ksp_max_it 10000"</tt>
+
+\attention
+PETSc can also receive options from the commandline arguments. However, the
+values from the prj file are applied directly to the linear solver. If
+specifying both, make sure that you check which options take precedence.
diff --git a/Documentation/ProjectFile/linear_solver/petsc/t_prefix.md b/Documentation/ProjectFile/linear_solver/petsc/t_prefix.md
index 576add64edccf5d980a0ff86143dc43a7109a788..3b980ae43308b466fce8270e8eaa0ba0c47a1f8b 100644
--- a/Documentation/ProjectFile/linear_solver/petsc/t_prefix.md
+++ b/Documentation/ProjectFile/linear_solver/petsc/t_prefix.md
@@ -1 +1,3 @@
-\ogs_missing_documentation
+Sets the options prefix for this PETSc linear solver.
+
+Cf. the PETSc [KSPSetOptionsPrefix documentation](http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPSetOptionsPrefix.html).
diff --git a/Documentation/ProjectFile/linear_solver/t_lis.md b/Documentation/ProjectFile/linear_solver/t_lis.md
index 576add64edccf5d980a0ff86143dc43a7109a788..f5fa016fbc09165c3e4245948dfb07e5dc65bd22 100644
--- a/Documentation/ProjectFile/linear_solver/t_lis.md
+++ b/Documentation/ProjectFile/linear_solver/t_lis.md
@@ -1 +1,11 @@
-\ogs_missing_documentation
+Defines an option string that will be passed to solvers of the LIS library.
+
+The default is <tt>-initx_zeros 0</tt>, i.e., not to overwrite the passed initial
+guess with zeroes. All other options are appended to this default value.
+
+\attention
+LIS can also receive options from the commandline arguments. However, the values
+from the prj file are applied directly to the linear solver. If specifying both,
+make sure that you check which options take precedence.
+
+Refer to the [documentation of LIS](http://www.ssisc.org/lis/index.en.html) for further details.
diff --git a/Documentation/ProjectFile/linear_solver/t_name.md b/Documentation/ProjectFile/linear_solver/t_name.md
index 576add64edccf5d980a0ff86143dc43a7109a788..fe6b18dc8b32671869a297960c260409f44c8015 100644
--- a/Documentation/ProjectFile/linear_solver/t_name.md
+++ b/Documentation/ProjectFile/linear_solver/t_name.md
@@ -1 +1,3 @@
-\ogs_missing_documentation
+Name of the linear solver.
+
+Used, e.g., to reference it in the nonlinear solver configuation.
diff --git a/Documentation/ProjectFile/ode_solver/CVODE/c_CVODE.md b/Documentation/ProjectFile/ode_solver/CVODE/c_CVODE.md
index 576add64edccf5d980a0ff86143dc43a7109a788..ebab6712d2ec4c0ef92084bda9409e98f2327477 100644
--- a/Documentation/ProjectFile/ode_solver/CVODE/c_CVODE.md
+++ b/Documentation/ProjectFile/ode_solver/CVODE/c_CVODE.md
@@ -1 +1,3 @@
-\ogs_missing_documentation
+Settings for the CVODE solver from SUNDIALS
+
+For further details see also the [SUNDIALS website](http://computation.llnl.gov/projects/sundials/cvode).
diff --git a/Documentation/ProjectFile/ode_solver/CVODE/t_linear_multistep_method.md b/Documentation/ProjectFile/ode_solver/CVODE/t_linear_multistep_method.md
index 576add64edccf5d980a0ff86143dc43a7109a788..923d2aa4ba22e9055cb3d6e559347ae828a04cc1 100644
--- a/Documentation/ProjectFile/ode_solver/CVODE/t_linear_multistep_method.md
+++ b/Documentation/ProjectFile/ode_solver/CVODE/t_linear_multistep_method.md
@@ -1 +1,6 @@
-\ogs_missing_documentation
+Sets the linear multistep method used for solving the ODE.
+
+Possible values are <tt>Adams</tt> for the Adams-Moulton method and <tt>BDF</tt>
+for backward differentiation formulas.
+
+The default value is <tt>Adams</tt>.
diff --git a/Documentation/ProjectFile/ode_solver/CVODE/t_nonlinear_solver_iteration.md b/Documentation/ProjectFile/ode_solver/CVODE/t_nonlinear_solver_iteration.md
index 576add64edccf5d980a0ff86143dc43a7109a788..52a06f2121afd5e08b6aaa59e3adea54dc7b2f89 100644
--- a/Documentation/ProjectFile/ode_solver/CVODE/t_nonlinear_solver_iteration.md
+++ b/Documentation/ProjectFile/ode_solver/CVODE/t_nonlinear_solver_iteration.md
@@ -1 +1,6 @@
-\ogs_missing_documentation
+Defines the method used for solving the arising nonlinear equationsystems.
+
+Possible values are <tt>Functional</tt> for fixed point iterations and
+<tt>Newton</tt> for the Newton method.
+
+The default is <tt>Functional</tt>.
diff --git a/Documentation/ProjectFile/ode_solver/c_ode_solver.md b/Documentation/ProjectFile/ode_solver/c_ode_solver.md
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..58498f216e12d0f48309e7682085c84dab1c79b8 100644
--- a/Documentation/ProjectFile/ode_solver/c_ode_solver.md
+++ b/Documentation/ProjectFile/ode_solver/c_ode_solver.md
@@ -0,0 +1,2 @@
+In this group ODE solver settings for ODE solvers from external libraries are
+described.
diff --git a/Documentation/ProjectFile/prj/linear_solvers/i_linear_solvers.md b/Documentation/ProjectFile/prj/linear_solvers/i_linear_solvers.md
index 576add64edccf5d980a0ff86143dc43a7109a788..b18a1074e7e43a302c36cdf4b4dafea0e8429e32 100644
--- a/Documentation/ProjectFile/prj/linear_solvers/i_linear_solvers.md
+++ b/Documentation/ProjectFile/prj/linear_solvers/i_linear_solvers.md
@@ -1 +1 @@
-\ogs_missing_documentation
+Contains linear solver settings.
diff --git a/Documentation/ProjectFile/prj/linear_solvers/linear_solver/i_linear_solver.md b/Documentation/ProjectFile/prj/linear_solvers/linear_solver/i_linear_solver.md
index 576add64edccf5d980a0ff86143dc43a7109a788..21e2a2010b77c5b24da255a80f74cd6681ef283d 100644
--- a/Documentation/ProjectFile/prj/linear_solvers/linear_solver/i_linear_solver.md
+++ b/Documentation/ProjectFile/prj/linear_solvers/linear_solver/i_linear_solver.md
@@ -1 +1,3 @@
-\ogs_missing_documentation
+Defines a single linear solver.
+
+See \ref ogs_file_param__linear_solver.
diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/i_nonlinear_solvers.md b/Documentation/ProjectFile/prj/nonlinear_solvers/i_nonlinear_solvers.md
index 576add64edccf5d980a0ff86143dc43a7109a788..617b5386e4911c093fc9e5b730b48006d8eb6d17 100644
--- a/Documentation/ProjectFile/prj/nonlinear_solvers/i_nonlinear_solvers.md
+++ b/Documentation/ProjectFile/prj/nonlinear_solvers/i_nonlinear_solvers.md
@@ -1 +1 @@
-\ogs_missing_documentation
+Contains nonlinear solver settings.
diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/Picard/c_Picard.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/Picard/c_Picard.md
deleted file mode 100644
index 576add64edccf5d980a0ff86143dc43a7109a788..0000000000000000000000000000000000000000
--- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/Picard/c_Picard.md
+++ /dev/null
@@ -1 +0,0 @@
-\ogs_missing_documentation
diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/i_nonlinear_solver.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/i_nonlinear_solver.md
index 576add64edccf5d980a0ff86143dc43a7109a788..cbd405790981f018f0a0ab8c399fdbcb52ca639f 100644
--- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/i_nonlinear_solver.md
+++ b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/i_nonlinear_solver.md
@@ -1 +1 @@
-\ogs_missing_documentation
+Defines a single nonlinear solver.
diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_linear_solver.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_linear_solver.md
index 576add64edccf5d980a0ff86143dc43a7109a788..66686d595320bcb3cb0682696664c3d4f8a70bed 100644
--- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_linear_solver.md
+++ b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_linear_solver.md
@@ -1 +1,4 @@
-\ogs_missing_documentation
+Specifies the linear solver used to solve the linearized equation systems.
+
+The linear solver is referenced by \ref ogs_file_param__linear_solver__name
+"name".
diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_max_iter.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_max_iter.md
index 576add64edccf5d980a0ff86143dc43a7109a788..7f91deaa6d3039000c16ba97773cb999b1d13d95 100644
--- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_max_iter.md
+++ b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_max_iter.md
@@ -1 +1,4 @@
-\ogs_missing_documentation
+Specifies the maximum number of iterations the nonlinear solver can make for
+solving a single equation system.
+
+The nonlinear solver will fail when this number is exceeded.
diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_name.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_name.md
index 576add64edccf5d980a0ff86143dc43a7109a788..4651bb622299c25dcbb84de1b9d1bf945e4f8266 100644
--- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_name.md
+++ b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_name.md
@@ -1 +1,3 @@
-\ogs_missing_documentation
+Name of the nonlinear solver.
+
+Used to specify which process is solved by which nonlinear solver.
diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_type.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_type.md
index 576add64edccf5d980a0ff86143dc43a7109a788..3da8618c7a31efb451a2934e429c2f5544b9d052 100644
--- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_type.md
+++ b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_type.md
@@ -1 +1,3 @@
-\ogs_missing_documentation
+Type of the nonlinear solver.
+
+Can be <tt>Picard</tt> or <tt>Newton</tt>.
diff --git a/MathLib/LinAlg/Lis/LisOption.h b/MathLib/LinAlg/Lis/LisOption.h
index db222b8ba163f5d9a4b980e5ac8f2e56ab84dc3f..d3313d8d82f02facbf2b4f50bc9b3abde0728609 100644
--- a/MathLib/LinAlg/Lis/LisOption.h
+++ b/MathLib/LinAlg/Lis/LisOption.h
@@ -54,7 +54,7 @@ struct LisOption
         }
     }
 
-    std::string _option_string = "-initxzeros 0";
+    std::string _option_string = "-initx_zeros 0";
 
 };
 }
diff --git a/NumLib/ODESolver/NonlinearSolver.cpp b/NumLib/ODESolver/NonlinearSolver.cpp
index 4456263c744e8dfd16719a7d77550d77b3bde0a4..990d00a8ce1f5338dffa0f719ab6daa7ed3cec8b 100644
--- a/NumLib/ODESolver/NonlinearSolver.cpp
+++ b/NumLib/ODESolver/NonlinearSolver.cpp
@@ -319,7 +319,6 @@ createNonlinearSolver(GlobalLinearSolver& linear_solver,
     //! \ogs_file_param{prj__nonlinear_solvers__nonlinear_solver__max_iter}
     auto const max_iter = config.getConfigParameter<unsigned>("max_iter");
 
-    //! \ogs_file_param_special{prj__nonlinear_solvers__nonlinear_solver__Picard}
     if (type == "Picard") {
         auto const tag = NonlinearSolverTag::Picard;
         using ConcreteNLS = NonlinearSolver<tag>;
diff --git a/scripts/doc/linked-xml-file.py b/scripts/doc/linked-xml-file.py
index 3e718bab98be33dbaec1eee681f8624d845d7131..521e7fe0e983c152c0f0679df0248b60b35b07ec 100755
--- a/scripts/doc/linked-xml-file.py
+++ b/scripts/doc/linked-xml-file.py
@@ -51,6 +51,14 @@ def format_if_documented(is_doc, fmt, fullpagename, tag_attr, *args):
 
     return fmt.format(tag_attr_formatted, tag_attr, *args)
 
+def format_if_documented_nowarn(is_doc, fmt, fullpagename, tag_attr, *args):
+    if is_doc:
+        tag_attr_formatted = r'\ref {0} "{1}"'.format(fullpagename, tag_attr)
+    else:
+        tag_attr_formatted = tag_attr
+
+    return fmt.format(tag_attr_formatted, tag_attr, *args)
+
 def get_tagpath(pagename, typetag, typetag_levels_up):
     tagpath = pagename.replace("__", ".")
     is_doc = (tagpath, True) in documented_tags_attrs
@@ -128,12 +136,14 @@ def print_tags(node, level, pagename, fh, typetag, typetag_levels_up, relfilepat
                 else:
                     typepagename = node.text.strip()
 
-                typetagpath = typepagename.replace("__", ".")
-                dict_of_set_add(map_tag_to_prj_files, typetagpath, relfilepath)
-                # print_("type tag path:", typetagpath)
+                typetagpath, typepagename, type_is_doc = get_tagpath(typepagename, None, 0)
+                if type_is_doc:
+                    dict_of_set_add(map_tag_to_prj_files, typetagpath, relfilepath)
                 typepagename = "ogs_file_param__" + typepagename
 
-                type_text_formatted = format_if_documented(is_doc, \
+                # If the content of a type tag is undocumented no red
+                # "undocumented..." HTML code will be generated.
+                type_text_formatted = format_if_documented_nowarn(type_is_doc, \
                         '{0}', typepagename, node.text.strip())
 
                 fh.write(format_if_documented(is_doc, \