From 2340a9cfbd161083dc37367419c0fea685408062 Mon Sep 17 00:00:00 2001 From: Dave Crossland Date: Fri, 18 Sep 2015 16:51:44 -0400 Subject: [PATCH 1/7] rm Doc/install.txt --- Doc/install.txt | 110 ------------------------------------------------ 1 file changed, 110 deletions(-) delete mode 100644 Doc/install.txt diff --git a/Doc/install.txt b/Doc/install.txt deleted file mode 100644 index 078312d64..000000000 --- a/Doc/install.txt +++ /dev/null @@ -1,110 +0,0 @@ -TTX/FontTools - -TTX/FontTools is a suite of tools for manipulating fonts. It is written in -Python and has a BSD-style, open-source licence -- see LICENSE.txt. -It's hosted at http://sourceforge.net/. - -The flagship is TTX, a tool to convert OpenType and TrueType font files to -an XML-based format (also called TTX), and back. This lets you edit TTF or -OTF files with any text editor. - -The FontTools library currently reads and writes TrueType font files, reads -PostScript Type 1 fonts and more. - - -Scope - -TTX/FontTools' functionality is aimed towards font developers and font tool -developers. It can of course be used to just access fonts (outlines, -metrics, etc.) but it is not optimized for that. It will be further -developed so it can be the core of any font editor. And that's exactly -what it will be for our upcoming major rewrite of RoboFog, our (commercial) -PythonPowered font editor for MacOS. - - -Installation - -For Windows and MacOS there are easy-to-use TTX installers. The rest if this -document is meant for people who want to use TTX/FontTools from the source. - -You need the following software: - -Python - The fresh versions as well as older versions (You need 2.0 or higher) - can be downloaded from - http://www.python.org/download/ - or here - http://sourceforge.net/projects/python/ - - Windows: grab the Windows installer, run the full install. - Un*x: follow the build instructions. - MacOS: grab the installer, run "Easy Install" - -The numpy extension - See http://numpy.scipy.org/ - -Now run the "setup.py" script from the FontTools archive. This will install -all the modules in the right places, as well as tries to compile the one -(optional) C extension contained in FontTools. On Unix it also installs the -"ttx" command line tool. This tool can also be used on Windows, but might -need some fiddling. - -For instructions how to build a standalone Windows installer, see -Windows/README.TXT. Thanks a LOT to Adam Twardoch for this essential -contribution. - -For TTX usage instructions, see the file "documentation.html". - - -Feedback - -Please join the fonttools-discussion mailing list at SourceForge. Subscription -info can be found if you follow the "Mailing Lists" link at the SourceForge -project page: - http://sourceforge.net/projects/fonttools/ -You can also email me directly at just@letterror.com. - -If you want to follow the development of FontTools closely, or would like to -contribute, you can also subscribe to the fonttools-checkins mailing list. - - -Anonymous VCS access - -The FontTools sources are also accessible here: - http://sourceforge.net/projects/fonttools/ -Let me know if you'd like to become a co-developer. - - -Developer documentation - -Sorry, documentation beyond doc strings in the source code is still on my to-do list... -Below follows a brief overview of what's there. - - -The library - - Cross-platform - fontTools.t1Lib -- Provides a Type 1 font reader. Writing is a planned feature. - fontTools.ttLib -- Extensive TrueType tools. Reads and writes. This is the flagship - of FontTools, it's by far the most mature component. Contains a completely modular - TTF table converter architecture. See ttLib/tables/table_API_readme.txt. - fontTools.afmLib -- And AFM file reader/writer. - fontTools.cffLib -- Reads CFF fonts. Writing is a planned feature. - fontTools.unicode -- A simple (but large) module that translates - Unicode values to their descriptive names. Still Unicode 2.0. - fontTools.agl -- Interface to the Adobe Glyph List: maps unicode values - to glyph names and back. - - -Thank-you's - -(in alphabetical order) -Erik van Blokland, Petr van Blokland, Jelle Bosma, Vincent Connare, -Simon Daniels, Hannes Famira, Greg Hitchcock, John Hudson, Jack Jansen, -Antoine Leca, Werner Lemberg, Peter Lofting, Dave Opstad, Laurence Penney, -Guido van Rossum, Adam Twardoch. - -Copyrights - -FontTools/TTX -- 1999-2002 Just van Rossum; Letterror (just@letterror.com) -See LICENCE.txt for the full license. From 1c3f3e637476fde2a4fe74247cb29d064850290c Mon Sep 17 00:00:00 2001 From: Dave Crossland Date: Fri, 18 Sep 2015 16:52:04 -0400 Subject: [PATCH 2/7] Update Doc/changes.txt: summarize last 2 releases --- Doc/changes.txt | 69 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 57 insertions(+), 12 deletions(-) diff --git a/Doc/changes.txt b/Doc/changes.txt index 22bcd5b15..ffd8f1b91 100644 --- a/Doc/changes.txt +++ b/Doc/changes.txt @@ -1,4 +1,36 @@ -TTX/FontTools Version 2.4 +## TTX/FontTools Version 3.0 + +2015-09-01 + +- Add Snippet scripts for cmap subtable format conversion, printing GSUB/GPOS features +- Add feaLib, a lexer for OpenType feature files +- TTX WOFF2 support and a `-f` option to overwrite output file(s) +- Support GX `avar`, `gvar`, `fvar` tables, Apple's `meta`, `feat` tables, and gzip-compressed SVG tables +- Upgrade Mac East Asian encodings to native implementation if available +- Add Roman Croatian and Romanian encodings, codecs for mac-extended East Asian encodings +- Implement optimal GLYF glyph outline packing; disabled by default + +## TTX/FontTools Version 2.5 + +2014-09-24 + +- Add a Qt pen +- Add VDMX table converter +- Load all OpenType sub-structures lazily +- Add support for cmap format 13. +- Add pyftmerge tool +- Update to Unicode 6.3.0d3 +- Add pyftinspect tool +- Add support for Google CBLC/CBDT color bitmaps, standard EBLC/EBDT embedded bitmaps, snd `SVG ` table (thanks to Read Roberts at Adobe) +- Add support for loading, saving and ttx'ing WOFF file format +- Add support for Microsoft COLR/CPAL layered color glyphs +- Support PyPy +- Support Jython, by replacing numpy with array/lists modules and removed it, pure-Python StringIO, not cStringIO +- Add pyftsubset and Subsetter object, supporting CFF and TTF +- Add to ttx args for -q for quiet mode, -z to choose a bitmap dump format + +## TTX/FontTools Version 2.4 + - Option to write to arbitrary files - Better dump format for DSIG - Better detection of OTF XML @@ -9,14 +41,14 @@ TTX/FontTools Version 2.4 - Fix some modern MacOS issues - Fix minor issues and typos -TTX/FontTools Version 2.3 +## TTX/FontTools Version 2.3 - TrueType Collection (TTC) support - Python 2.6 support - Update Unicode data to 5.2.0 - Couple of bug fixes -TTX/FontTools Version 2.2 +## TTX/FontTools Version 2.2 - ClearType support - cmap format 1 support @@ -26,11 +58,11 @@ TTX/FontTools Version 2.2 - Update AGLFN data to 1.6 - Many bug fixes -TTX/FontTools Version 2.1 +## TTX/FontTools Version 2.1 - Many years worth of fixes and features -TTX/FontTools Version 2.0 beta 2 (released ??? 2002) +## TTX/FontTools Version 2.0 beta 2 (released ??? 2002) - Be "forgiving" when interpreting the maxp table version field: interpret any value as 1.0 if it's not 0.5. Fixes dumping of these @@ -41,7 +73,7 @@ TTX/FontTools Version 2.0 beta 2 (released ??? 2002) - Fixed bug in ClassDef format 1 subtable (Andreas Seidel bumped into this one). -TTX/FontTools Version 2.0 beta 1 (released September 10 2002) +## TTX/FontTools Version 2.0 beta 1 (released September 10 2002) - Fixed embarrassing bug: the master checksum in the head table is now calculated correctly even on little-endian platforms (such as Intel). @@ -93,7 +125,9 @@ TTX/FontTools Version 2.0 beta 1 (released September 10 2002) - Couple of fixes to the 'post' table. - Updated OS/2 table to latest spec. -TTX/FontTools Version 1.0 beta 1 (released August 10 2001) +## TTX/FontTools Version 1.0 beta 1 + +2001-08-10 - Reorganized the command line interface for ttDump.py and ttCompile.py, they now behave more like "normal" command line tool, in that they accept @@ -110,7 +144,9 @@ TTX/FontTools Version 1.0 beta 1 (released August 10 2001) Windows registry. - Moved the project to SourceForge. -TTX/FontTools Version 1.0 alpha 6 (released March 15 2000) +## TTX/FontTools Version 1.0 alpha 6 + +2000-03-15 - Big reorganization: made ttLib a subpackage of the new fontTools package, changed several module names. Called the entire suite "FontTools" @@ -125,17 +161,24 @@ TTX/FontTools Version 1.0 alpha 6 (released March 15 2000) - TTX is now the name of the XML-based *format* for TT fonts, and not just an application. -Version 1.0 alpha 5 (never released) +## Version 1.0 alpha 5 + +Never released - More tables supported: hdmx, vhea, vmtx -Version 1.0 alpha 3 & 4 (never released) +## Version 1.0 alpha 3 & 4 + +Never released - fixed most portability issues - retracted the "Euro_or_currency" change from 1.0a2: it was nonsense! -Version 1.0 alpha 2 (released as binary for MacOS, 2 May 1999) +## Version 1.0 alpha 2 +1999-05-02 + +- binary release for MacOS - genenates full FOND resources: including width table, PS font name info and kern table if applicable. - added cmap format 4 support. Extra: dumps Unicode char names as XML comments! @@ -155,7 +198,9 @@ Fixed bugs: - 'hhea' table is now recalculated correctly - fixed wrong assumption about sfnt resource names -Version 1.0 alpha 1 (27 Apr 1999) +## Version 1.0 alpha 1 + +1999-04-27 - initial binary release for MacOS From 5df8647ebae636dcefbc85cf447e2ff9512ebfdc Mon Sep 17 00:00:00 2001 From: Dave Crossland Date: Fri, 18 Sep 2015 16:52:33 -0400 Subject: [PATCH 3/7] README: Improve install and tools notes --- README.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c64b222fc..e251a481a 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,21 @@ Among other things this means you can use it free of charge. ### Installation -To download and install fontools on your system, run the following commands: FontTools requires Python 2.7, or Python 3.3 or later. +The fresh versions as well as older versions can be downloaded from + +- Windows: grab the Windows installer, run the full install. +- Un\*x: follow the build instructions. +- MacOS: grab the installer, run "Easy Install" + +A package is available in pypi from + +``` +easy\_install pip ; +pip install fonttools ; +``` + +For people who want to download and install fontools on your system from source code, run the following commands: ```sh git clone https://github.com/behdad/fonttools.git ; @@ -21,7 +34,11 @@ cd fonttools ; python setup.py install ; ``` -Full build and installation instructions are in [Doc/install.txt](https://github.com/behdad/fonttools/blob/master/Doc/install.txt) +This will install all the modules in the right places. +On Unix it also installs the command line tools. + +For instructions how to build a standalone Windows installer, see [Windows/README.TXT](Windows/README.TXT) +Thanks a lot to Adam Twardoch for this essential contribution. ### TTX – From OpenType and TrueType to XML and Back @@ -52,7 +69,7 @@ These additional options include: * splitting tables to separate `.ttx` files * disabling TrueType instruction disassembly -### The TTX file format +#### The TTX file format The following tables are currently supported: @@ -79,9 +96,33 @@ The original names are being kept, so this has no influence on a "round tripped" Because the order in which glyphs are stored inside the binary font is important, we maintain an ordered list of glyph names in the font. -### Development and feedback +### Other Tools -TTX/FontTools development is ongoing, with an active community of developers including professional developers employed at major software corporations and type foundries as well as hobbyists. +Commands for inspecting, merging and subsetting fonts are also available: + +```sh +pyftinspect ; +pyftmerge ; +pyftsubset ; +``` + +### fontTools Python Module + +The fontTools python module provides a convenient way to programmatically edit font files. + +```py +>>> from fontTools.ttLib import TTFont +>>> font = TTFont('/path/to/font.ttf') +>>> font + +>>> +``` + +A selection of sample python programs is in the [Snippets](https://github.com/behdad/fonttools/blob/master/Snippets/) directory. + +### Development Community + +TTX/FontTools development is ongoing in an active community of developers, that includes professional developers employed at major software corporations and type foundries as well as hobbyists. Feature requests and bug reports are always welcome at From f439b55a1fa3b6aa81cd424b008d1b416774c4a4 Mon Sep 17 00:00:00 2001 From: Dave Crossland Date: Fri, 18 Sep 2015 16:53:33 -0400 Subject: [PATCH 4/7] Doc/changes.txt -> CHANGELOG.txt --- Doc/changes.txt => CHANGELOG.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Doc/changes.txt => CHANGELOG.txt (100%) diff --git a/Doc/changes.txt b/CHANGELOG.txt similarity index 100% rename from Doc/changes.txt rename to CHANGELOG.txt From 710ca13b4219fd6d072093be61d83b0cbc15bb25 Mon Sep 17 00:00:00 2001 From: Dave Crossland Date: Sun, 20 Sep 2015 19:13:47 -0400 Subject: [PATCH 5/7] CHANGELOG.txt: Minor corrections --- CHANGELOG.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index ffd8f1b91..798bd3ddd 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -2,10 +2,10 @@ 2015-09-01 -- Add Snippet scripts for cmap subtable format conversion, printing GSUB/GPOS features -- Add feaLib, a lexer for OpenType feature files +- Add Snippet scripts for cmap subtable format conversion, printing GSUB/GPOS features, building a GX font from two masters - TTX WOFF2 support and a `-f` option to overwrite output file(s) -- Support GX `avar`, `gvar`, `fvar` tables, Apple's `meta`, `feat` tables, and gzip-compressed SVG tables +- Support GX tables: `avar`, `gvar`, `fvar`, `meta` +- Support `feat` and gzip-compressed SVG tables - Upgrade Mac East Asian encodings to native implementation if available - Add Roman Croatian and Romanian encodings, codecs for mac-extended East Asian encodings - Implement optimal GLYF glyph outline packing; disabled by default @@ -21,7 +21,7 @@ - Add pyftmerge tool - Update to Unicode 6.3.0d3 - Add pyftinspect tool -- Add support for Google CBLC/CBDT color bitmaps, standard EBLC/EBDT embedded bitmaps, snd `SVG ` table (thanks to Read Roberts at Adobe) +- Add support for Google CBLC/CBDT color bitmaps, standard EBLC/EBDT embedded bitmaps, and `SVG ` table (thanks to Read Roberts at Adobe) - Add support for loading, saving and ttx'ing WOFF file format - Add support for Microsoft COLR/CPAL layered color glyphs - Support PyPy From 38ae35ec71b41006fd93a255c9e4e5bf6143fa99 Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Tue, 8 Dec 2015 13:14:33 +0000 Subject: [PATCH 6/7] README.md: remove instructions for Windows command line tools and installer --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index e251a481a..be35404ee 100644 --- a/README.md +++ b/README.md @@ -34,11 +34,7 @@ cd fonttools ; python setup.py install ; ``` -This will install all the modules in the right places. -On Unix it also installs the command line tools. - -For instructions how to build a standalone Windows installer, see [Windows/README.TXT](Windows/README.TXT) -Thanks a lot to Adam Twardoch for this essential contribution. +This will install all the modules and command line tools in the right places. ### TTX – From OpenType and TrueType to XML and Back From b29a003545ce754a4e7976fda2b2ff511a0ef3ed Mon Sep 17 00:00:00 2001 From: Dave Crossland Date: Tue, 8 Dec 2015 23:24:55 +0530 Subject: [PATCH 7/7] rename {CHANGELOG.txt,NEWS} LICENSE{.txt,} --- LICENSE.txt => LICENSE | 0 CHANGELOG.txt => NEWS | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename LICENSE.txt => LICENSE (100%) rename CHANGELOG.txt => NEWS (100%) diff --git a/LICENSE.txt b/LICENSE similarity index 100% rename from LICENSE.txt rename to LICENSE diff --git a/CHANGELOG.txt b/NEWS similarity index 100% rename from CHANGELOG.txt rename to NEWS