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> 2016-12-27 Werner Lemberg <wl@gnu.org>
[truetype, type1] Implement `FT_Get_Var_Design_Coordinates'. [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 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 II. IMPORTANT BUG FIXES
@ -37,9 +46,27 @@ CHANGES BETWEEN 2.7 and 2.7.1
blend coordinates of the currently selected variation instance blend coordinates of the currently selected variation instance
has been added to the Multiple Masters interface. 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 - A new load flag `FT_LOAD_BITMAP_METRICS_ONLY' to retrieve bitmap
information without loading the (embedded) bitmap itself. 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,133 +1,153 @@
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. reference document and whether it is supported in FreeType 2.
Table fields
------------
file type: wrapper format
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 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' is used only if the font format differs. Possible values are
(binary), `PS' (a text header, followed by binary or text data), `SFNT' (binary), `PS' (a text header, followed by binary or text
`LZW' (compressed with either `gzip' or `compress'), and data), `LZW' (compressed with either `gzip' or `compress'), and
`BZ2' (compressed with `bzip2`). `BZ2' (compressed with `bzip2`).
font format: font format
How the font is to be accessed, possibly after converting the file How the font is to be accessed, possibly after converting the file
type and wrapper format into a generic form. Bitmap formats are type and wrapper format into a generic form. Bitmap formats are
`BDF', `PCF', and one form of `WINFNT'; all others are vector `BDF', `PCF', and one form of `WINFNT'; all others are vector
formats. formats. `PS' indicates third-order, `TT' second-order Bézier
curves.
font type: font type
Sub-formats of the font format. `SBIT' and `MACSBIT' are bitmap Sub-formats of the font format. `SBIT' and `MACSBIT' are bitmap
formats, `MM' and `VAR' support optical axes. formats, `MM' and `VAR' support optical axes. `CFF2' supports
optical axes also.
glyph access: glyph access
If not specified, the glyph access is `standard' to the font format. If not specified, the glyph access is `standard' to the font
Values are `CID' for CID-keyed fonts, `SYNTHETIC' for fonts which format. Values are `CID' for CID-keyed fonts, `SYNTHETIC' for
are modified versions of other fonts by means of a transformation fonts that are modified versions of other fonts by means of a
matrix, `COLLECTION' for collecting multiple fonts (sharing most of transformation matrix, and `TYPE_0' for PS fonts which are to be
the data) into a single file, and `TYPE_0' for PS fonts which are to accessed in a tree-like structure.
be accessed in a tree-like structure.
FreeType driver: FreeType driver
The module in the FreeType library which handles the specific font The module in the FreeType library which handles the specific font
format. A missing entry means that FreeType doesn't support the format. A missing entry means that FreeType doesn't support the
font format (yet). font format (yet).
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.
Please send additions and/or corrections to wl@gnu.org or to the Please send additions and/or corrections to wl@gnu.org or to the
FreeType developer's list at freetype-devel@nongnu.org (for subscribers FreeType developer's list at freetype-devel@nongnu.org (for
only). If you can provide a font example for a format which isn't subscribers only). If you can provide a font example for a format
supported yet please send a mail too. which isn't supported yet please send a mail too.
file wrapper font font glyph FreeType reference wrapper font font glyph FreeType reference
type format format type access driver documents format format type access driver documents
---------------------------------------------------------------------------- -----------------------------------------------------------------------------
--- --- BDF --- --- bdf 5005.BDF_Spec.pdf, X11 --- BDF --- --- bdf 5005.BDF_Spec.pdf, X11
--- SFNT PS TYPE_1 --- type1 Type 1 GX Font Format SFNT PS TYPE_1 --- type1 Type 1 GX Font Format
(for the Mac) [3] (for the Mac) [3]
MAC SFNT PS TYPE_1 --- type1 Type 1 GX Font Format SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac)
(for the Mac) [3]
--- SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac)
[3] [3]
MAC SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac) SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
[3]
--- SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
(`OTTO' format) (`OTTO' format)
MAC SFNT PS CFF --- cff OT spec, 5176.CFF.pdf SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
(`OTTO' format) SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
--- SFNT PS CFF CID cff OT spec, 5176.CFF.pdf SFNT PS CFF2 --- cff OT spec 1.8
MAC SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
--- SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf SFNT TT SBIT --- sfnt XFree86 (bitmaps only;
MAC SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
--- SFNT TT SBIT --- sfnt XFree86 (bitmaps only;
with `head' table) with `head' table)
--- SFNT TT MACSBIT --- sfnt OT spec (for the Mac; SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
bitmaps only; `bhed' table) bitmaps only; `bhed' table)
MAC SFNT TT MACSBIT --- sfnt OT spec (for the Mac; SFNT TT --- --- truetype OT spec (`normal' TT font)
bitmaps only; `bhed' table) SFNT TT VAR --- truetype GX spec (`?var' tables)
--- SFNT TT --- --- truetype OT spec (`normal' TT font) SFNT TT VAR --- truetype OT spec 1.8
MAC SFNT TT --- --- truetype OT spec (`normal' TT font) (`?var' + `?VAR' tables)
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)
--- --- PS TYPE_1 --- type1 T1_SPEC.pdf --- PS TYPE_1 --- type1 T1_SPEC.pdf
(`normal' Type 1 font) (`normal' Type 1 font)
MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf --- PS TYPE_1 CID cid PLRM.pdf (CID Font Type 0;
(`normal' Type 1 font)
--- --- PS TYPE_1 CID cid PLRM.pdf (CID Font Type 0;
Type 9 font) Type 9 font)
--- --- PS MM --- type1 5015.Type1_Supp.pdf --- PS MM --- type1 5015.Type1_Supp.pdf
(Multiple Masters) (Multiple Masters)
--- --- PS CFF --- cff 5176.CFF.pdf (`pure' CFF) --- PS CFF --- cff 5176.CFF.pdf (`pure' CFF)
--- --- PS CFF CID 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 SYNTHETIC --- 5176.CFF.pdf (`pure' CFF)
--- PS PS CFF --- --- PLRM.pdf (Type 2) [1] --- PS CFF/MM --- cff old 5167.CFF.pdf (`pure' CFF)
--- PS PS CFF CID --- PLRM.pdf (Type 2) [1] [3]
--- PS PS CFF SYNTHETIC --- PLRM.pdf (Type 2) [1] --- PS* CFF/MM CID cff old 5167.CFF.pdf (`pure' CFF)
--- --- PS --- TYPE_0 --- PLRM.pdf [3]
--- --- PS TYPE_3 --- --- PLRM.pdf (never supported) --- PS CFF/MM SYNTHETIC --- old 5167.CFF.pdf (`pure' CFF)
--- --- PS TYPE_3 CID --- PLRM.pdf (CID Font Type 1; [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) Type 10 font; never supported)
--- PS PS TYPE_14 --- --- PLRM.pdf (Chameleon font; PS PS TYPE_14 --- --- PLRM.pdf (Chameleon font;
Type 14 font; never supported?) Type 14 font; never supported?)
--- --- PS TYPE_32 CID --- PLRM.pdf (CID Font Type 4; --- PS TYPE_32 CID --- PLRM.pdf (CID Font Type 4;
Type 32 font; never supported?) Type 32 font; never supported?)
--- PS TT --- --- type42 5012.Type42_Spec.pdf PS TT --- --- type42 5012.Type42_Spec.pdf
(Type 42 font) (Type 42 font)
--- PS TT --- CID --- PLRM.pdf (CID Font Type 2; PS TT --- CID --- PLRM.pdf (CID Font Type 2;
Type 11 font) Type 11 font)
--- ? ? CEF ? cff ? ? ? CEF ? cff ?
--- --- PCF --- --- pcf X11 [4] --- PCF --- --- pcf X11 [4]
--- LZW PCF --- --- pcf X11 [4] LZW PCF --- --- pcf X11 [4]
--- BZ2 PCF --- --- pcf X11 [4] BZ2 PCF --- --- pcf X11 [4]
--- --- PFR PFR0 --- pfr [2] --- PFR* PFR0 --- pfr [2]
--- --- PFR PFR1 --- --- (undocumented, proprietary; --- PFR PFR1 --- --- (undocumented, proprietary;
probably never supported) probably never supported)
--- --- WINFNT --- --- winfonts Windows developer's notes [5] --- WINFNT* --- --- winfonts Windows developer's notes [5]
--- --- WINFNT VECTOR --- --- 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 [1] Support should be rather simple since this is identical to `CFF'
in a PS wrapper. but in a PS wrapper.
[2] Official PFR specification: [2] Official PFR specification:
@ -143,7 +163,8 @@ MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf
(free registration required). (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 [4] See