<?xml version="1.0" encoding="UTF-8"?>
<chapter annotations="slide" version="5.0" xml:id="tdocSoftware"
         xmlns="http://docbook.org/ns/docbook"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:trans="http://docbook.org/ns/transclusion"
         xmlns:svg="http://www.w3.org/2000/svg"
         xmlns:m="http://www.w3.org/1998/Math/MathML"
         xmlns:html="http://www.w3.org/1999/xhtml"
         xmlns:db="http://docbook.org/ns/docbook">
  <title>Software</title>

  <section xml:id="tdocSoftFrontends">
    <title>Frontends</title>

    <section xml:id="chapTdocSoftwareDocmenta">
      <title><link xlink:href="http://docmenta.org">Docmenta</link></title>

      <mediaobject>
        <imageobject>
          <imagedata fileref="Ref/Screen/docmenta.png"/>
        </imageobject>
      </mediaobject>
    </section>

    <section xml:id="chapTdocSoftwareDocmentaDetail">
      <title>Docmenta details</title>

      <informaltable border="1">
        <colgroup width="16%"/>

        <colgroup width="84%"/>

        <tr>
          <th align="right">User Interface</th>

          <td>Browser</td>
        </tr>

        <tr>
          <th align="right">Output formats</th>

          <td>Webhelp, <xref linkend="glo_HTML"/>, <xref linkend="glo_PDF"/>,
          <xref linkend="glo_EPUB"/>, Docbook</td>
        </tr>

        <tr>
          <th align="right">Pros</th>

          <td>Easy installation + tutorial, translation + versioning support,
          collaborative editing</td>
        </tr>

        <tr>
          <th align="right">Cons</th>

          <td>No link consistency checks</td>
        </tr>
      </informaltable>
    </section>

    <section xml:id="sectTdocXmlmindEditor">
      <title><link xlink:href="http://www.xmlmind.com/xmleditor">XMLMind
      Editor</link></title>

      <mediaobject>
        <imageobject>
          <imagedata fileref="Ref/Screen/xmlmind.png"/>
        </imageobject>
      </mediaobject>
    </section>

    <section xml:id="oxygenXMLAuthor">
      <title><link
      xlink:href="https://www.oxygenxml.com/xml_author.html">Oxygenxml
      Author</link></title>

      <mediaobject>
        <imageobject>
          <imagedata fileref="Ref/Screen/oxygenEditor.png"/>
        </imageobject>
      </mediaobject>
    </section>
  </section>

  <section xml:id="tdocSectBackends">
    <title>Backends</title>

    <section xml:id="tdocSectTexLatex">
      <title>TeX / LaTeX</title>

      <section xml:id="tdocSectLatexWorkflow">
        <title>Inverse editing</title>

        <mediaobject>
          <imageobject>
            <imagedata fileref="Ref/Screen/latexInverseEdit.svg"/>
          </imageobject>
        </mediaobject>
      </section>

      <section xml:id="tdocSectTexRepresentation">
        <title>Document representation</title>

        <mediaobject>
          <imageobject>
            <imagedata fileref="Ref/Screen/latexLoopExample.png"/>
          </imageobject>
        </mediaobject>
      </section>

      <section xml:id="tdocSectTexComponents">
        <title>Components</title>

        <informaltable border="1">
          <tr>
            <td valign="top"><itemizedlist>
                <listitem>
                  <para>TeX compiler</para>
                </listitem>

                <listitem>
                  <para>LaTeX macros</para>
                </listitem>

                <listitem>
                  <para><link xlink:href="https://www.ctan.org">CTAN</link>
                  extensions</para>
                </listitem>

                <listitem>
                  <para><link
                  xlink:href="http://www.bibtex.org/Using/#content">BibTeX</link></para>
                </listitem>
              </itemizedlist></td>

            <td valign="top"><itemizedlist>
                <listitem>
                  <para><link
                  xlink:href="https://www.sharelatex.com/learn/Indices#Introduction">Makeindex</link></para>
                </listitem>

                <listitem>
                  <para><link
                  xlink:href="https://en.wikipedia.org/wiki/Metafont#Example">MetaFont</link></para>
                </listitem>

                <listitem>
                  <para>Html converter</para>
                </listitem>

                <listitem>
                  <para>more in the universe ...</para>
                </listitem>
              </itemizedlist></td>
          </tr>
        </informaltable>
      </section>

      <section xml:id="tdocBibtex">
        <title>BibTeX</title>

        <mediaobject>
          <imageobject>
            <imagedata fileref="Ref/Screen/bibtexProcessing.svg"/>
          </imageobject>
        </mediaobject>
      </section>

      <section xml:id="tdocMakeindexExample">
        <title>Makeindex example</title>

        <programlisting language="tex">\documentclass{article}
