Documentation updates.

* docs/CHANGES: Add missing information.

* docs/formats.txt: Rewritten and updated.
This commit is contained in:
Werner Lemberg 2016-12-27 10:20:23 +01:00
parent 0a943b6362
commit 48fd5bb2b6
3 changed files with 166 additions and 110 deletions

View File

@ -1,3 +1,11 @@
2016-12-27 Werner Lemberg <wl@gnu.org>
Documentation updates.
* docs/CHANGES: Add missing information.
* docs/formats.txt: Rewritten and updated.
2016-12-27 Werner Lemberg <wl@gnu.org>
[truetype, type1] Implement `FT_Get_Var_Design_Coordinates'.

View File

@ -3,6 +3,15 @@ CHANGES BETWEEN 2.7 and 2.7.1
I. IMPORTANT CHANGES
- Support for the new CFF2 font format as introduced with OpenType
1.8 has been contributed by Dave Arnolds from Adobe.
- Preliminary support for variation fonts as specified in OpenType
1.8 (in addition to the already existing support for Adobe's MM
and Apple's GX formats). Dave Arnolds contributed handling of
advance width change variation; more will come in the next
version.
II. IMPORTANT BUG FIXES
@ -37,9 +46,27 @@ CHANGES BETWEEN 2.7 and 2.7.1
blend coordinates of the currently selected variation instance
has been added to the Multiple Masters interface.
- A new function `FT_Get_Var_Design_Coordinates' to retrieve the
design coordinates of the currently selected variation instance
has been added to the Multiple Masters interface.
- A new load flag `FT_LOAD_BITMAP_METRICS_ONLY' to retrieve bitmap
information without loading the (embedded) bitmap itself.
- Retrieving advance widths from bitmap strikes (using
`FT_Get_Advance' and `FT_Get_Advances') have been sped up.
- The usual round of fuzzer fixes to better reject malformed
fonts.
- The `ftmulti' demo program can now switch engines with key `H'.
- The `ftstring' demo program can now show some built-in,
non-latin sample strings (to be selected with the TAB key).
- The `ftview' demo program can now switch between a font's
charmaps using the TAB key.
======================================================================

View File

