
<!--
     File isopub.ent produced by the XSL script entities.xsl
     from input data in unicode.xml.

     Please report any errors to David Carlisle
     via the public W3C list www-math@w3.org.

     The numeric character values assigned to each entity
     (should) match the Unicode assignments in Unicode 4.0.

     Entity names in this file are derived from files carrying the
     following notice:

     (C) International Organization for Standardization 1986
     Permission to copy in any form is granted for use with
     conforming SGML systems and applications as defined in
     ISO 8879, provided this notice is included in all copies.

-->


<!-- 
     Version: $Id: isopub.ent,v 1.1 2008/10/23 23:40:31 dacarver Exp $

       Public identifier: ISO 8879:1986//ENTITIES Publishing//EN//XML
       System identifier: http://www.w3.org/2003/entities/iso8879/isopub.ent

     The public identifier should always be used verbatim.
     The system identifier may be changed to suit local requirements.

     Typical invocation:

       <!ENTITY % isopub PUBLIC
         "ISO 8879:1986//ENTITIES Publishing//EN//XML"
         "http://www.w3.org/2003/entities/iso8879/isopub.ent"
       >
       %isopub;

-->

<!ENTITY blank            "&#x02423;" ><!--OPEN BOX -->
<!ENTITY blk12            "&#x02592;" ><!--MEDIUM SHADE -->
<!ENTITY blk14            "&#x02591;" ><!--LIGHT SHADE -->
<!ENTITY blk34            "&#x02593;" ><!--DARK SHADE -->
<!ENTITY block            "&#x02588;" ><!--FULL BLOCK -->
<!ENTITY bull             "&#x02022;" ><!--BULLET -->
<!ENTITY caret            "&#x02041;" ><!--CARET INSERTION POINT -->
<!ENTITY check            "&#x02713;" ><!--CHECK MARK -->
<!ENTITY cir              "&#x025CB;" ><!--WHITE CIRCLE -->
<!ENTITY clubs            "&#x02663;" ><!--BLACK CLUB SUIT -->
<!ENTITY copysr           "&#x02117;" ><!--SOUND RECORDING COPYRIGHT -->
<!ENTITY cross            "&#x02717;" ><!--BALLOT X -->
<!ENTITY Dagger           "&#x02021;" ><!--DOUBLE DAGGER -->
<!ENTITY dagger           "&#x02020;" ><!--DAGGER -->
<!ENTITY dash             "&#x02010;" ><!--HYPHEN -->
<!ENTITY diams            "&#x02666;" ><!--BLACK DIAMOND SUIT -->
<!ENTITY dlcrop           "&#x0230D;" ><!--BOTTOM LEFT CROP -->
<!ENTITY drcrop           "&#x0230C;" ><!--BOTTOM RIGHT CROP -->
<!ENTITY dtri             "&#x025BF;" ><!--WHITE DOWN-POINTING SMALL TRIANGLE -->
<!ENTITY dtrif            "&#x025BE;" ><!--BLACK DOWN-POINTING SMALL TRIANGLE -->
<!ENTITY emsp             "&#x02003;" ><!--EM SPACE -->
<!ENTITY emsp13           "&#x02004;" ><!--THREE-PER-EM SPACE -->
<!ENTITY emsp14           "&#x02005;" ><!--FOUR-PER-EM SPACE -->
<!ENTITY ensp             "&#x02002;" ><!--EN SPACE -->
<!ENTITY female           "&#x02640;" ><!--FEMALE SIGN -->
<!ENTITY ffilig           "&#x0FB03;" ><!--LATIN SMALL LIGATURE FFI -->
<!ENTITY fflig            "&#x0FB00;" ><!--LATIN SMALL LIGATURE FF -->
<!ENTITY ffllig           "&#x0FB04;" ><!--LATIN SMALL LIGATURE FFL -->
<!ENTITY filig            "&#x0FB01;" ><!--LATIN SMALL LIGATURE FI -->
<!ENTITY flat             "&#x0266D;" ><!--MUSIC FLAT SIGN -->
<!ENTITY fllig            "&#x0FB02;" ><!--LATIN SMALL LIGATURE FL -->
<!ENTITY frac13           "&#x02153;" ><!--VULGAR FRACTION ONE THIRD -->
<!ENTITY frac15           "&#x02155;" ><!--VULGAR FRACTION ONE FIFTH -->
<!ENTITY frac16           "&#x02159;" ><!--VULGAR FRACTION ONE SIXTH -->
<!ENTITY frac23           "&#x02154;" ><!--VULGAR FRACTION TWO THIRDS -->
<!ENTITY frac25           "&#x02156;" ><!--VULGAR FRACTION TWO FIFTHS -->
<!ENTITY frac35           "&#x02157;" ><!--VULGAR FRACTION THREE FIFTHS -->
<!ENTITY frac45           "&#x02158;" ><!--VULGAR FRACTION FOUR FIFTHS -->
<!ENTITY frac56           "&#x0215A;" ><!--VULGAR FRACTION FIVE SIXTHS -->
<!ENTITY hairsp           "&#x0200A;" ><!--HAIR SPACE -->
<!ENTITY hearts           "&#x02665;" ><!--BLACK HEART SUIT -->
<!ENTITY hellip           "&#x02026;" ><!--HORIZONTAL ELLIPSIS -->
<!ENTITY hybull           "&#x02043;" ><!--HYPHEN BULLET -->
<!ENTITY incare           "&#x02105;" ><!--CARE OF -->
<!ENTITY ldquor           "&#x0201E;" ><!--DOUBLE LOW-9 QUOTATION MARK -->
<!ENTITY lhblk            "&#x02584;" ><!--LOWER HALF BLOCK -->
<!ENTITY loz              "&#x025CA;" ><!--LOZENGE -->
<!ENTITY lozf             "&#x029EB;" ><!--BLACK LOZENGE -->
<!ENTITY lsquor           "&#x0201A;" ><!--SINGLE LOW-9 QUOTATION MARK -->
<!ENTITY ltri             "&#x025C3;" ><!--WHITE LEFT-POINTING SMALL TRIANGLE -->
<!ENTITY ltrif            "&#x025C2;" ><!--BLACK LEFT-POINTING SMALL TRIANGLE -->
<!ENTITY male             "&#x02642;" ><!--MALE SIGN -->
<!ENTITY malt             "&#x02720;" ><!--MALTESE CROSS -->
<!ENTITY marker           "&#x025AE;" ><!--BLACK VERTICAL RECTANGLE -->
<!ENTITY mdash            "&#x02014;" ><!--EM DASH -->
<!ENTITY mldr             "&#x02026;" ><!--HORIZONTAL ELLIPSIS -->
<!ENTITY natur            "&#x0266E;" ><!--MUSIC NATURAL SIGN -->
<!ENTITY ndash            "&#x02013;" ><!--EN DASH -->
<!ENTITY nldr             "&#x02025;" ><!--TWO DOT LEADER -->
<!ENTITY numsp            "&#x02007;" ><!--FIGURE SPACE -->
<!ENTITY phone            "&#x0260E;" ><!--BLACK TELEPHONE -->
<!ENTITY puncsp           "&#x02008;" ><!--PUNCTUATION SPACE -->
<!ENTITY rdquor           "&#x0201D;" ><!--RIGHT DOUBLE QUOTATION MARK -->
<!ENTITY rect             "&#x025AD;" ><!--WHITE RECTANGLE -->
<!ENTITY rsquor           "&#x02019;" ><!--RIGHT SINGLE QUOTATION MARK -->
<!ENTITY rtri             "&#x025B9;" ><!--WHITE RIGHT-POINTING SMALL TRIANGLE -->
<!ENTITY rtrif            "&#x025B8;" ><!--BLACK RIGHT-POINTING SMALL TRIANGLE -->
<!ENTITY rx               "&#x0211E;" ><!--PRESCRIPTION TAKE -->
<!ENTITY sext             "&#x02736;" ><!--SIX POINTED BLACK STAR -->
<!ENTITY sharp            "&#x0266F;" ><!--MUSIC SHARP SIGN -->
<!ENTITY spades           "&#x02660;" ><!--BLACK SPADE SUIT -->
<!ENTITY squ              "&#x025A1;" ><!--WHITE SQUARE -->
<!ENTITY squf             "&#x025AA;" ><!--BLACK SMALL SQUARE -->
<!ENTITY star             "&#x02606;" ><!--WHITE STAR -->
<!ENTITY starf            "&#x02605;" ><!--BLACK STAR -->
<!ENTITY target           "&#x02316;" ><!--POSITION INDICATOR -->
<!ENTITY telrec           "&#x02315;" ><!--TELEPHONE RECORDER -->
<!ENTITY thinsp           "&#x02009;" ><!--THIN SPACE -->
<!ENTITY uhblk            "&#x02580;" ><!--UPPER HALF BLOCK -->
<!ENTITY ulcrop           "&#x0230F;" ><!--TOP LEFT CROP -->
<!ENTITY urcrop           "&#x0230E;" ><!--TOP RIGHT CROP -->
<!ENTITY utri             "&#x025B5;" ><!--WHITE UP-POINTING SMALL TRIANGLE -->
<!ENTITY utrif            "&#x025B4;" ><!--BLACK UP-POINTING SMALL TRIANGLE -->
<!ENTITY vellip           "&#x022EE;" ><!--VERTICAL ELLIPSIS -->
