# this file is a sample Unicode map description.
# It describes which glyphs are to be included in the font
# and at which character position they are to be put.
# If the character position is greater than 255, the glyph is included, but
# does not appear in the encoding table (you must then use font reencoding
# to use this glyph).
# That makes it possible to have more than 256 glyphs in a font.
# Currently the maximum supported number of glyphs is 1024.
# Use this file as the argument to ttf2pt1's -L option.
# 1999-11-24 Thomas.Henlich@mailbox.tu-dresden.de
# 2000-03-01 Sergey Babkin: added 3rd format
# comment lines start with '#' or '%' or '//'
# The default source encoding table in the TTF file is Unicode (pid=3,eid=1).
# However a map may specify another source encoding with the "id <pid> <eid>"
# directive. If this directive is used at the beginning of the map file,
# it applies to the whole file. If it is used after a "plane" directive,
# then it sets the source encoding for this particular destination plane
# (possibly overriding the file-wide id directive). The user can also
# specify the source encoding explicitly at the comman line in the
# argument to the option -L. This used-specified source encoding overrides
# any id directives in the map file.
# examples:
# same as Unicode (default)
id 3 1
# One file may contain multiple actual translation tables. Each particular
# table within a file is named a plane. The primary use of planes is
# for multi-plane Eastern fonts with over 256 glyphs: for them one TTF
# file gets converted into multiple Type1 files, with each resulting file
# containing one plane of the original font. But they may also be used
# in other creative ways. Each plane may be specified in different format
# although this is not recommended for aesthetical reasons. If a map file
# contains any specifications of planes then the plane argument MUST
# be specified to the converter with that map file. If a map file
# contains no specifications of planes then the plane argument MUST NOT
# be specified to the converter with that map file.
#
# The plane maps start from the plane directive and continue to the next
# plane directive or end of file. The plane directive must be located
# at the very beginning of a separate string and contain the word "plane"
# followed by whitespace and the plane name. The whitespace characters
# are not allowed in the plane names. Non-alphanumeric characters are
# discouraged in the plane names as well.
# examples:
plane 81
=27 U+0027 APOSTROPHE
plane otherplane
0, 1, 2
% There is one code assignment per line.
// Three formats are recognized:
# 1. optional whitespace, followed by '=', followed by a hex number
# (character position), followed by optional whitespace, followed by
# 'U+', followed by a four-digit hex number (the Unicode of the glyph we want
# here), followed by any number of characters.
// example:
=20 U+0020 SPACE
=48 U+0021 EXCLAMATION MARK
=22 U+0022 QUOTATION MARK
=23 U+0023 NUMBER SIGN
=24 U+0024 DOLLAR SIGN
=25 U+0025 PERCENT SIGN
=26 U+0026 AMPERSAND
=27 U+0027 APOSTROPHE
=E0 U+042E CYRILLIC CAPITAL LETTER YU
=E1 U+0410 CYRILLIC CAPITAL LETTER A
=E2 U+0411 CYRILLIC CAPITAL LETTER BE
=E3 U+0426 CYRILLIC CAPITAL LETTER TSE
=E4 U+0414 CYRILLIC CAPITAL LETTER DE
=E5 U+0415 CYRILLIC CAPITAL LETTER IE
=E6 U+0424 CYRILLIC CAPITAL LETTER EF
=E7 U+0413 CYRILLIC CAPITAL LETTER GHE
% 2. optional whitespace, followed by '<', followed by one or more
% non-whitespace characters,
% followed by optional whitespace, followed by '/x', followed by
% a hex number (character position), followed by optional
% whitespace, followed by '<U', followed by a four-digit hex number
% (the Unicode of the glyph we want here), followed by '>' and any number
% of characters.
# example:
<I> /x40 <U0049> LATIN CAPITAL LETTER I
<t> /x41 <U0074> LATIN SMALL LETTER T
<r> /x43 <U0072> LATIN SMALL LETTER R
<o> /x44 <U006F> LATIN SMALL LETTER O
<c> /x45 <U0063> LATIN SMALL LETTER C
<k> /x46 <U006B> LATIN SMALL LETTER K
<s> /x47 <U0073> LATIN SMALL LETTER S
<Eu> /xA4 <U20AC> EURO SIGN
# 3. optional whitespace, followed by '!', followed by a hex number
# (character position), followed by optional whitespace, followed by
# 'U+', followed by a four-digit hex number (the Unicode of the glyph we want
# here), followed by the name of the glyph that will be used in the
# output file.
# example:
!20 U+0020 space
!21 U+0021 exclam
!22 U+0022 quotedbl
!23 U+0023 numbersign
!24 U+0024 dollar
!25 U+0025 percent
# 4. compact format: just list of unicodes separated by commas or ranges
# denoted by a dash between unicodes. These unicodes are mapped to
# the output codes starting from 0 and continuously increasing.
# It is possible to reset the current code by using the "at" directive
# which must start at beginning of the line and give the new current
# output code (which will be assigned to the next occuring unicode)
# as decimal, hexadecimal or octal in C notation. The "at directive must
# take a separate line. The spaces around unicodes don't matter.
# example:
# map unicodes 0x40, 0x400, 0x4000 to the output codes 0, 1, 2 and unicodes
# 0xf010 - 0xf020, 0xf030 to the output codes 0x11-0x22
0, 1, 2
at 0x11
0xf010- 0xf020, 0xf030
# the first format is used by Roman Czyborra on his fine WWW pages:
# http://czyborra.com/charsets/iso8859.html
# the second format is used in the Linux locale charmaps files:
# /usr/share/i18n/charmaps/*
# we don't need those glyphs in the encoding table
=100 U+0030 DIGIT ZERO
=101 U+0031 DIGIT ONE
=102 U+0032 DIGIT TWO
=103 U+0033 DIGIT THREE
=104 U+0034 DIGIT FOUR
=105 U+0035 DIGIT FIVE
=106 U+0036 DIGIT SIX
=107 U+0037 DIGIT SEVEN
=108 U+0039 DIGIT NINE
=109 U+0038 DIGIT EIGHT
|