Copyright © 1998-2008 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
This document defines several sets of names which are assigned to Unicode characters. Each of these sets is also implemented as a file of XML entity declarations.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This document is a W3C Public Working Draft produced by the W3C Math Working Group as part of the W3C Math Activity.
Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
Public discussion of this document is encouraged on
www-math@w3c.org, the public mailing list of the Math Working
Group (list archives).
To subscribe send an email to www-math-request@w3.org
with the word subscribe
in the subject line.
Please report errors in this document to www-math@w3.org.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
It is hoped that the entity sets defined by this specification may form the basis of an update to
[ISO9573-13-1991], however pressure of other commitments
has currently prevented this document being processed by the relevant
ISO committee, thus the entity sets are being presented with Formal
Public identifiers of the form -//W3C//...
rather than
ISO...
. It is hoped that an update to TR 9573-13 may be
made later. (The present version of TR 9573-13 defines the sets of
names, but does not give mappings to Unicode.)
1 Introduction
2 Sets of names
3 Unicode Character Blocks for Scientific Documents
A Changes
A.1 Changes since 2007-12-14
B Differences between these entities and earlier W3C DTDs
B.1 Differences from XHTML 1.0
B.2 Differences from MathML 2.0 (second edition)
C Source Files
D References
Notation and symbols have proved very important for scientific documents, especially in mathematics. Mathematics has grown in part because its notation continually changes toward being succinct and suggestive. There have been many new signs developed for use in mathematical notation, and mathematicians have not held back from making use of many symbols originally introduced elsewhere. The result is that science in general, and particularly mathematics, makes use of a very large collection of symbols. It is difficult to write science fluently if these characters are not available for use. It is difficult to read science if corresponding glyphs are not available for presentation on specific display devices. In the majority of cases it is preferable to store characters directly as Unicode character data or as XML numeric character references. However, in some environments it is more convenient to use the ASCII input mechanism provided by XML entity references. Many entity names are in common use, and this specification aims to provide standard mappings to Unicode for each of these names. It introduces no names that have not already been used in earlier specifications. Specifically, the entity names in the sets starting with the letters "iso" were first standardized in SGML ([SGML]) and updated in [ISO9573-13-1991], the entity names in the sets with names starting "mml" were first standardized in MathML [MathML2] and those starting with "xhtml" were first standardized in HTML [HTML4].
This specification defines Unicode mappings of many sets of names that have been defined by earlier specifications.
We first present two tables listing the combined sets, firstly in Unicode order and then in alphabetic order.
Then there come tables documenting each of the entity sets. Each set has a link to the DTD entity declaration for the corresponding entity set, and also a link to an XSLT2 stylesheet that will implement a reverse mapping from characters to entity names (this is, of course, only possible for entity names that map to a single uniocde code point).
In addition to the stylesheets and entity files corresponding to each individual entity set, a combined stylesheet is provided, as well as two combined sets of DTD entity declarations. The first is a small file which includes all the other entity files via parameter entity references; the second is a larger file that directly contains a definition of each entity, with all duplicates removed.
Certain characters are of of particular relevance to scientific document production. The following tables display Unicode ranges containing the characters that are most used in mathematics.
Differences between the XHTML entity definitions described here and the entity set described in the XHTML 1.0 DTD.
U+27E8, XHTML 1.0 used U+2329 (which has canonical decomposition to U+3008)
U+27E9, XHTML 1.0 used U+232A (which has canonical decomposition to U+3009)
The differences between MathML 2 and the current entity definitions are listed below.
fj, ISOPUB (and MathML 1) defined an fj ligature Unicode does not have a specific character and the entity was dropped from MathML2, It is re-instated here for maximum compatibility with [SGML]
U+03C6 (decimal 966) GREEK SMALL LETTER PHI (the definition used in HTML4), MathML2 used U+03D5 (decimal 981) GREEK PHI SYMBOL.
Note:
It is very difficult for (X)HTML definitions to change since HTML is so widely deployed. Many of the assignments in the current definitions would be different if it were not for HTML compatibilty. However in this case, perhaps this change could be made in an XHTML2/HTML5 time frame. Currenly U+03D5 has the entity names: straightphi,phis. U+03C6 has the entity names phi, phgr, phiv,varphi.
It is also worth noting that Unicode has changed (swapped) the default glyphs for U+03C6 and U+03D5 since the publication of HTML4. The current recommendation is to use a cursive form for U+03C6 (), and a form with a straight vertical bar for U+03D5 (). Some newer fonts use glyphs that correspond to the change made by Unicode, while a number of older fonts remain unchanged and hence will display the glyphs swapped relative to the current version of Unicode. There is no way to guarantee that the intended glyph is displayed without font-specific knowledge.
U+0237, MathML 2 used U+006A (j) as there was no dotless j before Unicode 4.1.
U+23E2 and U+23E7, MathML 2 used U+FFFD (REPLACEMENT CHARACTER) as these characters were added at Unicode 5.0 specifcally to support these entities.
The following bracket symbols have been added to the Mathematical symbols block in Unicode versions between 3.1 and 5.1. MathML2 used similar characters intended for CJK punctuation.
U+27E8, XHTML 1.0 used U+2329 (which has canonical decomposition to U+3008)
U+27EA, MathML2 used U+300A
U+2772, MathML2 used U+3014
U+27EC, MathML2 used U+3018
U+27E6, MathML2 used U+301A
U+27E9, XHTML 1.0 used U+232A (which has canonical decomposition to U+3009)
U+27EB, MathML2 used U+300B
U+2773, MathML2 used U+3015
U+27ED, MathML2 used U+3019
U+27E7, MathML2 used U+301B
U+23DE, MathML2 used U+FE37
U+23DC, MathML2 used U+FE35
U+23DF, MathML2 used U+FE38
U+23DD, MathML2 used U+FE36
U+27E6, MathML2 used U+301A
U+27E7, MathML2 used U+301B
Note:
MathML3 uses the entity sets defined by this specification, so there will be no differences between MathML and the entities defined here once MathML3 is finalized.
All data files used to construct the entity declarations, XSLT character maps, and HTML tables referenced from this document are available from http://www.w3.org/2003/entities/2007xml/.
unicode.xml master file detailing all unicode characters with names in various entity sets and applications, TeX equivalents and other data. This file has been maintained for many years, originally by Sebastian Rahtz as part of the jadetex distribution and since around 1999 as part of the MathML specification sources by David Carlisle. The current version encodes data for all characters in Unicode 5.1. Note: unicode.xml is over 5MB in size and may not really be suitable for direct viewing in a browser, you may prefer to save the file rather than follow the above link to unicode.xml in a browser.
charlist.rnc relax NG schema for unicode.xml.
unicode.xsl XSLT stylesheet that renders unicode.xml as an HTML table.
character-set.xml the source file for this document.
xmlspec.xsl a copy of the standard xmlspec stylesheet
run small script file that builds this collection
xhtml1.xml record of XHTML 1.0 entity definitions
mml2.xml record of MathML 2.0 (second edition) entity definitions
unicodedata.xsl stylesheet that generates a new copy of unicode.xml, incorporating data from the unicode data file, used to updated unicode.xml as new versions of Unicode are released.
entities.xsl stylesheet to generate the DTD declarations for the entities.
charmap.xsl stylesheet to generate the XSLT character maps.
characters.xsl stylesheet to generate this document, including the referenced HTML tables.
schemas.xml file associating XML documents with appropriate Relax NG schema