<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
    <meta name="COPYRIGHT" content=
    "Copyright (c) 2002-2006 IBM Corporation and others. All Rights Reserved.">
<title>Chart Instructions</title>
<style>

<!--

th           { background-color: #eeeeee }
-->

</style>
</head>

<body>

<h1>Instructions</h1>
<p>The Name charts provide an index to Unicode names. Each word in each Unicode 
character name is extracted, and used as an index for the characters. </p>
<blockquote>
  <p><i>To properly view these charts, your browser should be reasonably recent 
  so it handles Unicode and cascading style sheets, and you should install a 
  Unicode font and configure your browser to use it.</i></p>
</blockquote>
<p><b>Notes:</b></p>
<ul>
  <li>To keep the charts from becoming too large, a 'stop-list' of words are 
    omitted. These are:
    <ul>
      <li>AND, CAPITAL, CHARACTER, COMPATIBILITY, LETTER, SMALL, WITH</li>
      <li>All script names</li>
      <li>All words containing a digit</li>
      <li>All Hangul Syllables</li>
    </ul>
  </li>
  <li>Unlike some of the other charts, tool-tips to reveal the names are not 
    included (for compactness). However, if you want to know the name of any 
    particular characters:
    <ul>
      <li>Copy the character from the cell.</li>
      <li>Go to <a href="http://demo.icu-project.org/icu-bin/translit">http://demo.icu-project.org/icu-bin/translit</a></li>
      <li>Paste in under <b>Input 1</b></li>
      <li>Select <b>Output 1</b>: Any - Name</li>
    </ul>
  </li>
</ul>

</body>

</html>
