From 7d82398fa43cf3d9cfd28ddd4050f6abc121e317 Mon Sep 17 00:00:00 2001 From: Dave Crossland Date: Wed, 9 Sep 2015 14:46:40 -0400 Subject: [PATCH 1/2] README: Update , merge in Doc/documentation.html --- README.md | 160 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 139 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 475a5d72d..98a5333ae 100644 --- a/README.md +++ b/README.md @@ -2,42 +2,160 @@ [![Health](https://landscape.io/github/behdad/fonttools/master/landscape.svg?style=flat)](https://landscape.io/github/behdad/fonttools/master) [![Coverage Status](https://img.shields.io/coveralls/behdad/fonttools.svg)](https://coveralls.io/r/behdad/fonttools) -### What it is ? +### What it this? -Quoting from [TTX/FontTools Sourceforge Project](http://sourceforge.net/projects/fonttools/) -> a tool to convert OpenType and TrueType fonts to and from XML. FontTools is a library for manipulating fonts, written in Python. It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats. - -### Quick start - -```python setup.py install``` - -From your command line type the above command to get fontools installed on your system. FontTools requires Python 2.7, or Python 3.3 or later. +fontTools is a library for manipulating fonts, written in Python. +The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format, which is also called TTX. +It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats. +The project has a [BSD-style open-source licence](LICENSE.txt). +Among other things this means you can use it free of charge. ### Installation -See [install.txt](https://github.com/behdad/fonttools/blob/master/Doc/install.txt) in the 'Doc' subdirectory for instructions on how to build and install TTX/FontTools from the sources. +To download and install fontools on your system, run the following commands: +FontTools requires Python 2.7, or Python 3.3 or later. +```sh +git clone https://github.com/behdad/fonttools.git ; +cd fonttools ; +python setup.py install ; +``` -### Documentation +Full build and installation instructions are in [Doc/install.txt](https://github.com/behdad/fonttools/blob/master/Doc/install.txt) -#### What is TTX ? +### TTX – From OpenType and TrueType to XML and Back -See [documentation.html](https://rawgit.com/behdad/fonttools/master/Doc/documentation.html) in the "Doc" subdirectory for TTX usage instructions and information about the TTX file format. +Once installed you can use the `ttx` command to convert binary font files (`.otf`, `.ttf`, etc) to the TTX xml format, edit them, and convert them back to binary format. +TTX files have a .ttx file extension. -#### History +```sh +ttx /path/to/font.otf ; +ttx /path/to/font.ttx ; +``` -The fontTools project was started by Just van Rossum in 1999, and was maintained as an open source project at . In 2008, Paul Wise (pabs3) began helping Just with stability maintenance. In 2013 Behdad Esfahbod began a friendly fork, thoroughly reviewing the codebase and making changes at to add new features and support for new font formats. +The TTX application works can be used in two ways, depending on what platform you run it on: -### Community +* As a command line tool (Windows/DOS, Unix, MacOSX) +* By dropping files onto the application (Windows, MacOS) -* https://groups.google.com/d/forum/fonttools +TTX detects what kind of files it is fed: it will output a `.ttx` file when it sees a `.ttf` or `.otf`, and it will compile a `.ttf` or `.otf` when the input file is a `.ttx` file. +By default, the output file is created in the same folder as the input file, and will have the same name as the input file but with a different extension. +TTX will _never_ overwrite existing files, but if necessary will append a unique number to the output filename (before the extension) such as `Arial#1.ttf` -### License +When using TTX from the command line there are a bunch of extra options, these are explained in the help text, as displayed when typing `ttx -h` at the command prompt. +These additional options include: -See "LICENSE.txt" for licensing information. +* specifying the folder where the output files are created +* specifying which tables to dump or which tables to exclude +* merging partial `.ttx` files with existing `.ttf` or `.otf` files +* listing brief table info isntead of dumping to `.ttx` +* splitting tables to separate `.ttx` files +* disabling TrueType instruction disassembly +### The TTX file format +The following tables are currently supported: + + BASE, CBDT, CBLC, CFF, COLR, CPAL, DSIG, EBDT, EBLC, FFTM, GDEF, + GMAP, GPKG, GPOS, GSUB, JSTF, LTSH, MATH, META, OS/2, SING, SVG, + TSI0, TSI1, TSI2, TSI3, TSI5, TSIB, TSID, TSIJ, TSIP, TSIS, TSIV, + VDMX, VORG, avar, cmap, cvt, feat, fpgm, fvar, gasp, glyf, gvar, + hdmx, head, hhea, hmtx, kern, loca, ltag, maxp, meta, name, post, + prep, sbix, vhea, vmtx + +Other tables are dumped as hexadecimal data. + +TrueType fonts use glyph indices (GlyphIDs) to refer to glyphs in most places. +While this is fine in binary form, it is really hard to work with for humans. +Therefore we use names instead. + +The glyph names are either extracted from the `CFF ` table or the `post` table, or are derived from a Unicode `cmap` table. +In the latter case the Adobe Glyph List is used to calculate names based on Unicode values. +If all of these methods fail, names are invented based on GlyphID (eg `glyph00142`) + +It is possible that different glyphs use the same name. +If this happens, we force the names to be unique by appending `#n` to the name (`n` being an integer number.) +The original names are being kept, so this has no influence on a "round tripped" font. + +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 + +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. + +Feature requests and bug reports are always welcome at + +The best place for discussions about TTX from an end-user perspective as well as TTX/FontTools development is the mailing list. +You can also email Behdad privately at + +### Credits + +Windows setup script: Adam Twardoch + +Icon: Hannes Famira + +### Acknowledgements + +In alphabetical order: + +Olivier Berten, +Samyak Bhuta, +Erik van Blokland, +Petr van Blokland, +Jelle Bosma, +Sascha Brawer, +Tom Byrer, +Frédéric Coiffier, +Vincent Connare, +Dave Crossland, +Simon Daniels, +Behdad Esfahbod, +Behnam Esfahbod, +Hannes Famira, +Sam Fishman, +Matt Fontaine, +Yannis Haralambous, +Greg Hitchcock, +Jeremie Hornus, +Khaled Hosny, +John Hudson, +Denis Jacquerye, +Jack Jansen, +Tom Kacvinsky, +Jens Kutilek, +Antoine Leca, +Werner Lemberg, +Tal Leming, +Peter Lofting, +Cosimo Lupo, +Project Mashabow, +Dave Opstad, +Laurence Penney, +Roozbeh Pournader, +Garret Rieger, +Read Roberts, +Guido van Rossum, +Just van Rossum, +Andreas Seidel, +Georg Seifert, +Miguel Sousa, +Adam Twardoch, +Adrien Tétar, +Vitaly Volkov, +Paul Wise. + +### Copyrights + +Copyright (c) 1999-2004 Just van Rossum, LettError (just@letterror.com) +See [LICENSE.txt](LICENSE.txt) for the full license. + +Copyright (c) 2000 BeOpen.com. +All Rights Reserved. + +Copyright (c) 1995-2001 Corporation for National Research Initiatives. +All Rights Reserved. + +Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. +All Rights Reserved. Have fun! - -Just van Rossum From 67f7825883f2a5749d73a9c860b29bf41f759ebd Mon Sep 17 00:00:00 2001 From: Dave Crossland Date: Wed, 9 Sep 2015 14:48:09 -0400 Subject: [PATCH 2/2] Delete documentation.html --- Doc/documentation.html | 104 ----------------------------------------- 1 file changed, 104 deletions(-) delete mode 100644 Doc/documentation.html diff --git a/Doc/documentation.html b/Doc/documentation.html deleted file mode 100644 index 871a78352..000000000 --- a/Doc/documentation.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -TTX Documentation - - - - - -

TTX -- From OpenType and TrueType to XML and Back

- -TTX is a tool for manipulating TrueType and OpenType fonts. It is written in Python and has a BSD-style, open-source licence -- see LICENSE.txt. Among other things this means you can use it free of charge. It's hosted at sourceforge.net. - -

-TTX can dump TrueType and OpenType fonts to an XML-based text format, which is also called TTX. TTX files have a .ttx file extension. - -

How to use TTX

- -The TTX application works can be used in two ways, depending on what platform you run it on: - -
    -
  • As a command line tool (Windows/DOS, Unix, MacOSX)
  • -
  • By dropping files onto the application (Windows, MacOS)
  • -
- -

-TTX detects what kind of files it is fed: it will output a .ttx file when it sees a .ttf or .otf, and it will compile a .ttf or .otf when the input file is a .ttx file. By default, the output file is created in the same folder as the input file, and will have the same name as the input file but with a different extension. TTX will never overwrite existing files, but if necessary will append a unique number to the output filename (before the extension), eg.: "Arial#1.ttf". - -

-When using TTX from the command line there are a bunch of extra options, these are explained in the help text, as displayed when typing "ttx -h" at the command prompt. These additional options include: -

    -
  • specifying the folder where the output files are created
  • -
  • specifying which tables to dump or which tables to exclude
  • -
  • merging partial .ttx files with existing .ttf or .otf files
  • -
  • listing brief table info isntead of dumping to .ttx
  • -
  • splitting tables to separate .ttx files
  • -
  • disabling TT instruction disassembly
  • -
- -

The TTX file format

- -The following tables are currently supported: -
- -BASE, CBDT, CBLC, CFF, COLR, CPAL, DSIG, EBDT, EBLC, FFTM, GDEF, GMAP, GPKG, GPOS, GSUB, JSTF, LTSH, MATH, META, OS/2, SING, SVG, TSI0, TSI1, TSI2, TSI3, TSI5, TSIB, TSID, TSIJ, TSIP, TSIS, TSIV, VDMX, VORG, avar, cmap, cvt, feat, fpgm, fvar, gasp, glyf, gvar, hdmx, head, hhea, hmtx, kern, loca, ltag, maxp, meta, name, post, prep, sbix, vhea and vmtx - -
-Other tables are dumped as hexadecimal data. - -

-TrueType fonts use glyph indices (GlyphID's) to refer to glyphs in most places. -While this is fine in binary form, it is really hard to work with for -humans. Therefore we use names instead. - -

The glyph names are either extracted from the 'CFF ' table or the 'post' table, -or are derived from a Unicode 'cmap' table. In the latter case the Adobe Glyph List -is used to calculate names based on Unicode values. If all of these mthods fail, -names are invented based on GlyphID (eg. "glyph00142"). - -

It is possible that different glyphs use the same name. If this happens, -we force the names to be unique by appending "#n" to the name (n being an -integer number). The original names are being kept, so this has no influence -on a "round tripped" font. - -

Because the order in which glyphs are stored inside the TT font is -important, we maintain an ordered list of glyph names in the font. - - -

Development and feedback

- -TTX/FontTools development is ongoing, but often goes in spurts. Feature requests and bug reports are always welcome. The best place for these is currently the fonttools-discussion mailing list at SourceForge. This list is both for discussion TTX from an end-user perspective as well as TTX/FontTools development. Subscription info can be found if you follow the "Mailing Lists" link at the SourceForge project page. You can also email me directly at just@letterror.com. - -

-Let me take this opportunity to mention that if you have special needs (eg. custom font monipulators, dufferent table formats, etc.): I am available for contracting. - -

Credits

- -Windows setup script: Adam Twardoch -
Icon: Hannes Famira - -

Acknowledgements

- -(in alphabetical order) -Erik van Blokland, Petr van Blokland, Jelle Bosma, Vincent Connare, -Simon Daniels, Hannes Famira, Yannis Haralambous, Greg Hitchcock, John Hudson, -Jack Jansen, Tom Kacvinsky, Antoine Leca, Werner Lemberg, Tal Leming, -Peter Lofting, Dave Opstad, Laurence Penney, Read Roberts, Guido van Rossum, Andreas Seidel, Adam Twardoch. - -

Copyrights

- -FontTools/TTX -
1999-2003 Just van Rossum; LettError (just@letterror.com). See LICENSE.txt for the full license. -

-Python -
Copyright (c) 2001-2003 Python Software Foundation. All Rights Reserved. -
Copyright (c) 2000 BeOpen.com. All Rights Reserved. -
Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. -
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved. -

-Numeric Python (NumPy) -
Copyright (c) 1996. The Regents of the University of California. All rights reserved. - - -