Index: doc/userguide/userguide.xml
===================================================================
--- doc/userguide/userguide.xml	(revision f73e0644af36b981af22685b57300f77cb7b0937)
+++ doc/userguide/userguide.xml	(revision c4c20a6c9576300773566e7569704214f80b8802)
@@ -44,6 +44,6 @@
     </figure>
 
-    <section>
-      <title>What is MoleCuilder?</title>
+    <section xml:id='whatis'>
+      <title  xml:id='whatis.title'>What is MoleCuilder?</title>
 
       <para>In Short,<command> MoleCuilder</command> is a concatenation of
@@ -69,6 +69,6 @@
       many, related molecular systems have to be created.</para>
 
-      <section>
-        <title>Installation requirements</title>
+      <section xml:id='installation'>
+        <title xml:id='installation.title'>Installation requirements</title>
 
         <para>For installations requirements and instructions we refer to the
@@ -77,6 +77,6 @@
       </section>
 
-      <section>
-        <title>License</title>
+      <section xml:id='license'>
+        <title xml:id='license.title'>License</title>
 
         <para>As long as no other license statement is given, MoleCuilder is
@@ -85,6 +85,6 @@
       </section>
 
-      <section>
-        <title>Disclaimer</title>
+      <section xml:id='disclaimer'>
+        <title xml:id='disclaimer.title'>Disclaimer</title>
 
         <para>We quote section 11 from the GPLv2 license:</para>
@@ -101,6 +101,6 @@
       </section>
 
-      <section>
-        <title>Feedback</title>
+      <section xml:id='feedback'>
+        <title xml:id='feedback.title'>Feedback</title>
 
         <para>If you encounter any bugs, errors, or would like to submit
@@ -112,6 +112,6 @@
       </section>
 
-      <section>
-        <title>Notation</title>
+      <section xml:id='notation'>
+        <title xml:id='notation.title'>Notation</title>
 
         <para>We briefly explain a few specific wordings associated with the
@@ -139,6 +139,6 @@
       </section>
 
-      <section>
-        <title>Completeness</title>
+      <section xml:id='completeness'>
+        <title xml:id='completeness.title'>Completeness</title>
 
         <para>This documentation takes quite some effort to write. Hence, the
@@ -162,6 +162,6 @@
     interface.</para>
 
-    <section>
-      <title>Concepts</title>
+    <section xml:id='concepts'>
+      <title xml:id='concepts.title'>Concepts</title>
 
       <para>In general, we divide the molecular systems into three different
@@ -214,6 +214,6 @@
     </section>
 
-    <section>
-      <title>Interfaces</title>
+    <section xml:id='interfaces'>
+      <title xml:id='interfaces.title'>Interfaces</title>
 
       <para>MoleCuilder has four different interfaces: Command-line, text
@@ -268,6 +268,6 @@
     </section>
 
-    <section>
-      <title>Known File formats</title>
+    <section xml:id='fileformats'>
+      <title xml:id='fileformats.title'>Known File formats</title>
 
       <para>We briefly the file formats MoleCuilder can parse and
@@ -282,11 +282,11 @@
 
         <listitem>
