Index: stylesheets/lfs-xsl/docbook-xsl-1.78.1/template/titlepage.xml
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-1.78.1/template/titlepage.xml	(revision b1a51ac18a0ba70461444d4780d9fcdee3b5ce6d)
+++ stylesheets/lfs-xsl/docbook-xsl-1.78.1/template/titlepage.xml	(revision b1a51ac18a0ba70461444d4780d9fcdee3b5ce6d)
@@ -0,0 +1,478 @@
+<?xml version="1.0"?>
+
+<reference xml:id="template"><?dbhtml dir="template"?><?dbhtml filename="index.html"?>
+  
+  
+  <info>
+    <title>Titlepage Template Stylesheet Reference</title>
+    <releaseinfo role="meta">
+      $Id: titlepage.xsl 9600 2012-09-11 12:12:09Z kosek $
+    </releaseinfo>
+  </info>
+  <partintro xml:id="intro_partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the
+      “titlepage” templates in the DocBook XSL Stylesheets.</para>
+
+    
+<para>This is not intended to be user documentation.  It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="templates">
+<refnamediv>
+<refname>t:templates</refname>
+<refpurpose>Construct a stylesheet for the templates provided</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:templates"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The <literal>t:templates</literal> element is the root of a
+set of templates. This template creates an appropriate
+<literal>xsl:stylesheet</literal> for the templates.</para>
+
+
+
+<para>If the <literal>t:templates</literal> element has a
+<literal>base-stylesheet</literal> attribute, an
+<literal>xsl:import</literal> statement is constructed for it.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star">
+<refnamediv>
+<refname>xsl:*</refname>
+<refpurpose>Copy xsl: elements straight through</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="xsl:*"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template simply copies the xsl: elements
+straight through into the result tree.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage">
+<refnamediv>
+<refname>t:titlepage</refname>
+<refpurpose>Create the templates necessary to construct a title page</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The <literal>t:titlepage</literal> element creates a set of
+templates for processing the titlepage for an element. The
+<quote>root</quote> of this template set is the template named
+<quote><literal>wrapper.titlepage</literal></quote>. That is the
+template that should be called to generate the title page.
+</para>
+
+
+
+<para>The <literal>t:titlepage</literal> element has three attributes:
+
+
+<variablelist>
+<varlistentry><term>element</term>
+<listitem>
+<para>The name of the source document element for which
+these templates apply. In other words, to make a title page for the
+<tag>article</tag> element, set the
+<tag class="attribute">element</tag> attribute to
+<quote><literal>article</literal></quote>. This attribute is required.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>wrapper</term>
+<listitem>
+<para>The entire title page can be wrapped with an element.
+This attribute identifies that element.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>class</term>
+<listitem>
+<para>If the <tag class="attribute">class</tag> attribute
+is set, a <tag class="attribute">class</tag> attribute with this
+value will be added to the wrapper element that surrounds the entire
+title page.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</para>
+
+
+
+<para>Any other attributes are copied through literally to the
+wrapper element.</para>
+
+
+
+<para>The content of a <literal>t:titlepage</literal> is one or
+more <literal>t:titlepage-content</literal>,
+<literal>t:titlepage-separator</literal>, and
+<literal>t:titlepage-before</literal> elements.</para>
+
+
+
+<para>Each of these elements may be provided for the <quote>recto</quote>
+and <quote>verso</quote> sides of the title page.</para>
+
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_copy.literal.atts">
+<refnamediv>
+<refname>@* (in copy.literal.atts mode)</refname>
+<refpurpose>Copy t:titlepage attributes</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="@*" mode="copy.literal.atts"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template copies all of the <quote>other</quote> attributes
+from a <literal>t:titlepage</literal> element onto the specified
+wrapper.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-content">
+<refnamediv>
+<refname>t:titlepage-content</refname>
+<refpurpose>Create templates for the content of one side of a title page</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage-content"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The title page content, that is, the elements from the source
+document that are rendered on the title page, can be controlled independently
+for the recto and verso sides of the title page.</para>
+
+
+
+<para>The <literal>t:titlepage-content</literal> element has two attributes:
+
+
+<variablelist>
+<varlistentry><term>side</term>
+<listitem>
+<para>Identifies the side of the page to which this title
+page content applies. The
+<tag class="attribute">side</tag> attribute is required and
+must be set to either 
+<quote><literal>recto</literal></quote> or
+<quote><literal>verso</literal></quote>. In addition, you must specify
+exactly one <literal>t:titlepage-content</literal> for each side
+within each <literal>t:titlepage</literal>.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>order</term>
+<listitem>
+<para>Indicates how the order of the elements presented on
+the title page is determined. If the
+<tag class="attribute">order</tag> is
+<quote><literal>document</literal></quote>, the elements are presented
+in document order. Otherwise (if the
+<tag class="attribute">order</tag> is
+<quote><literal>stylesheet</literal></quote>), the elements are presented
+in the order that they appear in the template (and consequently in
+the stylesheet).</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</para>
+
+
+
+<para>The content of a <literal>t:titlepage-content</literal> element is
+a list of element names. These names should be unqualified.  They identify
+the elements in the source document that should appear on the title page.
+</para>
+
+
+
+<para>Each element may have a single attribute:
+<tag class="attribute">predicate</tag>. The value of this
+attribute is used as a predicate for the expression that matches
+the element on which it occurs.</para>
+
+
+
+<para>In other words, to put only the first three authors on the
+recto-side of a title
+page, you could specify:
+
+<screen>
+  &lt;t:titlepage-contents side="recto"&gt;
+    &lt;!-- other titlepage elements --&gt;
+    &lt;author predicate="[count(previous-sibling::author)&lt;2]"/&gt;
+    &lt;!-- other titlepage elements --&gt;
+  &lt;/t:titlepage-contents&gt;
+</screen>
+</para>
+
+
+
+<para>Usually, the elements so named are empty. But it is possible to
+make one level of selection within them. Suppose that you want to
+process <literal>authorgroup</literal> elements on the title page, but
+you want to select only proper authors, editors, or corporate authors,
+not collaborators or other credited authors.</para>
+
+
+
+<para>In that case, you can put a <literal>t:or</literal> group inside
+the <literal>authorgroup</literal> element:
+
+<screen>
+  &lt;t:titlepage-contents side="recto"&gt;
+    &lt;!-- other titlepage elements --&gt;
+    &lt;authorgroup&gt;
+      &lt;t:or&gt;
+        &lt;author/&gt;
+        &lt;editor/&gt;
+        &lt;corpauthor/&gt;
+      &lt;/t:or&gt;
+    &lt;/authorgroup&gt;
+    &lt;!-- other titlepage elements --&gt;
+  &lt;/t:titlepage-contents&gt;
+</screen>
+</para>
+
+
+
+<para>This will have the effect of automatically generating a template
+for processing <literal>authorgroup</literal>s in the title page mode,
+selecting only the specified children. If you need more complex processing,
+you'll have to construct the templates by hand.</para>
+
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-separator">
+<refnamediv>
+<refname>t:titlepage-separator</refname>
+<refpurpose>Create templates for the separator</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage-separator"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The title page is separated from the content which follows it by
+the markup specified in the <literal>t:titlepage-separator</literal>
+element.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-before">
+<refnamediv>
+<refname>t:titlepage-before</refname>
+<refpurpose>Create templates for what precedes a title page</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage-before"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>Each side of the title page is preceded by the markup specified
+in the <literal>t:titlepage-before</literal> element for that
+side.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_copy">
+<refnamediv>
+<refname>* (in copy mode)</refname>
+<refpurpose>Copy elements</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="copy"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template simply copies the elements that it applies to
+straight through into the result tree.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_copy">
+<refnamediv>
+<refname>@* (in copy mode)</refname>
+<refpurpose>Copy attributes</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="@*" mode="copy"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template simply copies the attributes that it applies to
+straight through into the result tree.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_document.order">
+<refnamediv>
+<refname>* (in document.order mode)</refname>
+<refpurpose>Create rules to process titlepage elements in document order</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="document.order"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process all of the children of the
+<literal>t:titlepage-content</literal> element. It creates the hairy
+select expression necessary to process each of those elements in
+the title page.</para>
+
+
+
+<para>Note that this template automatically handles the case where
+some DocBook elements, like title and subtitle, can occur both inside
+the *info elements where metadata is usually stored and outside.
+</para>
+
+
+
+<para>It also automatically calculates the name for the *info container
+and handles elements that have historically had containers with different
+names.</para>
+
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_document.order">
+<refnamediv>
+<refname>* (in document.order mode)</refname>
+<refpurpose>Create rules to process titlepage elements in stylesheet order</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="document.order"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process all of the children of the
+<literal>t:titlepage-content</literal> element. It creates the set
+of <literal>xsl:apply-templates</literal> elements necessary
+process each of those elements in the title page.</para>
+
+
+
+<para>Note that this template automatically handles the case where
+some DocBook elements, like title and subtitle, can occur both inside
+the *info elements where metadata is usually stored and outside.
+</para>
+
+
+
+<para>It also automatically calculates the name for the *info container
+and handles elements that have historically had containers with different
+names.</para>
+
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_titlepage.specialrules">
+<refnamediv>
+<refname>* (in titlepage.specialrules mode)</refname>
+<refpurpose>Create templates for special rules</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="titlepage.specialrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process all of the descendants of the
+<literal>t:titlepage-content</literal> element that require special
+processing. At present, that's just <literal>t:or</literal> elements.
+</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_titlepage.subrules">
+<refnamediv>
+<refname>* (in titlepage.subrules mode)</refname>
+<refpurpose>Create template for individual special rules</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="titlepage.subrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process the children of special
+template elements.
+</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="or">
+<refnamediv>
+<refname>t:or</refname>
+<refpurpose>Process the t:or special rule</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:or"/&gt;&lt;xsl:template match="t:or" mode="titlepage.subrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template processes t:or.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="or_in_titlepage.subrules">
+<refnamediv>
+<refname>t:or (in titlepage.subrules mode)</refname>
+<refpurpose>Process the t:or special rule in
+titlepage.subrules mode</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:or" mode="titlepage.subrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The titlepage.subrules mode doesn't apply to t:or, so just
+reprocess this node in the normal mode.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.element-or-list">
+<refnamediv>
+<refname>element-or-list</refname>
+<refpurpose>Construct the "or-list" used in the select attribute for
+special rules.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="element-or-list"&gt;
+&lt;xsl:param name="elements" select="*"/&gt;
+&lt;xsl:param name="element.count" select="count($elements)"/&gt;
+&lt;xsl:param name="count" select="1"/&gt;
+&lt;xsl:param name="orlist"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>Walk through each of the children of t:or, producing the
+text of the select attribute.</para>
+
+</refsect1></refentry>
+</reference>
+
