Further cleanup of exceptions.  All interpolation-related exceptions
now derive from InterpolationError, which is not raised directly (only
subclasses get raised).  This matches what the docs already said.
diff --git a/Doc/lib/libcfgparser.tex b/Doc/lib/libcfgparser.tex
index 9951645..1f33df4 100644
--- a/Doc/lib/libcfgparser.tex
+++ b/Doc/lib/libcfgparser.tex
@@ -90,17 +90,26 @@
 \end{excdesc}
 
 \begin{excdesc}{InterpolationError}
-Exception raised when problems occur performing string interpolation.
+Base class for exceptions raised when problems occur performing string
+interpolation.
 \end{excdesc}
 
 \begin{excdesc}{InterpolationDepthError}
 Exception raised when string interpolation cannot be completed because
 the number of iterations exceeds \constant{MAX_INTERPOLATION_DEPTH}.
+Subclass of \exception{InterpolationError}.
+\end{excdesc}
+
+\begin{excdesc}{InterpolationMissingOptionError}
+Exception raised when an option referenced from a value does not exist.
+Subclass of \exception{InterpolationError}.
+\versionadded{2.3}
 \end{excdesc}
 
 \begin{excdesc}{InterpolationSyntaxError}
 Exception raised when the source text into which substitutions are
 made does not conform to the required syntax.
+Subclass of \exception{InterpolationError}.
 \versionadded{2.3}
 \end{excdesc}
 
@@ -122,8 +131,8 @@
 
 \begin{seealso}
   \seemodule{shlex}{Support for a creating \UNIX{} shell-like
-                    minilanguages which can be used as an alternate format
-                    for application configuration files.}
+                    mini-languages which can be used as an alternate
+                    format for application configuration files.}
 \end{seealso}