\usepackage[utf8]{inputenc}
<emphasis role="bold">\usepackage{imakeidx}
\makeindex</emphasis>
 
\begin{document}
 
\section{Introduction}
In this example several keywords\index{keywords} will be used 
which are important and deserve to appear in the Index\index{Index}.
 
Terms like generate\index{generate} and some\index{others} will 
also show up. 
 
<emphasis role="bold">\printindex</emphasis>
 
\end{document}</programlisting>
      </section>

      <section xml:id="tdocMakeindexWorkflow">
        <title>Makeindex workflow</title>

        <mediaobject>
          <imageobject>
            <imagedata fileref="Ref/Screen/makeindexProcessing.svg"/>
          </imageobject>
        </mediaobject>
      </section>

      <section xml:id="tdocSectLatexPackageExample">
        <title>Extension example: <link
        xlink:href="https://www.ctan.org/pkg/musixtex">MusiXTeX</link></title>

        <mediaobject>
          <imageobject>
            <imagedata fileref="Ref/Screen/musixtex.png"/>
          </imageobject>
        </mediaobject>
      </section>
    </section>

    <section xml:id="tdocSectDocbook">
      <title>Docbook</title>

      <section xml:id="tdocSectDocbookRepresentation">
        <title>Document representation</title>

        <programlisting language="xml">&lt;section version="5.0" 
  xmlns="http://docbook.org/ns/docbook"
  ...&gt;

  &lt;title&gt;A Title&lt;/title&gt;

  &lt;para&gt;A paragraph&lt;/para&gt;
&lt;/section&gt;</programlisting>
      </section>

      <section xml:id="tdocSectExampleSoftCallout">
        <title>Softeware centric</title>

        <para>Software specific support:</para>

        <mediaobject>
          <imageobject>
            <imagedata fileref="Ref/Screen/docbookExampleCallout.png"/>
          </imageobject>
        </mediaobject>
      </section>

      <section xml:id="tdocSectDocbookFlavours">
        <title>Flavours</title>

        <itemizedlist>
          <listitem>
            <para>Docbook 4.X</para>

            <para>Document oriented, based on DTD</para>
          </listitem>

          <listitem>
            <para>Docbook 5.0.X</para>

            <para>Document oriented, based on <link
            xlink:href="http://relaxng.org">RelaxNG</link></para>
          </listitem>

          <listitem>
            <para>Docbook 5.1</para>

            <para>Introducing topics</para>
          </listitem>
        </itemizedlist>
      </section>

      <section xml:id="tdocSectDocbookComponents">
        <title>Components</title>

        <informaltable border="1">
          <tr valign="top">
            <td valign="top"><formalpara>
                <title>Schema</title>

                <para><itemizedlist>
                    <listitem>
                      <para>Docbook 4.x: DTD</para>
                    </listitem>

                    <listitem>
                      <para>Docbook 5.x: RelaxNG</para>
                    </listitem>
                  </itemizedlist></para>
              </formalpara></td>

            <td valign="top"><formalpara>
                <title>XSL style sheets</title>

                <para><itemizedlist>
                    <listitem>
                      <para>HTML</para>

                      <itemizedlist>
                        <listitem>
                          <para>(X)Html 5</para>
                        </listitem>

                        <listitem>
                          <para>Webhelp</para>
                        </listitem>

                        <listitem>
                          <para><link
                          xlink:href="http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fua_help_content.htm&amp;cp=2_0_19_1_1">Eclipse
                          help</link></para>
                        </listitem>

                        <listitem>
                          <para><link
                          xlink:href="http://idpf.org/epub/30">Epub</link></para>
                        </listitem>
                      </itemizedlist>
                    </listitem>

                    <listitem>
                      <para>PDF using Formatting objects</para>
                    </listitem>
                  </itemizedlist></para>
              </formalpara></td>
          </tr>
        </informaltable>
      </section>

      <section xml:id="tdocSectDocbookTargets">
        <title>Document targets</title>

        <mediaobject>
          <imageobject>
            <imagedata fileref="Ref/Screen/docbook2other.svg"/>
          </imageobject>
        </mediaobject>
      </section>

      <section xml:id="tdocSectDocbookConfigLayer">
        <title>Configuration Layer</title>

        <mediaobject>
          <imageobject>
            <imagedata fileref="Ref/Screen/docbookConfigLayers.svg"/>
          </imageobject>
        </mediaobject>
      </section>

      <section xml:id="tdocSectParamXsl">
        <title><filename>param.xsl</filename>.</title>

        <itemizedlist>
          <listitem>
            <para>XSL transformation <link
            xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/param.html">configuration
            parameters</link>.</para>
          </listitem>

          <listitem>
            <para>Separate categories:</para>

            <itemizedlist>
              <listitem>
                <para><link
                xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/html">HTML</link></para>
              </listitem>

              <listitem>
                <para><link
                xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/fo">FO</link></para>
              </listitem>

              <listitem>
                <para><link
                xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/slides">Slides</link></para>
              </listitem>

              <listitem>
                <para><link
                xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/website">Website</link></para>
              </listitem>
            </itemizedlist>
          </listitem>

          <listitem>
            <para>Tool support (Xmlmind,...)</para>
          </listitem>
        </itemizedlist>

        <section xml:id="tdocSectUseIdAsFilenameZero">
          <title>Link stability</title>

          <informaltable border="1">
            <colgroup width="64%"/>

            <colgroup width="36%"/>

            <tr>
              <td><programlisting language="xml">&lt;book ...&gt;
  &lt;title&gt;XML for Newbies&lt;/title&gt;
  &lt;chapter xml:id="<emphasis role="bold">intro</emphasis>"&gt;
    &lt;title&gt;Introduction&lt;/title&gt;
    &lt;para&gt;...&lt;/para&gt;
  &lt;/chapter xml:id="<emphasis role="bold">general</emphasis>"&gt;
  &lt;chapter&gt;
    &lt;title&gt;General remarks&lt;/title&gt;
    &lt;para&gt;...&lt;/para&gt;
  &lt;/chapter&gt;