-          <para><productname>MPQC</productname>, <filename>.in</filename>
-          (<link xlink:href="???">http://www.mpqc.org/</link>)</para>
+          <para><link xlink:href="http://www.mpqc.org/"><productname>MPQC
+          </productname></link>, <filename>.in</filename></para>
         </listitem>
 
         <listitem>
-          <para>PDB, <filename>.pdb</filename> (<link
-          xlink:href="???">http://www.pdb.org/</link>)</para>
+          <para><link xlink:href="http://www.pdb.org/">PDB</link>, <filename>
+          .pdb</filename></para>
         </listitem>
 
@@ -298,17 +298,17 @@
 
         <listitem>
-          <para><productname>PSI4</productname>, <filename>.psi</filename>
-          (<link xlink:href="???">http://www.psicode.org/</link>)</para>
+          <para><link xlink:href="http://www.psicode.org/"><productname>PSI4
+          </productname></link>, <filename>.psi</filename></para>
         </listitem>
 
         <listitem>
-          <para><productname>TREMOLO</productname>, <filename>.data</filename>
-          (<link xlink:href="???">http://www.tremolo-x.org/</link>)</para>
+          <para><link xlink:href="http://www.tremolo-x.org/"><productname>
+          TREMOLO</productname></link>, <filename>.data</filename></para>
         </listitem>
 
         <listitem>
-          <para>XML, <filename>.xml</filename> (XML as read by scafacos
-          project, <link
-          xlink:href="???">http://www.scafacos.org</link>/)</para>
+          <para>XML, <filename>.xml</filename> (XML as read by 
+          <link xlink:href="http://www.scafacos.org/">ScaFaCoS</link>
+          project)</para>
         </listitem>
       </itemizedlist>
@@ -346,6 +346,6 @@
     been done.</para>
 
-    <section>
-      <title>Command-line interface</title>
+    <section xml:id='command-line-interface'>
+      <title xml:id='command-line-interface.title'>Command-line interface</title>
 
       <para>The command-line interface reads options and commands from the
@@ -392,6 +392,6 @@
       </note>
 
-      <section>
-        <title>Preliminaries</title>
+      <section xml:id='preliminaries'>
+        <title xml:id='preliminaries.title'>Preliminaries</title>
 
         <para>Some preliminary remarks are in order which we have gathered
@@ -440,13 +440,13 @@
       </section>
 
-      <section>
-        <title>File parsers</title>
+      <section xml:id='fileparsers'>
+        <title xml:id='fileparsers.title'>File parsers</title>
 
         <para>We have already given a list of all known file formats, see
-        <link linkend="???">File formats</link>. Next, we explain how these
+        <link linkend="fileformats">File formats</link>. Next, we explain how these
         file formats are picked and manipulated.</para>
 
-        <section>
-          <title>Parsing files</title>
+        <section xml:id='fileparsers.parsing'>
+          <title xml:id='fileparsers.parsing.title'>Parsing files</title>
 
           <para>We already discussed that the command-line interface works
@@ -473,6 +473,7 @@
         </section>
 
-        <section>
-          <title>Adding output file formats</title>
+        <section xml:id='fileparsers.set-output'>
+          <title xml:id='fileparsers.set-output.tile'>Adding output file 
+          formats</title>
 
           <para>We already know that loading a file also picks a file format
@@ -487,6 +488,7 @@
         </section>
 
-        <section>
-          <title>Output the current molecular system</title>
+        <section xml:id='fileparsers.output-as'>
+          <title xml:id='fileparsers.output-as.title'>Output the current 
+          molecular system</title>
 
           <para>This will store the current World, i.e. all its atoms, to a 
@@ -497,6 +499,7 @@
         </section>
 
-        <section>
-          <title>Output the current molecular system</title>
+        <section xml:id='fileparsers.save-selected-molecules'>
+          <title xml:id='fileparsers.save-selected-molecules.title'>Output 
+          the current molecular system</title>
 
           <para>This will store all atoms contained in the currently selected
@@ -509,6 +512,7 @@
         </section>
 
-        <section>
-          <title>Load extra bond information</title>
+        <section xml:id='fileparsers.bond-file'>
+          <title xml:id='fileparsers.bond-file.title'>Load extra bond 
+          information</title>
 
           <para>For some parsers bond information is stored not with the atoms
@@ -520,6 +524,6 @@
       </section>
 
-      <section>
-        <title>Selections and unselections</title>
+      <section xml:id='selections'>
+        <title xml:id='selections.title'>Selections and unselections</title>
 
         <para>In order to tell MoleCuilder on what subset of atoms a specific
@@ -752,6 +756,6 @@
       </section>
 
-      <section>
-        <title>Shapes</title>
+      <section xml:id='shapes'>
+        <title xml:id='shapes.title'>Shapes</title>
 
         <para>Shapes are specific regions of the domain. There are just a few
@@ -763,6 +767,6 @@
         obtain a spherical surface of specific thickness.</para>
 
-        <section>
-          <title>Creating shapes</title>
+        <section xml:id='shapes.create-shape'>
+          <title xml:id='shapes.create-shape.title'>Creating shapes</title>
 
           <para>Primitive shapes can be created as follows,</para>
@@ -791,6 +795,6 @@
         </section>
 
-        <section>
-          <title>Combining shapes</title>
+        <section xml:id='shapes.combine-shapes'>
+          <title xml:id='shapes.combine-shapes.title'>Combining shapes</title>
 
           <para>Any two shapes can be combined by boolean operations as follows</para>
@@ -824,6 +828,6 @@
         </section>
 
-        <section>
-          <title>Removing shapes</title>
+        <section xml:id='shapes.remove-shape'>
+          <title xml:id='shapes.remove-shape.title'>Removing shapes</title>
 
           <para>Removing a shape is as simple as removing an atom.</para>
@@ -834,6 +838,6 @@
         </section>
 
-        <section>
-          <title>Manipulating shapes</title>
+        <section xml:id='shapes.manipulation'>
+          <title xml:id='shapes.manipulation.title'>Manipulating shapes</title>
 
           <para>Shapes can be stretched, scaled, rotated, and translated to
@@ -869,6 +873,6 @@
       </section>
 
-      <section>
-        <title>Randomization</title>
+      <section xml:id='randomization'>
+        <title xml:id='randomization.title'>Randomization</title>
 
         <para>Some operations require randomness as input, e.g. when filling a
@@ -905,6 +909,6 @@
       </section>
 
-      <section>
-        <title>Manipulate atoms</title>
+      <section xml:id='atoms'>
+        <title xml:id='atoms.title'>Manipulate atoms</title>
 
         <para>Here, we explain in detail how to add, remove atoms, change its
@@ -912,6 +916,6 @@
         angle.</para>
 
-        <section>
-          <title>Adding atoms</title>
+        <section xml:id='atoms.add-atom'>
+          <title xml:id='atoms.add-atom.title'>Adding atoms</title>
 
           <para>Adding an atom to the domain requires the element of the atom
@@ -927,6 +931,6 @@
         </section>
 
-        <section>
-          <title>Removing atoms</title>
+        <section xml:id='atoms.remove-atom'>
+          <title xml:id='atoms.remove-atom.title'>Removing atoms</title>
 
           <para>Removing atom(s) does not need any option and operates on the
@@ -936,6 +940,6 @@
         </section>
 
-        <section>
-          <title>Translating atoms</title>
+        <section xml:id='atoms.translate-atom'>
+          <title xml:id='atoms.translate-atom.title'>Translating atoms</title>
 
           <para>In order to translate the current selected subset of atoms you
@@ -952,6 +956,7 @@
         </section>
 
-        <section>
-          <title>Changing an atoms element</title>
+        <section xml:id='atoms.change-element'>
+          <title xml:id='atoms.change-element.title'>Changing an atoms element
+          </title>
 
           <para>You can easily turn lead or silver into gold, by selecting the
@@ -962,6 +967,6 @@
       </section>
 
-      <section>
-        <title>Bond-related manipulation</title>
+      <section xml:id='bond'>
+        <title xml:id='bond.title'>Bond-related manipulation</title>
 
         <para>Atoms can also be manipulated with respect to the bonds.
@@ -971,6 +976,7 @@
         and angles.</para>
 
-        <section>
-          <title>Creating a bond graph</title>
+        <section xml:id='bond.create-adjacency'>
+          <title xml:id='bond.create-adjacency.title'>Creating a bond graph
+          </title>
 
           <para>In case you have loaded a configuration file with no bond
@@ -1011,6 +1017,7 @@
         </section>
 
-        <section>
-          <title>Destroying the bond graph</title>
+        <section xml:id='bond.destroy-adjacency'>
+          <title xml:id='bond.destroy-adjacency.title'>Destroying the bond 
+          graph</title>
 
           <para>The bond graph can be removed completely (and all bonds along
@@ -1020,6 +1027,7 @@
         </section>
 
-        <section>
-          <title>Correcting bond degrees</title>
+        <section xml:id='bond.correct-bonddegree'>
+          <title xml:id='bond.correct-bonddegree.title'>Correcting bond 
+          degrees</title>
 
           <para>Typically, after loading an input file bond information, e.g.
@@ -1036,6 +1044,7 @@
         </section>
 
-        <section>
-          <title>Analysing a bond graph</title>
+        <section xml:id='bond.depth-first-search'>
+          <title xml:id='bond.depth-first-search.title'>Analysing a bond 
+          graph</title>
 
           <para>You can perform a depth-first search analysis that reveals
@@ -1045,6 +1054,7 @@
         </section>
 
-        <section>
-          <title>Dissecting the molecular system into molecules</title>
+        <section xml:id='bond.subgraph-dissection'>
+          <title xml:id='bond.subgraph-dissection.title'>Dissecting the 
+          molecular system into molecules</title>
 
           <para>The bond graph information can be used to recognize the
@@ -1063,6 +1073,7 @@
         </section>
 
-        <section>
-          <title>Updating molecule structure</title>
+        <section xml:id='bond.update-molecules'>
+          <title xml:id='bond.update-molecules.title'>Updating molecule 
+          structure</title>
 
           <para>When the bond information has changed, new molecules might 
@@ -1074,6 +1085,6 @@
         </section>
 
-        <section>
-          <title>Adding a bond manually</title>
+        <section xml:id='bond.add-bond'>
+          <title xml:id='bond.add-bond.title'>Adding a bond manually</title>
 
           <para>When the automatically created adjacency or bond graph
@@ -1084,6 +1095,7 @@
         </section>
 
-        <section>
-          <title>Removing a bond manually</title>
+        <section xml:id='bond.remove-bond'>
+          <title xml:id='bond.remove-bond.title'>Removing a bond manually
+          </title>
 
           <para>In much the same way as adding a bond, you can also remove a
@@ -1093,10 +1105,11 @@
         </section>
 
-        <section>
-          <title>Saving bond information</title>
+        <section xml:id='bond.save-bonds'>
+          <title xml:id='bond.save-bonds.title'>Saving bond information
+          </title>
 
           <para>Bond information can be saved to a file in <link 
-          xlink:href="http://www.molecuilder.com/"><programname>TREMOLO
-          </programname></link>'s dbond style.</para>
+          xlink:href="http://www.molecuilder.com/"><productname>TREMOLO
+          </productname></link>'s dbond style.</para>
 
           <programlisting>... --save-bonds system.dbonds</programlisting>
@@ -1111,6 +1124,6 @@
         </section>
 
-        <section>
-          <title>Stretching a bond</title>
+        <section xml:id='bond.stretch-bond'>
+          <title xml:id='bond.stretch-bond.title'>Stretching a bond</title>
 
           <para>Stretching a bond actually refers to translation of the
@@ -1130,6 +1143,7 @@
         </section>
 
-        <section>
-          <title>Changing a bond angle</title>
+        <section xml:id='bond.change-bond-angle'>
+          <title xml:id='bond.change-bond-angle.title'>Changing a bond angle
+          </title>
 
           <para>In the same way as stretching a bond, you can change the angle
@@ -1145,6 +1159,6 @@
       </section>
 
-      <section>
-        <title>Manipulate molecules</title>
+      <section xml:id='molecule'>
+        <title xml:id='molecule.title'>Manipulate molecules</title>
 
         <para>Molecules are agglomerations of atoms that are bonded. Hence,
@@ -1159,10 +1173,10 @@
           <para>Initially when you load a file via the input action all atoms
           are placed in a single molecule despite any present bond
-          information, see <link linkend="???">Dissecting the molecular system
-          into molecules</link></para>
+          information, see <link linkend="fragmentation">Dissecting the 
+          molecular system into molecules</link></para>
         </note>
 
-        <section>
-          <title>Copy molecules</title>
+        <section xml:id='molecule.copy'>
+          <title xml:id='molecule.copy.title'>Copy molecules</title>
 
           <para>A basic operation is to duplicate a molecule. This works on a
@@ -1183,6 +1197,7 @@
         </section>
 
-        <section>
-          <title>Change a molecules name</title>
+        <section xml:id='molecule.change-molname'>
+          <title xml:id='molecule.change-molname.title'>Change a molecules 
+          name</title>
 
           <para>You can change the name of a molecule which is important for
@@ -1208,6 +1223,7 @@
         </section>
 
-        <section>
-          <title>Rotate around self</title>
+        <section xml:id='molecule.rotate-around-self'>
+          <title xml:id='molecule.rotate-around-self.title'>Rotate around self
+          </title>
 
           <para>You can rotate a molecule around its own axis.</para>
@@ -1222,6 +1238,7 @@
         </section>
 
-        <section>
-          <title>Rotate around origin</title>
+        <section xml:id='molecule.rotate-around-origin'>
+          <title xml:id='molecule.rotate-around-origin.title'>Rotate around 
+          origin</title>
 
           <para>In the same manner the molecule can be rotated around an
@@ -1237,6 +1254,7 @@
         </section>
 
-        <section>
-          <title>Rotate to principal axis system</title>
+        <section xml:id='molecule.rotate-to-principal-axis-system'>
+          <title xml:id='molecule.rotate-to-principal-axis-system.title'>
+          Rotate to principal axis system</title>
 
           <para>The principal axis system is given by an ellipsoid that mostly
@@ -1249,5 +1267,6 @@
           do as follows.</para>
 
-          <programlisting>... --rotate-to-principal-axis-system "0,0,1"</programlisting>
+          <programlisting>... --rotate-to-principal-axis-system "0,0,1"
+          </programlisting>
 
           <para>This rotates the molecule in such a manner that the ellipsoids
@@ -1256,6 +1275,7 @@
         </section>
 
-        <section>
-          <title>Perform verlet integration</title>
+        <section xml:id='molecule.verlet-integration'>
+          <title xml:id='molecule.verlet-integration.title'>Perform verlet 
+          integration</title>
 
           <para>Atoms not only have a position, but each instance also stores
@@ -1278,6 +1298,7 @@
         </section>
 
-        <section>
-          <title>Anneal the atomic forces</title>
+        <section xml:id='molecule.force-annealing'>
+          <title xml:id='molecule.force-annealing.title'>Anneal the atomic 
+          forces</title>
 
           <para>This will shift the atoms in a such a way as to decrease (or
@@ -1300,6 +1321,7 @@
         </section>
 
-        <section>
-          <title>Linear interpolation between configurations</title>
+        <section xml:id='molecule.linear-interpolation-of-trajectories'>
+          <title xml:id='molecule.linear-interpolation-of-trajectories.title'>
+          Linear interpolation between configurations</title>
 
           <para>This is similar to verlet-integration, only that it performs
@@ -1323,6 +1345,6 @@
       </section>
 
-      <section>
-        <title>Manipulate domain</title>
+      <section xml:id='domain'>
+        <title xml:id='domain.title'>Manipulate domain</title>
 
         <para>Here, we elaborate on how to duplicate all the atoms inside the
@@ -1332,6 +1354,6 @@
         domain.</para>
 
-        <section>
-          <title>Changing the domain</title>
+        <section xml:id='domain.change-box'>
+          <title xml:id='domain.change-box.title'>Changing the domain</title>
 
           <para>The domain is specified by a symmetric 3x3 matrix. The
@@ -1348,6 +1370,7 @@
         </section>
 
-        <section>
-          <title>Bound atoms inside box</title>
+        <section xml:id='domain.bound-in-box'>
+          <title xml:id='domain.bound-in-box.title'>Bound atoms inside box
+          </title>
 
           <para>The following applies the current boundary conditions to the
@@ -1359,6 +1382,7 @@
         </section>
 
-        <section>
-          <title>Center atoms inside the domain</title>
+        <section xml:id='domain.center-in-box'>
+          <title xml:id='domain.center-in-box.title'>Center atoms inside the 
+          domain</title>
 
           <para>This is a combination of changing the box and bounding the
@@ -1368,6 +1392,7 @@
         </section>
 
-        <section>
-          <title>Center the atoms at an edge</title>
+        <section xml:id='domain.center-edge'>
+          <title xml:id='domain.center-edge.title'>Center the atoms at an 
+          edge</title>
 
           <para>MoleCuilder can calculate the minimum box (parallel to the
@@ -1379,6 +1404,7 @@
         </section>
 
-        <section>
-          <title>Extending the boundary by adding an empty boundary</title>
+        <section xml:id='domain.add-empty-boundary'>
+          <title xml:id='domain.add-empty-boundary.title'>Extending the 
+          boundary by adding an empty boundary</title>
 
           <para>In the same manner as above a minimum box is determined that
@@ -1393,6 +1419,6 @@
         </section>
 
-        <section>
-          <title>Scaling the box</title>
+        <section xml:id='domain.scale-box'>
+          <title xml:id='domain.scale-box.title'>Scaling the box</title>
 
           <para>You can enlarge the domain by simple scaling factors.</para>
@@ -1404,6 +1430,6 @@
         </section>
 
-        <section>
-          <title>Repeating the box</title>
+        <section xml:id='domain.repeat-box'>
+          <title xml:id='domain.repeat-box.title'>Repeating the box</title>
 
           <para>Under periodic boundary conditions often only the minimal
@@ -1421,6 +1447,7 @@
         </section>
         
-        <section>
-          <title>Change the boundary conditions</title>
+        <section xml:id='domain.set-boundary-conditions'>
+          <title xml:id='domain.set-boundary-conditions.title'>Change the 
+          boundary conditions</title>
 
           <para>Various boundary conditions can be applied that affect how
@@ -1452,6 +1479,6 @@
       </section>
 
-      <section>
-        <title>Filling</title>
+      <section xml:id='filling'>
+        <title xml:id='filling.title'>Filling</title>
         
           <para>Filling a specific part of the domain with one type of
@@ -1483,6 +1510,7 @@
           additionally excluded from the filling region.</para>
 
-        <section>
-          <title>Fill the domain with molecules</title>
+        <section xml:id='filling.fill-regular-grid'>
+          <title xml:id='filling.fill-regular-grid.title'>Fill the domain with 
+          molecules</title>
 
           <para>The call to fill the volume of the selected shape with the
@@ -1507,10 +1535,12 @@
           molecules' volume is obtained by tesselating their surface and
           excluding every fill-in point whose distance to this surface does
-          not exceed 1. We refer to our comments in <link linkend="???">1.4
-          Randomization </link>for details on changing the randomness.</para>
-        </section>
-
-        <section>
-          <title>Fill a shape's volume with molecules</title>
+          not exceed 1. We refer to our comments in 
+          <link linkend="randomization">Randomization</link>for details on 
+          changing the randomness.</para>
+        </section>
+
+        <section xml:id='filling.fill-volume'>
+          <title xml:id='filling.fill-volume.title'>Fill a shape's volume 
+          with molecules</title>
           
           <para>More specifically than filling the whole domain with molecules,
@@ -1530,6 +1560,7 @@
         </section>
           
-        <section>
-          <title>Fill a shape's surface with molecules</title>
+        <section xml:id='filling.fill-surface'>
+          <title xml:id='filling.fill-surface.title'>Fill a shape's surface 
+          with molecules</title>
 
 		  <para>Filling a surface is very similar to filling its volume.
@@ -1557,6 +1588,7 @@
         </section>
 
-        <section>
-          <title>Suspend in molecule</title>
+        <section xml:id='filling.suspend-in-molecule'>
+          <title xml:id='filling.suspend-in-molecule.title'>Suspend in molecule
+          </title>
 
           <para>Add a given molecule in the simulation domain in such a way
@@ -1568,6 +1600,6 @@
         </section>
 
-        <section>
-          <title>Fill in molecule</title>
+        <section xml:id='filling.fill-molecule'>
+          <title xml:id='filling.fill-molecule.title'>Fill in molecule</title>
 
           <para>This action will be soon be removed.</para>
@@ -1578,6 +1610,7 @@
         </section>
 
-        <section>
-          <title>Fill void with molecule</title>
+        <section xml:id='filling.fill-void'>
+          <title xml:id='filling.fill-void.title'>Fill void with molecule
+          </title>
 
           <para>This action will be soon be removed.</para>
@@ -1589,11 +1622,12 @@
       </section>
 
-      <section>
-        <title>Analysis</title>
+      <section xml:id='analysis'>
+        <title xml:id='analysis.title'>Analysis</title>
 
 		<para></para>
 
-        <section>
-          <title>Pair Correlation</title>
+        <section xml:id='analysis.pair-correlation'>
+          <title xml:id='analysis.pair-correlation.title'>Pair Correlation
+          </title>
           
           <para>Pair correlation checks for two given elements on the typical 
@@ -1619,6 +1653,7 @@
         </section>
 
-        <section>
-          <title>Dipole Correlation</title>
+        <section xml:id='analysis.dipole-correlation'>
+          <title xml:id='analysis.dipole-correlation.title'>Dipole Correlation
+          </title>
           
           <para>The dipole correlation is similar to the pair correlation, only
@@ -1639,6 +1674,7 @@
         </section>
 
-        <section>
-          <title>Dipole Angular Correlation</title>
+        <section xml:id='analysis.dipole-angular-correlation'>
+          <title xml:id='analysis.dipole-angular-correlation.title'>Dipole 
+          Angular Correlation</title>
           
           <para>The dipole angular correlation looks at the angles of a
@@ -1665,6 +1701,7 @@
         </section>
 
-        <section>
-          <title>Point Correlation</title>
+        <section xml:id='analysis.point-correlation'>
+          <title xml:id='analysis.point-correlation.title'>Point Correlation
+          </title>
           
           <para>Point correlation is very similar to pair correlation, only
@@ -1688,6 +1725,7 @@
         </section>
 
-        <section>
-          <title>Surface Correlation</title>
+        <section xml:id='analysis.surface-correlation'>
+          <title xml:id='analysis.surface-correlation.title'>Surface 
+          Correlation</title>
           
           <para>The surface correlation calculates the distance of a set
@@ -1706,6 +1744,7 @@
         </section>
 
-        <section>
-          <title>Molecular Volume</title>
+        <section xml:id='analysis.molecullar-volume'>
+          <title xml:id='analysis.molecullar-volume.title'>Molecular Volume
+          </title>
           
           <para>This simply calculates the volume that a selected molecule
@@ -1720,6 +1759,6 @@
       </section>
 
-      <section>
-        <title>Fragmentation</title>
+      <section xml:id='fragmentation'>
+        <title xml:id='fragmentation.title'>Fragmentation</title>
 
         <para>Fragmentation refers to a so-called linear-scaling method called
@@ -1771,6 +1810,7 @@
         off).</para>
 
-        <section>
-          <title>Fragmenting a molecular system</title>
+        <section xml:id='fragmentation.fragment-molecule'>
+          <title xml:id='fragmentation.fragment-molecule.title'>Fragmenting a 
+          molecular system</title>
 
           <para>For the current selection of atoms, all fragments consisting
@@ -1819,6 +1859,6 @@
           XYZ (mainly for checking the configurations visually) and MPQC,
           which is a very robust Hartree-Fock solver. We refer to the
-          discussion of the <link linkend="???">Parsers</link> above on how to
-          change the parameters of the ab-initio calculation.</para>
+          discussion of the <link linkend="fileparsers">Parsers</link> above 
+          on how to change the parameters of the ab-initio calculation.</para>
 
           <para>After having written all fragment configuration files, you
@@ -1830,6 +1870,7 @@
         </section>
 
-        <section>
-          <title>Calculating fragment energies automatically</title>
+        <section xml:id='fragmentation.fragment-automation'>
+          <title xml:id='fragmentation.fragment-automation.title'>Calculating 
+          fragment energies automatically</title>
 
           <para>Another way of doing this is enabled if you have
@@ -1848,5 +1889,6 @@
           <para>Stored fragment jobs can also be parsed again, i.e. reversing
           the effect of having output-types specified in <link
-          linkend="???">Fragmenting a molecule</link>.</para>
+          linkend="fragmentation.fragment-molecule">Fragmenting a molecule
+          </link>.</para>
 
           <programlisting>
@@ -1914,6 +1956,7 @@
         </section>
 
-        <section>
-          <title>Analyse fragment results</title>
+        <section xml:id='fragmentation.analyse-fragment-results'>
+          <title xml:id='fragmentation.analyse-fragment-results.title'>
+          Analyse fragment results</title>
 
           <para>After the energies and force vectors of each fragment have
@@ -1940,10 +1983,12 @@
 
           <para>Note that this action sets the force vector if these have been
-          calculated for the fragment. Hence, a <link linkend="???">verlet
-          integration</link> is possible afterwards.</para>
+          calculated for the fragment. Hence, a 
+          <link linkend="molecule.verlet-integration">verlet integration</link>
+          is possible afterwards.</para>
         </section>
         
-        <section>
-          <title>Store a saturated fragment</title>
+        <section xml:id='fragmentation.store-saturated-fragment'>
+          <title xml:id='fragmentation.store-saturated-fragment.title'>Store 
+          a saturated fragment</title>
 
           <para>After the energies and force vectors of each fragment have
@@ -1966,6 +2011,6 @@
       </section>
 
-      <section>
-        <title>Homologies</title>
+      <section xml:id='homology'>
+        <title xml:id='homology.title'>Homologies</title>
 
         <para>After a fragmentation procedure has been performed fully, what
@@ -2015,6 +2060,6 @@
       </section>
 
-      <section>
-        <title>Potentials</title>
+      <section xml:id='potentials'>
+        <title xml:id='potentials.title'>Potentials</title>
 
         <para>In much the same manner, we would now ask what are homology
@@ -2024,6 +2069,7 @@
         surface of the full system.</para>
 
-        <section>
-          <title>Fitting empirical potentials</title>
+        <section xml:id='potentials.fit-potential'>
+          <title xml:id='potentials.fit-potential.title'>Fitting empirical 
+          potentials</title>
 
           <para>Let's take a look at an exemplary call to the fit potential
@@ -2097,6 +2143,7 @@
         </section>
 
-        <section>
-          <title>Fitting particle charges</title>
+        <section xml:id='potentials.fit-particle-charges'>
+          <title xml:id='potentials.fit-particle-charges.title'>Fitting 
+          particle charges</title>
 
           <para>The above empirical potential just model the short-range
@@ -2109,8 +2156,8 @@
           <para>To allow least-squares regression of these partial charges we
           need the results of long-range calculations and the store-grids
-          option (see above under <link linkend="???">Fragmentation</link>)
-          must have been given. With these sampled charge density and Coulomb
-          potential stored in the homology containers, we call this action as
-          follows.</para>
+          option (see above under <link linkend="fragmentation">Fragmentation
+          </link>) must have been given. With these sampled charge density and 
+          Coulomb potential stored in the homology containers, we call this 
+          action as follows.</para>
 
           <programlisting>
@@ -2132,6 +2179,6 @@
       </section>
 
-      <section>
-        <title>Dynamics</title>
+      <section xml:id='dynamics'>
+        <title xml:id='dynamics.title'>Dynamics</title>
 
         <para>For fitting potentials or charges we need many homologuous but
@@ -2143,11 +2190,12 @@
         energies but also forces if the chosen solver, such as 
         <link xlink:href="http://www.mpqc.org/"><productname>MPQC
-        </productname></link>, supports it. Integrating these forces discretely over time 
-        gives insight into vibrational features of a molecular system and 
-        allows to generate those positions for fitting potentials that 
-        describe these vibrations.</para>
-
-        <section>
-          <title>Molecular dynamics</title>
+        </productname></link>, supports it. Integrating these forces 
+        discretely over time  gives insight into vibrational features of a 
+        molecular system and allows to generate those positions for fitting 
+        potentials that describe these vibrations.</para>
+
+        <section xml:id='dynamics.molecular-dynamics'>
+          <title xml:id='dynamics.molecular-dynamics.title'>Molecular dynamics
+          </title>
 
           <para>The molecular dynamics action is a so-called macro Action, 
@@ -2204,6 +2252,7 @@
         </section>
 
-        <section>
-          <title>Structure optimization</title>
+        <section xml:id='dynamics.optimize-structure'>
+          <title xml:id='dynamics.optimize-structure.title'>Structure 
+          optimization</title>
 
 		  <para>Structure optimization is also a macro Action, it basically
@@ -2235,6 +2284,7 @@
         </section>
 
-        <section>
-          <title>Set the world's time step</title>
+        <section xml:id='dynamics.set-world-time'>
+          <title xml:id='dynamics.set-world-time.title'>Set the world's time 
+          step</title>
 
 		  <para>In order to inspect or manipulate atoms and molecules at a
@@ -2249,6 +2299,7 @@
         </section>
 
-        <section>
-          <title>Save the temperature information</title>
+        <section xml:id='dynamics.save-temperature'>
+          <title xml:id='dynamics.save-temperature.title'>Save the 
+          temperature information</title>
 
 		  <para>For each time step the temperature (i.e. the average velocity
@@ -2261,6 +2312,6 @@
       </section>
     
-      <section>
-        <title>Tesselations</title>
+      <section xml:id='dynamics.tesselation'>
+        <title xml:id='dynamics.tesselation.title'>Tesselations</title>
 
         <para>Tesselations obtain molecular surfaces (and volumes) by rolling
@@ -2268,6 +2319,7 @@
         surface of connected triangles is created.</para>
 
-        <section>
-          <title>Non-convex envelope</title>
+        <section xml:id='dynamics.tesselation.nonconvex-envelope'>
+          <title xml:id='dynamics.tesselation.nonconvex-envelope.title'>
+          Non-convex envelope</title>
           
           <para>This will create a non-convex envelope for a molecule.</para>
@@ -2279,10 +2331,11 @@
 
           <para>This tesselation file can be conveniently viewed with 
-          <programname>TecPlot</programname> or with one of the Tcl script 
-          in the util folder with <programname>VMD</programname>.</para>
-        </section>
-
-        <section>
-          <title>Convex envelope</title>
+          <productname>TecPlot</productname> or with one of the Tcl script 
+          in the util folder with <productname>VMD</productname>.</para>
+        </section>
+
+        <section xml:id='dynamics.tesselation.convex-envelope'>
+          <title xml:id='dynamics.tesselation.convex-envelope.title'>Convex 
+          envelope</title>
           
           <para>This will create a convex envelope for a molecule.</para>
@@ -2294,17 +2347,17 @@
 
           <para>This tesselation file can be conveniently viewed with 
-          <programname>TecPlot</programname> or with one of the Tcl script 
-          in the util folder with <programname>VMD</programname>.</para>
+          <productname>TecPlot</productname> or with one of the Tcl script 
+          in the util folder with <productname>VMD</productname>.</para>
         </section>
       </section>
 
-      <section>
-        <title>Various commands</title>
+      <section xml:id='various'>
+        <title xml:id='various.title'>Various commands</title>
 
         <para>Here, we gather all commands that do not fit into one of above
         categories for completeness.</para>
 
-        <section>
-          <title>Changing verbosity</title>
+        <section xml:id='various.verbose'>
+          <title xml:id='various.verbose.title'>Changing verbosity</title>
 
           <para>The verbosity level is the amount of stuff printed to screen.
@@ -2322,6 +2375,7 @@
         </section>
 
-        <section>
-          <title>Loading an element database</title>
+        <section xml:id='various.element-db'>
+          <title xml:id='various.element-db.title'>Loading an element 
+          database</title>
 
           <para>Element databases contain information on valency, van der
@@ -2335,6 +2389,6 @@
         </section>
 
-        <section>
-          <title>Fast parsing</title>
+        <section xml:id='various.fastparsing'>
+          <title xml:id='various.fastparsing.title'>Fast parsing</title>
 
           <para>Parsing all time steps from a given input file can take a 
@@ -2345,6 +2399,7 @@
         </section>
 
-        <section>
-          <title>Giving the version of the program</title>
+        <section xml:id='various.version'>
+          <title xml:id='various.version.title'>Giving the version of the 
+          program</title>
 
           <para>This prints the version information of the code, especially
@@ -2355,6 +2410,7 @@
         </section>
 
-        <section>
-          <title>Giving warranty information</title>
+        <section xml:id='various.warranty'>
+          <title xml:id='various.warranty.title'>Giving warranty 
+          information</title>
 
           <para>As follows warranty information is given,</para>
@@ -2363,6 +2419,7 @@
         </section>
 
-        <section>
-          <title>Giving redistribution information</title>
+        <section xml:id='various.help-redistribute'>
+          <title xml:id='various.help-redistribute.title'>Giving 
+          redistribution information</title>
 
           <para>This gives information on the license and how to redistribute
@@ -2373,6 +2430,6 @@
       </section>
 
-      <section>
-        <title>Sessions</title>
+      <section xml:id='sessions'>
+        <title xml:id='sessions.title'>Sessions</title>
 
         <para>A session refers to the queue of actions you have executed.
@@ -2384,6 +2441,7 @@
         another.</para>
 
-        <section>
-          <title>Storing a session</title>
+        <section xml:id='sessions.store-session'>
+          <title xml:id='sessions.store-session.title'>Storing a session
+          </title>
 
           <para>Storing sessions is simple,</para>
@@ -2401,6 +2459,6 @@
         </section>
 
-        <section>
-          <title>Loading a session</title>
+        <section xml:id='sessions.load-session'>
+          <title xml:id='sessions.load-session.title'>Loading a session</title>
 
           <para>Loading a session only works for python scripts. This actually
@@ -2417,6 +2475,7 @@
       </section>
 
-      <section>
-        <title>Various specific commands</title>
+      <section xml:id='various-specific'>
+        <title xml:id='various-specific.title'>Various specific commands
+        </title>
         
         <para>In this (final) section of the action description we list a number
@@ -2424,10 +2483,11 @@
         </para>
         
-        <section>
-          <title>Saving exttypes of a set of atoms</title>
+        <section xml:id='various-specific.save-selected-atoms-as-exttypes'>
+          <title xml:id='various-specific.save-selected-atoms-as-exttypes.title'>
+          Saving exttypes of a set of atoms</title>
           
           <para>This saves the atomic ids of all currently selected atoms in a 
-           <link xlink:href="http://www.tremolo-x.com/"><programname>TREMOLO
-           </programname></link> exttypes file with the given name.</para>
+           <link xlink:href="http://www.tremolo-x.com/"><productname>TREMOLO
+           </productname></link> exttypes file with the given name.</para>
 
           <programlisting>
@@ -2436,6 +2496,7 @@
         </section>
         
-        <section>
-          <title>Setting parser specific parameters</title>
+        <section xml:id='various-specific.set-parser-parameters'>
+          <title xml:id='various-specific.set-parser-parameters.title'>Setting 
+          parser specific parameters</title>
 
           <para>You can also tweak the parameters stored in this file easily.
@@ -2458,6 +2519,7 @@
         </section>
 
-        <section>
-          <title>Tremolo specific options and potential files</title>
+        <section xml:id='various-specific.set-tremolo-atomdata'>
+          <title xml:id='various-specific.set-tremolo-atomdata.title'>Tremolo 
+          specific options and potential files</title>
 
           <para><productname>TREMOLO</productname>'s configuration files start
@@ -2492,6 +2554,6 @@
     </section>
 
-    <section>
-      <title>Text menu</title>
+    <section xml:id='textmenu-interface'>
+      <title xml:id='textmenu-interface.title'>Text menu</title>
 
       <para>We now discuss how to use the text menu interface.</para>
@@ -2511,6 +2573,7 @@
     </section>
 
-    <section>
-      <title linkend="GUI">Graphical user interface</title>
+    <section xml:id='graphical-user-interface'>
+      <title xml:id='graphical-user-interface.title'>Graphical user interface
+      </title>
 
       <para>The main point of the GUI is that it renders the atoms and
@@ -2527,6 +2590,7 @@
       various derived or slightly modified structures.</para>
 
-      <section>
-        <title>Basic view</title>
+      <section xml:id='graphical-user-interface.basic-view'>
+        <title xml:id='graphical-user-interface.basic-view.title'>Basic view
+        </title>
 
         <para>Let us first give an impression of the basic view of the gui
@@ -2544,6 +2608,7 @@
         </figure>
 
-        <section>
-          <title>3D view</title>
+        <section xml:id='graphical-user-interface.3d-view'>
+          <title xml:id='graphical-user-interface.3d-view.title'>3D view
+          </title>
 
           <para>In the above figure, you see the stick-and-ball representation
@@ -2552,6 +2617,7 @@
         </section>
 
-        <section>
-          <title>Information Tabs</title>
+        <section xml:id='graphical-user-interface.information-tabs'>
+          <title xml:id='graphical-user-interface.information-tabs.title'>
+          Information Tabs</title>
 
           <para>Beneath this 3D view that you can rotate at will your mouse
@@ -2566,6 +2632,7 @@
         </section>
 
-        <section>
-          <title>Shape section</title>
+        <section xml:id='graphical-user-interface.shape'>
+          <title xml:id='graphical-user-interface.shape.title'>Shape section
+          </title>
 
           <para>Beneath these information tabs you find the shape sections.
@@ -2574,6 +2641,7 @@
         </section>
 
-        <section>
-          <title>Timeline</title>
+        <section xml:id='graphical-user-interface.timeline'>
+          <title xml:id='graphical-user-interface.timeline.title'>Timeline
+          </title>
 
           <para>Directly below the 3D view there is a long slider. If a loaded
@@ -2585,6 +2653,7 @@
         </section>
 
-        <section>
-          <title>Selection tables</title>
+        <section xml:id='graphical-user-interface.tables'>
+          <title xml:id='graphical-user-interface.tables.title'>Selection 
+          tables</title>
 
           <para>Underneath the time line there is another place for
@@ -2608,6 +2677,7 @@
       </section>
 
-      <section>
-        <title>Selections</title>
+      <section xml:id='graphical-user-interface.selections'>
+        <title xml:id='graphical-user-interface.selections.title'>Selections
+        </title>
 
         <para>Selections work generally always by selecting the respective
@@ -2630,6 +2700,6 @@
       </section>
 
-      <section>
-        <title>Dialogs</title>
+      <section xml:id='graphical-user-interface.dialogs'>
+        <title xml:id='graphical-user-interface.dialogs.title'>Dialogs</title>
 
         <para>Most essential, however, to the GUI are the dialogs. Each action
@@ -2645,6 +2715,7 @@
         </note>
 
-        <section>
-          <title>Domain query</title>
+        <section xml:id='graphical-user-interface.dialogs.domain'>
+          <title xml:id='graphical-user-interface.dialogs.domain.title'>Domain 
+          query</title>
 
           <figure>
@@ -2665,6 +2736,7 @@
         </section>
 
-        <section>
-          <title>Element query</title>
+        <section xml:id='graphical-user-interface.dialogs.element'>
+          <title xml:id='graphical-user-interface.dialogs.element.title'>
+          Element query</title>
 
           <figure>
@@ -2686,6 +2758,7 @@
         </section>
 
-        <section>
-          <title>Complex query</title>
+        <section xml:id='graphical-user-interface.dialogs.action'>
+          <title xml:id='graphical-user-interface.dialogs.action.title'>
+          Complex query</title>
 
           <figure>
@@ -2706,6 +2779,7 @@
         </section>
 
-        <section>
-          <title>Exit query</title>
+        <section xml:id='graphical-user-interface.dialogs.exit'>
+          <title xml:id='graphical-user-interface.dialogs.exit.title'>Exit 
+          query</title>
 
           <figure>
@@ -2728,6 +2802,6 @@
     </section>
 
-    <section>
-      <title>Python interface</title>
+    <section xml:id='python-interface'>
+      <title xml:id='python-interface.title'>Python interface</title>
 
       <para>Last but not least we elaborate on the python interface. We have
