<?xml version="1.0" encoding="ASCII"?>
<book version="5.0">
  <info>
    <title>Manpages Parameter Reference</title>
    <releaseinfo role="meta">
      $Id$
    </releaseinfo>
    <author>
      <orgname>The DocBook Project</orgname>
    </author>
    <copyright>
      <year>2005-2011</year>
      <holder>The DocBook Project</holder>
    </copyright>
    <abstract>
      <para>This is reference documentation for all user-configurable
      parameters in the DocBook XSL "manpages" stylesheet (for
      generating groff/nroff output). Note that the manpages
      stylesheet is a customization layer of the DocBook XSL HTML
      stylesheet. Therefore, you can also use a number of <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../html/">HTML stylesheet parameters</link>
      to control manpages output (in addition to the
      manpages-specific parameters listed in this section).</para>
    </abstract>
  </info>
  <reference xml:id="general">
  <title>Hyphenation, justification, and breaking</title>
<refentry version="5.0" xml:id="man.hyphenate">
<refmeta>
<refentrytitle>man.hyphenate</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.hyphenate</refname>
<refpurpose>Enable hyphenation?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.hyphenate.frag">
&lt;xsl:param name="man.hyphenate"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If non-zero, hyphenation is enabled.</para>

<note>
<para>The default value for this parameter is zero because groff is
not particularly smart about how it does hyphenation; it can end up
hyphenating a lot of things that you don't want hyphenated. To
mitigate that, the default behavior of the stylesheets is to suppress
hyphenation of computer inlines, filenames, and URLs. (You can
override the default behavior by setting non-zero values for the
<parameter>man.hyphenate.urls</parameter>,
<parameter>man.hyphenate.filenames</parameter>, and
<parameter>man.hyphenate.computer.inlines</parameter> parameters.) But
the best way is still to just globally disable hyphenation, as the
stylesheets do by default.</para>

<para>The only good reason to enabled hyphenation is if you have also
enabled justification (which is disabled by default). The reason is
that justified text can look very bad unless you also hyphenate it; to
quote the <quote>Hypenation</quote> node from the groff info page:

<blockquote>
  <para><emphasis>Since the odds are not great for finding a set of
  words, for every output line, which fit nicely on a line without
  inserting excessive amounts of space between words, 'gtroff'
  hyphenates words so that it can justify lines without inserting too
  much space between words.</emphasis></para>
</blockquote>

So, if you set a non-zero value for the
<parameter>man.justify</parameter> parameter (to enable
justification), then you should probably also set a non-zero value for
<parameter>man.hyphenate</parameter> (to enable hyphenation).</para>
</note>


</refsection>
</refentry>

<refentry version="5.0" xml:id="man.hyphenate.urls">
<refmeta>
<refentrytitle>man.hyphenate.urls</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.hyphenate.urls</refname>
<refpurpose>Hyphenate URLs?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.hyphenate.urls.frag">
&lt;xsl:param name="man.hyphenate.urls"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If zero (the default), hyphenation is suppressed for output of
the <tag>ulink</tag> <tag class="attribute">url</tag> attribute.</para>

