<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY groff_char "<citerefentry><refentrytitle>groff_char</refentrytitle><manvolnum>7</manvolnum></citerefentry>">
<!ENTITY groff_info "the <application>groff</application> Info page">
<!ENTITY groff "<application>groff</application>">
<!ENTITY docbook2X "<application>docbook2X</application>">
<!ENTITY utf8trans "<citerefentry><refentrytitle><command>utf8trans</command></refentrytitle><manvolnum>1</manvolnum></citerefentry>">
<!ENTITY xmlcharmap2utf8trans "<command>xmlcharmap2utf8trans</command>">
]>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:unichar="http://docbook.sourceforge.net/xmlns/unichar/1.0"
xmlns:doc="http://docbook2x.sourceforge.net/xmlns/character-map-doc"
exclude-result-prefixes="unichar doc"
version="2.0"
>
<!-- ************************************************************** -->
<doc:reference xmlns="">
<partinfo>
<author><firstname>Michael</firstname> <surname>Smith</surname></author>
<author><firstname>Steve</firstname> <surname>Cheng</surname></author>
</partinfo>
<partintro>
<para>
This file maps a small subset of Unicode characters (around 800
or so) to corresponding roff espace sequences. Use it when you
need to convert XML documents using Unicode characters
to roff (e.g., to generate “portable” man-page output).
</para>
<para>
Although the format follows the “character map” format
specified in the
<ulink url="http://www.w3.org/TR/xslt20/#character-maps">
XSLT 2.0 working draft</ulink>, it can be used with
an appropriate XSLT 1.0 stylesheet and any XSLT 1.0 processor.
It can also be used with the &utf8trans; program of &docbook2X;,
after conversion with the &xmlcharmap2utf8trans; script.
</para>
<para>
In order to make the character map more readable, it uses the
following “extension attributes” (in the <sgmltag
class="namespace">unichar</sgmltag>
namespace):
<variablelist>
<varlistentry>
<term>
<sgmltag class="attribute">unichar:name</sgmltag>
</term>
<listitem>
<para>Name for the character assigned by Unicode
(e.g. <literal>NO-BREAK SPACE</literal>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<sgmltag class="attribute">unichar:entity</sgmltag>
</term>
<listitem>
<para>ISO entity name for the character
(e.g. <literal>nbsp</literal>)
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
Use of such extension attributes is permitted by the XSLT 2.0
spec; see the
<ulink url="http://www.w3.org/TR/xslt20/#extension-attributes">
“Extension Attributes” section</ulink>.
</para>
<para>
The initial version of this file (before the “string” mappings
were added) was generated by taking the
<filename>unichars.el</filename> file from
Norm Walsh’s <filename>xmlunicode.el</filename> elisp distro,
and running a script on it to convert it to XML.
</para>
<para>
Steve Cheng later reorganized the file, putting the characters
in each Unicode block in separate
<sgmltag class="element">xsl:character-map</sgmltag> elements,
and changing the XML comments to documentation snippets in the
<sgmltag class="namespace">doc</sgmltag> namespace.
(This helps to pretty-print the document.)
</para>
<para>
References used in selecting roff mappings:
<orderedlist>
<listitem>
<para>&groff_char; man page</para>
</listitem>
<listitem>
<para>&groff; Info file; in particular, the “Page Motions”
section</para>
</listitem>
<listitem>
<para>tables in the “Character Sets” chapter of
<ulink url="http://www.ibiblio.org/xml/books/xian2/">
<citetitle>XML In a Nutshell</citetitle></ulink></para>
</listitem>
</orderedlist>
</para>
</partintro>
</doc:reference>
<!-- ************************************************************** -->
<!-- Select the character maps used -->
<xsl:output
use-character-maps="latin1 latin-ext-A latin-ext-B
spacing-modifiers greek-coptic
punct letterlike arrows
math-op misc-tech geometric-shapes
misc-symbols dingbats cjk-symbols-punct
alphabetic-presentation-forms
sup-subscript currency number-forms
control-pictures enclosed-alphanumerics"
/>
<!-- ************************************************************** -->
<!-- Include the ASCII transliterations -->
<xsl:include href="translit.charmap.xml" />
<!-- ************************************************************** -->
<doc:character-map name="latin1" xmlns="">
<title>Latin-1 Supplement</title>
</doc:character-map>
<xsl:character-map name="latin1">
<doc:output-character character=" " xmlns="">
<para>
No-break space can be written two ways in roff; the difference,
according to the “Page Motions” node in &groff_info;, is:
<variablelist>
<varlistentry>
<term><markup>\ </markup></term>
<listitem>
<para><quote>
An unbreakable and unpaddable (i.e. not expanded during filling)
space.
</quote></para>
</listitem>
</varlistentry>
<varlistentry>
<term><markup>\~</markup></term>
<listitem>
<para><quote>
An unbreakable space that stretches like a normal
inter-word space when a line is adjusted.
</quote></para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
Unfortunately, roff seems to do some weird things with long
lines that only have words separated by <markup>\~</markup>
spaces, so it is safer just to stick with the <markup>\ </markup>
space.
</para>
</doc:output-character>
<xsl:output-character
character=" "
unichar:name="NO-BREAK SPACE"
unichar:entity="nbsp"
string="\ "
/>
<xsl:output-character
character="¡"
unichar:name="INVERTED EXCLAMATION MARK"
unichar:entity="iexcl"
string="\(r!"
/>
<xsl:output-character
character="¢"
unichar:name="CENT SIGN"
unichar:entity="cent"
string="\(ct"
/>
<xsl:output-character
character="£"
unichar:name="POUND SIGN"
unichar:entity="pound"
string="\(Po"
/>
<xsl:output-character
character="¤"
unichar:name="CURRENCY SIGN"
unichar:entity="curren"
string="\(Cs"
/>
<xsl:output-character
character="¥"
unichar:name="YEN SIGN"
unichar:entity="yen"
string="\(Ye"
/>
<xsl:output-character
character="¦"
unichar:name="BROKEN BAR"
unichar:entity="brvbar"
string="\(bb"
/>
<xsl:output-character
character="§"
unichar:name="SECTION SIGN"
unichar:entity="sect"
string="\(sc"
/>
<xsl:output-character
character="¨"
unichar:name="DIAERESIS"
unichar:entity="Dot"
string="\(ad"
/>
<xsl:output-character
character="©"
unichar:name="COPYRIGHT SIGN"
unichar:entity="copy"
string="\(co"
/>
<xsl:output-character
character="ª"
unichar:name="FEMININE ORDINAL INDICATOR"
unichar:entity="ordf"
string="\(Of"
/>
<xsl:output-character
character="«"
unichar:name="LEFT-POINTING DOUBLE ANGLE QUOTATION MARK"
unichar:entity="laquo"
string="\(Fo"
/>
<xsl:output-character
character="¬"
unichar:name="NOT SIGN"
unichar:entity="not"
string="\(no"
/>
<doc:output-character character="­" xmlns="">
<para>
&groff_char; says: <quote>the soft hyphen control character
(prints as itself). groff never uses this character
for output (thus it is omitted in the table below);
the input character 173 is mapped onto
<markup>\%</markup>.</quote>
</para>
</doc:output-character>
<xsl:output-character
character="­"
unichar:name="SOFT HYPHEN"
unichar:entity="shy"
string="\%"
/>
<xsl:output-character
character="®"
unichar:name="REGISTERED SIGN"
unichar:entity="reg"
string="\(rg"
/>
<xsl:output-character
character="¯"
unichar:name="MACRON"
unichar:entity="macr"
string="\(a-"
/>
<xsl:output-character
character="°"
unichar:name="DEGREE SIGN"
unichar:entity="deg"
string="\(de"
/>
<xsl:output-character
character="±"
unichar:name="PLUS-MINUS SIGN"
unichar:entity="plusmn"
string="\(+-"
/>
<xsl:output-character
character="²"
unichar:name="SUPERSCRIPT TWO"
unichar:entity="sup2"
string="\(S2"
/>
<xsl:output-character
character="³"
unichar:name="SUPERSCRIPT THREE"
unichar:entity="sup3"
string="\(S3"
/>
<xsl:output-character
character="´"
unichar:name="ACUTE ACCENT"
unichar:entity="acute"
string="\(aa"
/>
<xsl:output-character
character="µ"
unichar:name="MICRO SIGN"
unichar:entity="micro"
string="\(mc"
/>
<xsl:output-character
character="¶"
unichar:name="PILCROW SIGN"
unichar:entity="para"
string="\(ps"
/>
<doc:output-character character="·" xmlns="">
<para>
According to &groff_char;, I think the escape string
<markup>\(pc</markup> "periodcentered" could also be used for
middot; not sure which is better, but "md" mnemonic is a better
fit :-)
</para>
</doc:output-character>
<xsl:output-character
character="·"
unichar:name="MIDDLE DOT"
unichar:entity="middot"
string="\(md"
/>
<xsl:output-character
character="¸"
unichar:name="CEDILLA"
unichar:entity="cedil"
string="\(ac"
/>
<xsl:output-character
character="¹"
unichar:name="SUPERSCRIPT ONE"
unichar:entity="sup1"
string="\(S1"
/>
<xsl:output-character
character="º"
unichar:name="MASCULINE ORDINAL INDICATOR"
unichar:entity="ordm"
string="\(Om"
/>
<xsl:output-character
character="»"
unichar:name="RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK"
unichar:entity="raquo"
string="\(Fc"
/>
<xsl:output-character
character="¼"
unichar:name="VULGAR FRACTION ONE QUARTER"
unichar:entity="frac14"
string="\(14"
/>
<xsl:output-character
character="½"
unichar:name="VULGAR FRACTION ONE HALF"
unichar:entity="frac12"
string="\(12"
/>
<xsl:output-character
character="¾"
unichar:name="VULGAR FRACTION THREE QUARTERS"
unichar:entity="frac34"
string="\(34"
/>
<xsl:output-character
character="¿"
unichar:name="INVERTED QUESTION MARK"
unichar:entity="iquest"
string="\(r?"
/>
<xsl:output-character
character="À"
unichar:name="LATIN CAPITAL LETTER A WITH GRAVE"
unichar:entity="Agrave"
string="\(`A"
/>
<xsl:output-character
character="Á"
unichar:name="LATIN CAPITAL LETTER A WITH ACUTE"
unichar:entity="Aacute"
string="\('A"
/>
<xsl:output-character
character="Â"
unichar:name="LATIN CAPITAL LETTER A WITH CIRCUMFLEX"
unichar:entity="Acirc"
string="\(^A"
/>
<xsl:output-character
character="Ã"
unichar:name="LATIN CAPITAL LETTER A WITH TILDE"
unichar:entity="Atilde"
string="\(~A"
/>
<xsl:output-character
character="Ä"
unichar:name="LATIN CAPITAL LETTER A WITH DIAERESIS"
unichar:entity="Auml"
string="\(:A"
/>
<xsl:output-character
character="Å"
unichar:name="LATIN CAPITAL LETTER A WITH RING ABOVE"
unichar:entity="Aring"
string="\(oA"
/>
<xsl:output-character
character="Æ"
unichar:name="LATIN CAPITAL LETTER AE"
unichar:entity="AElig"
string="\(AE"
/>
<xsl:output-character
character="Ç"
unichar:name="LATIN CAPITAL LETTER C WITH CEDILLA"
unichar:entity="Ccedil"
string="\(,C"
/>
<xsl:output-character
character="È"
unichar:name="LATIN CAPITAL LETTER E WITH GRAVE"
unichar:entity="Egrave"
string="\(`E"
/>
<xsl:output-character
character="É"
unichar:name="LATIN CAPITAL LETTER E WITH ACUTE"
unichar:entity="Eacute"
string="\('E"
/>
<xsl:output-character
character="Ê"
unichar:name="LATIN CAPITAL LETTER E WITH CIRCUMFLEX"
unichar:entity="Ecirc"
string="\(^E"
/>
<xsl:output-character
character="Ë"
unichar:name="LATIN CAPITAL LETTER E WITH DIAERESIS"
unichar:entity="Euml"
string="\(:E"
/>
<xsl:output-character
character="Ì"
unichar:name="LATIN CAPITAL LETTER I WITH GRAVE"
unichar:entity="Igrave"
string="\(`I"
/>
<xsl:output-character
character="Í"
unichar:name="LATIN CAPITAL LETTER I WITH ACUTE"
unichar:entity="Iacute"
string="\('I"
/>
<xsl:output-character
character="Î"
unichar:name="LATIN CAPITAL LETTER I WITH CIRCUMFLEX"
unichar:entity="Icirc"
string="\(^I"
/>
<xsl:output-character
character="Ï"
unichar:name="LATIN CAPITAL LETTER I WITH DIAERESIS"
unichar:entity="Iuml"
string="\(:I"
/>
<xsl:output-character
character="Ð"
unichar:name="LATIN CAPITAL LETTER ETH"
unichar:entity="ETH"
string="\(-D"
/>
<xsl:output-character
character="Ñ"
unichar:name="LATIN CAPITAL LETTER N WITH TILDE"
unichar:entity="Ntilde"
string="\(~N"
/>
<xsl:output-character
character="Ò"
unichar:name="LATIN CAPITAL LETTER O WITH GRAVE"
unichar:entity="Ograve"
string="\(`O"
/>
<xsl:output-character
character="Ó"
unichar:name="LATIN CAPITAL LETTER O WITH ACUTE"
unichar:entity="Oacute"
string="\('O"
/>
<xsl:output-character
character="Ô"
unichar:name="LATIN CAPITAL LETTER O WITH CIRCUMFLEX"
unichar:entity="Ocirc"
string="\(^O"
/>
<xsl:output-character
character="Õ"
unichar:name="LATIN CAPITAL LETTER O WITH TILDE"
unichar:entity="Otilde"
string="\(~O"
/>
<xsl:output-character
character="Ö"
unichar:name="LATIN CAPITAL LETTER O WITH DIAERESIS"
unichar:entity="Ouml"
string="\(:O"
/>
<xsl:output-character
character="×"
unichar:name="MULTIPLICATION SIGN"
unichar:entity="times"
string="\(mu"
/>
<xsl:output-character
character="Ø"
unichar:name="LATIN CAPITAL LETTER O WITH STROKE"
unichar:entity="Oslash"
string="\(/O"
/>
<xsl:output-character
character="Ù"
unichar:name="LATIN CAPITAL LETTER U WITH GRAVE"
unichar:entity="Ugrave"
string="\(`U"
/>
<xsl:output-character
character="Ú"
unichar:name="LATIN CAPITAL LETTER U WITH ACUTE"
unichar:entity="Uacute"
string="\('U"
/>
<xsl:output-character
character="Û"
unichar:name="LATIN CAPITAL LETTER U WITH CIRCUMFLEX"
unichar:entity="Ucirc"
string="\(^U"
/>
<xsl:output-character
character="Ü"
unichar:name="LATIN CAPITAL LETTER U WITH DIAERESIS"
unichar:entity="Uuml"
string="\(:U"
/>
<xsl:output-character
character="Ý"
unichar:name="LATIN CAPITAL LETTER Y WITH ACUTE"
unichar:entity="Yacute"
string="\('Y"
/>
<xsl:output-character
character="Þ"
unichar:name="LATIN CAPITAL LETTER THORN"
unichar:entity="THORN"
string="\(TP"
/>
<xsl:output-character
character="ß"
unichar:name="LATIN SMALL LETTER SHARP S"
unichar:entity="szlig"
string="\(ss"
/>
<xsl:output-character
character="à"
unichar:name="LATIN SMALL LETTER A WITH GRAVE"
unichar:entity="agrave"
string="\(`a"
/>
<xsl:output-character
character="á"
unichar:name="LATIN SMALL LETTER A WITH ACUTE"
unichar:entity="aacute"
string="\('a"
/>
<xsl:output-character
character="â"
unichar:name="LATIN SMALL LETTER A WITH CIRCUMFLEX"
unichar:entity="acirc"
string="\(^a"
/>
<xsl:output-character
character="ã"
unichar:name="LATIN SMALL LETTER A WITH TILDE"
unichar:entity="atilde"
string="\(~a"
/>
<xsl:output-character
character="ä"
unichar:name="LATIN SMALL LETTER A WITH DIAERESIS"
unichar:entity="auml"
string="\(:a"
/>
<xsl:output-character
character="å"
unichar:name="LATIN SMALL LETTER A WITH RING ABOVE"
unichar:entity="aring"
string="\(oa"
/>
<xsl:output-character
character="æ"
unichar:name="LATIN SMALL LETTER AE"
unichar:entity="aelig"
string="\(ae"
/>
<xsl:output-character
character="ç"
unichar:name="LATIN SMALL LETTER C WITH CEDILLA"
unichar:entity="ccedil"
string="\(,c"
/>
<xsl:output-character
character="è"
unichar:name="LATIN SMALL LETTER E WITH GRAVE"
unichar:entity="egrave"
string="\(`e"
/>
<xsl:output-character
character="é"
unichar:name="LATIN SMALL LETTER E WITH ACUTE"
unichar:entity="eacute"
string="\('e"
/>
<xsl:output-character
character="ê"
unichar:name="LATIN SMALL LETTER E WITH CIRCUMFLEX"
unichar:entity="ecirc"
string="\(^e"
/>
<xsl:output-character
character="ë"
unichar:name="LATIN SMALL LETTER E WITH DIAERESIS"
unichar:entity="euml"
string="\(:e"
/>
<xsl:output-character
character="ì"
unichar:name="LATIN SMALL LETTER I WITH GRAVE"
unichar:entity="igrave"
string="\(`i"
/>
<xsl:output-character
character="í"
unichar:name="LATIN SMALL LETTER I WITH ACUTE"
unichar:entity="iacute"
string="\('i"
/>
<xsl:output-character
character="î"
unichar:name="LATIN SMALL LETTER I WITH CIRCUMFLEX"
unichar:entity="icirc"
string="\(^i"
/>
<xsl:output-character
character="ï"
unichar:name="LATIN SMALL LETTER I WITH DIAERESIS"
unichar:entity="iuml"
string="\(:i"
/>
<xsl:output-character
character="ð"
unichar:name="LATIN SMALL LETTER ETH"
unichar:entity="eth"
string="\(Sd"
/>
<xsl:output-character
character="ñ"
unichar:name="LATIN SMALL LETTER N WITH TILDE"
unichar:entity="ntilde"
string="\(~n"
/>
<xsl:output-character
character="ò"
unichar:name="LATIN SMALL LETTER O WITH GRAVE"
unichar:entity="ograve"
string="\(`o"
/>
<xsl:output-character
character="ó"
unichar:name="LATIN SMALL LETTER O WITH ACUTE"
unichar:entity="oacute"
string="\('o"
/>
<xsl:output-character
character="ô"
unichar:name="LATIN SMALL LETTER O WITH CIRCUMFLEX"
unichar:entity="ocirc"
string="\(^o"
/>
<xsl:output-character
character="õ"
unichar:name="LATIN SMALL LETTER O WITH TILDE"
unichar:entity="otilde"
string="\(~o"
/>
<xsl:output-character
character="ö"
unichar:name="LATIN SMALL LETTER O WITH DIAERESIS"
unichar:entity="ouml"
string="\(:o"
/>
<xsl:output-character
character="÷"
unichar:name="DIVISION SIGN"
unichar:entity="divide"
string="\(di"
/>
<xsl:output-character
character="ø"
unichar:name="LATIN SMALL LETTER O WITH STROKE"
unichar:entity="oslash"
string="\(/o"
/>
<xsl:output-character
character="ù"
unichar:name="LATIN SMALL LETTER U WITH GRAVE"
unichar:entity="ugrave"
string="\(`u"
/>
<xsl:output-character
character="ú"
unichar:name="LATIN SMALL LETTER U WITH ACUTE"
unichar:entity="uacute"
string="\('u"
/>
<xsl:output-character
character="û"
unichar:name="LATIN SMALL LETTER U WITH CIRCUMFLEX"
unichar:entity="ucirc"
string="\(^u"
/>
<xsl:output-character
character="ü"
unichar:name="LATIN SMALL LETTER U WITH DIAERESIS"
unichar:entity="uuml"
string="\(:u"
/>
<xsl:output-character
character="ý"
unichar:name="LATIN SMALL LETTER Y WITH ACUTE"
unichar:entity="yacute"
string="\('y"
/>
<xsl:output-character
character="þ"
unichar:name="LATIN SMALL LETTER THORN"
unichar:entity="thorn"
string="\(Tp"
/>
<xsl:output-character
character="ÿ"
unichar:name="LATIN SMALL LETTER Y WITH DIAERESIS"
unichar:entity="yuml"
string="\(:y"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="latin-ext-A" xmlns=""
from="0x0100" to="0x017F">
<title>Latin Extended-A</title>
<para>
Most characters here do not have any (direct) roff equivalents.
Those that do have been mapped already.
</para>
</doc:character-map>
<xsl:character-map name="latin-ext-A">
<xsl:output-character
character="ı"
unichar:name="LATIN SMALL LETTER DOTLESS I"
unichar:entity="inodot"
string="\(.i"
/>
<xsl:output-character
character="IJ"
unichar:name="LATIN CAPITAL LIGATURE IJ"
unichar:entity="IJlig"
string="\(IJ"
/>
<xsl:output-character
character="ij"
unichar:name="LATIN SMALL LIGATURE IJ"
unichar:entity="ijlig"
string="\(ij"
/>
<xsl:output-character
character="Ł"
unichar:name="LATIN CAPITAL LETTER L WITH STROKE"
unichar:entity="Lstrok"
string="\(/L"
/>
<xsl:output-character
character="ł"
unichar:name="LATIN SMALL LETTER L WITH STROKE"
unichar:entity="lstrok"
string="\(/l"
/>
<xsl:output-character
character="Œ"
unichar:name="LATIN CAPITAL LIGATURE OE"
unichar:entity="OElig"
string="\(OE"
/>
<xsl:output-character
character="œ"
unichar:name="LATIN SMALL LIGATURE OE"
unichar:entity="oelig"
string="\(oe"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="latin-ext-B" xmlns=""
from="0x0180" to="0x023F">
<title>Latin Extended-B</title>
<para>
Most characters here do not have any (direct) roff equivalents.
Those that do have been mapped already.
</para>
</doc:character-map>
<xsl:character-map name="latin-ext-B">
<xsl:output-character
character="ƒ"
unichar:name="LATIN SMALL LETTER F WITH HOOK"
unichar:entity="fnof"
string="\(Fn"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="spacing-modifiers" xmlns=""
from="0x02B0" to="0x02EE">
<title>Spacing Modifier Letters</title>
</doc:character-map>
<xsl:character-map name="spacing-modifiers">
<xsl:output-character
character="ˆ"
unichar:name="MODIFIER LETTER CIRCUMFLEX ACCENT"
unichar:entity="circ"
string="\(a^"
/>
<xsl:output-character
character="ˇ"
unichar:name="CARON"
unichar:entity="caron"
string="\(ac"
/>
<xsl:output-character
character="ˉ"
unichar:name="MODIFIER LETTER MACRON"
string="\(a-"
/>
<xsl:output-character
character="˘"
unichar:name="BREVE"
unichar:entity="breve"
string="\(ab"
/>
<!-- there does not seem to by any roff equivalent for "dot above"
<xsl:output-character
character="˙"
unichar:name="DOT ABOVE"
unichar:entity="dot"
/>
-->
<xsl:output-character
character="˚"
unichar:name="RING ABOVE"
unichar:entity="ring"
string="\(ao"
/>
<xsl:output-character
character="˛"
unichar:name="OGONEK"
unichar:entity="ogon"
string="\(ho"
/>
<doc:output-character character="˝" xmlns="">
<para>
&groff_char; calls this a <quote>Hungarian umlaut</quote>.
</para>
</doc:output-character>
<xsl:output-character
character="˝"
unichar:name="DOUBLE ACUTE ACCENT"
unichar:entity="dblac"
string='\(a"'
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="greek-coptic" xmlns=""
from="0x0370" to="0x03FF">
<title>Greek and Coptic</title>
</doc:character-map>
<xsl:character-map name="greek-coptic">
<xsl:output-character
character="Α"
unichar:name="GREEK CAPITAL LETTER ALPHA"
unichar:entity="Agr"
string="\(*A)"
/>
<xsl:output-character
character="Β"
unichar:name="GREEK CAPITAL LETTER BETA"
unichar:entity="Bgr"
string="\(*B"
/>
<xsl:output-character
character="Γ"
unichar:name="GREEK CAPITAL LETTER GAMMA"
unichar:entity="Gamma"
string="\(*G"
/>
<xsl:output-character
character="Δ"
unichar:name="GREEK CAPITAL LETTER DELTA"
unichar:entity="Delta"
string="\(*D"
/>
<xsl:output-character
character="Ε"
unichar:name="GREEK CAPITAL LETTER EPSILON"
unichar:entity="Egr"
string="\(*E"
/>
<xsl:output-character
character="Ζ"
unichar:name="GREEK CAPITAL LETTER ZETA"
unichar:entity="Zgr"
string="\(*Z"
/>
<xsl:output-character
character="Η"
unichar:name="GREEK CAPITAL LETTER ETA"
unichar:entity="EEgr"
string="\(*Y"
/>
<xsl:output-character
character="Θ"
unichar:name="GREEK CAPITAL LETTER THETA"
unichar:entity="THgr"
string="\(*H"
/>
<xsl:output-character
character="Ι"
unichar:name="GREEK CAPITAL LETTER IOTA"
unichar:entity="Igr"
string="\(*I"
/>
<xsl:output-character
character="Κ"
unichar:name="GREEK CAPITAL LETTER KAPPA"
unichar:entity="Kgr"
string="\(*K"
/>
<xsl:output-character
character="Λ"
unichar:name="GREEK CAPITAL LETTER LAMDA"
unichar:entity="Lambda"
string="\(*L"
/>
<xsl:output-character
character="Μ"
unichar:name="GREEK CAPITAL LETTER MU"
unichar:entity="Mgr"
string="\(*M"
/>
<xsl:output-character
character="Ν"
unichar:name="GREEK CAPITAL LETTER NU"
unichar:entity="Ngr"
string="\(*N"
/>
<xsl:output-character
character="Ξ"
unichar:name="GREEK CAPITAL LETTER XI"
unichar:entity="Xgr"
string="\(*C"
/>
<xsl:output-character
character="Ο"
unichar:name="GREEK CAPITAL LETTER OMICRON"
unichar:entity="Ogr"
string="\(*O"
/>
<xsl:output-character
character="Π"
unichar:name="GREEK CAPITAL LETTER PI"
unichar:entity="Pgr"
string="\(*P"
/>
<xsl:output-character
character="Ρ"
unichar:name="GREEK CAPITAL LETTER RHO"
unichar:entity="Rgr"
string="\(*R"
/>
<xsl:output-character
character="Σ"
unichar:name="GREEK CAPITAL LETTER SIGMA"
unichar:entity="Sgr"
string="\(*S"
/>
<xsl:output-character
character="Τ"
unichar:name="GREEK CAPITAL LETTER TAU"
unichar:entity="Tgr"
string="\(*T"
/>
<xsl:output-character
character="Υ"
unichar:name="GREEK CAPITAL LETTER UPSILON"
unichar:entity="Ugr"
string="\(*U"
/>
<xsl:output-character
character="Φ"
unichar:name="GREEK CAPITAL LETTER PHI"
unichar:entity="PHgr"
string="\(*F"
/>
<xsl:output-character
character="Χ"
unichar:name="GREEK CAPITAL LETTER CHI"
unichar:entity="KHgr"
string="\(*X"
/>
<xsl:output-character
character="Ψ"
unichar:name="GREEK CAPITAL LETTER PSI"
unichar:entity="PSgr"
string="\(*Q"
/>
<xsl:output-character
character="Ω"
unichar:name="GREEK CAPITAL LETTER OMEGA"
unichar:entity="OHgr"
string="\(*W"
/>
<xsl:output-character
character="Ϊ"
unichar:name="GREEK CAPITAL LETTER IOTA WITH DIALYTIKA"
unichar:entity="Idigr"
string="\(*I"
/>
<xsl:output-character
character="Ϋ"
unichar:name="GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA"
unichar:entity="Udigr"
string="\(*U"
/>
<xsl:output-character
character="ά"
unichar:name="GREEK SMALL LETTER ALPHA WITH TONOS"
unichar:entity="aacgr"
string="\(*a"
/>
<xsl:output-character
character="έ"
unichar:name="GREEK SMALL LETTER EPSILON WITH TONOS"
unichar:entity="eacgr"
string="\(*e"
/>
<xsl:output-character
character="ή"
unichar:name="GREEK SMALL LETTER ETA WITH TONOS"
unichar:entity="eeacgr"
string="\(*y"
/>
<xsl:output-character
character="ί"
unichar:name="GREEK SMALL LETTER IOTA WITH TONOS"
unichar:entity="iacgr"
string="\(*i"
/>
<xsl:output-character
character="ΰ"
unichar:name="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS"
unichar:entity="udiagr"
string="\(*u"
/>
<xsl:output-character
character="α"
unichar:name="GREEK SMALL LETTER ALPHA"
unichar:entity="agr"
string="\(*a"
/>
<xsl:output-character
character="β"
unichar:name="GREEK SMALL LETTER BETA"
unichar:entity="beta"
string="\(*b"
/>
<xsl:output-character
character="γ"
unichar:name="GREEK SMALL LETTER GAMMA"
unichar:entity="gamma"
string="\(*g"
/>
<xsl:output-character
character="δ"
unichar:name="GREEK SMALL LETTER DELTA"
unichar:entity="delta"
string="\(*d"
/>
<xsl:output-character
character="ε"
unichar:name="GREEK SMALL LETTER EPSILON"
unichar:entity="epsi"
string="\(*e"
/>
<xsl:output-character
character="ζ"
unichar:name="GREEK SMALL LETTER ZETA"
unichar:entity="zeta"
string="\(*z"
/>
<xsl:output-character
character="η"
unichar:name="GREEK SMALL LETTER ETA"
unichar:entity="eegr"
string="\(*y"
/>
<xsl:output-character
character="θ"
unichar:name="GREEK SMALL LETTER THETA"
unichar:entity="thetas"
string="\(*h"
/>
<xsl:output-character
character="ι"
unichar:name="GREEK SMALL LETTER IOTA"
unichar:entity="igr"
string="\(*i"
/>
<xsl:output-character
character="κ"
unichar:name="GREEK SMALL LETTER KAPPA"
unichar:entity="kappa"
string="\(*k"
/>
<xsl:output-character
character="λ"
unichar:name="GREEK SMALL LETTER LAMDA"
unichar:entity="lambda"
string="\(*l"
/>
<xsl:output-character
character="μ"
unichar:name="GREEK SMALL LETTER MU"
unichar:entity="mgr"
string="\(*m"
/>
<xsl:output-character
character="ν"
unichar:name="GREEK SMALL LETTER NU"
unichar:entity="ngr"
string="\(*n"
/>
<xsl:output-character
character="ξ"
unichar:name="GREEK SMALL LETTER XI"
unichar:entity="xgr"
string="\(*c"
/>
<xsl:output-character
character="ο"
unichar:name="GREEK SMALL LETTER OMICRON"
unichar:entity="ogr"
string="\(*o"
/>
<xsl:output-character
character="π"
unichar:name="GREEK SMALL LETTER PI"
unichar:entity="pgr"
string="\(*p"
/>
<xsl:output-character
character="ρ"
unichar:name="GREEK SMALL LETTER RHO"
unichar:entity="rgr"
string="\(*r"
/>
<xsl:output-character
character="ς"
unichar:name="GREEK SMALL LETTER FINAL SIGMA"
unichar:entity="sfgr"
string="\(ts"
/>
<xsl:output-character
character="σ"
unichar:name="GREEK SMALL LETTER SIGMA"
unichar:entity="sgr"
string="\(*s"
/>
<xsl:output-character
character="τ"
unichar:name="GREEK SMALL LETTER TAU"
unichar:entity="tau"
string="\(*t"
/>
<xsl:output-character
character="υ"
unichar:name="GREEK SMALL LETTER UPSILON"
unichar:entity="ugr"
string="\(*u"
/>
<xsl:output-character
character="φ"
unichar:name="GREEK SMALL LETTER PHI"
unichar:entity="phgr"
string="\(*f"
/>
<xsl:output-character
character="χ"
unichar:name="GREEK SMALL LETTER CHI"
unichar:entity="chi"
string="\(*x"
/>
<xsl:output-character
character="ψ"
unichar:name="GREEK SMALL LETTER PSI"
unichar:entity="psgr"
string="\(*q"
/>
<xsl:output-character
character="ω"
unichar:name="GREEK SMALL LETTER OMEGA"
unichar:entity="ohgr"
string="\(*w"
/>
<xsl:output-character
character="ϊ"
unichar:name="GREEK SMALL LETTER IOTA WITH DIALYTIKA"
unichar:entity="idigr"
string="\(*i"
/>
<xsl:output-character
character="ϋ"
unichar:name="GREEK SMALL LETTER UPSILON WITH DIALYTIKA"
unichar:entity="udigr"
string="\(*u"
/>
<xsl:output-character
character="ό"
unichar:name="GREEK SMALL LETTER OMICRON WITH TONOS"
unichar:entity="oacgr"
string="\(*o"
/>
<xsl:output-character
character="ύ"
unichar:name="GREEK SMALL LETTER UPSILON WITH TONOS"
unichar:entity="uacgr"
string="\(*u"
/>
<xsl:output-character
character="ώ"
unichar:name="GREEK SMALL LETTER OMEGA WITH TONOS"
unichar:entity="ohacgr"
string="\(*w"
/>
<xsl:output-character
character="ϐ"
unichar:name="GREEK BETA SYMBOL"
string="\(*B"
/>
<xsl:output-character
character="ϑ"
unichar:name="GREEK THETA SYMBOL"
unichar:entity="thetav"
string="\(+h"
/>
<xsl:output-character
character="ϒ"
unichar:name="GREEK UPSILON WITH HOOK SYMBOL"
unichar:entity="Upsi"
string="\(*U"
/>
<xsl:output-character
character="ϓ"
unichar:name="GREEK UPSILON WITH ACUTE AND HOOK SYMBOL"
string="\(*U"
/>
<xsl:output-character
character="ϔ"
unichar:name="GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL"
string="\(*U"
/>
<xsl:output-character
character="ϕ"
unichar:name="GREEK PHI SYMBOL"
unichar:entity="phis"
string="\(+f"
/>
<xsl:output-character
character="ϖ"
unichar:name="GREEK PI SYMBOL"
unichar:entity="piv"
string="\(+p"
/>
<!-- no mappings for remaining chars x03d7 to x03ef -->
<xsl:output-character
character="ϰ"
unichar:name="GREEK KAPPA SYMBOL"
unichar:entity="kappav"
string="(*k"
/>
<xsl:output-character
character="ϱ"
unichar:name="GREEK RHO SYMBOL"
unichar:entity="rhov"
string="\(*r"
/>
<xsl:output-character
character="ϲ"
unichar:name="GREEK LUNATE SIGMA SYMBOL"
string="\(*s"
/>
<xsl:output-character
character="ϴ"
unichar:name="GREEK CAPITAL THETA SYMBOL"
string="\(*H"
/>
<xsl:output-character
character="ϵ"
unichar:name="GREEK LUNATE EPSILON SYMBOL"
string="\(*e"
/>
<xsl:output-character
character="϶"
unichar:name="GREEK REVERSED LUNATE EPSILON SYMBOL"
unichar:entity="bepsi"
string="\(*e"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="punct" xmlns=""
from="0x2000" to="0x206F">
<title>General Punctuation</title>
</doc:character-map>
<xsl:character-map name="punct">
<doc:output-character character=" " xmlns="">
<para>
There does not seem to be either a real em space or en
space in roff; to approximate them, this character map assumes
that in most fonts, an en space is about the same as the width of
a digit (in roff, <markup>\0</markup>), so an em space
(which by definition is equal to the width of two en spaces) is
about the same as the width of two digits (thus, in roff,
<markup>\0\0</markup>).
</para>
</doc:output-character>
<xsl:output-character
character=" "
unichar:name="EN QUAD"
string="\0"
/>
<xsl:output-character
character=" "
unichar:name="EM QUAD"
string="\0\0"
/>
<xsl:output-character
character=" "
unichar:name="EN SPACE"
unichar:entity="ensp"
string="\0"
/>
<xsl:output-character
character=" "
unichar:name="EM SPACE"
unichar:entity="emsp"
string="\0\0"
/>
<doc:output-character character=" " xmlns="">
<para>Roughly same width as a normal space.</para>
</doc:output-character>
<xsl:output-character
character=" "
unichar:name="THREE-PER-EM SPACE"
unichar:entity="emsp13"
string=" "
/>
<doc:output-character character=" " xmlns="">
<para>Roughly same width as a normal space.</para>
</doc:output-character>
<xsl:output-character
character=" "
unichar:name="FOUR-PER-EM SPACE"
unichar:entity="emsp14"
string=" "
/>
<doc:output-character character=" " xmlns="">
<para>Roughly same width as a normal space.</para>
</doc:output-character>
<xsl:output-character
character=" "
unichar:name="SIX-PER-EM SPACE"
string=" "
/>
<doc:output-character character=" " xmlns="">
<para>Same as roff “digit” space.</para>
</doc:output-character>
<xsl:output-character
character=" "
unichar:name="FIGURE SPACE"
unichar:entity="numsp"
string="\0"
/>
<doc:output-character character=" " xmlns="">
<para>
Punctuation space in most fonts is actually closer to a normal
space than it is to a thin space.
</para>
</doc:output-character>
<xsl:output-character
character=" "
unichar:name="PUNCTUATION SPACE"
unichar:entity="puncsp"
string=" "
/>
<doc:output-character character=" " xmlns="">
<para>
Not sure how best to deal with thin space, because the
roff thin space, <markup>\^</markup>, prints as a zero-width
space in TTY output. However, it seems that, unlike a hair
space, a thin space, at 1/12 of an em, is still recognizable
to most people as a space, so treating it as zero-width seems wrong.
So, for the sake of making TTY output look OK, just substitute with a
normal space; but real roff escape is <markup>\(\^</markup>
</para>
</doc:output-character>
<xsl:output-character
character=" "
unichar:name="THIN SPACE"
unichar:entity="thinsp"
string=" "
/>
<doc:output-character character=" " xmlns="">
<para>
I don't think there’s a standard definition of what a hair
space is; some guides just say it's <quote>less than 1/5 of an
em</quote> or that it’s <quote>narrower than a thin space</quote>;
seems like in practice, it's <emphasis>a lot</emphasis>
narrower than a thin space, to the point where
it’s close to being a non-space, so here it is substituted with
the roff equivalent of a zero-width joiner.
</para>
</doc:output-character>
<xsl:output-character
character=" "
unichar:name="HAIR SPACE"
unichar:entity="hairsp"
string="\&"
/>
<doc:output-character character="​" xmlns="">
<para>
Map to roff <quote>zero-width break point</quote>
</para>
</doc:output-character>
<xsl:output-character
character="​"
unichar:name="ZERO WIDTH SPACE"
string="\:"
/>
<doc:output-character character="‌" xmlns="">
<para>
Map to roff <quote>zero-width break point</quote>
</para>
</doc:output-character>
<xsl:output-character
character="‌"
unichar:name="ZERO WIDTH NON-JOINER"
string="\:"
/>
<doc:output-character character="‍" xmlns="">
<para>
&groff; docs seem ambiguous about whether <markup>\&</markup>
is a joiner and prevents breaks, but, based on testing,
seems like it does.
</para>
</doc:output-character>
<xsl:output-character
character="‍"
unichar:name="ZERO WIDTH JOINER"
string="\&"
/>
<!-- non-visible
<xsl:output-character
character="‎"
unichar:name="LEFT-TO-RIGHT MARK"
/>
<xsl:output-character
character="‏"
unichar:name="RIGHT-TO-LEFT MARK"
/>
-->
<!-- .................................................... -->
<!-- next, hyphens and various dashes, bars, underscores -->
<xsl:output-character
character="‐"
unichar:name="HYPHEN"
unichar:entity="hyphen"
string="\(hy"
/>
<xsl:output-character
character="‑"
unichar:name="NON-BREAKING HYPHEN"
string="\&-\&"
/>
<!-- roughly same width as en dash -->
<xsl:output-character
character="‒"
unichar:name="FIGURE DASH"
string="\(en"
/>
<xsl:output-character
character="–"
unichar:name="EN DASH"
unichar:entity="ndash"
string="\(en"
/>
<xsl:output-character
character="—"
unichar:name="EM DASH"
unichar:entity="mdash"
string="\(em"
/>
<!-- seems roughly same width as em dash -->
<xsl:output-character
character="―"
unichar:name="HORIZONTAL BAR"
unichar:entity="horbar"
string="\(em"
/>
<xsl:output-character
character="‖"
unichar:name="DOUBLE VERTICAL LINE"
unichar:entity="Verbar"
string="\(bv\(bv"
/>
<!-- no double-underscore in roff; so just make it a single
underscore -->
<xsl:output-character
character="‗"
unichar:name="DOUBLE LOW LINE"
string="_"
/>
<!-- .................................................... -->
<!-- various quotation marks -->
<xsl:output-character
character="‘"
unichar:name="LEFT SINGLE QUOTATION MARK"
unichar:entity="lsquo"
string="\(oq"
/>
<xsl:output-character
character="’"
unichar:name="RIGHT SINGLE QUOTATION MARK"
unichar:entity="rsquo"
string="\(cq"
/>
<xsl:output-character
character="‚"
unichar:name="SINGLE LOW-9 QUOTATION MARK"
unichar:entity="lsquor"
string="\(bq"
/>
<!-- no roff equiv; treat same as lsquo -->
<xsl:output-character
character="‛"
unichar:name="SINGLE HIGH-REVERSED-9 QUOTATION MARK"
string="\(oq"
/>
<xsl:output-character
character="“"
unichar:name="LEFT DOUBLE QUOTATION MARK"
unichar:entity="ldquo"
string="\(lq"
/>
<xsl:output-character
character="”"
unichar:name="RIGHT DOUBLE QUOTATION MARK"
unichar:entity="rdquo"
string="\(rq"
/>
<xsl:output-character
character="„"
unichar:name="DOUBLE LOW-9 QUOTATION MARK"
unichar:entity="ldquor"
string="\(Bq"
/>
<!-- no roff equiv; treat same as rdquo -->
<xsl:output-character
character="‟"
unichar:name="DOUBLE HIGH-REVERSED-9 QUOTATION MARK"
string="\(rq"
/>
<!-- .................................................... -->
<!-- various symbols -->
<xsl:output-character
character="†"
unichar:name="DAGGER"
unichar:entity="dagger"
string="\(dg"
/>
<xsl:output-character
character="‡"
unichar:name="DOUBLE DAGGER"
unichar:entity="Dagger"
string="\(dd"
/>
<xsl:output-character
character="•"
unichar:name="BULLET"
unichar:entity="bull"
string="\(bu"
/>
<!-- no roff equiv -->
<xsl:output-character
character="‣"
unichar:name="TRIANGULAR BULLET"
string=">\&"
/>
<!-- no roff equiv -->
<xsl:output-character
character="․"
unichar:name="ONE DOT LEADER"
string="\&."
/>
<!-- no roff equiv -->
<xsl:output-character
character="‥"
unichar:name="TWO DOT LEADER"
unichar:entity="nldr"
string="\&.."
/>
<!-- no roff equiv -->
<xsl:output-character
character="…"
unichar:name="HORIZONTAL ELLIPSIS"
unichar:entity="hellip"
string="\&..."
/>
<xsl:output-character
character="‧"
unichar:name="HYPHENATION POINT"
string="\%"
/>
<!-- Begin x2028 to x202e - no idea what to do with these
<xsl:output-character
character="
"
unichar:name="LINE SEPARATOR"
/>
<xsl:output-character
character="
"
unichar:name="PARAGRAPH SEPARATOR"
/>
<xsl:output-character
character="‪"
unichar:name="LEFT-TO-RIGHT EMBEDDING"
/>
<xsl:output-character
character="‫"
unichar:name="RIGHT-TO-LEFT EMBEDDING"
/>
<xsl:output-character
character="‬"
unichar:name="POP DIRECTIONAL FORMATTING"
/>
<xsl:output-character
character="‭"
unichar:name="LEFT-TO-RIGHT OVERRIDE"
/>
<xsl:output-character
character="‮"
unichar:name="RIGHT-TO-LEFT OVERRIDE"
/>
End x2028 to x202e - no idea what to do with these -->
<!-- seems like "narrow" nbsp is basically the same as a no-break
space -->
<xsl:output-character
character=" "
unichar:name="NARROW NO-BREAK SPACE"
string="\ "
/>
<xsl:output-character
character="‰"
unichar:name="PER MILLE SIGN"
unichar:entity="permil"
string="\(%0"
/>
<!-- no roff equiv; no idea what to do with it
<xsl:output-character
character="‱"
unichar:name="PER TEN THOUSAND SIGN"
/>
-->
<xsl:output-character
character="′"
unichar:name="PRIME"
unichar:entity="prime"
string="\(fm"
/>
<xsl:output-character
character="″"
unichar:name="DOUBLE PRIME"
unichar:entity="Prime"
string="\(sd"
/>
<xsl:output-character
character="‴"
unichar:name="TRIPLE PRIME"
unichar:entity="tprime"
string="\(sd\(fm"
/>
<!-- no idea for these
<xsl:output-character
character="‵"
unichar:name="REVERSED PRIME"
unichar:entity="bprime"
/>
<xsl:output-character
character="‶"
unichar:name="REVERSED DOUBLE PRIME"
/>
<xsl:output-character
character="‷"
unichar:name="REVERSED TRIPLE PRIME"
/>
-->
<!-- there is no low caret in roff -->
<xsl:output-character
character="‸"
unichar:name="CARET"
string="^"
/>
<xsl:output-character
character="‹"
unichar:name="SINGLE LEFT-POINTING ANGLE QUOTATION MARK"
string="\(fo"
/>
<xsl:output-character
character="›"
unichar:name="SINGLE RIGHT-POINTING ANGLE QUOTATION MARK"
string="\(fc"
/>
<!-- not in roff -->
<xsl:output-character
character="※"
unichar:name="REFERENCE MARK"
string="*"
/>
<xsl:output-character
character="‼"
unichar:name="DOUBLE EXCLAMATION MARK"
string="!!"
/>
<xsl:output-character
character="‽"
unichar:name="INTERROBANG"
string="?!"
/>
<xsl:output-character
character="‾"
unichar:name="OVERLINE"
string="\(rn"
/>
<xsl:output-character
character="‿"
unichar:name="UNDERTIE"
string="\(ul"
/>
<!-- not in roff -->
<xsl:output-character
character="⁀"
unichar:name="CHARACTER TIE"
string="\(rn"
/>
<!-- not in roff -->
<xsl:output-character
character="⁁"
unichar:name="CARET INSERTION POINT"
unichar:entity="caret"
string="^"
/>
<!-- not in roff -->
<xsl:output-character
character="⁂"
unichar:name="ASTERISM"
string="*"
/>
<!-- not in roff; just make bold hyphen -->
<xsl:output-character
character="⁃"
unichar:name="HYPHEN BULLET"
unichar:entity="hybull"
string="\fB-\fR"
/>
<xsl:output-character
character="⁄"
unichar:name="FRACTION SLASH"
string="\(sl"
/>
<!-- not in roff -->
<xsl:output-character
character="⁅"
unichar:name="LEFT SQUARE BRACKET WITH QUILL"
string="["
/>
<!-- not in roff -->
<xsl:output-character
character="⁆"
unichar:name="RIGHT SQUARE BRACKET WITH QUILL"
string="]"
/>
<xsl:output-character
character="⁇"
unichar:name="DOUBLE QUESTION MARK"
string="??"
/>
<xsl:output-character
character="⁈"
unichar:name="QUESTION EXCLAMATION MARK"
string="?!"
/>
<xsl:output-character
character="⁉"
unichar:name="EXCLAMATION QUESTION MARK"
string="!?"
/>
<!-- not in roff -->
<xsl:output-character
character="⁊"
unichar:name="TIRONIAN SIGN ET"
string="7"
/>
<!-- not in roff; just replace with un-reversed pilcrow -->
<xsl:output-character
character="⁋"
unichar:name="REVERSED PILCROW SIGN"
string="\(ps"
/>
<!-- not in roff; just make regular bullet -->
<xsl:output-character
character="⁌"
unichar:name="BLACK LEFTWARDS BULLET"
string="\(bu"
/>
<!-- not in roff; just make regular bullet -->
<xsl:output-character
character="⁍"
unichar:name="BLACK RIGHTWARDS BULLET"
string="\(bu"
/>
<xsl:output-character
character="⁎"
unichar:name="LOW ASTERISK"
string="*"
/>
<!-- ...............................................................
Remaining General Punctuation
from x2050 to x206f
only map a couple of these
.............................................................. -->
<!-- basically same as a normal space -->
<xsl:output-character
character=" "
unichar:name="MEDIUM MATHEMATICAL SPACE"
string=" "
/>
<!-- no idea how this is different than a zero-width joiner -->
<xsl:output-character
character="⁠"
unichar:name="WORD JOINER"
string="\&"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="letterlike" xmlns=""
from="0x2100" to="0x214B">
<title>Letterlike Symbols</title>
<para>
No mappings for any of these, and nothing appropriate for most
of them; so, just spell out the ones that we can.
</para>
</doc:character-map>
<xsl:character-map name="letterlike">
<xsl:output-character
character="℃"
unichar:name="DEGREE CELSIUS"
string="\(deC"
/>
<xsl:output-character
character="℅"
unichar:name="CARE OF"
unichar:entity="incare"
string="c/o"
/>
<xsl:output-character
character="℉"
unichar:name="DEGREE FAHRENHEIT"
string="\(deF"
/>
<!-- roff Ifraktur -->
<xsl:output-character
character="ℑ"
unichar:name="BLACK-LETTER CAPITAL I"
string="\(Im"
/>
<xsl:output-character
character="ℓ"
unichar:name="SCRIPT SMALL L"
unichar:entity="ell"
string="l"
/>
<xsl:output-character
character="№"
unichar:name="NUMERO SIGN"
unichar:entity="numero"
string="No."
/>
<xsl:output-character
character="℘"
unichar:name="SCRIPT CAPITAL P"
unichar:entity="weierp"
string="\(wp"
/>
<xsl:output-character
character="ℜ"
unichar:name="BLACK-LETTER CAPITAL R"
unichar:entity="real"
string="\(Re"
/>
<xsl:output-character
character="℞"
unichar:name="PRESCRIPTION TAKE"
unichar:entity="rx"
string="Rx"
/>
<xsl:output-character
character="℠"
unichar:name="SERVICE MARK"
string="sm"
/>
<xsl:output-character
character="™"
unichar:name="TRADE MARK SIGN"
unichar:entity="trade"
string="\(tm"
/>
<xsl:output-character
character="Ω"
unichar:name="OHM SIGN"
unichar:entity="ohm"
string="\(*W"
/>
<xsl:output-character
character="K"
unichar:name="KELVIN SIGN"
string="K"
/>
<xsl:output-character
character="Å"
unichar:name="ANGSTROM SIGN"
unichar:entity="angst"
string="\(oA"
/>
<xsl:output-character
character="ℵ"
unichar:name="ALEF SYMBOL"
unichar:entity="aleph"
string="\(Ah"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="arrows" xmlns=""
from="0x2190" to="0x21FF">
<title>Arrows</title>
</doc:character-map>
<xsl:character-map name="arrows">
<xsl:output-character
character="←"
unichar:name="LEFTWARDS ARROW"
unichar:entity="larr"
string="\(<-"
/>
<xsl:output-character
character="↑"
unichar:name="UPWARDS ARROW"
unichar:entity="uarr"
string="\(ua"
/>
<xsl:output-character
character="→"
unichar:name="RIGHTWARDS ARROW"
unichar:entity="rarr"
string="\(->"
/>
<xsl:output-character
character="↓"
unichar:name="DOWNWARDS ARROW"
unichar:entity="darr"
string="\(da"
/>
<xsl:output-character
character="↔"
unichar:name="LEFT RIGHT ARROW"
unichar:entity="harr"
string="\(<>"
/>
<xsl:output-character
character="↕"
unichar:name="UP DOWN ARROW"
unichar:entity="varr"
string="\(va"
/>
<xsl:output-character
character="↵"
unichar:name="DOWNWARDS ARROW WITH CORNER LEFTWARDS"
unichar:entity="crarr"
string="\(CR"
/>
<xsl:output-character
character="⇐"
unichar:name="LEFTWARDS DOUBLE ARROW"
unichar:entity="lArr"
string="\(la"
/>
<xsl:output-character
character="⇑"
unichar:name="UPWARDS DOUBLE ARROW"
unichar:entity="uArr"
string="\(uA"
/>
<xsl:output-character
character="⇒"
unichar:name="RIGHTWARDS DOUBLE ARROW"
unichar:entity="rArr"
string="\(rA"
/>
<xsl:output-character
character="⇓"
unichar:name="DOWNWARDS DOUBLE ARROW"
unichar:entity="dArr"
string="\(dA"
/>
<xsl:output-character
character="⇔"
unichar:name="LEFT RIGHT DOUBLE ARROW"
unichar:entity="hArr"
string="\(hA"
/>
<!-- no roff equiv; render same as single arrow -->
<xsl:output-character
character="⇕"
unichar:name="UP DOWN DOUBLE ARROW"
unichar:entity="vArr"
string="\(va"
/>
</xsl:character-map>
<doc:character-map name="math-op" xmlns=""
from="0x2200" to="0x22FF">
<title>Mathematical Operators</title>
</doc:character-map>
<xsl:character-map name="math-op">
<xsl:output-character
character="∀"
unichar:name="FOR ALL"
unichar:entity="forall"
string="\(fa"
/>
<xsl:output-character
character="∁"
unichar:name="COMPLEMENT"
unichar:entity="comp"
string="C"
/>
<xsl:output-character
character="∂"
unichar:name="PARTIAL DIFFERENTIAL"
unichar:entity="part"
string="\(pd"
/>
<xsl:output-character
character="∃"
unichar:name="THERE EXISTS"
unichar:entity="exist"
string="\(te"
/>
<!-- no roff equiv
<xsl:output-character
character="∄"
unichar:name="THERE DOES NOT EXIST"
unichar:entity="nexist"
/>
-->
<xsl:output-character
character="∅"
unichar:name="EMPTY SET"
unichar:entity="empty"
string="\(es"
/>
<xsl:output-character
character="∆"
unichar:name="INCREMENT"
string="\(*D"
/>
<xsl:output-character
character="∇"
unichar:name="NABLA"
unichar:entity="nabla"
string="\(gr"
/>
<xsl:output-character
character="∈"
unichar:name="ELEMENT OF"
unichar:entity="isin"
string="\(mo"
/>
<xsl:output-character
character="∉"
unichar:name="NOT AN ELEMENT OF"
unichar:entity="notin"
string="\(nm"
/>
<xsl:output-character
character="∊"
unichar:name="SMALL ELEMENT OF"
string="\(mo"
/>
<xsl:output-character
character="∋"
unichar:name="CONTAINS AS MEMBER"
unichar:entity="ni"
string="\(st"
/>
<!-- not in roff
<xsl:output-character
character="∌"
unichar:name="DOES NOT CONTAIN AS MEMBER"
/>
-->
<xsl:output-character
character="∍"
unichar:name="SMALL CONTAINS AS MEMBER"
string="\(st"
/>
<!-- not in roff
<xsl:output-character
character="∎"
unichar:name="END OF PROOF"
/>
-->
<xsl:output-character
character="∏"
unichar:name="N-ARY PRODUCT"
unichar:entity="prod"
string="\(product"
/>
<!-- not in roff
<xsl:output-character
character="∐"
unichar:name="N-ARY COPRODUCT"
unichar:entity="coprod"
/>
-->
<xsl:output-character
character="∑"
unichar:name="N-ARY SUMMATION"
unichar:entity="sum"
string="\(sum"
/>
<xsl:output-character
character="−"
unichar:name="MINUS SIGN"
unichar:entity="minus"
string="\-"
/>
<xsl:output-character
character="∓"
unichar:name="MINUS-OR-PLUS SIGN"
unichar:entity="mnplus"
string="\(+-"
/>
<!-- not in roff
<xsl:output-character
character="∔"
unichar:name="DOT PLUS"
unichar:entity="plusdo"
/>
-->
<xsl:output-character
character="∕"
unichar:name="DIVISION SLASH"
string="\(f/"
/>
<!-- not in roff
<xsl:output-character
character="∖"
unichar:name="SET MINUS"
unichar:entity="setmn"
/>
-->
<xsl:output-character
character="∗"
unichar:name="ASTERISK OPERATOR"
unichar:entity="lowast"
string="\(**"
/>
<!-- not in roff
<xsl:output-character
character="∘"
unichar:name="RING OPERATOR"
unichar:entity="compfn"
/>
-->
<xsl:output-character
character="∙"
unichar:name="BULLET OPERATOR"
string="\(bu"
/>
<xsl:output-character
character="√"
unichar:name="SQUARE ROOT"
unichar:entity="radic"
string="\(sr"
/>
<!-- not in roff
<xsl:output-character
character="∛"
unichar:name="CUBE ROOT"
/>
<xsl:output-character
character="∜"
unichar:name="FOURTH ROOT"
/>
-->
<xsl:output-character
character="∝"
unichar:name="PROPORTIONAL TO"
unichar:entity="prop"
string="\(pt"
/>
<xsl:output-character
character="∞"
unichar:name="INFINITY"
unichar:entity="infin"
string="\(if"
/>
<!-- not in roff
<xsl:output-character
character="∟"
unichar:name="RIGHT ANGLE"
unichar:entity="ang90"
/>
-->
<xsl:output-character
character="∠"
unichar:name="ANGLE"
unichar:entity="ang"
string="\(/_"
/>
<!-- 0x2221 to 0x2226 not in roff;
but fake a parallel sign with vert bars-->
<xsl:output-character
character="∥"
unichar:name="PARALLEL TO"
unichar:entity="par"
string="\(bv\(bv"
/>
<xsl:output-character
character="∧"
unichar:name="LOGICAL AND"
unichar:entity="and"
string="\(AN"
/>
<xsl:output-character
character="∨"
unichar:name="LOGICAL OR"
unichar:entity="or"
string="\(OR"
/>
<xsl:output-character
character="∩"
unichar:name="INTERSECTION"
unichar:entity="cap"
string="\(ca"
/>
<xsl:output-character
character="∪"
unichar:name="UNION"
unichar:entity="cup"
string="\(cu"
/>
<xsl:output-character
character="∫"
unichar:name="INTEGRAL"
unichar:entity="int"
string="\(is"
/>
<xsl:output-character
character="∬"
unichar:name="DOUBLE INTEGRAL"
string="\(is\(is"
/>
<xsl:output-character
character="∭"
unichar:name="TRIPLE INTEGRAL"
string="\(is\(is\(is"
/>
<!-- 0x222e to 0x2233 not in roff -->
<xsl:output-character
character="∴"
unichar:name="THEREFORE"
unichar:entity="there4"
string="\(tf"
/>
<!-- not in roff
<xsl:output-character
character="∵"
unichar:name="BECAUSE"
unichar:entity="becaus"
/>
-->
<xsl:output-character
character="∶"
unichar:name="RATIO"
string=":"
/>
<xsl:output-character
character="∷"
unichar:name="PROPORTION"
string="::"
/>
<!-- 0x2238 to 0x223b not in roff -->
<xsl:output-character
character="∼"
unichar:name="TILDE OPERATOR"
unichar:entity="sim"
string="\(ti"
/>
<!-- 0x223d to 0x224b not in roff -->
<xsl:output-character
character="≅"
unichar:name="APPROXIMATELY EQUAL TO"
unichar:entity="cong"
string="\(=~"
/>
<!-- not in roff
<xsl:output-character
character="≆"
unichar:name="APPROXIMATELY BUT NOT ACTUALLY EQUAL TO"
/>
<xsl:output-character
character="≇"
unichar:name="NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO"
unichar:entity="ncong"
/>
-->
<xsl:output-character
character="≈"
unichar:name="ALMOST EQUAL TO"
unichar:entity="asymp"
string="\(~~"
/>
<!-- x2249 to x2253 not in roff -->
<xsl:output-character
character="≔"
unichar:name="COLON EQUALS"
unichar:entity="colone"
string=":="
/>
<xsl:output-character
character="≕"
unichar:name="EQUALS COLON"
unichar:entity="ecolon"
string="=:"
/>
<!-- x2256 to x2255 not in roff -->
<xsl:output-character
character="≟"
unichar:name="QUESTIONED EQUAL TO"
string="?="
/>
<xsl:output-character
character="≠"
unichar:name="NOT EQUAL TO"
unichar:entity="ne"
string="\(!="
/>
<xsl:output-character
character="≡"
unichar:name="IDENTICAL TO"
unichar:entity="equiv"
string="\(=="
/>
<!-- not in roff
<xsl:output-character
character="≢"
unichar:name="NOT IDENTICAL TO"
unichar:entity="nequiv"
/>
<xsl:output-character
character="≣"
unichar:name="STRICTLY EQUIVALENT TO"
/>
-->
<xsl:output-character
character="≤"
unichar:name="LESS-THAN OR EQUAL TO"
unichar:entity="le"
string="\(<="
/>
<xsl:output-character
character="≥"
unichar:name="GREATER-THAN OR EQUAL TO"
unichar:entity="ge"
string="\(>="
/>
<!-- x2266 to x2269 not in roff -->
<xsl:output-character
character="≪"
unichar:name="MUCH LESS-THAN"
unichar:entity="Lt"
string="<<"
/>
<xsl:output-character
character="≫"
unichar:name="MUCH GREATER-THAN"
unichar:entity="Gt"
string=">>"
/>
<!-- x226c to x2281 not in roff -->
<xsl:output-character
character="⊂"
unichar:name="SUBSET OF"
unichar:entity="sub"
string="\(sb"
/>
<xsl:output-character
character="⊃"
unichar:name="SUPERSET OF"
unichar:entity="sup"
string="\(sp"
/>
<xsl:output-character
character="⊄"
unichar:name="NOT A SUBSET OF"
unichar:entity="nsub"
string="\(nb"
/>
<!-- not in roff
<xsl:output-character
character="⊅"
unichar:name="NOT A SUPERSET OF"
unichar:entity="nsup"
/>
-->
<xsl:output-character
character="⊆"
unichar:name="SUBSET OF OR EQUAL TO"
unichar:entity="sube"
string="\(ib"
/>
<xsl:output-character
character="⊇"
unichar:name="SUPERSET OF OR EQUAL TO"
unichar:entity="supe"
string="\(ip"
/>
<!-- x2288 to x2294 not in roff -->
<xsl:output-character
character="⊕"
unichar:name="CIRCLED PLUS"
unichar:entity="oplus"
string="\(c+"
/>
<xsl:output-character
character="⊖"
unichar:name="CIRCLED MINUS"
unichar:entity="ominus"
string="\(c*"
/>
<xsl:output-character
character="⊗"
unichar:name="CIRCLED TIMES"
unichar:entity="otimes"
string="\(c*"
/>
<!-- x2298 to x22a4 not in roff -->
<xsl:output-character
character="⊥"
unichar:name="UP TACK"
unichar:entity="bottom"
string="\(pp"
/>
<!-- x22a6 to x22bf not in roff -->
<xsl:output-character
character="⋀"
unichar:name="N-ARY LOGICAL AND"
string="\(AN"
/>
<xsl:output-character
character="⋁"
unichar:name="N-ARY LOGICAL OR"
string="\(OR"
/>
<xsl:output-character
character="⋂"
unichar:name="N-ARY INTERSECTION"
string="\(ca"
/>
<xsl:output-character
character="⋃"
unichar:name="N-ARY UNION"
string="\(cu"
/>
<!-- not in roff
<xsl:output-character
character="⋄"
unichar:name="DIAMOND OPERATOR"
unichar:entity="diam"
/>
-->
<xsl:output-character
character="⋅"
unichar:name="DOT OPERATOR"
unichar:entity="sdot"
string="\(md"
/>
<xsl:output-character
character="⋆"
unichar:name="STAR OPERATOR"
unichar:entity="sstarf"
string="\(**"
/>
<!-- x22c7 to x22cd not in roff -->
<xsl:output-character
character="⋎"
unichar:name="CURLY LOGICAL OR"
unichar:entity="cuvee"
string="\(OR"
/>
<xsl:output-character
character="⋏"
unichar:name="CURLY LOGICAL AND"
unichar:entity="cuwed"
string="\(AN"
/>
<!-- x22d0 to x22d7 not in roff -->
<xsl:output-character
character="⋘"
unichar:name="VERY MUCH LESS-THAN"
unichar:entity="Ll"
string="<<<"
/>
<xsl:output-character
character="⋙"
unichar:name="VERY MUCH GREATER-THAN"
unichar:entity="Gg"
string=">>>"
/>
<!-- x22da to x22ee not in roff -->
<xsl:output-character
character="⋯"
unichar:name="MIDLINE HORIZONTAL ELLIPSIS"
string="\&..."
/>
<!-- x22fo to x22ff not in roff -->
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="misc-tech" xmlns=""
from="0x2300" to="0x23FF">
<title>Miscellaneous Technical</title>
</doc:character-map>
<xsl:character-map name="misc-tech">
<doc:output-character character="〈" xmlns="">
<para>
The ISO entities used by DocBook maps
<sgmltag class="genentity">lang</sgmltag>
to U+3008, from the mathematics block.)
Originally, Michael Smith had this entity mapped to
U+2329. It is not clear
who is right from a “theoretical” point of view.
But since this is for DocBook, we follow the DocBook
mapping for the
<sgmltag class="attribute">unichar:entity</sgmltag>
documentation, but keep both <sgmltag
class="element">xsl:output-character</sgmltag> entries,
which actually map to the same roff markup.
</para>
</doc:output-character>
<xsl:output-character
character="〈"
unichar:name="LEFT-POINTING ANGLE BRACKET"
string="\(la"
/>
<doc:output-character character="〉" xmlns="">
<para>
The same notes for U+2329 apply to
this character.
</para>
</doc:output-character>
<xsl:output-character
character="〉"
unichar:name="RIGHT-POINTING ANGLE BRACKET"
string="\(ra"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="geometric-shapes" xmlns=""
from="0x25A0" to="0x25F7">
<title>Geometric Shapes</title>
</doc:character-map>
<xsl:character-map name="geometric-shapes">
<xsl:output-character
character="□"
unichar:name="WHITE SQUARE"
unichar:entity="squ"
string="\(sq"
/>
<xsl:output-character
character="▢"
unichar:name="WHITE SQUARE WITH ROUNDED CORNERS"
string="\(sq"
/>
<xsl:output-character
character="▫"
unichar:name="WHITE SMALL SQUARE"
string="\(sq"
/>
<xsl:output-character
character="►"
unichar:name="BLACK RIGHT-POINTING POINTER"
string="\fB>\fR"
/>
<xsl:output-character
character="▻"
unichar:name="WHITE RIGHT-POINTING POINTER"
string=">"
/>
<xsl:output-character
character="▼"
unichar:name="BLACK DOWN-POINTING TRIANGLE"
string="\fBv\fR"
/>
<xsl:output-character
character="▽"
unichar:name="WHITE DOWN-POINTING TRIANGLE"
unichar:entity="xdtri"
string="v"
/>
<xsl:output-character
character="◄"
unichar:name="BLACK LEFT-POINTING POINTER"
string="\fB<\fR"
/>
<xsl:output-character
character="◅"
unichar:name="WHITE LEFT-POINTING POINTER"
string="<"
/>
<xsl:output-character
character="◆"
unichar:name="BLACK DIAMOND"
string="\(DI"
/>
<xsl:output-character
character="◇"
unichar:name="WHITE DIAMOND"
string="\(lz"
/>
<xsl:output-character
character="◊"
unichar:name="LOZENGE"
unichar:entity="loz"
string="\(lz"
/>
<xsl:output-character
character="○"
unichar:name="WHITE CIRCLE"
unichar:entity="cir"
string="\(ci"
/>
<xsl:output-character
character="●"
unichar:name="BLACK CIRCLE"
string="\(bu"
/>
<xsl:output-character
character="◦"
unichar:name="WHITE BULLET"
string="\(ci"
/>
<xsl:output-character
character="◯"
unichar:name="LARGE CIRCLE"
unichar:entity="xcirc"
string="\(ci"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="misc-symbols" xmlns=""
from="0x2600" to="0x26FF">
<title>Miscellaneous Symbols</title>
</doc:character-map>
<xsl:character-map name="misc-symbols">
<xsl:output-character
character="☚"
unichar:name="BLACK LEFT POINTING INDEX"
string="\(lh"
/>
<xsl:output-character
character="☛"
unichar:name="BLACK RIGHT POINTING INDEX"
string="\(rh)"
/>
<xsl:output-character
character="☜"
unichar:name="WHITE LEFT POINTING INDEX"
string="\(lh"
/>
<xsl:output-character
character="☞"
unichar:name="WHITE RIGHT POINTING INDEX"
string="\(rh)"
/>
<xsl:output-character
character="♠"
unichar:name="BLACK SPADE SUIT"
unichar:entity="spades"
string="\(SP"
/>
<xsl:output-character
character="♡"
unichar:name="WHITE HEART SUIT"
string="\(HE"
/>
<xsl:output-character
character="♢"
unichar:name="WHITE DIAMOND SUIT"
string="\(DI"
/>
<xsl:output-character
character="♣"
unichar:name="BLACK CLUB SUIT"
unichar:entity="clubs"
string="\(CL"
/>
<xsl:output-character
character="♤"
unichar:name="WHITE SPADE SUIT"
string="\(SP"
/>
<xsl:output-character
character="♥"
unichar:name="BLACK HEART SUIT"
unichar:entity="hearts"
string="\(HE"
/>
<xsl:output-character
character="♦"
unichar:name="BLACK DIAMOND SUIT"
unichar:entity="diams"
string="\(DI"
/>
<xsl:output-character
character="♧"
unichar:name="WHITE CLUB SUIT"
string="\(CL"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="dingbats" xmlns=""
from="0x2700" to="0x27BE">
<title>Dingbats</title>
<para>No &groff; equivalent for most of these;
just map to something close.</para>
</doc:character-map>
<xsl:character-map name="dingbats">
<xsl:output-character
character="✓"
unichar:name="CHECK MARK"
unichar:entity="check"
string="\(OK"
/>
<xsl:output-character
character="✔"
unichar:name="HEAVY CHECK MARK"
string="\fB\(OK\fR"
/>
<xsl:output-character
character="✕"
unichar:name="MULTIPLICATION X"
string="\(mu"
/>
<xsl:output-character
character="✖"
unichar:name="HEAVY MULTIPLICATION X"
string="\fB\(mu\fR"
/>
<xsl:output-character
character="✗"
unichar:name="BALLOT X"
unichar:entity="cross"
string="\(mu"
/>
<xsl:output-character
character="✘"
unichar:name="HEAVY BALLOT X"
string="\fB\(mu\fR"
/>
<xsl:output-character
character="✙"
unichar:name="OUTLINED GREEK CROSS"
string="\fB+\fR"
/>
<xsl:output-character
character="✚"
unichar:name="HEAVY GREEK CROSS"
string="\fB+\fR"
/>
<xsl:output-character
character="✛"
unichar:name="OPEN CENTRE CROSS"
string="\fB+\fR"
/>
<xsl:output-character
character="✜"
unichar:name="HEAVY OPEN CENTRE CROSS"
string="\fB+\fR"
/>
<xsl:output-character
character="✝"
unichar:name="LATIN CROSS"
string="\fB+\fR"
/>
<xsl:output-character
character="✞"
unichar:name="SHADOWED WHITE LATIN CROSS"
string="\fB+\fR"
/>
<xsl:output-character
character="✟"
unichar:name="OUTLINED LATIN CROSS"
string="\fB+\fR"
/>
<xsl:output-character
character="✠"
unichar:name="MALTESE CROSS"
unichar:entity="malt"
string="\fB+\fR"
/>
<xsl:output-character
character="✡"
unichar:name="STAR OF DAVID"
string="*"
/>
<xsl:output-character
character="✢"
unichar:name="FOUR TEARDROP-SPOKED ASTERISK"
string="*"
/>
<xsl:output-character
character="✣"
unichar:name="FOUR BALLOON-SPOKED ASTERISK"
string="*"
/>
<xsl:output-character
character="✤"
unichar:name="HEAVY FOUR BALLOON-SPOKED ASTERISK"
string="*"
/>
<xsl:output-character
character="✥"
unichar:name="FOUR CLUB-SPOKED ASTERISK"
string="*"
/>
<xsl:output-character
character="✦"
unichar:name="BLACK FOUR POINTED STAR"
string="*"
/>
<xsl:output-character
character="✧"
unichar:name="WHITE FOUR POINTED STAR"
string="*"
/>
<xsl:output-character
character="✩"
unichar:name="STRESS OUTLINED WHITE STAR"
string="*"
/>
<xsl:output-character
character="✪"
unichar:name="CIRCLED WHITE STAR"
string="*"
/>
<xsl:output-character
character="✫"
unichar:name="OPEN CENTRE BLACK STAR"
string="*"
/>
<xsl:output-character
character="✬"
unichar:name="BLACK CENTRE WHITE STAR"
string="*"
/>
<xsl:output-character
character="✭"
unichar:name="OUTLINED BLACK STAR"
string="*"
/>
<xsl:output-character
character="✮"
unichar:name="HEAVY OUTLINED BLACK STAR"
string="*"
/>
<xsl:output-character
character="✯"
unichar:name="PINWHEEL STAR"
string="*"
/>
<xsl:output-character
character="✰"
unichar:name="SHADOWED WHITE STAR"
string="*"
/>
<xsl:output-character
character="✱"
unichar:name="HEAVY ASTERISK"
string="*"
/>
<xsl:output-character
character="✲"
unichar:name="OPEN CENTRE ASTERISK"
string="*"
/>
<xsl:output-character
character="✳"
unichar:name="EIGHT SPOKED ASTERISK"
string="*"
/>
<xsl:output-character
character="✴"
unichar:name="EIGHT POINTED BLACK STAR"
string="*"
/>
<xsl:output-character
character="✵"
unichar:name="EIGHT POINTED PINWHEEL STAR"
string="*"
/>
<xsl:output-character
character="✶"
unichar:name="SIX POINTED BLACK STAR"
unichar:entity="sext"
string="*"
/>
<xsl:output-character
character="✷"
unichar:name="EIGHT POINTED RECTILINEAR BLACK STAR"
string="*"
/>
<xsl:output-character
character="✸"
unichar:name="HEAVY EIGHT POINTED RECTILINEAR BLACK STAR"
string="*"
/>
<xsl:output-character
character="✹"
unichar:name="TWELVE POINTED BLACK STAR"
string="*"
/>
<xsl:output-character
character="✺"
unichar:name="SIXTEEN POINTED ASTERISK"
string="*"
/>
<xsl:output-character
character="✻"
unichar:name="TEARDROP-SPOKED ASTERISK"
string="*"
/>
<xsl:output-character
character="✼"
unichar:name="OPEN CENTRE TEARDROP-SPOKED ASTERISK"
string="*"
/>
<xsl:output-character
character="✽"
unichar:name="HEAVY TEARDROP-SPOKED ASTERISK"
string="*"
/>
<xsl:output-character
character="✾"
unichar:name="SIX PETALLED BLACK AND WHITE FLORETTE"
string="*"
/>
<xsl:output-character
character="✿"
unichar:name="BLACK FLORETTE"
string="*"
/>
<xsl:output-character
character="❀"
unichar:name="WHITE FLORETTE"
string="*"
/>
<xsl:output-character
character="❁"
unichar:name="EIGHT PETALLED OUTLINED BLACK FLORETTE"
string="*"
/>
<xsl:output-character
character="❂"
unichar:name="CIRCLED OPEN CENTRE EIGHT POINTED STAR"
string="*"
/>
<xsl:output-character
character="❃"
unichar:name="HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK"
string="*"
/>
<xsl:output-character
character="❄"
unichar:name="SNOWFLAKE"
string="*"
/>
<xsl:output-character
character="❅"
unichar:name="TIGHT TRIFOLIATE SNOWFLAKE"
string="*"
/>
<xsl:output-character
character="❆"
unichar:name="HEAVY CHEVRON SNOWFLAKE"
string="*"
/>
<xsl:output-character
character="❇"
unichar:name="SPARKLE"
string="*"
/>
<xsl:output-character
character="❈"
unichar:name="HEAVY SPARKLE"
string="*"
/>
<xsl:output-character
character="❉"
unichar:name="BALLOON-SPOKED ASTERISK"
string="*"
/>
<xsl:output-character
character="❊"
unichar:name="EIGHT TEARDROP-SPOKED PROPELLER ASTERISK"
string="*"
/>
<xsl:output-character
character="❋"
unichar:name="HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK"
string="*"
/>
<xsl:output-character
character="❍"
unichar:name="SHADOWED WHITE CIRCLE"
string="*"
/>
<xsl:output-character
character="❏"
unichar:name="LOWER RIGHT DROP-SHADOWED WHITE SQUARE"
string="\(sq"
/>
<xsl:output-character
character="❐"
unichar:name="UPPER RIGHT DROP-SHADOWED WHITE SQUARE"
string="\(sq"
/>
<xsl:output-character
character="❑"
unichar:name="LOWER RIGHT SHADOWED WHITE SQUARE"
string="\(sq"
/>
<xsl:output-character
character="❒"
unichar:name="UPPER RIGHT SHADOWED WHITE SQUARE"
string="\(sq"
/>
<xsl:output-character
character="❖"
unichar:name="BLACK DIAMOND MINUS WHITE X"
string="*"
/>
<xsl:output-character
character="❘"
unichar:name="LIGHT VERTICAL BAR"
string="\(bv"
/>
<xsl:output-character
character="❙"
unichar:name="MEDIUM VERTICAL BAR"
string="\fB\(bv\fR"
/>
<xsl:output-character
character="❚"
unichar:name="HEAVY VERTICAL BAR"
string="\fB\(bv\fR"
/>
<xsl:output-character
character="❛"
unichar:name="HEAVY SINGLE TURNED COMMA QUOTATION MARK ORUNICHAR:NAMENT"
string="\fB\(oq\fR"
/>
<xsl:output-character
character="❜"
unichar:name="HEAVY SINGLE COMMA QUOTATION MARK ORUNICHAR:NAMENT"
string="\fB\(cq\fR"
/>
<xsl:output-character
character="❝"
unichar:name="HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORUNICHAR:NAMENT"
string="\fB\(lq\fR"
/>
<xsl:output-character
character="❞"
unichar:name="HEAVY DOUBLE COMMA QUOTATION MARK ORUNICHAR:NAMENT"
string="\fB\(rq\fR"
/>
<xsl:output-character
character="❡"
unichar:name="CURVED STEM PARAGRAPH SIGN ORUNICHAR:NAMENT"
string="\(ps"
/>
<xsl:output-character
character="❢"
unichar:name="HEAVY EXCLAMATION MARK ORUNICHAR:NAMENT"
string="\fB!\fR"
/>
<xsl:output-character
character="❣"
unichar:name="HEAVY HEART EXCLAMATION MARK ORUNICHAR:NAMENT"
string="\fB!\fR"
/>
<xsl:output-character
character="❤"
unichar:name="HEAVY BLACK HEART"
string="\fB\(HE\fR"
/>
<xsl:output-character
character="❥"
unichar:name="ROTATED HEAVY BLACK HEART BULLET"
string="\fB\(HE\fR"
/>
<xsl:output-character
character="❦"
unichar:name="FLORAL HEART"
string="\fB\(HE\fR"
/>
<xsl:output-character
character="❧"
unichar:name="ROTATED FLORAL HEART BULLET"
string="\fB\(HE\fR"
/>
<xsl:output-character
character="❶"
unichar:name="DINGBAT NEGATIVE CIRCLED DIGIT ONE"
string="1"
/>
<xsl:output-character
character="❷"
unichar:name="DINGBAT NEGATIVE CIRCLED DIGIT TWO"
string="2"
/>
<xsl:output-character
character="❸"
unichar:name="DINGBAT NEGATIVE CIRCLED DIGIT THREE"
string="3"
/>
<xsl:output-character
character="❹"
unichar:name="DINGBAT NEGATIVE CIRCLED DIGIT FOUR"
string="4"
/>
<xsl:output-character
character="❺"
unichar:name="DINGBAT NEGATIVE CIRCLED DIGIT FIVE"
string="5"
/>
<xsl:output-character
character="❻"
unichar:name="DINGBAT NEGATIVE CIRCLED DIGIT SIX"
string="6"
/>
<xsl:output-character
character="❼"
unichar:name="DINGBAT NEGATIVE CIRCLED DIGIT SEVEN"
string="7"
/>
<xsl:output-character
character="❽"
unichar:name="DINGBAT NEGATIVE CIRCLED DIGIT EIGHT"
string="8"
/>
<xsl:output-character
character="❾"
unichar:name="DINGBAT NEGATIVE CIRCLED DIGIT NINE"
string="9"
/>
<xsl:output-character
character="❿"
unichar:name="DINGBAT NEGATIVE CIRCLED NUMBER TEN"
string="10"
/>
<xsl:output-character
character="➀"
unichar:name="DINGBAT CIRCLED SANS-SERIF DIGIT ONE"
string="1"
/>
<xsl:output-character
character="➁"
unichar:name="DINGBAT CIRCLED SANS-SERIF DIGIT TWO"
string="2"
/>
<xsl:output-character
character="➂"
unichar:name="DINGBAT CIRCLED SANS-SERIF DIGIT THREE"
string="3"
/>
<xsl:output-character
character="➃"
unichar:name="DINGBAT CIRCLED SANS-SERIF DIGIT FOUR"
string="4"
/>
<xsl:output-character
character="➄"
unichar:name="DINGBAT CIRCLED SANS-SERIF DIGIT FIVE"
string="5"
/>
<xsl:output-character
character="➅"
unichar:name="DINGBAT CIRCLED SANS-SERIF DIGIT SIX"
string="6"
/>
<xsl:output-character
character="➆"
unichar:name="DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN"
string="7"
/>
<xsl:output-character
character="➇"
unichar:name="DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT"
string="8"
/>
<xsl:output-character
character="➈"
unichar:name="DINGBAT CIRCLED SANS-SERIF DIGIT NINE"
string="9"
/>
<xsl:output-character
character="➉"
unichar:name="DINGBAT CIRCLED SANS-SERIF NUMBER TEN"
string="10"
/>
<xsl:output-character
character="➊"
unichar:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE"
string="1"
/>
<xsl:output-character
character="➋"
unichar:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO"
string="2"
/>
<xsl:output-character
character="➌"
unichar:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE"
string="3"
/>
<xsl:output-character
character="➍"
unichar:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR"
string="4"
/>
<xsl:output-character
character="➎"
unichar:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE"
string="5"
/>
<xsl:output-character
character="➏"
unichar:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX"
string="6"
/>
<xsl:output-character
character="➐"
unichar:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN"
string="7"
/>
<xsl:output-character
character="➑"
unichar:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT"
string="8"
/>
<xsl:output-character
character="➒"
unichar:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE"
string="9"
/>
<xsl:output-character
character="➓"
unichar:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN"
string="10"
/>
<xsl:output-character
character="➔"
unichar:name="HEAVY WIDE-HEADED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➙"
unichar:name="HEAVY RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➛"
unichar:name="DRAFTING POINT RIGHTWARDS ARROW"
string="\(->"
/>
<xsl:output-character
character="➜"
unichar:name="HEAVY ROUND-TIPPED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➝"
unichar:name="TRIANGLE-HEADED RIGHTWARDS ARROW"
string="\(->"
/>
<xsl:output-character
character="➞"
unichar:name="HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➟"
unichar:name="DASHED TRIANGLE-HEADED RIGHTWARDS ARROW"
string="\(->"
/>
<xsl:output-character
character="➠"
unichar:name="HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➡"
unichar:name="BLACK RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➢"
unichar:name="THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD"
string="\(->"
/>
<xsl:output-character
character="➣"
unichar:name="THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD"
string="\(->"
/>
<xsl:output-character
character="➤"
unichar:name="BLACK RIGHTWARDS ARROWHEAD"
string="\(->"
/>
<xsl:output-character
character="➧"
unichar:name="SQUAT BLACK RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➨"
unichar:name="HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➩"
unichar:name="RIGHT-SHADED WHITE RIGHTWARDS ARROW"
string="\(rA"
/>
<xsl:output-character
character="➪"
unichar:name="LEFT-SHADED WHITE RIGHTWARDS ARROW"
string="\(rA"
/>
<xsl:output-character
character="➫"
unichar:name="BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW"
string="\(rA"
/>
<xsl:output-character
character="➬"
unichar:name="FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW"
string="\(rA"
/>
<xsl:output-character
character="➭"
unichar:name="HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
string="\(rA"
/>
<xsl:output-character
character="➮"
unichar:name="HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
string="\(rA"
/>
<xsl:output-character
character="➯"
unichar:name="NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
string="\(rA"
/>
<xsl:output-character
character="➱"
unichar:name="NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
string="\(rA"
/>
<xsl:output-character
character="➲"
unichar:name="CIRCLED HEAVY WHITE RIGHTWARDS ARROW"
string="\(rA"
/>
<xsl:output-character
character="➳"
unichar:name="WHITE-FEATHERED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➴"
unichar:name="BLACK-FEATHERED SOUTH EAST ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➵"
unichar:name="BLACK-FEATHERED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➶"
unichar:name="BLACK-FEATHERED NORTH EAST ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➷"
unichar:name="HEAVY BLACK-FEATHERED SOUTH EAST ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➸"
unichar:name="HEAVY BLACK-FEATHERED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➹"
unichar:name="HEAVY BLACK-FEATHERED NORTH EAST ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➺"
unichar:name="TEARDROP-BARBED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➻"
unichar:name="HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➼"
unichar:name="WEDGE-TAILED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➽"
unichar:name="HEAVY WEDGE-TAILED RIGHTWARDS ARROW"
string="\fR\(->\fB"
/>
<xsl:output-character
character="➾"
unichar:name="OPEN-OUTLINED RIGHTWARDS ARROW"
string="\fR\(rA\fB"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="cjk-symbols-punct" xmlns=""
from="0x3000" to="0x303F">
<title>CJK Symbols and Punctuation</title>
<para>Of course &groff; does not support CJK, but a few of the
symbols in the ISO entity sets have been unified with
the CJK symbols here in Unicode.</para>
</doc:character-map>
<xsl:character-map name="cjk-symbols-punct">
<xsl:output-character
character="〈"
unichar:entity="lang"
unichar:name="LEFT ANGLE BRACKET"
string="\[la]"
/>
<xsl:output-character
character="〉"
unichar:entity="rang"
unichar:name="RIGHT ANGLE BRACKET"
string="\[ra]"
/>
</xsl:character-map>
<!-- ************************************************************** -->
<doc:character-map name="alphabetic-presentation-forms" xmlns=""
from="0xFB00" to="0xFB04">
<title>Alphabetic Presentation Forms</title>
</doc:character-map>
<xsl:character-map name="alphabetic-presentation-forms">
<xsl:output-character
character="ff"
unichar:name="LATIN SMALL LIGATURE FF"
unichar:entity="fflig"
string="\(ff"
/>
<xsl:output-character
character="fi"
unichar:name="LATIN SMALL LIGATURE FI"
unichar:entity="filig"
string="\(fi"
/>
<xsl:output-character
character="fl"
unichar:name="LATIN SMALL LIGATURE FL"
unichar:entity="fllig"
string="\(fl"
/>
<xsl:output-character
character="ffi"
unichar:name="LATIN SMALL LIGATURE FFI"
unichar:entity="ffilig"
string="\(Fi"
/>
<xsl:output-character
character="ffl"
unichar:name="LATIN SMALL LIGATURE FFL"
unichar:entity="ffllig"
string="\(Fl"
/>
</xsl:character-map>
</xsl:stylesheet>