extractSVGTableSVGDocs.py
and
importSVGDocsToSVGTable.py
. These are superseded by the scripts at
https://github.com/adobe-type-tools/opentype-svg/
cmap-tool.pl
, fdarray-check.pl
, fix-fontbbox.pl
,
glyph-list.pl
, hintcidfont.pl
, setsnap.pl
and subr-check.pl
.
These Perl scripts are available from
https://github.com/adobe-type-tools/perl-scripts
ttfcomponentizer
tool that componentizes TrueType fonts using
the component data of a related UFO font.This release fixes the following issues:
BezTools.py
, ConvertFontToCID.py
,
FDKUtils.py
, MakeOTF.py
, StemHist.py
, autohint.py
,
buildMasterOTFs.py
and ufoTools.py
(#231,
#232, #233)pip uninstall afdko
(#241)The afdko has been restructured so that it can be installed as a Python package. It now depends on the user's Python interpreter, and no longer contains its own Python interpreter.
In order to do this, the two Adobe-owned, non-opensource programs were
dropped: IS
and checkOutlines
. If these turn out to be sorely
missed, an installer for them will be added to the old Adobe afdko
website. The current intent is to migrate the many tests in
checkOutlines to the newer checkOutlinesUFO
(which does work with
OpenType and Type 1 fonts, but currently does only overlap detection and
removal, and a few basic path checks).
Older releases can be downloaded and installed from the Adobe's AFDKO home page.
This only lists the major bug fixes since the last release. For a complete list see: https://github.com/adobe-type-tools/afdko/commits/master
cb.c:gnameFinalScan()
as in gnameDevScan()
. This update also
includes Georg's changes for allow source fonts to have CID names
in the form 'cidNNNN'.<outline>
element and with a <lib>
element would be skipped.styleName
is present but has an empty
string. This is valid, and is common when the style is Regular.[autohint/tx] Switched to using new text format that is plist-compatible for T1 hint data in UFO fonts. See header of ufoTools.py for format.
[autohint] Finally fixed excessive generation of flex hints. This has been an issue for decades, but never got fixed because it did not show up anywhere as a problem. The last version of makeotf turned on parsing warnings, and so now we notice.
[checkOutlinesUFO] Fixed bug where abutting paths did not get merged if there were no changes in the set of points.
[checkOutlinesUFO] Fixed bug where a .glif
file without an
<outline>
element was treated as fatal error. It is valid for the
<outline>
element to be missing.
[checkOutlines] Changed -I option so that it also turns off checking for tiny paths. Added new option -5 to turn this check back on again.
[checkOutlinesUFO] Increased max number of paths in a glyph from 64 to 128, per request from a developer.
[CompareFamily] Fixed old bug in applying ligature width tests for CID fonts, and fixed issue with fonts that do not have Mac name table names. The logic now reports missing Mac name table names only if there actually are some: if there are none, these messages are suppressed.
[fontplot/waterfallplot/hintplot/fontsetplot] Fixed bugs that prevented these from being used with CID-keyed fonts and UFO fonts. Since the third party library that generates the PDF files is very limited, I did this by simply converting the source files to a name-keyed Type 1 temporary font file, and then applying the tools the temporary file.
[makeInstancesUFO] Added a call to the ufonormalizer tool for each instance. Also added a call to the defcon library to remove all private lib keys from lib.py and each glyph in the default layer, excepting only "public.glyphOrder".
Fixed typos in MakeOTF User Guide reported by Gustavo Ferreira
[MakeOTF] Increased max number of directories to look upwards when searching for GOADB and FontMenuNameDB files from 2 to 3.
[MakeOTF/makeotfexe] Added three new options:
omitMacNames
and useMacNames
write only Windows platform
menu names in name table, apart from the names specified in
the feature file. useMacNames
writes Mac as well as
Windows names.overrideMenuNames
allows feature file name table entries
to override default values and the values from the
FontMenuNameDB for name IDs. NameIDs 2 and 6 cannot be
overridden. Use this with caution, and make sure you have
provided feature file name table entries for all platforms.skco
/nskco
do/do not suppress kern class optimization by
using left side class 0 for non-zero kern values. Optimizing
saves a few hundred to thousand bytes, but confuses some
programs. Optimizing is the default behavior, and previously
was the only option.[MakeOTF] Allow building an OTF from a UFO font only. The internal
features.fea
file will be used if there is no features
file in
the font's parent directory. If the GlyphAliasAndOrderDB file is
missing, only a warning will be issued. If the FontMenuNameDB is
missing, makeotf will attempt to build the font menu names from the
UFO fontinfo file, using the first of the following keys found:
openTypeNamePreferredFamilyName
, familyName
, the family name
part of the postScriptName
, and finally the value
NoFamilyName. For style, the keys are:
openTypeNamePreferredSubfamilyName
, styleName
, the style name
part of the postScriptName
, and finally the value Regular.
[MakeOTF] Fixed bug where it allowed the input and output file paths to be the same.
[makeotfexe] Extended the set of characters allowed in glyph names
to include + * : ~ ^ !
.
[makeotfexe] Allow developer glyph names to start with numbers; final names must still follow the PS spec.
[makeotfexe] Fixed crashing bug with more than 32K glyphs in a name-keyed font, reported by Gustavo Ferreira.
[makeotfexe] Merged changes from Khaled Hosny, to remove requirement that 'size' feature menu names have Mac platform names.
[makeotfexe] Code maintenance in generation of the feature file parser. Rebuilt the 'antler' parser generator to get rid of a compile-time warning for zzerraction, and changed featgram.g so that it would generate the current featgram.c, rather than having to edit the latter directly. Deleted the object files for the 'antler' parser generator, and updated the read-me for the parser generator.
[makeotfexe] Fixed really old bug: relative include file references in feature files have not worked right since the FDK moved from Mac OS 9 to OSX. They are now relative to the parent directory of the including feature file. If that is not found, then makeotf tries to apply the reference as relative to the main feature file.
[spot] Fixed bug in dumping stylistic feature names.
[spot] Fixed bug proofing vertical features: needed to use vkern values. Fix contributed by Hiroki Kanou.
[tx et all.] Fix crash when using '-gx' option with source UFO fonts.
[tx et all.] Fix crash when a UFO glyph point has a name attribute with an empty string.
[tx et all.] Fix crash when a UFO font has no public.glyphOrder dict in the lib.plist file.
[tx et all.] Fix really old bug in reading TTF fonts, reported by Belleve Invis. TrueType glyphs with nested component references and x/y offsets or translation get shifted.
[tx et all.] Added new option '-fdx' to select glyphs by excluding all glyphs with the specified FDArray indices. This and the '-fd' option now take lists and ranges of indices, as well as a single index value.
Added a command to call the ufonormalizer tool.
Updated to latest version of booleanOperatons, defcon (ufo3 branch), fontMath (ufo3 branch), fontTools, mutatorMath, and robofab (ufo3 branch). The AFDKO no longer contains any private branches of third party modules.
Rebuilt the Mac OSX, Linux and Windows Python interpreters in the AFDKO, bringing the Python version up to 2.7.10. The Python interpreters are now built for 64-bit systems, and will not run on 32-bit systems.
autohint -all
was run, it added a new program name entry to
the history list in the hashmap for each processed glyph. You saw
this only if you opened the hashmap file with a text editor, and
perhaps eventually in slightly slower performance.tx
had a bug with
writing fractional values that are very near an integer value for
the modes -dump, -svg, and -ufo. tx
also always applied the logic
for applying a user transform matrix, even though the default
transform is the identity transform. This has the side-effect of
rounding to integer values.[checkOutlinesUFO] Added new logic to delete any glyphs from the processed layer which are not in the 'glyphs' layer.
[makeotf] When building CID font, some error messages were printed twice.
[makeotf] Added new option stubCmap4
. This causes makeotf to
build only a stub cmap 4 subtable, with just two segments. Needed
only for special cases like AdobeBlank, where every byte is an
issue. Windows requires a cmap format 4 subtable, but not that it be
useful.
[makeCIDFont] Output FontDict was sized incorrectly. A function at the end adds some FontInfo keys, but did not increment the size of the dict. Legacy logic is to make the FontInfo dict be 3 larger than the current number of keys.
[makeInstanceUFO] Changed AFDKO's branch of mutatorMath so that
kern values, glyph widths, and the BlueValues family of global hint
values are all rounded to integer even when the decimal
option is
used.
[makeInstanceUFO] Now deletes the default 'glyphs' layer of the target instance font before generating the instance. This solves the problem that when glyphs are removed from the master instances, the instance font still has them.
[makeInstanceUFO] Added a new logic to delete any glyphs from the processed layer which are not in the 'glyphs' layer.
[makeInstanceUFO] Removed the all
option: even though
mutatorMath rewrites all the glyphs, the hash values are still valid
for glyphs which have not been edited. This means that if the
developer edits only a few glyphs in the master designs, only those
glyphs in the instances will get processed by checkOutlinesUFO and
autohint.
Support fractional coordinate values in UFO workflow:
open /Applications/RoboFont.app
), and the
argument shell="True"
is added to the subprocess module call to
open a system command. I favor also adding the argument
stderr=subprocess.STDOUT
, else you will not see error messages
from the Unix shell. Example:
log = subprocess.check_output( "makeotf -u", stderr=subprocess.STDOUT, shell=True)
.IsOS/2WidthWeightSlopeOnly
as well as the
misspelled IsOS/2WidthWeigthSlopeOnly
, when processing the
fontinfo file.FDK/Tools/SharedData/Adobe Cmaps/Adobe-CNS1/Adobe-CNS1_sequences.txt
and Adobe-Korea1_sequences.txt
.<dict/>
XML
element.glyphs.com.adobe.type.processedGlyphs
. You can select another
preferred layer with the option '-altLayer <layer name>
'. Use
'None' for the layer name in order to have tx ignore the preferred
layer and read GLIF files only from the default layer.[makeotf] When building OpenType/TTF files, changed logic to copy the OS/2 table usWinAscent/Descent values over the head table yMax/yMin values, if different. This was because:
[makeotf] Changed default Unicode H CMAP file for Adobe-Japan1 CID fonts to use the UniJIS2004-UTF32-H file.
Added the CID font vertical layout files used with KozMinPr6N and KozGoPr6N: AJ16-J16.VertLayout.KozGo and AJ16-J16.VertLayout.KozMin.
Updated several Unicode CMAP files, used only with CID fonts.
Added new Perl script, glyph-list.pl, used in building CID fonts. This replaces the three scripts extract-cids.pl, extract-gids.pl, and extract-names.pl, which have been removed from the AFDKO.
[autohint] Added new feature to support sets of glyphs with different baselines. You can now specify several different sets of global alignment zones and stem widths, and apply them to particular sets of glyphs within a font when hinting. See option '-hfd' for documentation.
[autohint] Allow AC to handle fonts with no BlueValues, aka alignment zones.
[autohint] Respect BlueFuzz value in font.
[autohint] Fixed the options to suppress hint substitution and to allow changes.
[autohint] When hinting a font with no alignment zones or invalid alignment zones (and with the '-nb' option), set the arbitrary alignment zone outside the FontBBox, rather than the em-square.
[checkOutlines] Fixed bug where the arms of an X would be falsely identified as coincident paths, when they are formed by only two paths with identical bounding boxes.
[checkOutlines] Fixed bug where very thin elements would get identified as a tiny sub path, and get deleted.
[checkOutlines] Fixed bug in determining path orientation. Logic was just following the on-path points, and could get confused by narrow concave inner paths, like parentheses with an inner contour following the outer contour, as in the Cheltenham Std HandTooled faces.
[checkOutlines] Fixed bugs in determining path orientation. Previous logic did not handle multiple inner paths, or multiple contained outer paths. Logic was also dependent on correctly sorting paths by max Y of path bounding box. Replaced approximations with real bezier math to determine path bounding box accurately.
[checkOutlines] Changed test for suspiciously large bounding box for an outline. Previous test checked for glyph bounding box outside of fixed limits that were based on a 1000 em square. The new test looks only for paths that are entirely outside a rectangle based on the font's em square, and only reports them: it does not ever delete them. Added new option '-b' to set the size of the design square used for the test.
[checkOutlines] Fixed bug where it would leave a temp file on disk when processing a Type 1 font.
[checkOutlines] Removed test for coincident control points. This has not been an issue for decades. It is frequently found in fonts because designers may choose to not use one of the two control points on a curve. The unused control point then has the same coordinates as its nearest end-point, and would to cause checkOutlines to complain.
[compareFamily] Single Test 6. Report error if there is a patent number in the copyright. Adobe discovered that a company can be sued if it ships any product with an expired patent number.
[compareFamily] Single Test 22 (check RSB and LSB of ligature vs. the left and right ligature components) did not parse contextual ligature substitution rules correctly. Now fixed.
[compareFamily] Family Test 18. Survive OTF fonts with no blue values.
[compareFamily] Family Test 2 (Check that the Compatible Family group has same nameIDs in all languages): Added the WPF nameIDs 21 and 22 to the exception list, which may not exist in all faces of a family.
[fontsetplot] Fixed so it works with CID fonts. Also fixed so that widow line control works right. Added new low level option for controlling point size of group header.
[fontsetplot] Fixed syntax of assert statements. Produced error messages on first use of the *plot commands.
[kernCheck] Fix so that it survives fonts with contextual kerning. It does not, however, process the kern pairs in contextual kerning.
[makeotf] Fixed bug in mark to ligature. You can now use an
<anchor NULL>
element without having to follow it by a dummy mark
class reference.
[makeotf] Fixed bug which limited source CID fonts to a maximum of 254 FDArray elements, rather than the limit of 255 FDArray elements that is imposed by the CFF spec.
[makeotf] Fixed bugs in automatic GDEF generation. When now GDEF is defined, all conflicting class assignments in the GlyphClass are filtered out. If a glyph is assigned to a make class, that assignment overrides any other class assignment. Otherwise, the first assignment encountered will override a later assignment. For example, since the BASE class is assigned first, assignment to the BASE class will override later assignments to LIGATURE or COMPONENT classes.
[makeotf] Fix bug in validating GDEF mark attachment rules. This now validates the rules, rather than random memory. Had now effect on the output font, but did sometimes produce spurious error messages.
[makeotf] Fix crashing bug when trying to report that a glyph being added to a mark class is already in the mark class.
[makeotf] If the OS/2 code page bit 29 (Macintosh encoding) is set, then also set bit 0 (Latin (1252). Under Windows XP and Windows 7, if only the Mac bit is set, then the font is treated as having no encoding, and you cannot apply the font to even basic Latin text.
[makeotf] By default, set Windows name ID 4 (Full Name) same as Mac nameID 4, instead of setting it to the PostScript name. This is in order to match the current definition of the name ID 4 in the latest OpenType spec. A new option to makeotf ('-useOldNameID4'), and a new key in the fontinfo file ("UseOldNameID4"), will cause makeotf to still write the PS name to Windows name ID 4.
[makeotf] Add support for WPF names, name ID 21 and 22.
[makeotf] Fixed attachment order of marks to bug in generating Mark to Ligature (GPOS lookup type 4). The component glyphs could be reversed.
[makeotf] Fixed bug in auto-generating GDEF table when Mark to Mark (GPOS lookup Type 4) feature statements are used. The target mark glyphs were registered as both GDEF GlyphClass Base and Mark glyphs, and the former took precedence. makeotfexe now emits a warning when a glyph gets assigned to more than one class when auto-generating a GDEF table GlyphClass, and glyphs named in mark to mark lookups are assigned only to the Mark GDEF glyph class.
[makeotf] Fixed bugs in generating TTF fonts from TTF input. It now merges data from the head and hhea tables, and does a better job of dealing with the 'post' table. The previous logic made incorrect glyph names when the glyphs with names from the Mac Std Encoding were not all contiguous and at the start of the font.
[makeotf] Added new option '-cn' for non-CID source fonts, to allow reading multiple global font alignment zones and stem widths from the fontinfo file, and using this to build a CID-keyed CFF table with an identity CMAP. This is experimental only; such fonts may not work in many apps.
[makeotf] Fixed bug where the coverage table for an element in the match string for a chaining contextual statement could have duplicate glyphs. This happens when a glyph is specified more than once in the class definition for the element. The result is that the format 2 coverage table has successive ranges that overlap: the end of one range is the same glyph ID as the start of the next range; harmless, but triggers complaints in font validators.
[makeotf] Updated to latest Adobe CMAP files for ideographic fonts. Changed name of CMAP directories in the AFDKO, and logic for finding the files.
[makeotf] When providing a GDEF feature file definition, class assignments now may be empty:
table GDEF {
GlyphClassDef ,,,;
} GDEF;
is a valid statement. You just need to provide all three commas and the final colon to define the four classes. The following statement builds a GDEF GlyphClass with an empty Components class.
table GDEF {
GlyphClassDef [B], [L], [M], ;
} GDEF;
[makeotf] The glyph alias file now defines order in which glyphs are added to the end of the target font, as well as defining the subset and renaming.
[makeotf] The -cid <cidfontinfo>
option for converting a
font to CID can now be used without a glyph alias file, if the
source font glyphs have names in the form "cidXXXX", as is output
when mergeFonts is used to convert from CID to name-keyed. If the
-cid <cidfontinfo>
option is used, and there is no glyph alias
file, then any glyphs in the font without a name in the form
"cidXXXX" will be ignored.
[spot] Added error message for duplicate glyph IDs in coverage tables with format 2, a problem caused by a bug in makeotf with some Adobe fonts that use chaining contextual substitution. Note: error message is written only if level 7 GSUB/GPOS dump is requested.
[spot] Minor formatting changes to the GSUB/GPOS level 7 dump, to make it easier to edit this into a real feature file.
[spot] When writing out feature file syntax for GPOS 'ignore pos' rules, the rule name is now written as 'ignore pos', not just 'ignore'.
[spot] Can now output glyph names up to 128 chars (Note: these are not legal PostScript glyph names, and should be encountered only in development fonts.)
[spot] Has new option '-ngid' which suppresses output of the
trailing glyph ID @<gid>
for TTF fonts.
[spot] No longer dumps the DefaultLangSys entry when there is none.
[spot] Changed dump logic for contextual and chain contextual lookups so that spot will not dump the lookups referenced by the substitution or position rules in the contextual lookups. The previous logic led to some lookups getting dumped many times, and also to infinite loops in cases where a contextual lookup referenced other contextual lookups.
[spot] Added support for Apple kern subtable format 3. Fixed old bug causing crash when dumping font with Apple kern table from Windows OS.
[spot] Fixed error when dumping Apple kern table subtable format 0, when kern table is at end of font file.
[spot] Fixed crashing bug seen in DejaVuSansMono.TTF: spot did not expect an anchor offset to be zero in a Base Array base Record.
[spot] Removed comma from lookupflag dump, to match feature file spec.
[spot] Added logic to support name table format 1, but it probably does not work, since I have been unable to find a font to test with this format.
[spot] Fixed spelling error for "Canadian" in OS/2 code page fields.
[spot] Changed dump of cmap subtable 14: hex values are uppercased, and base+UVS values are written in the order [base, uvs].
[stemHist] Always set the alignment zones outside the font BBox, so as to avoid having the source font alignment zones affect collection of stem widths.
[stemHist] Fix bug where the glyph names reported in the stem and alignment reports were off by 1 GID if the list of glyphs included the '.notdef' glyph.
[tx] Added support for option '-n' to remove hints for writing Type 1 and CFF output fonts.
[tx] Added new option "+b" to the cff output mode, to force glyph order in the output font to be the same as in the input font.
[tx] Fixed bug in flattening 'seac' operator. If the glyph components were not in the first 256 glyphs, then the wrong glyph would be selected.
[tx] Added new library to read in svg fonts as a source. tx can now read all the SVG formats that it can write. Handles only the path operators: M, m, L, L, C, c, Z, z, and the font and glyph attributes: 'font-family', 'unicode', 'horiz-adv-x', 'glyph-name', 'missing-glyph'.
[tx] Fixed bug in converting TTF to OpenType/CFF. It flipped the sign of the ItalicAngle in the 'post' table, which in turn flipped the sign of the OS/2 table fields ySubscriptXOffset and ySuperscriptXOffset. This bug showed up in TTF fonts built by makeotf, as makeotf uses 'tx' to build a temporary Type 1 font from the source TTF.
[tx] Fixed bug where '-usefd' option was not respected, when converting from CID to name-keyed fonts.
Updated the internal Python interpreter to version 2.7.
Updated Adobe Cmaps/Adobe-Japan1 files:
Added several scripts related to CID font production:
[AGLFN] (Adobe Glyph List for New Fonts) Created new version 1.7.
[AGLFN] Reverted to the AGLFN v1.4 name and Unicode assignments for Delta, Omega, and mu. The v1.6 versions were better from a designer's point of view, but we cannot use name-to-Unicode value mappings that conflict with the historic usage in the Adobe Glyph List 2.0. See http://www.adobe.com/devnet/opentype/archives/glyph.html.
[AGLFN] Dropped all the 'afii' names from the list: 'uni' names are actually more descriptive, and map to the right Unicode values under Mac OSX.
[AGLFN] Dropped all the 'commaccent' names from the list: 'uni' names map to the right Unicode values under Mac OSX before 10.4.x.
[autohint] Converted AC.py script to call a command-line program rather than a Python extension module, same way makeotf works, to avoid continuing Python version problems.
[autohint] Fixed to actually emit vstem3 and hstem3 hint operators (counter control hints, which work to keep the space between three stems open and equal, as in an 'm') - this has been broken since the first AFDKO. It will now also look in the same directory as the source font for a file named "fontinfo", and will attempt to add stem3 hints to the glyph which are listed by name in the name list for the keys "HCounterChars" or "VCounterChars".
[autohint] Fixed old bug where it would only pay attention to the bottom four of the top zone specified in the FontDict BlueValues list. This results in more edge hints in tall glyphs.
[autohint] Fixed special case when adding flex operator which could result in an endless loop
[autohint] Added 'logOnly' option, to allow collecting report without changing the font.
[autohint] Added option to specify which glyphs to exclude from autohinting.
[autohint] Suppressed generation and use of <font-name>.plist
file, unless it is specifically requested.
[autohint] Fixed bug where an extremely complex glyph would overflow a buffer of the list of hints.
[checkOutlines] Improved overlap detection and path orientation: it will now work with outlines formed by overlapping many stroke elements, as is sometimes done in developing CJK fonts.
[checkOutlines] added new test for nearly vertical or horizontal lines. Fixed bug in this new code, reported by Erik van Blokland.
[CompareFamily] For the warning that the Full Family name in the CFF table differs from that in the name table, changed it to a "Warning" rather than "Error", and explained that there is no functional consequence.
[CompareFamily] Removed check that Mac names ID 16 and 17 do not exist, as makeotf now does make them. See notes in MakeOTF User Guide about this.
[CompareFamily] Fixed so it works with TTF fonts again.
[makeotf] Removed code that added a default Adobe copyright to the name table if no copyright is specified, and removed code to add a default trademark.
[makeotf] Added support for the lookupflag UseMarkFilteringSet. This is defined in the proposed changes for OpenType spec 1.6, and is subject to change in definition.
[makeotf] Dropped restriction that vmtx/VORG/vhea tables will only be written for CID-keyed fonts. The presence in the feature file of either a 'vrt2' feature of vmtx table overrides will now cause these tables to be written for both CID-keyed and name-keyed fonts.
[makeotf] Added warning when a feature is referenced in the aalt feature definition, but either does not exist or does not contribute any rules to the aalt feature. The aalt feature can take only single and alternate substitution rules.
[makeotf] Added support for the following lookup types:
[makeotf] Added support for explicit definition of the GDEF table, and automatic creation of the GDEF when any of the lookup flag settings for ignoring a glyph class is used, or any mark classes are defined.
[makeotf] Support using TTF fonts as input, to build an OpenType/TTF font, with the limitation that glyph order and glyph names cannot be changed. This is rather ugly under the hood, but it works. The MakeOTF.py Python script uses the tx tool to convert the TTF font to CFF data without changing glyph order or names. It then builds an OpenType/CFF font. It then uses the sfntedit tool to copy the TTF glyph data to the OpenType font, and to delete the CFF table.
[makeotf] Added support for building Unicode Variation Selectors for CID-keyed fonts, using the new cmap subtable type 14.
[makeotf] Fixed bug with inheritance of default rules by scripts and languages in feature file feature definitions. Explicitly defined languages were only getting default rules defined after the last script statement, and when a script is named, languages of the script which are not named got no rules at all.
[makeotf] Fixed bug where you could not run makeotf when the current directory is not the same is the source font's home directory.
[makeotf] Set OS/2.lastChar field to U+FFFF when using mappings beyond the BMP.
[makeotf] Create the Mac platform name table font menu names by the same rules as used for the Windows menu names. Add new keywords to the FontMenuNameDB file syntax. If you use the old keywords, you get the old format; if you use the new syntax, you get nameIDs 1, 2 and 16 and 17 just like for the Windows platform.
[makeotf] Fixed bug in name table font menu names: if you entered a non-English Preferred name ("f=") and not a compatible family name ("c="), you would end up with a nameID 16 but no nameID 17.
[makeotf] Fixed bogus 'deprecated "except" syntax' message under Windows.
[makeotf] Fixed bug where contextual pos statements without backtrack or lookahead context were writing as a non-contextual rule. Reported by Karsten Luecke.
[makeotf] Added new option to make stub GSUB table when no GSUB rules are present.
[makeotf] Added warning if the aalt feature definition references any feature tags that either do not exist in the font, or do not contribute any rules that the aalt feature can use.
[sfntdiff] Fixed so that only error messages are written to stderr; all others now written to stdout.
[sfntdiff] Fixed bug in dump of 'name' table: when processing directories rather than individual files, the name table text was never updated after the first file for the second directory.
[spot] Fixed option '-F' to show the contextual rule sub-lookup indices, and to flag those which have already been used by another lookup.
[spot] If a left side class 0 is empty, do not report it.
[spot] For GSUB/GPOS=7 FEA dump, give each class a unique name in
the entire font by appending the lookup ID to the class names. It
was just [LEFTCLASS]()<class index>_<subtable index>
, but
these names are repeated in every lookup. It is now
LEFTCLASS_c<class index>_s<subtable index>_l<lookup index>
.
[spot] When a positioning value record has more than one value, print the full 4 item value record. Previously, it would just print non-zero values. This was confusing when dumping Adobe Arabic, as you would see two identical values at the end of some pos rules. In fact, each of these pos rule does have two adjustment values, one for x and one for y advance adjustment, that happen to be the same numeric value.
[spot] Fixed to write backtrack context glyphs in the right order.
[tx] Added option to NOT clamp design coordinates to within the design space when snapshotting MM fonts.
[tx] Added option to subroutinize the font when writing to CFF. This option is derived from the same code used by makeotfexe, but takes only about 10% the memory and runs much faster. This should allow subroutinizing large CJK fonts that makeotfexe could not handle. This is new code, so please test results carefully, i.e. if you use it, always check that the flattened glyphs outlines from the output font are identical to the flattened glyph outlines from the input font.
[ttxn] Added options to suppress hinting in the font program, and version and build numbers.
featurefile.plist
for BBedit. Install this in the location
shown at the top of the file; it enables code coloring for FEA syntax.
The file is in FDK/Tools/SharedDataMSFontValidatorIssues.html
to FDK/Technical Documentation. It
lists the error messages from the MS FontValidator tool that can be
ignored for OpenType/CFF fonts.seac
operator. The CFF spec does not support this operator.
Some very old tools allow this to happen.exclude_dflt
keyword was nevertheless included if the script/language was specified
with a languagesystem statement.<integer>
' to limit
the number of subroutines generated by subroutinization. Used only when
building test fonts to explore possible errors in processing the
subroutines.[compareFamily] Added Family Test 13 to report error if two fonts in the same preferred family have the same OS/2 weight, width and Italic settings, and the OS/2 version is greater than 3. Also reports an error if the fsSelection field bit 8 "WEIGHT_WIDTH_SLOPE_ONLY" is set differently across faces of the same preferred family name group.
[compareFamily] Fixed Family Test 12 to not fail when the font has a script/language with no DefaultLangSys entry.
[makeotf] If a font file with the requested output file name already exists, will delete it before running makeotfexe, so can tell if it failed.
[makeotf] Will now set the new 'fsSlection' bits if the following key/value pairs are in the 'fontinfo' file:
PreferOS/2TypoMetrics 1
IsOS/2WidthWeigthSlopeOnly 1
IsOS/2OBLIQUE 1
[digiplot] Added new option to specify the font baseline, so the baseline can be set correctly when proofing a font file without a BASE table.
[digiplot] Allowed using a CID layout file to supply meta info when proofing name-keyed fonts.
[ProofPDF] Added two functions: waterfallplot and fontsetplot. waterfallplot does not yet work with TrueType or CID-keyed fonts.
Fixed multiple tools to allow installing the FDK on Windows on a path containing spaces.
[autohint] Added option to suppress hint substitution.
[autohint] Fixed help and message to refer to 'autohint' tool name, rather than to the AC script file name.
[autohint] Fixed bug in processing hint masks: bytes with no bits set were being omitted.
[autohint] Added option to allow hinting fonts without StdHW or StdVW entries in the font Private font-dictionary.
[checkOutlines] Fixed writing out the changes when fixing outlines.
[checkOutlines] Fixed bug that mangled outlines when three alternating perpendicular lines or vh/hv/vv/hh curveto's followed each other.
[checkOutlines] Will now write report to a log file as well as to screen. Added option to set log file path, and added numeric suffix to name so as to avoid overwriting existing log files.
[compareFamily] Fixed issue that happened when looking through the directory for font files, when encountering a file for which the user did not have read permission.
[compareFamily] Added Single Test 24: check that 'size' feature Design Size is within the design range specified for the font.
[ProofPDF] Added showfont command to show how to customize a command file to produce a different page layout.
[ProofPDF] Fixed so fonts with em-square other then 1000 will work.
[fontplot/charplot/digiplot/hintplot/showfont] Added support for Type 1 font files as well as OTF and TTF files.
[makeotf] Fixed MakeOTF to survive being given a font path with spaces.
[makeotf] Fixed '-S' and '-r' options.
[makeotf] Added new option '-osv <number>
' to allow setting the OS/2
table version number.
[makeotf] Added new option '-osbOn <number>
' to set arbitrary
bitfields in OS/2 table 'fsSelection' to on. May be repeated more than
once to set more than one bit.
[makeotf] Added new option '-osbOff <number>
' to set arbitrary
bitfields in OS/2 table 'fsSelection' to off. May be repeated more than
once to unset more than one bit.
[makeotf] If neither '-b' nor '-i' options are used, check for a file 'fontinfo' in the same directory as the source font file, and set the style bits if these key/values are found:
IsBoldStyle true
IsItalicStyle true
[FontLab macros] Built the autohint and checkOutline libraries (PyAC and focusdll) linked with Python2.3 so they work with FontLab 5.
[mergeFonts] Added option to copy only font metrics from first source font.
[mergeFonts] Allow empty lines and "#" comment lines in glyph alias and in cidfontinfo files.
[rotateFont] Fixed bug where it did not allow negative numbers.
[rotateFont] Allow empty lines and "#" comment lines in rotation info file
[sfntedit] Fixed so that it will not leave the temp file behind on a fatal error, nor quit because one already exists.
[spot] Fixed order of backtrack glyphs in dump of chaining contextual
sub
and pos
statements. Now assumes that these are built in the
correct order.
Added two new tools, type1 and detype1, that compile/decompile a Type 1 font from/to a plain text representation.
subr
calls.@<gid>
to all
glyph names. This is because the rules for deriving names can lead to
two glyphs being given the same name.pos
rules.[MakeOTF] Suppressed the "repeat hint substitution discarded" message from the source file parsing library. These are so common that they obscure more useful messages.
[MakeOTF] Set as default the option to build chaining contextual substitution rules with the incorrect format used by InDesign 2.0 and earlier.
[MakeOTF] If the option above is set, then MakeOTF will write a name ID (1,0,0,5 - "Version") which will contain the text string which triggers special case code in future Adobe apps so that it will process the chaining contextual substitution rules as they were intended. If this option is NOT set, the name ID 5 will be written so as to not trigger this special case code. The special case treats specially any font where the name table name ID (1,0,0,5) exists and either matches,
"OTF[^;]+;PS[^;]+;Core 1\.0\.[23][0-9].*"
(example: "OTF 1.006;PS 1.004;Core 1.0.35") or contains,
"Core[^;]*;makeotf\.lib"
(example: "Core 1.0.38;makeotf.lib1.5.4898") or just,
"Core;makeotf.lib"
[MakeOTF] Turn off by default the option to force the .notdef glyph in the output OTF font be an crossed rectangle with an advance width of 500.
[MakeOTF] Added rule to force the OS/2 WeightClass to always be at least 250. Shows error message if set or calculated WeightClass was less than this.
[MakeOTF] Added test that FSType is set the same in the feature file as in source CID font files.
[OTFProof] Page layout for CJKV font vertical layout: now writes the vertical columns right to left.
[OTFProof] When writing vertical features, now shows the advance width sign as negative.
[OTFProof] When making PostScript proof file, now writes DSC tags with correct header and page info.
Added Unicode and Glyph Name documentation to the FDK Technical Documentation directory, to allow access to this info under the FDK license.
dflt
instead of DFLT
. Expanded section
explaining use of language and script default keywords. Old keywords
still work, but cause a warning to be emitted.[CompareFamily] Fixed so that it will not error out when one of the Blues arrays is not present.
[OTFProof] Fixed so that glyph names for CID fonts print properly.
[OTFProof] Fixed problems with compile under SunOS.
[MakeOTF] Added MakeOTFScript.py as an example file to edited, in order to allow scripting of makeOTF on the Mac (or any other platform). Minor changes to MakeOTF.py to fix this.
[MakeOTF] Added an option to allow removing deprecated Type 1 operands
from output font (e.g. seac
and dotsection
).
[MakeOTF] Added an option to allow adding synthesized glyphs to fonts, leveraging a built-in sans and serif multiple master substitution font. The source font must contain a 'zero' and a capital 'O'. The glyphs that can be synthesized are:
Euro
Delta
Omega
approxequal
asciicircum
asciitilde
at
backslash
bar
brokenbar
currency
dagger
daggerdbl
degree
divide
equal
estimated
fraction
greater
greaterequal
infinity
integral
less
lessequal
litre
logicalnot
lozenge
minus
multiply
notequal
numbersign
onehalf
onequarter
paragraph
partialdiff
perthousand
pi
plus
plusminus
product
quotedbl
quotesingle
radical
section
summation
threequarters
zero
[MakeOTF] Fixed problem with heuristics for OS/2 codepage range settings, for Chinese Simplified vs Traditional.
[MakeOTF] Added macro to define MakeOTF version number.
[MakeOTF] updated makeotflib help/usage messages: shown when args are incorrectly formatted.
[makeotf] (makeotf/exe/makeotfutils.py)
[makeotf] (makeotf/exe/makeotf.py)
[makeotf] (makeotf/source/main.c)
[makeotf] (makeotf/source/cb.c)
[makeotf] (source/includes/cb.h)
[hotconvlib] (coretype/source/map.c)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。