<note>
  <para>If hyphenation is already turned off globally (that is, if
  <parameter>man.hyphenate</parameter> is zero, setting
  <parameter>man.hyphenate.urls</parameter> is not necessary.</para>
</note>

<para>If <parameter>man.hyphenate.urls</parameter> is non-zero, URLs
will not be treated specially and are subject to hyphenation just like
other words.</para>

<note>
  <para>If you are thinking about setting a non-zero value for
  <parameter>man.hyphenate.urls</parameter> in order to make long
  URLs break across lines, you'd probably be better off
  experimenting with setting the
  <parameter>man.break.after.slash</parameter> parameter first. That
  will cause long URLs to be broken after slashes.</para>
</note>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.hyphenate.filenames">
<refmeta>
<refentrytitle>man.hyphenate.filenames</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.hyphenate.filenames</refname>
<refpurpose>Hyphenate filenames?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.hyphenate.filenames.frag">
&lt;xsl:param name="man.hyphenate.filenames"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If zero (the default), hyphenation is suppressed for
<tag>filename</tag> output.</para>

<note>
  <para>If hyphenation is already turned off globally (that is, if
  <parameter>man.hyphenate</parameter> is zero, setting
  <parameter>man.hyphenate.filenames</parameter> is not
  necessary.</para>
</note>

<para>If <parameter>man.hyphenate.filenames</parameter> is non-zero,
filenames will not be treated specially and are subject to hyphenation
just like other words.</para>

<note>
  <para>If you are thinking about setting a non-zero value for
  <parameter>man.hyphenate.filenames</parameter> in order to make long
  filenames/pathnames break across lines, you'd probably be better off
  experimenting with setting the
  <parameter>man.break.after.slash</parameter> parameter first. That
  will cause long pathnames to be broken after slashes.</para>
</note>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.hyphenate.computer.inlines">
<refmeta>
<refentrytitle>man.hyphenate.computer.inlines</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.hyphenate.computer.inlines</refname>
<refpurpose>Hyphenate computer inlines?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.hyphenate.computer.inlines.frag">
&lt;xsl:param name="man.hyphenate.computer.inlines"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If zero (the default), hyphenation is suppressed for
<quote>computer inlines</quote> such as environment variables,
constants, etc. This parameter current affects output of the following
elements:
<simplelist type="inline">
  
  <member><tag>classname</tag></member>
  <member><tag>constant</tag></member>
  <member><tag>envar</tag></member>
  <member><tag>errorcode</tag></member>
  <member><tag>option</tag></member>
  <member><tag>replaceable</tag></member>
  <member><tag>userinput</tag></member>
  <member><tag>type</tag></member>
  <member><tag>varname</tag></member>
</simplelist>
</para>

<note>
  <para>If hyphenation is already turned off globally (that is, if
  <parameter>man.hyphenate</parameter> is zero, setting the
  <parameter>man.hyphenate.computer.inlines</parameter> is not
  necessary.</para>
</note>

<para>If <parameter>man.hyphenate.computer.inlines</parameter> is
non-zero, computer inlines will not be treated specially and will be
hyphenated like other words when needed.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.justify">
<refmeta>
<refentrytitle>man.justify</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.justify</refname>
<refpurpose>Justify text to both right and left margins?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.justify.frag">
&lt;xsl:param name="man.justify"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If non-zero, text is justified to both the right and left
margins (or, in roff terminology, "adjusted and filled" to both the
right and left margins). If zero (the default), text is adjusted to
the left margin only -- producing what is traditionally called
"ragged-right" text.</para>

<note>
<para>The default value for this parameter is zero because justified
text looks good only when it is also hyphenated. Without hyphenation,
excessive amounts of space often end up getting between words, in
order to "pad" lines out to align on the right margin.</para>

<para>The problem is that groff is not particularly smart about how it
does hyphenation; it can end up hyphenating a lot of things that you
don't want hyphenated. So, disabling both justification and
hyphenation ensures that hyphens won't get inserted where you don't
want to them, and you don't end up with lines containing excessive
amounts of space between words.</para>

<para>However, if do you decide to set a non-zero value for the
<parameter>man.justify</parameter> parameter (to enable
justification), then you should probably also set a non-zero value for
<parameter>man.hyphenate</parameter> (to enable hyphenation).</para>

<para>Yes, these default settings run counter to how most existing man
pages are formatted. But there are some notable exceptions, such as
the <literal>perl</literal> man pages.</para>
</note>
</refsection>
</refentry>

<refentry version="5.0" xml:id="man.break.after.slash">
<refmeta>
<refentrytitle>man.break.after.slash</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.break.after.slash</refname>
<refpurpose>Enable line-breaking after slashes?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.break.after.slash.frag">
&lt;xsl:param name="man.break.after.slash"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If non-zero, line-breaking after slashes is enabled. This is
mainly useful for causing long URLs or pathnames/filenames to be
broken up or "wrapped" across lines (though it also has the side
effect of sometimes causing relatively short URLs and pathnames to be
broken up across lines too).</para>

<para>If zero (the default), line-breaking after slashes is
disabled. In that case, strings containing slashes (for example, URLs
or filenames) are not broken across lines, even if they exceed the
maximum column widith.</para>

<warning>
  <para>If you set a non-zero value for this parameter, check your
  man-page output carefuly afterwards, in order to make sure that the
  setting has not introduced an excessive amount of breaking-up of URLs
  or pathnames. If your content contains mostly short URLs or
  pathnames, setting a non-zero value for
  <parameter>man.break.after.slash</parameter> will probably result in
  in a significant number of relatively short URLs and pathnames being
  broken across lines, which is probably not what you want.</para>
</warning>

</refsection>
</refentry>

  </reference>
  <reference xml:id="indent">
  <title>Indentation</title>
<refentry version="5.0" xml:id="man.indent.width">
<refmeta>
<refentrytitle>man.indent.width</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.indent.width</refname>
<refpurpose>Specifies width used for adjusted indents</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.indent.width.frag">
&lt;xsl:param name="man.indent.width"&gt;4&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>
<para>The <parameter>man.indent.width</parameter> parameter specifies
the width used for adjusted indents. The value of
<parameter>man.indent.width</parameter> is used for indenting of
lists, verbatims, headings, and elsewhere, depending on whether the
values of certain <literal>man.indent.*</literal> boolean parameters
are non-zero.</para>

<para>The value of <parameter>man.indent.width</parameter> should
include a valid roff measurement unit (for example,
<literal>n</literal> or <literal>u</literal>). The default value of
<literal>4n</literal> specifies a 4-en width; when viewed on a
console, that amounts to the width of four characters. For details
about roff measurment units, see the <literal>Measurements</literal>
node in the groff info page.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.indent.refsect">
<refmeta>
<refentrytitle>man.indent.refsect</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.indent.refsect</refname>
<refpurpose>Adjust indentation of refsect* and refsection?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.indent.refsect.frag">
&lt;xsl:param name="man.indent.refsect" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>man.indent.refsect</parameter> is
non-zero, the width of the left margin for
<tag>refsect1</tag>, <tag>refsect2</tag> and
<tag>refsect3</tag> contents and titles (and first-level,
second-level, and third-level nested
<tag>refsection</tag>instances) is adjusted by the value of
the <parameter>man.indent.width</parameter> parameter. With
<parameter>man.indent.width</parameter> set to its default value of
<literal>3n</literal>, the main results are that:

<itemizedlist>
  <listitem>
    <para>contents of <tag>refsect1</tag> are output with a
    left margin of three characters instead the roff default of seven
    or eight characters</para>
  </listitem>
  <listitem>
    <para>contents of <tag>refsect2</tag> are displayed in
    console output with a left margin of six characters instead the of
    the roff default of seven characters</para>
  </listitem>
  <listitem>
    <para> the contents of <tag>refsect3</tag> and nested
    <tag>refsection</tag> instances are adjusted
    accordingly.</para>
  </listitem>
</itemizedlist>

If instead the value of <parameter>man.indent.refsect</parameter> is
zero, no margin adjustment is done for <literal>refsect*</literal>
output.</para>

<tip>
  <para>If your content is primarly comprised of
  <tag>refsect1</tag> and <tag>refsect2</tag> content
  (or the <tag>refsection</tag> equivalent)&#160;&#8211; with few or
  no <tag>refsect3</tag> or lower nested sections , you may be
  able to &#8220;conserve&#8221; space in your output by setting
  <parameter>man.indent.refsect</parameter> to a non-zero value. Doing
  so will &#8220;squeeze&#8221; the left margin in such as way as to provide an
  additional four characters of &#8220;room&#8221; per line in
  <tag>refsect1</tag> output. That extra room may be useful
  if, for example, you have many verbatim sections with long lines in
  them.</para>
</tip>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.indent.blurbs">
<refmeta>
<refentrytitle>man.indent.blurbs</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.indent.blurbs</refname>
<refpurpose>Adjust indentation of blurbs?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.indent.blurbs.frag">
&lt;xsl:param name="man.indent.blurbs" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>man.indent.blurbs</parameter> is
non-zero, the width of the left margin for
<tag>authorblurb</tag>, <tag>personblurb</tag>, and
<tag>contrib</tag> output is set to the value of the
<parameter>man.indent.width</parameter> parameter
(<literal>3n</literal> by default). If instead the value of
<parameter>man.indent.blurbs</parameter> is zero, the built-in roff
default width (<literal>7.2n</literal>) is used.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.indent.lists">
<refmeta>
<refentrytitle>man.indent.lists</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.indent.lists</refname>
<refpurpose>Adjust indentation of lists?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.indent.lists.frag">
&lt;xsl:param name="man.indent.lists" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>man.indent.lists</parameter> is
non-zero, the width of the left margin for list items in
<tag>itemizedlist</tag>,
<tag>orderedlist</tag>,
<tag>variablelist</tag> output (and output of some other
lists) is set to the value of the
<parameter>man.indent.width</parameter> parameter
(<literal>4n</literal> by default). If instead the value of
<parameter>man.indent.lists</parameter> is zero, the built-in roff
default width (<literal>7.2n</literal>) is used.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.indent.verbatims">
<refmeta>
<refentrytitle>man.indent.verbatims</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.indent.verbatims</refname>
<refpurpose>Adjust indentation of verbatims?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.indent.verbatims.frag">
&lt;xsl:param name="man.indent.verbatims" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>man.indent.verbatims</parameter> is
non-zero, the width of the left margin for output of verbatim
environments (<tag>programlisting</tag>,
<tag>screen</tag>, and so on) is set to the value of the
<parameter>man.indent.width</parameter> parameter
(<literal>3n</literal> by default). If instead the value of
<parameter>man.indent.verbatims</parameter> is zero, the built-in roff
default width (<literal>7.2n</literal>) is used.</para>

</refsection>
</refentry>

  </reference>
  <reference xml:id="fonts">
  <title>Fonts</title>
<refentry version="5.0" xml:id="man.font.funcprototype">
<refmeta>
<refentrytitle>man.font.funcprototype</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.font.funcprototype</refname>
<refpurpose>Specifies font for funcprototype output</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.font.funcprototype.frag">
  &lt;xsl:param name="man.font.funcprototype"&gt;BI&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The <parameter>man.font.funcprototype</parameter> parameter
specifies the font for <tag>funcprototype</tag> output. It
should be a valid roff font name, such as <literal>BI</literal> or
<literal>B</literal>.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.font.funcsynopsisinfo">
<refmeta>
<refentrytitle>man.font.funcsynopsisinfo</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.font.funcsynopsisinfo</refname>
<refpurpose>Specifies font for funcsynopsisinfo output</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.font.funcsynopsisinfo.frag">
  &lt;xsl:param name="man.font.funcsynopsisinfo"&gt;B&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The <parameter>man.font.funcsynopsisinfo</parameter> parameter
specifies the font for <tag>funcsynopsisinfo</tag> output. It
should be a valid roff font name, such as <literal>B</literal> or
<literal>I</literal>.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.font.links">
<refmeta>
<refentrytitle>man.font.links</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.font.links</refname>
<refpurpose>Specifies font for links</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.font.links.frag">
&lt;xsl:param name="man.font.links"&gt;B&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The <parameter>man.font.links</parameter> parameter
specifies the font for output of links (<tag>ulink</tag> instances
and any instances of any element with an <tag class="attribute">xlink:href</tag> attribute).</para>

<para>The value of <parameter>man.font.links</parameter> must be
  either <literal>B</literal> or <literal>I</literal>, or empty. If
the value is empty, no font formatting is applied to links.</para>

<para>If you set <parameter>man.endnotes.are.numbered</parameter> and/or
<parameter>man.endnotes.list.enabled</parameter> to zero (disabled), then
you should probably also set an empty value for
<parameter>man.font.links</parameter>. But if
<parameter>man.endnotes.are.numbered</parameter> is non-zero (enabled),
you should probably keep
<parameter>man.font.links</parameter> set to
<literal>B</literal> or <literal>I</literal><footnote><para>The
    main purpose of applying a font format to links in most output
formats it to indicate that the formatted text is
&#8220;clickable&#8221;; given that links rendered in man pages are
not &#8220;real&#8221; hyperlinks that users can click on, it might
seem like there is never a good reason to have font formatting for
link contents in man output.</para>
<para>In fact, if you suppress the
display of inline link references (by setting
<parameter>man.endnotes.are.numbered</parameter> to zero), there is no
good reason to apply font formatting to links. However, if
<parameter>man.endnotes.are.numbered</parameter> is non-zero, having
font formatting for links (arguably) serves a purpose: It provides
&#8220;context&#8221; information about exactly what part of the text
is being &#8220;annotated&#8221; by the link. Depending on how you
mark up your content, that context information may or may not
have value.</para></footnote>.</para>
</refsection>

<refsection><info><title>Related Parameters</title></info>
  <para><parameter>man.endnotes.list.enabled</parameter>,
    <parameter>man.endnotes.are.numbered</parameter></para>
</refsection>

</refentry>

<refentry version="5.0" xml:id="man.font.table.headings">
<refmeta>
<refentrytitle>man.font.table.headings</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.font.table.headings</refname>
<refpurpose>Specifies font for table headings</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.font.table.headings.frag">
  &lt;xsl:param name="man.font.table.headings"&gt;B&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The <parameter>man.font.table.headings</parameter> parameter
specifies the font for <tag>table</tag> headings. It should be
a valid roff font, such as <literal>B</literal> or
<literal>I</literal>.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.font.table.title">
<refmeta>
<refentrytitle>man.font.table.title</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.font.table.title</refname>
<refpurpose>Specifies font for table headings</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.font.table.title.frag">
  &lt;xsl:param name="man.font.table.title"&gt;B&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The <parameter>man.font.table.title</parameter> parameter
specifies the font for <tag>table</tag> titles. It should be
a valid roff font, such as <literal>B</literal> or
<literal>I</literal>.</para>

</refsection>
</refentry>

  </reference>
  <reference xml:id="synopsis">
  <title>SYNOPSIS section</title>
<refentry version="5.0" xml:id="man.funcsynopsis.style">
<refmeta>
<refentrytitle>man.funcsynopsis.style</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
<refmiscinfo class="other" otherclass="value">ansi</refmiscinfo>
<refmiscinfo class="other" otherclass="value">kr</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.funcsynopsis.style</refname>
<refpurpose>What style of <tag>funcsynopsis</tag> should be generated?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="man.funcsynopsis.style.frag">&lt;xsl:param name="man.funcsynopsis.style"&gt;ansi&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If <parameter>man.funcsynopsis.style</parameter> is
<literal>ansi</literal>, ANSI-style function synopses are
generated for a <tag>funcsynopsis</tag>, otherwise K&amp;R-style
function synopses are generated.</para>
</refsection>
</refentry>

  </reference>
  <reference xml:id="authors">
  <title>AUTHORS and COPYRIGHT sections</title>
  <refentry version="5.0" xml:id="man.authors.section.enabled">
<refmeta>
<refentrytitle>man.authors.section.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.authors.section.enabled</refname>
<refpurpose>Display auto-generated AUTHORS section?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="man.authors.section.enabled.frag">
&lt;xsl:param name="man.authors.section.enabled"&gt;1&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>

<para>If the value of
<parameter>man.authors.section.enabled</parameter> is non-zero
(the default), then an <literal>AUTHORS</literal> section is
generated near the end of each man page. The output of the
<literal>AUTHORS</literal> section is assembled from any
<tag>author</tag>, <tag>editor</tag>, and <tag>othercredit</tag>
metadata found in the contents of the child <tag>info</tag> or
<tag>refentryinfo</tag> (if any) of the <tag>refentry</tag>
itself, or from any <tag>author</tag>, <tag>editor</tag>, and
<tag>othercredit</tag> metadata that may appear in <tag>info</tag>
contents of any ancestors of the <tag>refentry</tag>.</para>

<para>If the value of
<parameter>man.authors.section.enabled</parameter> is zero, the
the auto-generated <literal>AUTHORS</literal> section is
suppressed.</para>

<para>Set the value of
  <parameter>man.authors.section.enabled</parameter> to zero if
  you want to have a manually created <literal>AUTHORS</literal>
  section in your source, and you want it to appear in output
  instead of the auto-generated <literal>AUTHORS</literal>
  section.</para>
</refsection>
</refentry>

  <refentry version="5.0" xml:id="man.copyright.section.enabled">
<refmeta>
<refentrytitle>man.copyright.section.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.copyright.section.enabled</refname>
<refpurpose>Display auto-generated COPYRIGHT section?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="man.copyright.section.enabled.frag">
&lt;xsl:param name="man.copyright.section.enabled"&gt;1&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>

<para>If the value of
<parameter>man.copyright.section.enabled</parameter> is non-zero
(the default), then a <literal>COPYRIGHT</literal> section is
generated near the end of each man page. The output of the
<literal>COPYRIGHT</literal> section is assembled from any
<tag>copyright</tag> and <tag>legalnotice</tag> metadata found in
the contents of the child <tag>info</tag> or
<tag>refentryinfo</tag> (if any) of the <tag>refentry</tag>
itself, or from any <tag>copyright</tag> and
<tag>legalnotice</tag> metadata that may appear in <tag>info</tag>
contents of any ancestors of the <tag>refentry</tag>.</para>

<para>If the value of
<parameter>man.copyright.section.enabled</parameter> is zero, the
the auto-generated <literal>COPYRIGHT</literal> section is
suppressed.</para>

<para>Set the value of
  <parameter>man.copyright.section.enabled</parameter> to zero if
  you want to have a manually created <literal>COPYRIGHT</literal>
  section in your source, and you want it to appear in output
  instead of the auto-generated <literal>COPYRIGHT</literal>
  section.</para>
</refsection>
</refentry>

  </reference>
  <reference xml:id="endnotes">
  <title>Endnotes and link handling</title>
<refentry version="5.0" xml:id="man.endnotes.list.enabled">
<refmeta>
<refentrytitle>man.endnotes.list.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.endnotes.list.enabled</refname>
<refpurpose>Display endnotes list at end of man page?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.endnotes.list.enabled.frag">
&lt;xsl:param name="man.endnotes.list.enabled"&gt;1&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>man.endnotes.list.enabled</parameter> is
non-zero (the default), then an endnotes list is added to the end of
the output man page.</para>

<para>If the value of <parameter>man.endnotes.list.enabled</parameter> is
zero, the list is suppressed &#8212; unless link numbering is enabled (that
is, if <parameter>man.endnotes.are.numbered</parameter> is non-zero), in
which case, that setting overrides the
<parameter>man.endnotes.list.enabled</parameter> setting, and the
endnotes list is still displayed. The reason is that inline
numbering of notesources associated with endnotes only makes sense
if a (numbered) list of endnotes is also generated.</para>

<note>
  <para>Leaving
  <parameter>man.endnotes.list.enabled</parameter> at its default
  (non-zero) value ensures that no &#8220;out of line&#8221; information (such
  as the URLs for hyperlinks and images) gets lost in your
  man-page output. It just gets &#8220;rearranged&#8221;.</para>
  <para>So if you&#8217;re thinking about disabling endnotes listing by
    setting the value of
    <parameter>man.endnotes.list.enabled</parameter> to zero:
    Before you do so, first take some time to carefully consider
    the information needs and experiences of your users. The &#8220;out
    of line&#8221; information has value even if the presentation of it
    in text output is not as interactive as it may be in other
    output formats.</para>
  <para>As far as the specific case of URLs: Even though the URLs
    displayed in text output may not be &#8220;real&#8221; (clickable)
    hyperlinks, many X terminals have convenience features for
    recognizing URLs and can, for example, present users with
    an options to open a URL in a browser with the user clicks on
    the URL is a terminal window. And short of those, users with X
    terminals can always manually cut and paste the URLs into a web
    browser.</para>
  <para>Also, note that various &#8220;man to html&#8221; tools, such as the
    widely used <command><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://users.actrix.gen.nz/michael/vhman2html.html">man2html</link></command> (<literal>VH-Man2html</literal>)
    application, automatically mark up URLs with <literal>a@href</literal> markup
  during conversion &#8212; resulting in &#8220;real&#8221; hyperlinks in HTML
  output from those tools.</para>
</note>

<para>To &#8220;turn off&#8221; numbering of endnotes in the
endnotes list, set <parameter>man.endnotes.are.numbered</parameter>
to zero. The endnotes list will
still be displayed; it will just be displayed without the
numbers<footnote><para>It can still make sense to have
the list of endnotes displayed even if you have endnotes numbering turned
off. In that case, your endnotes list basically becomes a &#8220;list
of references&#8221; without any association with specific text in
your document. This is probably the best option if you find the inline
endnotes numbering obtrusive. Your users will still have access to all the &#8220;out of line&#8221;
such as URLs for hyperlinks.</para></footnote>
</para>

<para>The default heading for the endnotes list is
<literal>NOTES</literal>. To change that, set a non-empty
value for the <parameter>man.endnotes.list.heading</parameter>
parameter.</para>

<para>In the case of notesources that are links: Along with the
URL for each link, the endnotes list includes the contents of the
link. The list thus includes only non-empty<footnote>

<para>A &#8220;non-empty&#8221; link is one that looks like
this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"&gt;manpages&lt;/ulink&gt;</literallayout>
an &#8220;empty link&#8221; is on that looks like this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"/&gt;</literallayout>
</para></footnote> links.

Empty links are never included, and never numbered. They are simply
displayed inline, without any numbering.</para>

<para>In addition, if there are multiple instances of links in a
<tag>refentry</tag> that have the same URL, the URL is listed only
once. The contents listed for that link in the endnotes list are
the contents of the first link which has that URL.</para>

<para>If you disable endnotes listing, you should probably also set
<parameter>man.links.are.underlined</parameter> to zero (to disable
link underlining).</para>
</refsection>
</refentry>

<refentry version="5.0" xml:id="man.endnotes.list.heading">
<refmeta>
<refentrytitle>man.endnotes.list.heading</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.endnotes.list.heading</refname>
<refpurpose>Specifies an alternate name for endnotes list</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.endnotes.list.heading.frag">
&lt;xsl:param name="man.endnotes.list.heading"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of the
<parameter>man.endnotes.are.numbered</parameter> parameter
and/or the <parameter>man.endnotes.list.enabled</parameter>
parameter is non-zero (the defaults for both are non-zero), a
numbered list of endnotes is generated near the end of each man
page. The default heading for the list of endnotes is the
equivalent of the English word <literal>NOTES</literal> in
the current locale. To cause an alternate heading to be displayed,
set a non-empty value for the
<parameter>man.endnotes.list.heading</parameter> parameter &#8212;
for example, <literal>REFERENCES</literal>.</para>
</refsection>
</refentry>

<refentry version="5.0" xml:id="man.endnotes.are.numbered">
<refmeta>
<refentrytitle>man.endnotes.are.numbered</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.endnotes.are.numbered</refname>
<refpurpose>Number endnotes?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.endnotes.are.numbered.frag">
&lt;xsl:param name="man.endnotes.are.numbered"&gt;1&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>man.endnotes.are.numbered</parameter> is
non-zero (the default), then for each non-empty<footnote>
<para>A &#8220;non-empty&#8221; notesource is one that looks like
this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"&gt;manpages&lt;/ulink&gt;</literallayout>
an &#8220;empty&#8221; notesource is on that looks like this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"/&gt;</literallayout>
</para></footnote> &#8220;notesource&#8221;:

<itemizedlist>
  <listitem>
    <para>a number (in square brackets) is displayed inline after the
    rendered inline contents (if any) of the notesource</para>
  </listitem>
  <listitem>
    <para>the contents of the notesource are included in a
      numbered list of endnotes that is generated at the end of
      each man page; the number for each endnote corresponds to
      the inline number for the notesource with which it is
      associated</para>
  </listitem>
</itemizedlist>
The default heading for the list of endnotes is
<literal>NOTES</literal>. To output a different heading, set a value
for the <parameter>man.endnotes.section.heading</parameter>
parameter.</para>

<note>
  <para>The endnotes list is also displayed (but without
    numbers) if the value of
    <parameter>man.endnotes.list.enabled</parameter> is
    non-zero.</para>
</note>


<para>If the value of <parameter>man.endnotes.are.numbered</parameter> is
zero, numbering of endnotess is suppressed; only inline
contents (if any) of the notesource are displayed inline.
<important>
  <para>If you are thinking about disabling endnote numbering by setting
  the value of <parameter>man.endnotes.are.numbered</parameter> to zero,
  before you do so, first take some time to carefully
  consider the information needs and experiences of your users. The
  square-bracketed numbers displayed inline after notesources may seem
  obstrusive and aesthetically unpleasing<footnote><para>As far as notesources that are links, ytou might
  think it would be better to just display URLs for non-empty
  links inline, after their content, rather than displaying
  square-bracketed numbers all over the place. But it's not better. In
  fact, it's not even practical, because many (most) URLs for links
  are too long to be displayed inline. They end up overflowing the
  right margin. You can set a non-zero value for
  <parameter>man.break.after.slash</parameter> parameter to deal with
  that, but it could be argued that what you end up with is at least
  as ugly, and definitely more obstrusive, then having short
  square-bracketed numbers displayed inline.</para></footnote>,

  but in a text-only output format, the
  numbered-notesources/endnotes-listing mechanism is the only
  practical way to handle this kind of content.</para>

  <para>Also, users of &#8220;text based&#8221; browsers such as
  <command>lynx</command> will already be accustomed to seeing inline
  numbers for links. And various "man to html" applications, such as
  the widely used <command><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://users.actrix.gen.nz/michael/vhman2html.html">man2html</link></command> (<literal>VH-Man2html</literal>)
  application, can automatically turn URLs into "real" HTML hyperlinks
  in output. So leaving <parameter>man.endnotes.are.numbered</parameter>
  at its default (non-zero) value ensures that no information is
  lost in your man-page output. It just gets
  &#8220;rearranged&#8221;.</para>
</important>
</para>
<para>The handling of empty links is not affected by this
parameter. Empty links are handled simply by displaying their URLs
inline. Empty links are never auto-numbered.</para>

<para>If you disable endnotes numbering, you should probably also set
<parameter>man.font.links</parameter> to an empty value (to
disable font formatting for links.</para>
</refsection>

<refsection><info><title>Related Parameters</title></info>
  <para><parameter>man.endnotes.list.enabled</parameter>,
    <parameter>man.font.links</parameter></para>
</refsection>
</refentry>

<refentry version="5.0" xml:id="man.base.url.for.relative.links">
  <refmeta>
    <refentrytitle>man.base.url.for.relative.links</refentrytitle>
    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>man.base.url.for.relative.links</refname>
    <refpurpose>Specifies a base URL for relative links</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <programlisting xml:id="man.base.url.for.relative.links.frag">&lt;xsl:param name="man.base.url.for.relative.links"&gt;[set $man.base.url.for.relative.links]/&lt;/xsl:param&gt;</programlisting>
  </refsynopsisdiv>

  <refsection><info><title>Description</title></info>

    <para>For any &#8220;notesource&#8221; listed in the auto-generated
      &#8220;NOTES&#8221; section of output man pages (which is generated when
      the value of the
      <parameter>man.endnotes.list.enabled</parameter> parameter
      is non-zero), if the notesource is a link source with a
      relative URI, the URI is displayed in output with the value
      of the
      <parameter>man.base.url.for.relative.links</parameter>
      parameter prepended to the value of the link URI.</para>

    <note>
      <para>A link source is an notesource that references an
        external resource:
        <itemizedlist>
          <listitem>
            <para>a <tag>ulink</tag> element with a <tag class="attribute">url</tag> attribute</para>
          </listitem>
          <listitem>
            <para>any element with an <tag class="attribute">xlink:href</tag> attribute</para>
          </listitem>
          <listitem>
            <para>an <tag>imagedata</tag>, <tag>audiodata</tag>, or
              <tag>videodata</tag> element</para>
          </listitem>
        </itemizedlist>
      </para>
    </note>

    <para>If you use relative URIs in link sources in your DocBook
      <tag>refentry</tag> source, and you leave
      <parameter>man.base.url.for.relative.links</parameter>
      unset, the relative links will appear &#8220;as is&#8221; in the &#8220;Notes&#8221;
      section of any man-page output generated from your source.
      That&#8217;s probably not what you want, because such relative
      links are only usable in the context of HTML output. So, to
      make the links meaningful and usable in the context of
      man-page output, set a value for
      <parameter>man.base.url.for.relative.links</parameter> that
      points to the online version of HTML output generated from
      your DocBook <tag>refentry</tag> source. For
      example:
      <programlisting>&lt;xsl:param name="man.base.url.for.relative.links"
        &gt;http://www.kernel.org/pub/software/scm/git/docs/&lt;/xsl:param&gt;</programlisting>
    </para>

  </refsection>

  <refsection><info><title>Related Parameters</title></info>
    <para><parameter>man.endnotes.list.enabled</parameter></para>
  </refsection>

</refentry>

  </reference>
  <reference xml:id="lists">
  <title>Lists</title>
<refentry version="5.0" xml:id="man.segtitle.suppress">
<refmeta>
<refentrytitle>man.segtitle.suppress</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.segtitle.suppress</refname>
<refpurpose>Suppress display of segtitle contents?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.segtitle.suppress.frag">
&lt;xsl:param name="man.segtitle.suppress" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>man.segtitle.suppress</parameter> is
non-zero, then display of <tag>segtitle</tag> contents is
suppressed in output.</para>

</refsection>
</refentry>

  </reference>
  <reference xml:id="charmap">
  <title>Character/string substitution</title>
<refentry version="5.0" xml:id="man.charmap.enabled">
<refmeta>
<refentrytitle>man.charmap.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.charmap.enabled</refname>
<refpurpose>Apply character map before final output?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.charmap.enabled.frag">
&lt;xsl:param name="man.charmap.enabled" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of the <parameter>man.charmap.enabled</parameter>
parameter is non-zero, a "character map" is used to substitute certain
Unicode symbols and special characters with appropriate roff/groff
equivalents, just before writing each man-page file to the
filesystem. If instead the value of
<parameter>man.charmap.enabled</parameter> is zero, Unicode characters
are passed through "as is".</para>

<refsection><info><title>Details</title></info>

<para>For converting certain Unicode symbols and special characters in
UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
equivalents in man-page output, the DocBook XSL Stylesheets
distribution includes a <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">roff character map</link> that is compliant with the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
map</link> format as detailed in the XSLT 2.0 specification. The map
contains more than 800 character mappings and can be considered the
standard roff character map for the distribution.</para>

<para>You can use the <parameter>man.charmap.uri</parameter>
parameter to specify a URI for the location for an alternate roff
character map to use in place of the standard roff character map
provided in the distribution.</para>

<para>You can also use a subset of a character map. For details,
see the <parameter>man.charmap.use.subset</parameter>,
<parameter>man.charmap.subset.profile</parameter>, and
<parameter>man.charmap.subset.profile.english</parameter>
parameters.</para>

</refsection>
</refsection>
</refentry>

<refentry version="5.0" xml:id="man.charmap.uri">
<refmeta>
<refentrytitle>man.charmap.uri</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.charmap.uri</refname>
<refpurpose>URI for custom roff character map</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.charmap.uri.frag">
&lt;xsl:param name="man.charmap.uri"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>For converting certain Unicode symbols and special characters in
UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
equivalents in man-page output, the DocBook XSL Stylesheets
distribution includes an <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
map</link>. That character map can be considered the standard roff
character map for the distribution.</para>

<para>If the value of the <parameter>man.charmap.uri</parameter>
parameter is non-empty, that value is used as the URI for the location
for an alternate roff character map to use in place of the standard
roff character map provided in the distribution.</para>

<warning>
<para>Do not set a value for <parameter>man.charmap.uri</parameter>
unless you have a custom roff character map that differs from the
standard one provided in the distribution.</para>
</warning>
</refsection>
</refentry>

<refentry version="5.0" xml:id="man.charmap.use.subset">
<refmeta>
<refentrytitle>man.charmap.use.subset</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.charmap.use.subset</refname>
<refpurpose>Use subset of character map instead of full map?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.charmap.use.subset.frag">
&lt;xsl:param name="man.charmap.use.subset" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of the
<parameter>man.charmap.use.subset</parameter> parameter is non-zero,
a subset of the roff character map is used instead of the full roff
character map. The profile of the subset used is determined either
by the value of the
<parameter>man.charmap.subset.profile</parameter>
parameter (if the source is not in English) or the
<parameter>man.charmap.subset.profile.english</parameter>
parameter (if the source is in English).</para>

<note>
  <para>You may want to experiment with setting a non-zero value of
  <parameter>man.charmap.use.subset</parameter>, so that the full
  character map is used. Depending on which XSLT engine you run,
  setting a non-zero value for
  <parameter>man.charmap.use.subset</parameter> may significantly
  increase the time needed to process your documents. Or it may
  not. For example, if you set it and run it with xsltproc, it seems
  to dramatically increase processing time; on the other hand, if you
  set it and run it with Saxon, it does not seem to increase
  processing time nearly as much.</para>

  <para>If processing time is not a important concern and/or you can
  tolerate the increase in processing time imposed by using the full
  character map, set <parameter>man.charmap.use.subset</parameter> to
  zero.</para>
</note>

<refsection><info><title>Details</title></info>

<para>For converting certain Unicode symbols and special characters in
UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
equivalents in man-page output, the DocBook XSL Stylesheets
distribution includes a <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">roff character map</link> that is compliant with the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
map</link> format as detailed in the XSLT 2.0 specification. The map
contains more than 800 character mappings and can be considered the
standard roff character map for the distribution.</para>

<note>
<para>You can use the <parameter>man.charmap.uri</parameter>
parameter to specify a URI for the location for an alternate roff
character map to use in place of the standard roff character map
provided in the distribution.</para>
</note>

<para>Because it is not terrifically efficient to use the standard
800-character character map in full -- and for most (or all) users,
never necessary to use it in full -- the DocBook XSL Stylesheets
support a mechanism for using, within any given character map, a
subset of character mappings instead of the full set. You can use the
<parameter>man.charmap.subset.profile</parameter> or
<parameter>man.charmap.subset.profile.english</parameter>
parameter to tune the profile of that subset to use.</para>

</refsection>
</refsection>
</refentry>

<refentry version="5.0" xml:id="man.charmap.subset.profile">
<refmeta>
<refentrytitle>man.charmap.subset.profile</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.charmap.subset.profile</refname>
<refpurpose>Profile of character map subset</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.charmap.subset.profile.frag">
&lt;xsl:param name="man.charmap.subset.profile"&gt;
@*[local-name() = 'block'] = 'Miscellaneous Technical' or
(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
 (@*[local-name() = 'class'] = 'symbols' or
  @*[local-name() = 'class'] = 'letters')
) or
@*[local-name() = 'block'] = 'Latin Extended-A'
or
(@*[local-name() = 'block'] = 'General Punctuation' and
 (@*[local-name() = 'class'] = 'spaces' or
  @*[local-name() = 'class'] = 'dashes' or
  @*[local-name() = 'class'] = 'quotes' or
  @*[local-name() = 'class'] = 'bullets'
 )
) or
@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
@*[local-name() = 'name'] = 'WORD JOINER' or
@*[local-name() = 'name'] = 'SERVICE MARK' or
@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of the
<parameter>man.charmap.use.subset</parameter> parameter is non-zero,
and your DocBook source is not written in English (that
  is, if the <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute on the root element
  in your DocBook source or on the first <tag>refentry</tag>
  element in your source has a value other than
  <literal>en</literal>), then the character-map subset specified
  by the <parameter>man.charmap.subset.profile</parameter>
  parameter is used instead of the full roff character map.</para>

<para>Otherwise, if the <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute on the root
  element in your DocBook
  source or on the first <tag>refentry</tag> element in your source
  has the value <literal>en</literal> or if it has no <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute, then the character-map
  subset specified by the
  <parameter>man.charmap.subset.profile.english</parameter>
  parameter is used instead of
  <parameter>man.charmap.subset.profile</parameter>.</para>

<para>The difference between the two subsets is that
  <parameter>man.charmap.subset.profile</parameter> provides
  mappings for characters in Western European languages that are
  not part of the Roman (English) alphabet (ASCII character set).</para>

<para>The value of <parameter>man.charmap.subset.profile</parameter>
is a string representing an XPath expression that matches attribute
names and values for <tag namespace="http://docbook.sf.net/xmlns/unichar/1.0">output-character</tag>
elements in the character map.</para>

<para>The attributes supported in the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">standard roff character map included in the distribution</link> are:
<variablelist>
  <varlistentry>
    <term>character</term>
    <listitem>
      <simpara>a raw Unicode character or numeric Unicode
      character-entity value (either in decimal or hex); all
      characters have this attribute</simpara>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>name</term>
    <listitem>
      <simpara>a standard full/long ISO/Unicode character name (e.g.,
      "OHM SIGN"); all characters have this attribute</simpara>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>block</term>
    <listitem>
      <simpara>a standard Unicode "block" name (e.g., "General
      Punctuation"); all characters have this attribute. For the full
      list of Unicode block names supported in the standard roff
      character map, see <xref linkend="BlocksAndClasses"/>.</simpara>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>class</term>
    <listitem>
      <simpara>a class of characters (e.g., "spaces"). Not all
      characters have this attribute; currently, it is used only with
      certain characters within the "C1 Controls And Latin-1
      Supplement" and "General Punctuation" blocks. For details, see
      <xref linkend="BlocksAndClasses"/>.</simpara>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>entity</term>
    <listitem>
      <simpara>an ISO entity name (e.g., "ohm"); not all characters
      have this attribute, because not all characters have ISO entity
      names; for example, of the 800 or so characters in the standard
      roff character map included in the distribution, only around 300
      have ISO entity names.
      </simpara>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>string</term>
    <listitem>
      <simpara>a string representing an roff/groff escape-code (with
      "@esc@" used in place of the backslash), or a simple ASCII
      string; all characters in the roff character map have this
      attribute</simpara>
    </listitem>
  </varlistentry>
</variablelist>
</para>
<para>The value of <parameter>man.charmap.subset.profile</parameter>
is evaluated as an XPath expression at run-time to select a portion of
the roff character map to use. You can tune the subset used by adding
or removing parts. For example, if you need to use a wide range of
mathematical operators in a document, and you want to have them
converted into roff markup properly, you might add the following:

<literallayout class="monospaced">  @*[local-name() = 'block'] ='MathematicalOperators' </literallayout>

That will cause a additional set of around 67 additional "math"
characters to be converted into roff markup. </para>

<note>
<para>Depending on which XSLT engine you use, either the EXSLT
<function>dyn:evaluate</function> extension function (for xsltproc or
Xalan) or <function>saxon:evaluate</function> extension function (for
Saxon) are used to dynamically evaluate the value of
<parameter>man.charmap.subset.profile</parameter> at run-time. If you
don't use xsltproc, Saxon, Xalan -- or some other XSLT engine that
supports <function>dyn:evaluate</function> -- you must either set the
value of the <parameter>man.charmap.use.subset</parameter> parameter
to zero and process your documents using the full character map
instead, or set the value of the
<parameter>man.charmap.enabled</parameter> parameter to zero instead
(so that character-map processing is disabled completely.</para>
</note>

<para>An alternative to using
<parameter>man.charmap.subset.profile</parameter> is to create your
own custom character map, and set the value of
<parameter>man.charmap.uri</parameter> to the URI/filename for
that. If you use a custom character map, you will probably want to
include in it just the characters you want to use, and so you will
most likely also want to set the value of
<parameter>man.charmap.use.subset</parameter> to zero.</para>
<para>You can create a
custom character map by making a copy of the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">standard roff character map</link> provided in the distribution, and
then adding to, changing, and/or deleting from that.</para>

<caution>
<para>If you author your DocBook XML source in UTF-8 or UTF-16
encoding and aren't sure what OSes or environments your man-page
output might end up being viewed on, and not sure what version of
nroff/groff those environments might have, you should be careful about
what Unicode symbols and special characters you use in your source and
what parts you add to the value of
<parameter>man.charmap.subset.profile</parameter>.</para>
<para>Many of the escape codes used are specific to groff and using
them may not provide the expected output on an OS or environment that
uses nroff instead of groff.</para>
<para>On the other hand, if you intend for your man-page output to be
viewed only on modern systems (for example, GNU/Linux systems, FreeBSD
systems, or Cygwin environments) that have a good, up-to-date groff,
then you can safely include a wide range of Unicode symbols and
special characters in your UTF-8 or UTF-16 encoded DocBook XML source
and add any of the supported Unicode block names to the value of
<parameter>man.charmap.subset.profile</parameter>.</para>
</caution>


<para>For other details, see the documentation for the
<parameter>man.charmap.use.subset</parameter> parameter.</para>

<refsection xml:id="BlocksAndClasses"><info><title>Supported Unicode block names and "class" values</title></info>
  

  <para>Below is the full list of Unicode block names and "class"
  values supported in the standard roff stylesheet provided in the
  distribution, along with a description of which codepoints from the
  Unicode range corresponding to that block name or block/class
  combination are supported.</para>

  <itemizedlist>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=C1%20Controls%20and%20Latin-1%20Supplement%20(Latin-1%20Supplement)">C1 Controls And Latin-1 Supplement (Latin-1 Supplement)</link> (x00a0 to x00ff)
      <itemizedlist><info><title>class values</title></info>
        
        <listitem>
          <para>symbols</para>
        </listitem>
        <listitem>
          <para>letters</para>
        </listitem>
      </itemizedlist></para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Latin%20Extended-A">Latin Extended-A</link> (x0100 to x017f, partial)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Spacing%20Modifier%20Letters">Spacing Modifier Letters</link> (x02b0 to x02ee, partial)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Greek%20and%20Coptic">Greek and Coptic</link> (x0370 to x03ff, partial)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=General%20Punctuation">General Punctuation</link> (x2000 to x206f, partial)
      <itemizedlist><info><title>class values</title></info>
        
        <listitem>
          <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;start=8192&amp;end=8203">spaces</link></para>
        </listitem>
        <listitem>
          <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;start=8208&amp;end=8213">dashes</link></para>
        </listitem>
        <listitem>
          <para>quotes</para>
        </listitem>
        <listitem>
          <para>daggers</para>
        </listitem>
        <listitem>
          <para>bullets</para>
        </listitem>
        <listitem>
          <para>leaders</para>
        </listitem>
        <listitem>
          <para>primes</para>
        </listitem>
      </itemizedlist>
      </para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Superscripts%20and%20Subscripts">Superscripts and Subscripts</link> (x2070 to x209f)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Currency%20Symbols">Currency Symbols</link> (x20a0 to x20b1)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Letterlike%20Symbols">Letterlike Symbols</link> (x2100 to x214b)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Number%20Forms">Number Forms</link> (x2150 to x218f)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Arrows">Arrows</link> (x2190 to x21ff, partial)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Mathematical%20Operators">Mathematical Operators</link> (x2200 to x22ff, partial)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Control%20Pictures">Control Pictures</link> (x2400 to x243f)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Enclosed%20Alphanumerics">Enclosed Alphanumerics</link> (x2460 to x24ff)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Geometric%20Shapes">Geometric Shapes</link> (x25a0 to x25f7, partial)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Miscellaneous%20Symbols">Miscellaneous Symbols</link> (x2600 to x26ff, partial)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Dingbats">Dingbats</link> (x2700 to x27be, partial)</para>
    </listitem>
    <listitem>
      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Alphabetic%20Presentation%20Forms">Alphabetic Presentation Forms</link> (xfb00 to xfb04 only)</para>
    </listitem>
  </itemizedlist>
</refsection>
</refsection>
</refentry>

<refentry version="5.0" xml:id="man.charmap.subset.profile.english">
<refmeta>
<refentrytitle>man.charmap.subset.profile.english</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.charmap.subset.profile.english</refname>
<refpurpose>Profile of character map subset</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.charmap.subset.profile.english.frag">
&lt;xsl:param name="man.charmap.subset.profile.english"&gt;
@*[local-name() = 'block'] = 'Miscellaneous Technical' or
(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
 @*[local-name() = 'class'] = 'symbols')
or
(@*[local-name() = 'block'] = 'General Punctuation' and
 (@*[local-name() = 'class'] = 'spaces' or
  @*[local-name() = 'class'] = 'dashes' or
  @*[local-name() = 'class'] = 'quotes' or
  @*[local-name() = 'class'] = 'bullets'
 )
) or
@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
@*[local-name() = 'name'] = 'WORD JOINER' or
@*[local-name() = 'name'] = 'SERVICE MARK' or
@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of the
  <parameter>man.charmap.use.subset</parameter> parameter is
  non-zero, and your DocBook source is written in English (that
  is, if its <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute on the root element
  in your DocBook source or on the first <tag>refentry</tag>
  element in your source has the value <literal>en</literal> or if
  it has no <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute), then the
  character-map subset specified by the
  <parameter>man.charmap.subset.profile.english</parameter>
  parameter is used instead of the full roff character map.</para>

<para>Otherwise, if the <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute
  on the root element in your DocBook source or on the first
  <tag>refentry</tag> element in your source has a value other
  than <literal>en</literal>, then the character-map subset
  specified by the
  <parameter>man.charmap.subset.profile</parameter> parameter is
  used instead of
  <parameter>man.charmap.subset.profile.english</parameter>.</para>

<para>The difference between the two subsets is that
  <parameter>man.charmap.subset.profile</parameter> provides
  mappings for characters in Western European languages that are
  not part of the Roman (English) alphabet (ASCII character set).</para>

<para>The value of <parameter>man.charmap.subset.profile.english</parameter>
is a string representing an XPath expression that matches attribute
names and values for <tag namespace="http://docbook.sf.net/xmlns/unichar/1.0">output-character</tag> elements in the character map.</para>

<para>For other details, see the documentation for the
<parameter>man.charmap.subset.profile.english</parameter> and
<parameter>man.charmap.use.subset</parameter> parameters.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.string.subst.map.local.pre">
<refmeta>
<refentrytitle>man.string.subst.map.local.pre</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.string.subst.map.local.pre</refname>
<refpurpose>Specifies &#8220;local&#8221; string substitutions</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.string.subst.map.local.pre.frag">
  &lt;xsl:param name="man.string.subst.map.local.pre"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>Use the <parameter>man.string.subst.map.local.pre</parameter>
parameter to specify any &#8220;local&#8221; string substitutions to perform over
the entire roff source for each man page <emphasis>before</emphasis>
performing the string substitutions specified by the <parameter>man.string.subst.map</parameter> parameter.</para>

<para>For details about the format of this parameter, see the
documentation for the <parameter>man.string.subst.map</parameter>
parameter.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.string.subst.map">
<refmeta>
<refentrytitle>man.string.subst.map</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.string.subst.map</refname>
<refpurpose>Specifies a set of string substitutions</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.string.subst.map.frag">
&lt;xsl:param name="man.string.subst.map"&gt;

  &lt;!-- * remove no-break marker at beginning of line (stylesheet artifact) --&gt; 
  &lt;ss:substitution oldstring="&#9618;&#9600;" newstring="&#9618;"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * replace U+2580 no-break marker (stylesheet-added) w/ no-break space --&gt;
  &lt;ss:substitution oldstring="&#9600;" newstring="\ "&gt;&lt;/ss:substitution&gt;

  &lt;!-- ==================================================================== --&gt;

  &lt;!-- * squeeze multiple newlines before a roff request  --&gt;
  &lt;ss:substitution oldstring="

." newstring="
."&gt;&lt;/ss:substitution&gt;
  &lt;!-- * remove any .sp instances that directly precede a .PP  --&gt;
  &lt;ss:substitution oldstring=".sp
.PP" newstring=".PP"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * remove any .sp instances that directly follow a .PP  --&gt;
  &lt;ss:substitution oldstring=".sp
.sp" newstring=".sp"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * squeeze multiple .sp instances into a single .sp--&gt;
  &lt;ss:substitution oldstring=".PP
.sp" newstring=".PP"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * squeeze multiple newlines after start of no-fill (verbatim) env. --&gt;
  &lt;ss:substitution oldstring=".nf

" newstring=".nf
"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * squeeze multiple newlines after REstoring margin --&gt;
  &lt;ss:substitution oldstring=".RE

" newstring=".RE
"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * U+2591 is a marker we add before and after every Parameter in --&gt;
  &lt;!-- * Funcprototype output --&gt;
  &lt;ss:substitution oldstring="&#9617;" newstring=" "&gt;&lt;/ss:substitution&gt;
  &lt;!-- * U+2592 is a marker we add for the newline before output of &lt;sbr&gt;; --&gt;
  &lt;ss:substitution oldstring="&#9618;" newstring="
"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * --&gt;
  &lt;!-- * Now deal with some other characters that are added by the --&gt;
  &lt;!-- * stylesheets during processing. --&gt;
  &lt;!-- * --&gt;
  &lt;!-- * bullet --&gt;
  &lt;ss:substitution oldstring="&#8226;" newstring="\(bu"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * left double quote --&gt;
  &lt;ss:substitution oldstring="&#8220;" newstring="\(lq"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * right double quote --&gt;
  &lt;ss:substitution oldstring="&#8221;" newstring="\(rq"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * left single quote --&gt;
  &lt;ss:substitution oldstring="&#8216;" newstring="\(oq"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * right single quote --&gt;
  &lt;ss:substitution oldstring="&#8217;" newstring="\(cq"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * copyright sign --&gt;
  &lt;ss:substitution oldstring="&#169;" newstring="\(co"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * registered sign --&gt;
  &lt;ss:substitution oldstring="&#174;" newstring="\(rg"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * ...servicemark... --&gt;
  &lt;!-- * There is no groff equivalent for it. --&gt;
  &lt;ss:substitution oldstring="&#8480;" newstring="(SM)"&gt;&lt;/ss:substitution&gt;
  &lt;!-- * ...trademark... --&gt;
  &lt;!-- * We don't do "\(tm" because for console output, --&gt;
  &lt;!-- * groff just renders that as "tm"; that is: --&gt;
  &lt;!-- * --&gt;
  &lt;!-- *   Product&amp;#x2122; -&gt; Producttm --&gt;
  &lt;!-- * --&gt;
  &lt;!-- * So we just make it to "(TM)" instead; thus: --&gt;
  &lt;!-- * --&gt;
  &lt;!-- *   Product&amp;#x2122; -&gt; Product(TM) --&gt;
  &lt;ss:substitution oldstring="&#8482;" newstring="(TM)"&gt;&lt;/ss:substitution&gt;

&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The <parameter>man.string.subst.map</parameter> parameter
contains <link linkend="map">a map</link> that specifies a set of
string substitutions to perform over the entire roff source for each
man page, either just before generating final man-page output (that
is, before writing man-page files to disk) or, if the value of the
<parameter>man.charmap.enabled</parameter> parameter is non-zero,
before applying the roff character map.</para>

<para>You can use <parameter>man.string.subst.map</parameter> as a
&#8220;lightweight&#8221; character map to perform &#8220;essential&#8221; substitutions --
that is, substitutions that are <emphasis>always</emphasis> performed,
even if the value of the <parameter>man.charmap.enabled</parameter>
parameter is zero. For example, you can use it to replace quotation
marks or other special characters that are generated by the DocBook
XSL stylesheets for a particular locale setting (as opposed to those
characters that are actually in source XML documents), or to replace
any special characters that may be automatically generated by a
particular customization of the DocBook XSL stylesheets.</para>

<warning>
  <para>Do you not change value of the
  <parameter>man.string.subst.map</parameter> parameter unless you are
  sure what you are doing. First consider adding your
  string-substitution mappings to either or both of the following
  parameters:
  <variablelist>
    <varlistentry>
      <term><parameter>man.string.subst.map.local.pre</parameter></term>
      <listitem><para>applied before
      <parameter>man.string.subst.map</parameter></para></listitem>
    </varlistentry>
    <varlistentry>
      <term><parameter>man.string.subst.map.local.post</parameter></term>
      <listitem><para>applied after
      <parameter>man.string.subst.map</parameter></para></listitem>
    </varlistentry>
  </variablelist>
  By default, both of those parameters contain no
  string substitutions. They are intended as a means for you to
  specify your own local string-substitution mappings.</para>

  <para>If you remove any of default mappings from the value of the
  <parameter>man.string.subst.map</parameter> parameter, you are
  likely to end up with broken output. And be very careful about adding
  anything to it; it&#8217;s used for doing string substitution over the
  entire roff source of each man page &#8211; it causes target strings to be
  replaced in roff requests and escapes, not just in the visible
  contents of the page.</para>

</warning>

<refsection xml:id="map">
  <info>
    <title>Contents of the substitution map</title>
  </info>
  <para>The string-substitution map contains one or more
  <tag>ss:substitution</tag> elements, each of which has two
  attributes:
  <variablelist>
    <varlistentry>
      <term>oldstring</term>
      <listitem>
        <simpara>string to replace</simpara>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term>newstring</term>
      <listitem>
        <simpara>string with which to replace <tag class="attribute">oldstring</tag></simpara>
      </listitem>
    </varlistentry>
  </variablelist>
  It may also include XML comments (that is, delimited with
  "<literal>&lt;!--</literal>" and "<literal>--&gt;</literal>").
  </para>
</refsection>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.string.subst.map.local.post">
<refmeta>
<refentrytitle>man.string.subst.map.local.post</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.string.subst.map.local.post</refname>
<refpurpose>Specifies &#8220;local&#8221; string substitutions</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.string.subst.map.local.post.frag">
&lt;xsl:param name="man.string.subst.map.local.post"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>Use the <parameter>man.string.subst.map.local.post</parameter>
parameter to specify any &#8220;local&#8221; string substitutions to perform over
the entire roff source for each man page <emphasis>after</emphasis>
performing the string substitutions specified by the <parameter>man.string.subst.map</parameter> parameter.</para>

<para>For details about the format of this parameter, see the
documentation for the <parameter>man.string.subst.map</parameter>
parameter.</para>

</refsection>
</refentry>

  </reference>
  <reference xml:id="refmeta">
  <title>Refentry metadata gathering</title>
<refentry version="5.0" xml:id="refentry.meta.get.quietly">
<refmeta>
<refentrytitle>refentry.meta.get.quietly</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.meta.get.quietly</refname>
<refpurpose>Suppress notes and warnings when gathering refentry metadata?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.meta.get.quietly.frag">
&lt;xsl:param name="refentry.meta.get.quietly" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If zero (the default), notes and warnings about &#8220;missing&#8221; markup
are generated during gathering of refentry metadata. If non-zero, the
metadata is gathered &#8220;quietly&#8221; -- that is, the notes and warnings are
suppressed.</para>

<tip>
  <para>If you are processing a large amount of <tag>refentry</tag>
  content, you may be able to speed up processing significantly by
  setting a non-zero value for
  <parameter>refentry.meta.get.quietly</parameter>.</para>
</tip>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.date.profile">
<refmeta>
<refentrytitle>refentry.date.profile</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.date.profile</refname>
<refpurpose>Specifies profile for refentry "date" data</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.date.profile.frag">
&lt;xsl:param name="refentry.date.profile"&gt;
  (($info[//date])[last()]/date)[1]|
  (($info[//pubdate])[last()]/pubdate)[1]
&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The value of <parameter>refentry.date.profile</parameter> is a
string representing an XPath expression. It is evaluated at run-time
and used only if <parameter>refentry.date.profile.enabled</parameter>
is non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering
logic "hard coded" into the stylesheets is used.</para>

<para> The <literal>man(7)</literal> man page describes this content
as "the date of the last revision". In man pages, it is the content
that is usually displayed in the center footer.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.date.profile.enabled">
<refmeta>
<refentrytitle>refentry.date.profile.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.date.profile.enabled</refname>
<refpurpose>Enable refentry "date" profiling?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.date.profile.enabled.frag">
&lt;xsl:param name="refentry.date.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of
<parameter>refentry.date.profile.enabled</parameter> is non-zero, then
during <tag>refentry</tag> metadata gathering, the info profile
specified by the customizable
<parameter>refentry.date.profile</parameter> parameter is used.</para>

<para>If instead the value of
<parameter>refentry.date.profile.enabled</parameter> is zero (the
default), then "hard coded" logic within the DocBook XSL stylesheets
is used for gathering <tag>refentry</tag> "date" data.</para>

<para>If you find that the default <tag>refentry</tag>
metadata-gathering behavior is causing incorrect "date" data to show
up in your output, then consider setting a non-zero value for
<parameter>refentry.date.profile.enabled</parameter> and adjusting the
value of <parameter>refentry.date.profile</parameter> to cause correct
data to be gathered. </para>

<para>Note that the terms "source" and "date" have special meanings in
this context. For details, see the documentation for the
<parameter>refentry.date.profile</parameter> parameter.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.manual.profile">
<refmeta>
<refentrytitle>refentry.manual.profile</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.manual.profile</refname>
<refpurpose>Specifies profile for refentry "manual" data</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.manual.profile.frag">
&lt;xsl:param name="refentry.manual.profile"&gt;
  (($info[//title])[last()]/title)[1]|
  ../title/node()
&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The value of <parameter>refentry.manual.profile</parameter> is
a string representing an XPath expression. It is evaluated at
run-time and used only if
<parameter>refentry.manual.profile.enabled</parameter> is
non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
"hard coded" into the stylesheets is used.</para>

<para>In man pages, this content is usually displayed in the middle of
the header of the page. The <literal>man(7)</literal> man page
describes this as "the title of the manual (e.g., <citetitle>Linux
Programmer's Manual</citetitle>)". Here are some examples from
existing man pages:
<itemizedlist>
  <listitem>
    <para><citetitle>dpkg utilities</citetitle>
    (<command>dpkg-name</command>)</para>
  </listitem>
  <listitem>
    <para><citetitle>User Contributed Perl Documentation</citetitle>
    (<command>GET</command>)</para>
  </listitem>
  <listitem>
    <para><citetitle>GNU Development Tools</citetitle>
    (<command>ld</command>)</para>
  </listitem>
  <listitem>
    <para><citetitle>Emperor Norton Utilities</citetitle>
    (<command>ddate</command>)</para>
  </listitem>
  <listitem>
    <para><citetitle>Debian GNU/Linux manual</citetitle>
    (<command>faked</command>)</para>
  </listitem>
  <listitem>
    <para><citetitle>GIMP Manual Pages</citetitle>
    (<command>gimp</command>)</para>
  </listitem>
  <listitem>
    <para><citetitle>KDOC Documentation System</citetitle>
    (<command>qt2kdoc</command>)</para>
  </listitem>
</itemizedlist>
</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.manual.profile.enabled">
<refmeta>
<refentrytitle>refentry.manual.profile.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.manual.profile.enabled</refname>
<refpurpose>Enable refentry "manual" profiling?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.manual.profile.enabled.frag">
&lt;xsl:param name="refentry.manual.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of
<parameter>refentry.manual.profile.enabled</parameter> is
non-zero, then during <tag>refentry</tag> metadata gathering, the info
profile specified by the customizable
<parameter>refentry.manual.profile</parameter> parameter is
used.</para>

<para>If instead the value of
<parameter>refentry.manual.profile.enabled</parameter> is zero (the
default), then "hard coded" logic within the DocBook XSL stylesheets
is used for gathering <tag>refentry</tag> "manual" data.</para>

<para>If you find that the default <tag>refentry</tag>
metadata-gathering behavior is causing incorrect "manual" data to show
up in your output, then consider setting a non-zero value for
<parameter>refentry.manual.profile.enabled</parameter> and adjusting
the value of <parameter>refentry.manual.profile</parameter> to cause
correct data to be gathered. </para>

<para>Note that the term "manual" has a special meanings in this
context. For details, see the documentation for the
<parameter>refentry.manual.profile</parameter> parameter.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.source.name.suppress">
<refmeta>
<refentrytitle>refentry.source.name.suppress</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.source.name.suppress</refname>
<refpurpose>Suppress "name" part of refentry "source" contents?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.source.name.suppress.frag">
&lt;xsl:param name="refentry.source.name.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of
<parameter>refentry.source.name.suppress</parameter> is non-zero, then
during <tag>refentry</tag> metadata gathering, no "source name" data
is added to the <tag>refentry</tag> "source" contents. Instead (unless
<parameter>refentry.version.suppress</parameter> is also non-zero),
only "version" data is added to the "source" contents.</para>

<para>If you find that the <tag>refentry</tag> metadata gathering
mechanism is causing unwanted "source name" data to show up in your
output -- for example, in the footer (or possibly header) of a man
page -- then you might consider setting a non-zero value for
<parameter>refentry.source.name.suppress</parameter>.</para>

<para>Note that the terms "source", "source name", and "version" have
special meanings in this context. For details, see the documentation
for the <parameter>refentry.source.name.profile</parameter>
parameter.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.source.name.profile">
<refmeta>
<refentrytitle>refentry.source.name.profile</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.source.name.profile</refname>
<refpurpose>Specifies profile for refentry "source name" data</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.source.name.profile.frag">
&lt;xsl:param name="refentry.source.name.profile"&gt;
  (($info[//productname])[last()]/productname)[1]|
  (($info[//corpname])[last()]/corpname)[1]|
  (($info[//corpcredit])[last()]/corpcredit)[1]|
  (($info[//corpauthor])[last()]/corpauthor)[1]|
  (($info[//orgname])[last()]/orgname)[1]|
  (($info[//publishername])[last()]/publishername)[1]
&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The value of <parameter>refentry.source.name.profile</parameter>
is a string representing an XPath expression. It is evaluated at
run-time and used only if
<parameter>refentry.source.name.profile.enabled</parameter> is
non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
"hard coded" into the stylesheets is used.</para>

<para>A "source name" is one part of a (potentially) two-part
<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
"source" field. In man pages, it is usually displayed in the left
footer of the page. It typically indicates the software system or
product that the item documented in the man page belongs to. The
<literal>man(7)</literal> man page describes it as "the source of
the command", and provides the following examples:
<itemizedlist>
  <listitem>
    <para>For binaries, use something like: GNU, NET-2, SLS
    Distribution, MCC Distribution.</para>
  </listitem>
  <listitem>
    <para>For system calls, use the version of the kernel that you
    are currently looking at: Linux 0.99.11.</para>
  </listitem>
  <listitem>
    <para>For library calls, use the source of the function: GNU, BSD
    4.3, Linux DLL 4.4.1.</para>
  </listitem>
</itemizedlist>
</para>

<para>In practice, there are many pages that simply have a Version
number in the "source" field. So, it looks like what we have is a
two-part field,
<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>,
where:
<variablelist>
  <varlistentry>
    <term>Name</term>
    <listitem>
      <para>product name (e.g., BSD) or org. name (e.g., GNU)</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Version</term>
    <listitem>
      <para>version number</para>
    </listitem>
  </varlistentry>
</variablelist>
Each part is optional. If the <replaceable>Name</replaceable> is a
product name, then the <replaceable>Version</replaceable> is probably
the version of the product. Or there may be no
<replaceable>Name</replaceable>, in which case, if there is a
<replaceable>Version</replaceable>, it is probably the version
of the item itself, not the product it is part of. Or, if the
<replaceable>Name</replaceable> is an organization name, then there
probably will be no <replaceable>Version</replaceable>.</para>
</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.source.name.profile.enabled">
<refmeta>
<refentrytitle>refentry.source.name.profile.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.source.name.profile.enabled</refname>
<refpurpose>Enable refentry "source name" profiling?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.source.name.profile.enabled.frag">
&lt;xsl:param name="refentry.source.name.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of
<parameter>refentry.source.name.profile.enabled</parameter> is
non-zero, then during <tag>refentry</tag> metadata gathering, the info
profile specified by the customizable
<parameter>refentry.source.name.profile</parameter> parameter is
used.</para>

<para>If instead the value of
<parameter>refentry.source.name.profile.enabled</parameter> is zero (the
default), then "hard coded" logic within the DocBook XSL stylesheets
is used for gathering <tag>refentry</tag> "source name" data.</para>

<para>If you find that the default <tag>refentry</tag>
metadata-gathering behavior is causing incorrect "source name" data to
show up in your output, then consider setting a non-zero value for
<parameter>refentry.source.name.profile.enabled</parameter> and
adjusting the value of
<parameter>refentry.source.name.profile</parameter> to cause correct
data to be gathered. </para>

<para>Note that the terms "source" and "source name" have special
meanings in this context. For details, see the documentation for the
<parameter>refentry.source.name.profile</parameter> parameter.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.version.suppress">
<refmeta>
<refentrytitle>refentry.version.suppress</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.version.suppress</refname>
<refpurpose>Suppress "version" part of refentry "source" contents?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.version.suppress.frag">
&lt;xsl:param name="refentry.version.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>refentry.version.suppress</parameter>
is non-zero, then during <tag>refentry</tag> metadata gathering, no
"version" data is added to the <tag>refentry</tag> "source"
contents. Instead (unless
<parameter>refentry.source.name.suppress</parameter> is also
non-zero), only "source name" data is added to the "source"
contents.</para>

<para>If you find that the <tag>refentry</tag> metadata gathering
mechanism is causing unwanted "version" data to show up in your output
-- for example, in the footer (or possibly header) of a man page --
then you might consider setting a non-zero value for
<parameter>refentry.version.suppress</parameter>.</para>

<para>Note that the terms "source", "source name", and "version" have
special meanings in this context. For details, see the documentation
for the <parameter>refentry.source.name.profile</parameter>
parameter.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.version.profile">
<refmeta>
<refentrytitle>refentry.version.profile</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.version.profile</refname>
<refpurpose>Specifies profile for refentry "version" data</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.version.profile.frag">
&lt;xsl:param name="refentry.version.profile"&gt;
  (($info[//productnumber])[last()]/productnumber)[1]|
  (($info[//edition])[last()]/edition)[1]|
  (($info[//releaseinfo])[last()]/releaseinfo)[1]
&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The value of <parameter>refentry.version.profile</parameter> is
a string representing an XPath expression. It is evaluated at
run-time and used only if
<parameter>refentry.version.profile.enabled</parameter> is
non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
"hard coded" into the stylesheets is used.</para>

<para>A "source.name" is one part of a (potentially) two-part
<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
"source" field. For more details, see the documentation for the
<parameter>refentry.source.name.profile</parameter> parameter.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.version.profile.enabled">
<refmeta>
<refentrytitle>refentry.version.profile.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.version.profile.enabled</refname>
<refpurpose>Enable refentry "version" profiling?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.version.profile.enabled.frag">
&lt;xsl:param name="refentry.version.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of
<parameter>refentry.version.profile.enabled</parameter> is
non-zero, then during <tag>refentry</tag> metadata gathering, the info
profile specified by the customizable
<parameter>refentry.version.profile</parameter> parameter is
used.</para>

<para>If instead the value of
<parameter>refentry.version.profile.enabled</parameter> is zero (the
default), then "hard coded" logic within the DocBook XSL stylesheets
is used for gathering <tag>refentry</tag> "version" data.</para>

<para>If you find that the default <tag>refentry</tag>
metadata-gathering behavior is causing incorrect "version" data to show
up in your output, then consider setting a non-zero value for
<parameter>refentry.version.profile.enabled</parameter> and adjusting
the value of <parameter>refentry.version.profile</parameter> to cause
correct data to be gathered. </para>

<para>Note that the terms "source" and "version" have special
meanings in this context. For details, see the documentation for the
<parameter>refentry.version.profile</parameter> parameter.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.manual.fallback.profile">
<refmeta>
<refentrytitle>refentry.manual.fallback.profile</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.manual.fallback.profile</refname>
<refpurpose>Specifies profile of "fallback" for refentry "manual" data</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.manual.fallback.profile.frag">
&lt;xsl:param name="refentry.manual.fallback.profile"&gt;
refmeta/refmiscinfo[not(@class = 'date')][1]/node()&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The value of
<parameter>refentry.manual.fallback.profile</parameter> is a string
representing an XPath expression. It is evaluated at run-time and
used only if no "manual" data can be found by other means (that is,
either using the <tag>refentry</tag> metadata-gathering logic "hard
coded" in the stylesheets, or the value of
<parameter>refentry.manual.profile</parameter>, if it is
enabled).</para>

<important>
<para>Depending on which XSLT engine you run, either the EXSLT
<function>dyn:evaluate</function> extension function (for xsltproc or
Xalan) or <function>saxon:evaluate</function> extension function (for
Saxon) are used to dynamically evaluate the value of
<parameter>refentry.manual.fallback.profile</parameter> at
run-time. If you don't use xsltproc, Saxon, Xalan -- or some other
XSLT engine that supports <function>dyn:evaluate</function> -- you
must manually disable fallback processing by setting an empty value
for the <parameter>refentry.manual.fallback.profile</parameter>
parameter.</para>
</important>

</refsection>
</refentry>

<refentry version="5.0" xml:id="refentry.source.fallback.profile">
<refmeta>
<refentrytitle>refentry.source.fallback.profile</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.source.fallback.profile</refname>
<refpurpose>Specifies profile of "fallback" for refentry "source" data</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="refentry.source.fallback.profile.frag">
&lt;xsl:param name="refentry.source.fallback.profile"&gt;
refmeta/refmiscinfo[not(@class = 'date')][1]/node()&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The value of
<parameter>refentry.source.fallback.profile</parameter> is a string
representing an XPath expression. It is evaluated at run-time and used
only if no "source" data can be found by other means (that is, either
using the <tag>refentry</tag> metadata-gathering logic "hard coded" in
the stylesheets, or the value of the
<parameter>refentry.source.name.profile</parameter> and
<parameter>refentry.version.profile</parameter> parameters, if those
are enabled).</para>

<important>
<para>Depending on which XSLT engine you run, either the EXSLT
<function>dyn:evaluate</function> extension function (for xsltproc or
Xalan) or <function>saxon:evaluate</function> extension function (for
Saxon) are used to dynamically evaluate the value of
<parameter>refentry.source.fallback.profile</parameter> at
run-time. If you don't use xsltproc, Saxon, Xalan -- or some other
XSLT engine that supports <function>dyn:evaluate</function> -- you
must manually disable fallback processing by setting an empty value
for the <parameter>refentry.source.fallback.profile</parameter>
parameter.</para>
</important>

</refsection>
</refentry>

  </reference>
  <reference xml:id="th">
  <title>Page header/footer</title>
<refentry version="5.0" xml:id="man.th.extra1.suppress">
<refmeta>
<refentrytitle>man.th.extra1.suppress</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.th.extra1.suppress</refname>
<refpurpose>Suppress extra1 part of header/footer?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.th.extra1.suppress.frag">
&lt;xsl:param name="man.th.extra1.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>man.th.extra1.suppress</parameter> is
non-zero, then the <literal>extra1</literal> part of the
<literal>.TH</literal> title line header/footer is suppressed.</para>

<para>The content of the <literal>extra1</literal> field is almost
always displayed in the center footer of the page and is, universally,
a date.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.th.extra2.suppress">
<refmeta>
<refentrytitle>man.th.extra2.suppress</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.th.extra2.suppress</refname>
<refpurpose>Suppress extra2 part of header/footer?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.th.extra2.suppress.frag">
&lt;xsl:param name="man.th.extra2.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>man.th.extra2.suppress</parameter> is
non-zero, then the <literal>extra2</literal> part of the
<literal>.TH</literal> title line header/footer is suppressed.</para>

<para>The content of the <literal>extra2</literal> field is usually
displayed in the left footer of the page and is typically "source"
data, often in the form
<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>;
for example, "GTK+ 1.2" (from the <literal>gtk-options(7)</literal>
man page).</para>

<note>
  <para>You can use the
  <parameter>refentry.source.name.suppress</parameter> and
  <parameter>refentry.version.suppress</parameter> parameters to
  independently suppress the <replaceable>Name</replaceable> and
  <replaceable>Version</replaceable> parts of the
  <literal>extra2</literal> field.</para>
</note>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.th.extra3.suppress">
<refmeta>
<refentrytitle>man.th.extra3.suppress</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.th.extra3.suppress</refname>
<refpurpose>Suppress extra3 part of header/footer?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.th.extra3.suppress.frag">
&lt;xsl:param name="man.th.extra3.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <parameter>man.th.extra3.suppress</parameter> is
non-zero, then the <literal>extra3</literal> part of the
<literal>.TH</literal> title line header/footer is
suppressed.</para>

<para>The content of the <literal>extra3</literal> field is usually
displayed in the middle header of the page and is typically a "manual
name"; for example, "GTK+ User's Manual" (from the
<literal>gtk-options(7)</literal> man page).</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.th.title.max.length">
<refmeta>
<refentrytitle>man.th.title.max.length</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.th.title.max.length</refname>
<refpurpose>Maximum length of title in header/footer</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.th.title.max.length.frag">
&lt;xsl:param name="man.th.title.max.length"&gt;20&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>Specifies the maximum permitted length of the title part of the
man-page <literal>.TH</literal> title line header/footer. If the title
exceeds the maxiumum specified, it is truncated down to the maximum
permitted length.</para>

<refsection><info><title>Details</title></info>
  

<para>Every man page generated using the DocBook stylesheets has a
title line, specified using the <literal>TH</literal> roff
macro. Within that title line, there is always, at a minimum, a title,
followed by a section value (representing a man "section" -- usually
just a number).</para>

<para>The title and section are displayed, together, in the visible
header of each page. Where in the header they are displayed depends on
OS the man page is viewed on, and on what version of nroff/groff/man
is used for viewing the page. But, at a minimum and across all
systems, the title and section are displayed on the right-hand column
of the header. On many systems -- those with a modern groff, including
Linux systems -- they are displayed twice: both in the left and right
columns of the header.</para>

<para>So if the length of the title exceeds a certain percentage of
the column width in which the page is viewed, the left and right
titles can end up overlapping, making them unreadable, or breaking to
another line, which doesn't look particularly good.</para>

<para>So the stylesheets provide the
<parameter>man.th.title.max.length</parameter> parameter as a means
for truncating titles that exceed the maximum length that can be
viewing properly in a page header.</para>

<para>The default value is reasonable but somewhat arbitrary. If you
have pages with long titles, you may want to experiment with changing
the value in order to achieve the correct aesthetic results.</para>
</refsection>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.th.extra2.max.length">
<refmeta>
<refentrytitle>man.th.extra2.max.length</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.th.extra2.max.length</refname>
<refpurpose>Maximum length of extra2 in header/footer</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.th.extra2.max.length.frag">
&lt;xsl:param name="man.th.extra2.max.length"&gt;30&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>Specifies the maximum permitted length of the
<literal>extra2</literal> part of the man-page part of the
<literal>.TH</literal> title line header/footer. If the
<literal>extra2</literal> content exceeds the maxiumum specified, it
is truncated down to the maximum permitted length.</para>

<para>The content of the <literal>extra2</literal> field is usually
displayed in the left footer of the page and is typically "source"
data indicating the software system or product that the item
documented in the man page belongs to, often in the form
<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>;
for example, "GTK+ 1.2" (from the <literal>gtk-options(7)</literal>
man page).</para>

<para>The default value for this parameter is reasonable but somewhat
arbitrary. If you are processing pages with long "source" information,
you may want to experiment with changing the value in order to achieve
the correct aesthetic results.</para>
</refsection>
</refentry>

<refentry version="5.0" xml:id="man.th.extra3.max.length">
<refmeta>
<refentrytitle>man.th.extra3.max.length</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.th.extra3.max.length</refname>
<refpurpose>Maximum length of extra3 in header/footer</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.th.extra3.max.length.frag">
&lt;xsl:param name="man.th.extra3.max.length"&gt;30&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>Specifies the maximum permitted length of the
<literal>extra3</literal> part of the man-page <literal>.TH</literal>
title line header/footer. If the <literal>extra3</literal> content
exceeds the maxiumum specified, it is truncated down to the maximum
permitted length.</para>

<para>The content of the <literal>extra3</literal> field is usually
displayed in the middle header of the page and is typically a "manual
name"; for example, "GTK+ User's Manual" (from the
<literal>gtk-options(7)</literal> man page).</para>

<para>The default value for this parameter is reasonable but somewhat
arbitrary. If you are processing pages with long "manual names" -- or
especially if you are processing pages that have both long "title"
parts (command/function, etc. names) <emphasis>and</emphasis> long
manual names -- you may want to experiment with changing the value in
order to achieve the correct aesthetic results.</para>
</refsection>
</refentry>

  </reference>
  <reference xml:id="output">
  <title>Output</title>
<refentry version="5.0" xml:id="man.output.manifest.enabled">
  <refmeta>
    <refentrytitle>man.output.manifest.enabled</refentrytitle>
    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>man.output.manifest.enabled</refname>
    <refpurpose>Generate a manifest file?</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <programlisting xml:id="man.output.manifest.enabled.frag">&lt;xsl:param name="man.output.manifest.enabled" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
  </refsynopsisdiv>

  <refsection><info><title>Description</title></info>

    <para>If non-zero, a list of filenames for man pages generated by
    the stylesheet transformation is written to the file named by the
    <parameter>man.output.manifest.filename</parameter> parameter.</para>

  </refsection>
</refentry>

<refentry version="5.0" xml:id="man.output.manifest.filename">
  <refmeta>
    <refentrytitle>man.output.manifest.filename</refentrytitle>
    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>man.output.manifest.filename</refname>
    <refpurpose>Name of manifest file</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <programlisting xml:id="man.output.manifest.filename.frag">&lt;xsl:param name="man.output.manifest.filename"&gt;MAN.MANIFEST&lt;/xsl:param&gt;</programlisting>
  </refsynopsisdiv>

  <refsection><info><title>Description</title></info>

    <para>The <parameter>man.output.manifest.filename</parameter> parameter
    specifies the name of the file to which the manpages manifest file
    is written (if the value of the
    <parameter>man.output.manifest.enabled</parameter> parameter is
    non-zero).</para>

  </refsection>
</refentry>

<refentry version="5.0" xml:id="man.output.in.separate.dir">
<refmeta>
<refentrytitle>man.output.in.separate.dir</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.output.in.separate.dir</refname>
<refpurpose>Output man-page files in separate output directory?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.output.in.separate.dir.frag">
&lt;xsl:param name="man.output.in.separate.dir" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of <literal>man.output.in.separate.dir</literal>
parameter is non-zero, man-page files are output in a separate
directory, specified by the <parameter>man.output.base.dir</parameter>
parameter; otherwise, if the value of
<literal>man.output.in.separate.dir</literal> is zero, man-page files
are not output in a separate directory.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.output.lang.in.name.enabled">
<refmeta>
<refentrytitle>man.output.lang.in.name.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.output.lang.in.name.enabled</refname>
<refpurpose>Include $LANG value in man-page filename/pathname?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.output.lang.in.name.enabled.frag">
&lt;xsl:param name="man.output.lang.in.name.enabled" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

  <para>The <parameter>man.output.lang.in.name.enabled</parameter>
  parameter specifies whether a <literal>$lang</literal> value is
  included in man-page filenames and pathnames.</para>

  <para>If the value of
  <parameter>man.output.lang.in.name.enabled</parameter> is non-zero,
  man-page files are output with the <literal>$lang</literal> value
  included in their filenames or pathnames as follows;

  <itemizedlist>
    <listitem>
      <para>if <parameter>man.output.subdirs.enabled</parameter> is
      non-zero, each file is output to, e.g., a
      <filename>man/<replaceable>$lang</replaceable>/man8/foo.8</filename>
      pathname</para>
    </listitem>
    <listitem>
      <para>if <parameter>man.output.subdirs.enabled</parameter> is
      zero, each file is output with a
      <literal>foo.<replaceable>$lang</replaceable>.8</literal>
      filename</para>
    </listitem>
  </itemizedlist>
  </para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.output.base.dir">
<refmeta>
<refentrytitle>man.output.base.dir</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.output.base.dir</refname>
<refpurpose>Specifies separate output directory</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.output.base.dir.frag">&lt;xsl:param name="man.output.base.dir"&gt;man/&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The <parameter>man.output.base.dir</parameter> parameter
specifies the base directory into which man-page files are output. The
<parameter>man.output.subdirs.enabled</parameter> parameter controls
whether the files are output in subdirectories within the base
directory.</para>

<note>
  <para>The values of the <parameter>man.output.base.dir</parameter>
  and <parameter>man.output.subdirs.enabled</parameter> parameters are
  used only if the value of
  <parameter>man.output.in.separate.dir</parameter> parameter is
  non-zero. If the value of the
  <parameter>man.output.in.separate.dir</parameter> is zero, man-page
  files are not output in a separate directory.</para>
</note>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.output.subdirs.enabled">
<refmeta>
<refentrytitle>man.output.subdirs.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.output.subdirs.enabled</refname>
<refpurpose>Output man-page files in subdirectories within base output directory?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.output.subdirs.enabled.frag">
&lt;xsl:param name="man.output.subdirs.enabled" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>The <parameter>man.output.subdirs.enabled</parameter> parameter
controls whether man-pages files are output in subdirectories within
the base directory specified by the directory specified by the
<parameter>man.output.base.dir</parameter> parameter.</para>

<note>
  <para>The values of the <parameter>man.output.base.dir</parameter>
  and <parameter>man.output.subdirs.enabled</parameter> parameters are
  used only if the value of
  <parameter>man.output.in.separate.dir</parameter> parameter is
  non-zero. If the value of the
  <parameter>man.output.in.separate.dir</parameter> is zero, man-page
  files are not output in a separate directory.</para>
</note>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.output.quietly">
<refmeta>
<refentrytitle>man.output.quietly</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.output.quietly</refname>
<refpurpose>Suppress filename messages emitted when generating output?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.output.quietly.frag">
&lt;xsl:param name="man.output.quietly" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If zero (the default), for each man-page file created, a message
with the name of the file is emitted. If non-zero, the files are
output "quietly" -- that is, the filename messages are
suppressed.</para>

<tip>
  <para>If you are processing a large amount of <tag>refentry</tag>
  content, you may be able to speed up processing significantly by
  setting a non-zero value for
  <parameter>man.output.quietly</parameter>.</para>
</tip>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.output.encoding">
<refmeta>
<refentrytitle>man.output.encoding</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.output.encoding</refname>
<refpurpose>Encoding used for man-page output</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.output.encoding.frag">
&lt;xsl:param name="man.output.encoding"&gt;UTF-8&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>This parameter specifies the encoding to use for files generated
by the manpages stylesheet. Not all processors support specification
of this parameter.</para>

<important>
  <para>If the value of the <parameter>man.charmap.enabled</parameter>
  parameter is non-zero (the default), keeping the
  <parameter>man.output.encoding</parameter> parameter at its default
  value (<literal>UTF-8</literal>) or setting it to
  <literal>UTF-16</literal> <emphasis role="bold">does not cause your
  man pages to be output in raw UTF-8 or UTF-16</emphasis> -- because
  any Unicode characters for which matches are found in the enabled
  character map will be replaced with roff escape sequences before the
  final man-page files are generated.</para>

  <para>So if you want to generate "real" UTF-8 man pages, without any
  character substitution being performed on your content, you need to
  set <parameter>man.charmap.enabled</parameter> to zero (which will
  completely disable character-map processing). </para>

  <para>You may also need to set
  <parameter>man.charmap.enabled</parameter> to zero if you want to
  output man pages in an encoding other than <literal>UTF-8</literal>
  or <literal>UTF-16</literal>. Character-map processing is based on
  Unicode character values and may not work with other output
  encodings.</para>
</important>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.output.better.ps.enabled">
<refmeta>
<refentrytitle>man.output.better.ps.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.output.better.ps.enabled</refname>
<refpurpose>Enable enhanced print/PostScript output?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="man.output.better.ps.enabled.frag">
&lt;xsl:param name="man.output.better.ps.enabled"&gt;0&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>

<para>If the value of the
<parameter>man.output.better.ps.enabled</parameter> parameter is
non-zero, certain markup is embedded in each generated man page
such that PostScript output from the <command>man -Tps</command>
command for that page will include a number of enhancements
designed to improve the quality of that output.</para>

<para>If <parameter>man.output.better.ps.enabled</parameter> is
zero (the default), no such markup is embedded in generated man
pages, and no enhancements are included in the PostScript
output generated from those man pages by the <command>man
 -Tps</command> command.</para>

<warning>
  <para>The enhancements provided by this parameter rely on
    features that are specific to groff (GNU troff) and that are
    not part of &#8220;classic&#8221; AT&amp;T troff or any of its
    derivatives. Therefore, any man pages you generate with this
    parameter enabled will be readable only on systems on which
    the groff (GNU troff) program is installed, such as GNU/Linux
    systems. The pages <emphasis role="bold">will not not be
      readable on systems on with the classic troff (AT&amp;T
      troff) command is installed</emphasis>.</para>
</warning>

<para>The value of this parameter only affects PostScript output
  generated from the <command>man</command> command. It has no
  effect on output generated using the FO backend.</para>

<tip>
  <para>You can generate PostScript output for any man page by
    running the following command:</para>
  <programlisting>  man <replaceable>FOO</replaceable> -Tps &gt; <replaceable>FOO</replaceable>.ps</programlisting>
  <para>You can then generate PDF output by running the following
    command:</para>
  <programlisting>  ps2pdf <replaceable>FOO</replaceable>.ps</programlisting>
</tip>

</refsection>
</refentry>

  </reference>
  <reference xml:id="other">
  <title>Other</title>
<refentry version="5.0" xml:id="man.table.footnotes.divider">
<refmeta>
<refentrytitle>man.table.footnotes.divider</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.table.footnotes.divider</refname>
<refpurpose>Specifies divider string that appears before table footnotes</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.table.footnotes.divider.frag">
&lt;xsl:param name="man.table.footnotes.divider"&gt;----&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>In each table that contains footenotes, the string specified by
the <parameter>man.table.footnotes.divider</parameter> parameter is
output before the list of footnotes for the table.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.subheading.divider.enabled">
<refmeta>
<refentrytitle>man.subheading.divider.enabled</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.subheading.divider.enabled</refname>
<refpurpose>Add divider comment to roff source before/after subheadings?</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.subheading.divider.enabled.frag">
&lt;xsl:param name="man.subheading.divider.enabled"&gt;0&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of the
<parameter>man.subheading.divider.enabled</parameter> parameter is
non-zero, the contents of the
<parameter>man.subheading.divider</parameter> parameter are used to
add a "divider" before and after subheadings in the roff
output. <emphasis role="bold">The divider is not visisble in the
rendered man page</emphasis>; it is added as a comment, in the source,
simply for the purpose of increasing reability of the source.</para>

<para>If <parameter>man.subheading.divider.enabled</parameter> is zero
(the default), the subheading divider is suppressed.</para>

</refsection>
</refentry>

<refentry version="5.0" xml:id="man.subheading.divider">
<refmeta>
<refentrytitle>man.subheading.divider</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>man.subheading.divider</refname>
<refpurpose>Specifies string to use as divider comment before/after subheadings</refpurpose>
</refnamediv>

<refsynopsisdiv>
<programlisting xml:id="man.subheading.divider.frag">
&lt;xsl:param name="man.subheading.divider"&gt;========================================================================&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>

<refsection><info><title>Description</title></info>

<para>If the value of the
<parameter>man.subheading.divider.enabled</parameter> parameter is
non-zero, the contents of the
<parameter>man.subheading.divider</parameter> parameter are used to
add a "divider" before and after subheadings in the roff
output. <emphasis role="bold">The divider is not visisble in the
rendered man page</emphasis>; it is added as a comment, in the source,
simply for the purpose of increasing reability of the source.</para>

<para>If <parameter>man.subheading.divider.enabled</parameter> is zero
(the default), the subheading divider is suppressed.</para>

</refsection>
</refentry>

  </reference>
  <appendix xml:id="stylesheet">
    <title>The Stylesheet</title>

    <para>The <filename>param.xsl</filename> stylesheet is just a
    wrapper around all of these parameters.</para>

    <programlisting xml:id="top">
&lt;xsl:stylesheet exclude-result-prefixes="src" version="1.0"&gt;

&lt;!-- This file is generated from param.xweb --&gt;

&lt;!-- ********************************************************************
     $Id$
     ********************************************************************

     This file is part of the XSL DocBook Stylesheet distribution.
     See ../README or http://docbook.sf.net/release/xsl/current/ for
     copyright and other information.

     ******************************************************************** --&gt;

&lt;src:fragref linkend="man.authors.section.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.break.after.slash.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.base.url.for.relative.links.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.charmap.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.charmap.subset.profile.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.charmap.subset.profile.english.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.charmap.uri.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.charmap.use.subset.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.copyright.section.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.endnotes.are.numbered.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.endnotes.list.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.endnotes.list.heading.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.font.funcprototype.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.font.funcsynopsisinfo.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.font.links.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.font.table.headings.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.font.table.title.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.funcsynopsis.style.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.hyphenate.computer.inlines.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.hyphenate.filenames.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.hyphenate.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.hyphenate.urls.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.indent.blurbs.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.indent.lists.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.indent.refsect.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.indent.verbatims.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.indent.width.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.justify.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.output.base.dir.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.output.encoding.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.output.in.separate.dir.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.output.lang.in.name.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.output.manifest.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.output.manifest.filename.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.output.better.ps.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.output.quietly.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.output.subdirs.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.segtitle.suppress.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.string.subst.map.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.string.subst.map.local.post.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.string.subst.map.local.pre.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.subheading.divider.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.subheading.divider.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.table.footnotes.divider.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.th.extra1.suppress.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.th.extra2.max.length.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.th.extra2.suppress.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.th.extra3.max.length.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.th.extra3.suppress.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="man.th.title.max.length.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.date.profile.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.date.profile.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.manual.fallback.profile.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.manual.profile.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.manual.profile.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.meta.get.quietly.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.source.fallback.profile.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.source.name.profile.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.source.name.profile.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.source.name.suppress.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.version.profile.enabled.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.version.profile.frag"&gt;&lt;/src:fragref&gt;
&lt;src:fragref linkend="refentry.version.suppress.frag"&gt;&lt;/src:fragref&gt;
&lt;/xsl:stylesheet&gt;
    </programlisting>

  </appendix>
</book>