&lt;/book&gt;</programlisting></td>

              <td><formalpara>
                  <title>Navigation structure</title>

                  <para><itemizedlist>
                      <listitem>
                        <para>Index.html</para>
                      </listitem>

                      <listitem>
                        <para>Per chapter:</para>

                        <itemizedlist>
                          <listitem>
                            <para><emphasis
                            role="bold">ch01</emphasis>.html</para>
                          </listitem>

                          <listitem>
                            <para><emphasis
                            role="bold">ch02</emphasis>.html</para>
                          </listitem>
                        </itemizedlist>
                      </listitem>
                    </itemizedlist></para>
                </formalpara></td>
            </tr>
          </informaltable>

          <para>Synthetically generated filenames.</para>
        </section>

        <section xml:id="tdocSectUseIdAsFilename">
          <title><parameter>use.id.as.filename</parameter></title>

          <informaltable border="1">
            <colgroup width="64%"/>

            <colgroup width="36%"/>

            <tr>
              <td><programlisting language="xml">&lt;book ...&gt;
  &lt;title&gt;XML for Newbies&lt;/title&gt;
  &lt;chapter xml:id="<emphasis role="bold">intro</emphasis>"&gt;
    &lt;title&gt;Introduction&lt;/title&gt;
    &lt;para&gt;...&lt;/para&gt;
  &lt;/chapter&gt;
  &lt;chapter xml:id="<emphasis role="bold">general</emphasis>"&gt;
    &lt;title&gt;General remarks&lt;/title&gt;
    &lt;para&gt;...&lt;/para&gt;
  &lt;/chapter&gt;
&lt;/book&gt;</programlisting></td>

              <td><formalpara>
                  <title>Navigation structure</title>

                  <para><itemizedlist>
                      <listitem>
                        <para>Index.html</para>
                      </listitem>

                      <listitem>
                        <para>Per chapter:</para>

                        <itemizedlist>
                          <listitem>
                            <para><emphasis
                            role="bold">intro</emphasis>.html</para>
                          </listitem>

                          <listitem>
                            <para><emphasis
                            role="bold">general</emphasis>.html</para>
                          </listitem>
                        </itemizedlist>
                      </listitem>
                    </itemizedlist></para>
                </formalpara></td>
            </tr>
          </informaltable>

          <para>Providing link stability.</para>
        </section>

        <section xml:id="tdocSectDocbookCalloutUnicode">
          <title><parameter>callout.unicode</parameter> /
          <parameter>callout.graphics</parameter></title>

          <mediaobject>
            <imageobject>
              <imagedata fileref="Ref/Screen/calloutGraphicsEnabled.png"/>
            </imageobject>
          </mediaobject>

          <para>See <link
          xlink:href="/webhelp/sda1SectFunctionalBasics.html">Functional
          Basiscs</link></para>
        </section>
      </section>

      <section xml:id="tdocSectXslConfigLayer">
        <title>Xslt mods</title>

        <para>Modifying stock <productname>Docbook</productname>
        stylesheets:</para>

        <programlisting language="xml">&lt;xsl:stylesheet ...&gt;

