<refentry xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          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>
<src:fragment xml:id="man.charmap.subset.profile.english.frag">
<xsl:param name="man.charmap.subset.profile.english">
@*[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'
</xsl:param>
</src:fragment>
</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>
