<?xml version="1.0" encoding="UTF-8"?>
<book version="5.0" xmlns="http://docbook.org/ns/docbook"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      xmlns:xi="http://www.w3.org/2001/XInclude"
      xmlns:svg="http://www.w3.org/2000/svg"
      xmlns:mml="http://www.w3.org/1998/Math/MathML"
      xmlns:html="http://www.w3.org/1999/xhtml"
      xmlns:db="http://docbook.org/ns/docbook">
  <db:info>
    <title>Lorem Ipsum</title>

    <subtitle>Nulla scelerisque, nulla turpis</subtitle>
    
    <authorgroup>
      <author>
        <personname>
          <firstname>Petri</firstname>
          <surname>Mäkijärvi</surname>
        </personname>

        <affiliation>
          <orgname>European Synchrotron Radiation Facility</orgname>

          <address>Grenoble, France</address>
        </affiliation>
      </author>

      <author>
        <personname>
          <honorific>Dr</honorific>
          <firstname>I.</firstname>
          <othername>M.</othername>
          <surname>Noman</surname>
        </personname>

        <affiliation>
          <orgname>Acme Industries, Inc.</orgname>

          <address>Anytown, U.S.A.</address>
        </affiliation>
      </author>

      <author>
        <personname>
          <firstname>Maxwell</firstname>
          <surname>Smart</surname>
        </personname>

        <affiliation>
          <orgname>C.O.N.T.R.O.L.</orgname>

          <address>Washington D.C., U.S.A.</address>
        </affiliation>
      </author>
    </authorgroup>

    <publisher>
      <publishername>European Synchrotron Radiation Facility</publishername>

      <address>Grenoble, France</address>
    </publisher>

    <copyright>
      <year>2007</year>

      <holder>European Synchrotron Radiation Facility</holder>
    </copyright>

    <pubdate>$Date: 2010/06/09 15:19:01 $</pubdate>

    <releaseinfo>$Revision: 1.3 $</releaseinfo>

  </db:info>

  <chapter version="5.0" xml:id="lorem" xmlns="http://docbook.org/ns/docbook"
           xmlns:xlink="http://www.w3.org/1999/xlink"
           xmlns:xi="http://www.w3.org/2001/XInclude"
           xmlns:svg="http://www.w3.org/2000/svg"
           xmlns:mml="http://www.w3.org/1998/Math/MathML"
           xmlns:html="http://www.w3.org/1999/xhtml"
           xmlns:db="http://docbook.org/ns/docbook">
    <db:info xml:id="loremipsum">
      <title>Lorem Ipsum</title>

      <authorgroup>
        <author>
          <personname>
            <firstname>Petri</firstname>
            <surname>Mäkijärvi</surname>
          </personname>
        </author>

        <author>
          <personname>
            <honorific>Dr</honorific>
            <firstname>I.</firstname>
            <othername>M.</othername>
            <surname>Noman</surname>
          </personname>
        </author>
      </authorgroup>

      <pubdate>$Date: 2010/06/09 15:19:01 $</pubdate>

      <releaseinfo>$Revision: 1.3 $</releaseinfo>
    </db:info>

    <sect1 xml:id="consectetuer">
      <title>Consectetuer adipiscing elit</title>

      <para>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
        <indexterm>
          <primary>Curabitur</primary>

          <secondary>urna</secondary>

          <seealso>Consectetuer</seealso>
        </indexterm>
        Curabitur urna. Maecenas eu nisi faucibus risus ornare
        fringilla. Nam laoreet accumsan metus. Maecenas ac nunc non enim consequat
        ultrices. Duis egestas condimentum velit. Nulla scelerisque. Nulla turpis.
        Nam ante tortor, convallis sit amet, commodo at, dignissim at, dolor.
        Proin sodales. Maecenas at enim. Aliquam nunc. Curabitur ullamcorper
        molestie neque. Aliquam erat volutpat. Sed non dui et tellus ultrices
        porttitor.
      </para>

      <para>Curabitur rutrum lobortis orci. Vivamus a urna. Nulla feugiat
        euismod massa. In odio quam, posuere at, mattis at, pretium quis, nisi.
        Sed eget nibh. Vestibulum ante enim, mattis at, mollis eu, ullamcorper sit
        amet, augue. Mauris quam massa, vestibulum rhoncus, bibendum eget,
        adipiscing at, enim. Sed pharetra. Praesent ac nibh id massa bibendum
        elementum. Sed urna nibh, pharetra in, dapibus at, tristique at, velit.
        Maecenas lectus. Pellentesque aliquet pharetra lacus. Aliquam et tellus.
        Aenean gravida tristique ipsum. Duis suscipit euismod dolor. Etiam
        facilisis mi nec risus. Nam non purus sed nibh cursus luctus. Morbi nunc
        sem, hendrerit eu, mattis sit amet, pulvinar nec, nulla. Duis lobortis
        metus ut orci. Curabitur facilisis.
      </para>

      <sect2 xml:id="morbi">
        <title>Morbi a eros</title>

        <para>Cum sociis natoque penatibus et magnis dis parturient montes,
          nascetur ridiculus mus
          <footnote>
            <para>Aenean in odio et dui vestibulum eleifend. Donec aliquet
              magna.
            </para>
          </footnote>
          . Curabitur nulla orci, porta eget, tincidunt dapibus,
          tincidunt sed, ligula. Nunc vel sapien. In nec diam fermentum purus
          tincidunt ullamcorper:
        </para>

        <para>Donec facilisis aliquet libero. Maecenas sem dui, scelerisque
          vitae, convallis at, gravida eu, purus. Proin quis nisl. Mauris ac purus
          eu dolor fringilla tempus. Aliquam elementum. In a neque. Praesent
          ipsum. Maecenas elementum magna sit amet eros. Praesent non
          sapien.
        </para>

        <figure xml:id="fig_morbi">
          <title>Morbi maecanas sem dui</title>

          <mediaobject role="html">
            <imageobject>
              <imagedata fileref="images/morib_lib2.png" />
            </imageobject>
          </mediaobject>

          <mediaobject role="fo">
            <imageobject>
              <imagedata fileref="../images/morib_lib2.png" />
            </imageobject>
          </mediaobject>
        </figure>

        <sect3 xml:id="nullam">
          <title>Nullam dapibus</title>

          <para>Mauris et erat egestas libero volutpat vestibulum. Curabitur
            viverra iaculis quam. Nulla egestas dui eget odio. Nam dictum elit in
            massa. Phasellus nec elit. Maecenas bibendum. Lorem ipsum dolor sit
            amet, consectetuer adipiscing elit. Nullam dapibus, erat suscipit
            iaculis porta, turpis arcu laoreet elit, sed ultrices ligula risus eu
            velit. Phasellus risus lorem, vulputate vitae, ultricies id, elementum
            ut, quam. Donec augue dui, vestibulum vitae, vehicula venenatis,
            hendrerit venenatis, mi. Sed at libero eu tortor consequat aliquam.
            Donec odio lectus, scelerisque eget, auctor id, tincidunt ac, libero.
            Duis interdum hendrerit arcu. Pellentesque habitant morbi tristique
            senectus et netus et malesuada fames ac turpis egestas. Etiam
            tincidunt feugiat purus. Nulla suscipit libero et dui. Vestibulum
            dignissim urna a risus.
          </para>
        </sect3>
      </sect2>

      <sect2 xml:id="vestibulum">
        <title>Vestibulum ante</title>

        <para>Vestibulum ante ipsum primis in faucibus orci
          <indexterm 
              class="startofrange" xml:id="luctus">
            <primary>luctus</primary>

            <secondary>ultirce</secondary>
          </indexterm>
          luctus et ultrice
          <indexterm class="endofrange"
                     startref="luctus" />
          posuere cubilia Curae; Cras purus odio, faucibus
          et, euismod sollicitudin, vehicula eu, urna. Mauris tempor. Vivamus sit
          amet nisi vel dolor ultricies placerat. Nulla adipiscing feugiat erat.
          Pellentesque vulputate posuere pede. Ut id sem at neque commodo
          <indexterm>
            <primary>ultricie</primary>
          </indexterm>
          ultricies. Suspendisse sed enim. Nulla facilisi. Proin
          ullamcorper vestibulum tellus. Donec varius scelerisque eros.
          Pellentesque feugiat velit et neque. Proin urna neque, interdum sed,
          auctor sed, vulputate et, nunc. In cursus nisl. Etiam pharetra, nisl
          quis sagittis ultricies, sapien tellus tincidunt ante, in congue mauris
          enim eu metus. Suspendisse fringilla elementum libero. Cras nonummy sem
          mattis tellus. Praesent faucibus sem eu dui. Nam vel lacus vitae diam
          sollicitudin tristique. Nulla facilisi.
        </para>

        <para>Donec egestas nisl id neque. Nullam
          <indexterm>
            <primary>leo leo</primary>
          </indexterm>
          leo leo, bibendum sit amet, pellentesque sit amet,
          sagittis eu, nibh. Praesent malesuada dictum nunc. In interdum imperdiet
          felis. Cras rutrum leo sit amet odio. Mauris ultrices, augue sit amet
          lacinia sollicitudin, lorem leo euismod elit, in pharetra mauris augue
          id turpis. Vestibulum dictum sapien et sapien. Donec eleifend felis quis
          leo fringilla consequat. Mauris vitae dolor pretium velit tincidunt
          vehicula. Suspendisse facilisis rutrum urna. Proin viverra vulputate
          magna. Vivamus massa nibh, eleifend condimentum, elementum eget,
          lobortis nec, diam. Phasellus sollicitudin. Donec quis orci ornare felis
          cursus porta. Nullam purus lectus, fringilla eu, feugiat vel, tristique
          eu, est.
        </para>
      </sect2>
    </sect1>

    <sect1 xml:id="donec">
      <title>Donec eleifend</title>

      <para>Donec eleifend, justo ac interdum rutrum, massa ligula convallis
        tellus, quis elementum elit lectus eu sapien. Ut metus massa, vehicula ut,
        semper ut, eleifend eu, quam. Cras quis augue. Maecenas enim ante, cursus
        vestibulum, consectetuer et, dictum sit amet, dolor. Phasellus ultrices
        est id est. Maecenas scelerisque nisl quis eros. Vivamus rhoncus.
        Pellentesque habitant morbi tristique senectus et netus et malesuada fames
        ac turpis egestas. Mauris diam turpis, faucibus non, scelerisque sit amet,
        porttitor a, enim. Ut bibendum pulvinar neque.
      </para>

      <para>Pellentesque lacinia, eros at dapibus rhoncus, lectus magna pharetra
        sapien, sed convallis ligula mi a sapien. Donec tempor libero ut nibh.
        Quisque et lectus eu arcu iaculis rutrum. Donec et ligula. Integer gravida
        aliquam diam. Curabitur in augue non massa convallis accumsan. Mauris nisl
        neque, dictum quis, eleifend nec, ornare a, nisl. Praesent id elit. Mauris
        et leo at odio placerat iaculis. Morbi faucibus dictum nibh.
      </para>
    </sect1>

    <sect1 xml:id="pellentesque">
      <title>Pellentesque augue</title>

      <para>Quisque molestie dignissim urna. Donec mattis pellentesque augue.
        Nullam neque diam, bibendum ut, placerat nec, pharetra ac, eros. Sed
        libero risus, nonummy vitae, tincidunt a, blandit ut, tortor. Nulla quis
        libero. Vivamus ac ligula. Proin dignissim, orci ut mattis sodales, lectus
        ligula convallis libero, sed feugiat libero odio non massa. Sed elementum.
        Nullam id enim. Sed non arcu quis leo vulputate adipiscing. Nam et orci.
        Integer sed nunc. Maecenas sem turpis, pulvinar ac, volutpat non,
        ultricies rhoncus, tellus. Fusce porttitor. Nullam cursus odio vel nisi
        elementum elementum. Integer venenatis. Sed hendrerit, tortor a semper
        ultrices, lorem sapien lacinia erat, eu suscipit risus nisl id elit. In
        hac habitasse platea dictumst.
      </para>

      <para>Nulla facilisi. Morbi imperdiet varius ante. Proin enim est, tempus
        eget, laoreet eget, aliquet nec, pede. Aliquam justo risus, luctus vel,
        consectetuer in, sollicitudin in, lectus. Donec eu diam et dolor dapibus
        sagittis. Aliquam aliquam, neque eget imperdiet lobortis, turpis ligula
        elementum pede, eget sodales purus dui nec mi. Integer vel purus. Cras
        adipiscing lobortis arcu. Integer commodo. Curabitur pretium, purus a
        adipiscing vestibulum, lacus justo faucibus sapien, a sagittis est urna
        sit amet est. Nullam diam. Maecenas vulputate, lacus et adipiscing
        ultrices, tortor urna euismod arcu, in vestibulum quam nibh nec erat.
        Quisque bibendum lorem vitae diam. Nulla lobortis. Nam porttitor, nisl et
        convallis mollis, metus nisl euismod nisl, sed adipiscing tortor augue ut
        leo. Donec eleifend lorem quis tellus.
      </para>
    </sect1>
  </chapter>

  <chapter version="5.0" xml:id="duis" xmlns="http://docbook.org/ns/docbook"
           xmlns:xlink="http://www.w3.org/1999/xlink"
           xmlns:xi="http://www.w3.org/2001/XInclude"
           xmlns:svg="http://www.w3.org/2000/svg"
           xmlns:mml="http://www.w3.org/1998/Math/MathML"
           xmlns:html="http://www.w3.org/1999/xhtml"
           xmlns:db="http://docbook.org/ns/docbook">
    <db:info xml:id="duisegestas">
      <title>Duis egestas condimentum</title>

      <authorgroup>
        <author>
          <personname>
            <firstname>Petri</firstname>
            <surname>Mäkijärvi</surname>
          </personname>
        </author>

        <author>
          <personname>
            <firstname>Maxwell</firstname>
            <surname>Smart</surname>
          </personname>
        </author>
      </authorgroup>
      <pubdate>$Date: 2010/06/09 15:19:01 $</pubdate>

      <releaseinfo>$Revision: 1.3 $</releaseinfo>
    </db:info>

    <sect1 xml:id="x2_consectetuer">
      <title>Maecenas at enim</title>

      <para>Aliquam erat volutpat, consectetuer adipiscing elit.
        <indexterm>
          <primary>Curabitur</primary>

          <secondary>urna</secondary>

          <seealso>Consectetuer</seealso>
        </indexterm>
        Curabitur urna. Maecenas eu nisi faucibus risus ornare
        fringilla. Nam laoreet accumsan metus. Maecenas ac nunc non enim consequat
        ultrices. Duis egestas condimentum velit. Nulla scelerisque. Nulla turpis.
        Nam ante tortor, convallis sit amet, commodo at, dignissim at, dolor.
        Proin sodales. Maecenas at enim. Aliquam nunc. Curabitur ullamcorper
        molestie neque. Aliquam erat volutpat. Sed non dui et tellus ultrices
        porttitor.
      </para>

      <para>Curabitur rutrum lobortis orci. Vivamus a urna. Nulla feugiat
        euismod massa. In odio quam, posuere at, mattis at, pretium quis, nisi.
        Sed eget nibh. Vestibulum ante enim, mattis at, mollis eu, ullamcorper sit
        amet, augue. Mauris quam massa, vestibulum rhoncus, bibendum eget,
        adipiscing at, enim. Sed pharetra. Praesent ac nibh id massa bibendum
        elementum. Sed urna nibh, pharetra in, dapibus at, tristique at, velit.
        Maecenas lectus. Pellentesque aliquet pharetra lacus. Aliquam et tellus.
        Aenean gravida tristique ipsum. Duis suscipit euismod dolor. Etiam
        facilisis mi nec risus. Nam non purus sed nibh cursus luctus. Morbi nunc
        sem, hendrerit eu, mattis sit amet, pulvinar nec, nulla. Duis lobortis
        metus ut orci. Curabitur facilisis.
      </para>

      <sect2 xml:id="x2_morbi">
        <title>Curabitur nulla orci</title>

        <para>Cum sociis natoque penatibus et magnis dis parturient montes,
          nascetur ridiculus mus
          <footnote>
            <para>Aenean in odio et dui vestibulum eleifend. Donec aliquet
              magna.
            </para>
          </footnote>
          . Curabitur nulla orci, porta eget, tincidunt dapibus,
          tincidunt sed, ligula. Nunc vel sapien. In nec diam fermentum purus
          tincidunt ullamcorper:
        </para>

        <para>Donec facilisis aliquet libero. Maecenas sem dui, scelerisque
          vitae, convallis at, gravida eu, purus. Proin quis nisl. Mauris ac purus
          eu dolor fringilla tempus. Aliquam elementum. In a neque. Praesent
          ipsum. Maecenas elementum magna sit amet eros. Praesent non
          sapien.
        </para>

        <sect3 xml:id="x2_nullam">
          <title>Maecenas bibendum</title>

          <para>Nulla facilisi. Morbi imperdiet varius ante. Proin enim est, tempus
            eget, laoreet eget, aliquet nec, pede. Aliquam justo risus, luctus vel,
            consectetuer in, sollicitudin in, lectus. Donec eu diam et dolor dapibus
            sagittis. Aliquam aliquam, neque eget imperdiet lobortis, turpis ligula
            elementum pede, eget sodales purus dui nec mi. Integer vel purus. Cras
            adipiscing lobortis arcu. Integer commodo. Curabitur pretium, purus a
            adipiscing vestibulum, lacus justo faucibus sapien, a sagittis est urna
            sit amet est. Nullam diam. Maecenas vulputate, lacus et adipiscing
            ultrices, tortor urna euismod arcu, in vestibulum quam nibh nec erat.
            Quisque bibendum lorem vitae diam. Nulla lobortis. Nam porttitor, nisl et
            convallis mollis, metus nisl euismod nisl, sed adipiscing tortor augue ut
            leo. Donec eleifend lorem quis tellus.
          </para>

          <para>Mauris et erat egestas libero volutpat vestibulum. Curabitur
            viverra iaculis quam. Nulla egestas dui eget odio. Nam dictum elit in
            massa. Phasellus nec elit. Maecenas bibendum. Lorem ipsum dolor sit
            amet, consectetuer adipiscing elit. Nullam dapibus, erat suscipit
            iaculis porta, turpis arcu laoreet elit, sed ultrices ligula risus eu
            velit. Phasellus risus lorem, vulputate vitae, ultricies id, elementum
            ut, quam. Donec augue dui, vestibulum vitae, vehicula venenatis,
            hendrerit venenatis, mi. Sed at libero eu tortor consequat aliquam.
            Donec odio lectus, scelerisque eget, auctor id, tincidunt ac, libero.
            Duis interdum hendrerit arcu. Pellentesque habitant morbi tristique
            senectus et netus et malesuada fames ac turpis egestas. Etiam
            tincidunt feugiat purus. Nulla suscipit libero et dui. Vestibulum
            dignissim urna a risus.
          </para>
        </sect3>
      </sect2>

      <sect2 xml:id="x2_vestibulum">
        <title>faucibus orci</title>

        <para>Vestibulum ante ipsum primis in faucibus orci
          <indexterm
              class="startofrange" xml:id="x2_luctus">
            <primary>luctus</primary>

            <secondary>ultirce</secondary>
          </indexterm>
          luctus et ultrice
          <indexterm class="endofrange"
                     startref="luctus" />
          posuere cubilia Curae; Cras purus odio, faucibus
          et, euismod sollicitudin, vehicula eu, urna. Mauris tempor. Vivamus sit
          amet nisi vel dolor ultricies placerat. Nulla adipiscing feugiat erat.
          Pellentesque vulputate posuere pede. Ut id sem at neque commodo
          <indexterm>
            <primary>ultricie</primary>
          </indexterm>
          ultricies. Suspendisse sed enim. Nulla facilisi. Proin
          ullamcorper vestibulum tellus. Donec varius scelerisque eros.
          Pellentesque feugiat velit et neque. Proin urna neque, interdum sed,
          auctor sed, vulputate et, nunc. In cursus nisl. Etiam pharetra, nisl
          quis sagittis ultricies, sapien tellus tincidunt ante, in congue mauris
          enim eu metus. Suspendisse fringilla elementum libero. Cras nonummy sem
          mattis tellus. Praesent faucibus sem eu dui. Nam vel lacus vitae diam
          sollicitudin tristique. Nulla facilisi.
        </para>

        <para>Donec egestas nisl id neque. Nullam
          <indexterm>
            <primary>leo leo</primary>
          </indexterm>
          leo leo, bibendum sit amet, pellentesque sit amet,
          sagittis eu, nibh. Praesent malesuada dictum nunc. In interdum imperdiet
          felis. Cras rutrum leo sit amet odio. Mauris ultrices, augue sit amet
          lacinia sollicitudin, lorem leo euismod elit, in pharetra mauris augue
          id turpis. Vestibulum dictum sapien et sapien. Donec eleifend felis quis
          leo fringilla consequat. Mauris vitae dolor pretium velit tincidunt
          vehicula. Suspendisse facilisis rutrum urna. Proin viverra vulputate
          magna. Vivamus massa nibh, eleifend condimentum, elementum eget,
          lobortis nec, diam. Phasellus sollicitudin. Donec quis orci ornare felis
          cursus porta. Nullam purus lectus, fringilla eu, feugiat vel, tristique
          eu, est.
        </para>
      </sect2>
    </sect1>

    <sect1 xml:id="x2_donec">
      <title>Maecenas scelerisque</title>

      <para>Donec eleifend, justo ac interdum rutrum, massa ligula convallis
        tellus, quis elementum elit lectus eu sapien. Ut metus massa, vehicula ut,
        semper ut, eleifend eu, quam. Cras quis augue. Maecenas enim ante, cursus
        vestibulum, consectetuer et, dictum sit amet, dolor. Phasellus ultrices
        est id est. Maecenas scelerisque nisl quis eros. Vivamus rhoncus.
        Pellentesque habitant morbi tristique senectus et netus et malesuada fames
        ac turpis egestas. Mauris diam turpis, faucibus non, scelerisque sit amet,
        porttitor a, enim. Ut bibendum pulvinar neque.
      </para>

      <para>Pellentesque lacinia, eros at dapibus rhoncus, lectus magna pharetra
        sapien, sed convallis ligula mi a sapien. Donec tempor libero ut nibh.
        Quisque et lectus eu arcu iaculis rutrum. Donec et ligula. Integer gravida
        aliquam diam. Curabitur in augue non massa convallis accumsan. Mauris nisl
        neque, dictum quis, eleifend nec, ornare a, nisl. Praesent id elit. Mauris
        et leo at odio placerat iaculis. Morbi faucibus dictum nibh.
      </para>
    </sect1>

    <sect1 xml:id="x2_pellentesque">
      <title>Dignissim urna</title>

      <para>Quisque molestie dignissim urna. Donec mattis pellentesque augue.
        Nullam neque diam, bibendum ut, placerat nec, pharetra ac, eros. Sed
        libero risus, nonummy vitae, tincidunt a, blandit ut, tortor. Nulla quis
        libero. Vivamus ac ligula. Proin dignissim, orci ut mattis sodales, lectus
        ligula convallis libero, sed feugiat libero odio non massa. Sed elementum.
        Nullam id enim. Sed non arcu quis leo vulputate adipiscing. Nam et orci.
        Integer sed nunc. Maecenas sem turpis, pulvinar ac, volutpat non,
        ultricies rhoncus, tellus. Fusce porttitor. Nullam cursus odio vel nisi
        elementum elementum. Integer venenatis. Sed hendrerit, tortor a semper
        ultrices, lorem sapien lacinia erat, eu suscipit risus nisl id elit. In
        hac habitasse platea dictumst.
      </para>

      <para>Nulla facilisi. Morbi imperdiet varius ante. Proin enim est, tempus
        eget, laoreet eget, aliquet nec, pede. Aliquam justo risus, luctus vel,
        consectetuer in, sollicitudin in, lectus. Donec eu diam et dolor dapibus
        sagittis. Aliquam aliquam, neque eget imperdiet lobortis, turpis ligula
        elementum pede, eget sodales purus dui nec mi. Integer vel purus. Cras
        adipiscing lobortis arcu. Integer commodo. Curabitur pretium, purus a
        adipiscing vestibulum, lacus justo faucibus sapien, a sagittis est urna
        sit amet est. Nullam diam. Maecenas vulputate, lacus et adipiscing
        ultrices, tortor urna euismod arcu, in vestibulum quam nibh nec erat.
        Quisque bibendum lorem vitae diam. Nulla lobortis. Nam porttitor, nisl et
        convallis mollis, metus nisl euismod nisl, sed adipiscing tortor augue ut
        leo. Donec eleifend lorem quis tellus.
      </para>
    </sect1>
  </chapter>

  <index xml:id="index" />
</book>