@ -1,141 +1,161 @@
This file contains a list of various font formats. It gives the
This file contains a list of various font formats. It gives the
reference document and whether it is supported in FreeType 2.
Table fields
------------
file type:
The only special case is `MAC'; on older Mac OS versions, a `file'
is stored as a data and a resource fork, this is, within two
separate data chunks. In all other cases, the font data is stored
in a single file.
wrapper format:
The format used to represent the font data. In the table below it
is used only if the font format differs. Possible values are `SFNT'
(binary), `PS' (a text header, followed by binary or text data),
`LZW' (compressed with either `gzip' or `compress'), and
wrapper format
The format used to represent the font data. In the table below it
is used only if the font format differs. Possible values are
`SFNT' (binary), `PS' (a text header, followed by binary or text
data), `LZW' (compressed with either `gzip' or `compress'), and
`BZ2' (compressed with `bzip2`).
font format:
How the font is to be accessed, possibly after converting the file
type and wrapper format into a generic form. Bitmap formats are
`BDF', `PCF', and one form of `WINFNT'; all others are vector
formats.
font format
How the font is to be accessed, possibly after converting the file
type and wrapper format into a generic form. Bitmap formats are
`BDF', `PCF', and one form of `WINFNT'; all others are vector
formats. `PS' indicates third-order, `TT' second-order Bézier
curves.
font type:
Sub-formats of the font format. `SBIT' and `MACSBIT' are bitmap
formats, `MM' and `VAR' support optical axes.
font type
Sub-formats of the font format. `SBIT' and `MACSBIT' are bitmap
formats, `MM' and `VAR' support optical axes. `CFF2' supports
optical axes also.
glyph access:
If not specified, the glyph access is `standard' to the font format.
Values are `CID' for CID-keyed fonts, `SYNTHETIC' for fonts which
are modified versions of other fonts by means of a transformation
matrix, `COLLECTION' for collecting multiple fonts (sharing most of
the data) into a single file, and `TYPE_0' for PS fonts which are to
be accessed in a tree-like structure.
glyph access
If not specified, the glyph access is `standard' to the font
format. Values are `CID' for CID-keyed fonts, `SYNTHETIC' for
fonts that are modified versions of other fonts by means of a
transformation matrix, and `TYPE_0' for PS fonts which are to be
accessed in a tree-like structure.
FreeType driver:
The module in the FreeType library which handles the specific font
format. A missing entry means that FreeType doesn't support the
FreeType driver
The module in the FreeType library which handles the specific font
format. A missing entry means that FreeType doesn't support the
font format (yet).
Please send additions and/or corrections to wl@gnu.org or to the
FreeType developer's list at freetype-devel@nongnu.org (for subscribers
only). If you can provide a font example for a format which isn't
supported yet please send a mail too.
Notes
-----
The SFNT container format also provides `collections' (usually
having the file extension `.ttc' or `.otc'). A collection contains
multiple font faces that share some tables to avoid redundancy, thus
reducing the file size. In FreeType, elements of a collection can
be accessed with a proper face index.
Both the GX and the OpenType 1.8 variation fonts provide `named
instances'. FreeType maps them to face indices (they can also be
accessed with the standard MM interface).
Other font formats (not using the SFNT wrapper) also provide
multiple faces within one file; they are marked with an asterisk
(`*') in the table below.
FreeType can be configured to support Mac files (on older Mac OS
versions, a `file' is stored as a data and a resource fork, this is,
within two separate data chunks). If a file can't be opened as a
font, FreeType then checks whether it is a resource fork, trying to
extract the contained font data from either a `POST' or `sfnt'
resource.
file wrapper font font glyph FreeType reference
type format format type access driver documents
----------------------------------------------------------------------------
--- --- BDF --- --- bdf 5005.BDF_Spec.pdf, X11
Please send additions and/or corrections to wl@gnu.org or to the
FreeType developer's list at freetype-devel@nongnu.org (for
subscribers only). If you can provide a font example for a format
which isn't supported yet please send a mail too.
--- SFNT PS TYPE_1 --- type1 Type 1 GX Font Format
(for the Mac) [3]
MAC SFNT PS TYPE_1 --- type1 Type 1 GX Font Format
(for the Mac) [3]
--- SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac)
[3]
MAC SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac)
[3]
--- SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
(`OTTO' format)
MAC SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
(`OTTO' format)
--- SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
MAC SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
--- SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
MAC SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
--- SFNT TT SBIT --- sfnt XFree86 (bitmaps only;
with `head' table)
--- SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
bitmaps only; `bhed' table)
MAC SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
bitmaps only; `bhed' table)
--- SFNT TT --- --- truetype OT spec (`normal' TT font)
MAC SFNT TT --- --- truetype OT spec (`normal' TT font)
MAC SFNT TT VAR --- truetype GX spec (`?var' tables)
--- SFNT TT --- COLLECTION truetype OT spec (this can't be CFF)
MAC SFNT TT --- COLLECTION truetype OT spec (this can't be CFF)
wrapper font font glyph FreeType reference
format format type access driver documents
-----------------------------------------------------------------------------
--- BDF --- --- bdf 5005.BDF_Spec.pdf, X11
--- --- PS TYPE_1 --- type1 T1_SPEC.pdf
(`normal' Type 1 font)
MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf
(`normal' Type 1 font)
--- --- PS TYPE_1 CID cid PLRM.pdf (CID Font Type 0;
Type 9 font)
--- --- PS MM --- type1 5015.Type1_Supp.pdf
(Multiple Masters)
--- --- PS CFF --- cff 5176.CFF.pdf (`pure' CFF)
--- --- PS CFF CID cff 5176.CFF.pdf (`pure' CFF)
--- --- PS CFF SYNTHETIC --- 5176.CFF.pdf (`pure' CFF)
--- PS PS CFF --- --- PLRM.pdf (Type 2) [1]
--- PS PS CFF CID --- PLRM.pdf (Type 2) [1]
--- PS PS CFF SYNTHETIC --- PLRM.pdf (Type 2) [1]
--- --- PS --- TYPE_0 --- PLRM.pdf
--- --- PS TYPE_3 --- --- PLRM.pdf (never supported)
--- --- PS TYPE_3 CID --- PLRM.pdf (CID Font Type 1;
Type 10 font; never supported)
--- PS PS TYPE_14 --- --- PLRM.pdf (Chameleon font;
Type 14 font; never supported?)
--- --- PS TYPE_32 CID --- PLRM.pdf (CID Font Type 4;
Type 32 font; never supported?)
--- PS TT --- --- type42 5012.Type42_Spec.pdf
(Type 42 font)
--- PS TT --- CID --- PLRM.pdf (CID Font Type 2;
Type 11 font)
SFNT PS TYPE_1 --- type1 Type 1 GX Font Format
(for the Mac) [3]
SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac)
[3]
SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
(`OTTO' format)
SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
SFNT PS CFF2 --- cff OT spec 1.8
SFNT TT SBIT --- sfnt XFree86 (bitmaps only;
with `head' table)
SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
bitmaps only; `bhed' table)
SFNT TT --- --- truetype OT spec (`normal' TT font)
SFNT TT VAR --- truetype GX spec (`?var' tables)
SFNT TT VAR --- truetype OT spec 1.8
(`?var' + `?VAR' tables)
--- ? ? CEF ? cff ?
--- PS TYPE_1 --- type1 T1_SPEC.pdf
(`normal' Type 1 font)
--- PS TYPE_1 CID cid PLRM.pdf (CID Font Type 0;
Type 9 font)
--- PS MM --- type1 5015.Type1_Supp.pdf
(Multiple Masters)
--- PS CFF --- cff 5176.CFF.pdf (`pure' CFF)
--- PS* CFF CID cff 5176.CFF.pdf (`pure' CFF)
--- PS CFF SYNTHETIC --- 5176.CFF.pdf (`pure' CFF)
--- PS CFF/MM --- cff old 5167.CFF.pdf (`pure' CFF)
[3]
--- PS* CFF/MM CID cff old 5167.CFF.pdf (`pure' CFF)
[3]
--- PS CFF/MM SYNTHETIC --- old 5167.CFF.pdf (`pure' CFF)
[3]
PS PS CFF --- --- PLRM.pdf (Type 2) [1]
PS PS* CFF CID --- PLRM.pdf (Type 2) [1]
PS PS CFF SYNTHETIC --- PLRM.pdf (Type 2) [1]
PS PS CFF/MM --- --- PLRM.pdf (Type 2) [1]
PS PS* CFF/MM CID --- PLRM.pdf (Type 2) [1]
PS PS CFF/MM SYNTHETIC --- PLRM.pdf (Type 2) [1]
--- PS --- TYPE_0 --- PLRM.pdf
--- PS TYPE_3 --- --- PLRM.pdf (never supported)
--- PS TYPE_3 CID --- PLRM.pdf (CID Font Type 1;
Type 10 font; never supported)
PS PS TYPE_14 --- --- PLRM.pdf (Chameleon font;
Type 14 font; never supported?)
--- PS TYPE_32 CID --- PLRM.pdf (CID Font Type 4;
Type 32 font; never supported?)
PS TT --- --- type42 5012.Type42_Spec.pdf
(Type 42 font)
PS TT --- CID --- PLRM.pdf (CID Font Type 2;
Type 11 font)
--- --- PCF --- --- pcf X11 [4]
--- LZW PCF --- --- pcf X11 [4]
--- BZ2 PCF --- --- pcf X11 [4]
? ? CEF ? cff ?
--- --- PFR PFR0 --- pfr [2]
--- --- PFR PFR1 --- --- (undocumented, proprietary;
probably never supported)
--- PCF --- --- pcf X11 [4]
LZW PCF --- --- pcf X11 [4]
BZ2 PCF --- --- pcf X11 [4]
--- --- WINFNT --- --- winfonts Windows developer's notes [5]
--- --- WINFNT VECTOR --- --- Windows developer's notes [5]
--- PFR* PFR0 --- pfr [2]
--- PFR PFR1 --- --- (undocumented, proprietary;
probably never supported)
[1] Support should be rather simple since this is identical to `CFF' but
in a PS wrapper.
--- WINFNT* --- --- winfonts Windows developer's notes [5]
--- WINFNT VECTOR --- --- Windows developer's notes [5]
[1] Support should be rather simple since this is identical to `CFF'
but in a PS wrapper.
[2] Official PFR specification:
http://www.bitstream.com/categories/developer/truedoc/pfrspec.html
http://www.bitstream.com/categories/developer/truedoc/pfrspec1.2.pdf
The syntax of the auxiliary data is not defined there, but is
partially defined in MHP 1.0.3 (also called ETSI TS 101812 V1.3.1)
The syntax of the auxiliary data is not defined there, but is
partially defined in MHP 1.0.3 (also called ETSI TS 101812 V1.3.1)
section 7.4.
http://www.etsi.org/
@ -143,7 +163,8 @@ MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf
(free registration required).
[3] Support is rudimentary currently; some tables are not loaded yet.
[3] Support is rudimentary currently; some tables or data are not
loaded yet.
[4] See
@ -151,10 +172,10 @@ MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf
Elias Israel, Erik Fortune, Digital Press, 1992
ISBN 1-55558-096-3
for a specification given in Appendix D on pgs. 436-450. However,
this information might be out of date; unfortunately, there is no
PCF specification available online, and this book is out of print.
George Williams deduced the font format from the X11 sources and
for a specification given in Appendix D on pgs. 436-450. However,
this information might be out of date; unfortunately, there is no
PCF specification available online, and this book is out of print.
George Williams deduced the font format from the X11 sources and
documented it for his FontForge font editor:
http://fontforge.github.io/pcf-format.html