&lt;!-- standard stylesheets --&gt;
&lt;xsl:import href="webhelp.xsl"/&gt;

&lt;!-- local modifications --&gt;
&lt;xsl:include href="hdmextensions.xsl"/&gt;

&lt;/xsl:stylesheet&gt;</programlisting>

        <section xml:id="tdocSectXslModExamples">
          <title>Categories</title>

          <informaltable border="1">
            <tr>
              <td><itemizedlist>
                  <listitem>
                    <para>Adding Javascript</para>

                    <itemizedlist>
                      <listitem>
                        <para>Touch gestures</para>
                      </listitem>

                      <listitem>
                        <para>Dynamic elements</para>
                      </listitem>
                    </itemizedlist>
                  </listitem>

                  <listitem>
                    <para>Embedded objects</para>

                    <itemizedlist>
                      <listitem>
                        <para>Videos</para>
                      </listitem>

                      <listitem>
                        <para>MathML / LaTeX</para>
                      </listitem>
                    </itemizedlist>
                  </listitem>
                </itemizedlist></td>

              <td><itemizedlist>
                  <listitem>
                    <para>Headers and footers</para>

                    <itemizedlist>
                      <listitem>
                        <para>Company logo</para>
                      </listitem>

                      <listitem>
                        <para>Navigation icons</para>
                      </listitem>
                    </itemizedlist>
                  </listitem>

                  <listitem>
                    <para>Frontpage</para>
                  </listitem>
                </itemizedlist></td>
            </tr>
          </informaltable>
        </section>

        <section xml:id="tdocSectXslModExample">
          <title>Example: videos</title>

          <programlisting language="xml">  &lt;xsl:template match="d:videodata"&gt;
    &lt;video controls="controls" preload="auto"&gt;
      &lt;xsl:attribute name="title"&gt;
        &lt;xsl:value-of select="normalize-space(../../../d:title)"/&gt;
      &lt;/xsl:attribute&gt;

      &lt;xsl:variable name="imageFilename"&gt;
        &lt;xsl:call-template name="mediaobject.filename"&gt;
          &lt;xsl:with-param name="object" select=".."/&gt;
        &lt;/xsl:call-template&gt;
      &lt;/xsl:variable&gt;

      &lt;source src="{$imageFilename}" type='video/mp4' /&gt;
      &lt;source src="{$imageFilename}.ogv"/&gt;
    &lt;/video&gt;
  &lt;/xsl:template&gt;</programlisting>
        </section>
      </section>

      <section xml:id="tdocSectConfigLayerCss">
        <title>CSS mods</title>

        <para>Pretty much standard CSS:</para>

        <programlisting language="css">div.example &gt; p.title,
div.figure &gt; p.title,
div.table &gt; p.title,
div.procedure &gt; p.title,
div.equation &gt; p.title {
    color: #394986;
    font-weight: bold;
}</programlisting>
      </section>

      <section xml:id="tdocSectDocbookEditors">
        <title>Editors</title>

        <itemizedlist>
          <listitem>
            <para><link xlink:href="http://www.xmlmind.com/xmleditor">XMLMind
            Editor</link></para>
          </listitem>

          <listitem>
            <para><link
            xlink:href="http://oxygenxml.com/#bidx-xml-author">Oxygen XML
            Author</link></para>
          </listitem>

          <listitem>
            <para><link
            xlink:href="https://www.emacswiki.org/emacs/UsingNxmlModeWithDocBook">Emacs
            Nxml mode</link></para>
          </listitem>
        </itemizedlist>
      </section>

      <section xml:id="tdocSectDocbookSchematron">
        <title>Schematron</title>

        <para/>
      </section>
    </section>
  </section>
</chapter>