HyFo: Stand-alone Hyphenation from Folio

HyFo is a stand-alone hyphenation program based on the hyphenation pattern files of TeX, as are most, if not all, open source hyphenation programs. The seminal paper for all of this activity was published by Frank Liang in 1983.

Frank Liang, Word hy-phen-a-tion by com-puter, Stanford University Ph.D. thesis, 1983.

System Requirements

Execution requires a Java 5 JRE, or later. Development requires a Java 5 JDK, or later. This release was compiled using NetBeans 5.5 running on the Sun Java 1.5.0_09 JDK.


  • HyFo supports patterns embedding re-spelling hyphenation, such as are required in Dutch, Hungarian, Swedish, Catalan and pre-reform German orthography. These are the hyphenations expressed by the TeX discretionary hyphenation facility. This feature is currently active only in the Hungarian patterns, and in a special versions of the GB and US files with the variant "_18", that is, the hyphenation trees en_US_18 and en_GB_18.
  • HyFo hyphenation is fast; more than 50% faster than the Fop hyphenator. HyFo trades off memory usage and one-off start-up time against the speed of hypenating individual instances.
  • Easy quarantining of unacceptable licences from your application. Because the hyphenation trees, built from individual language pattern files, are themselves stand-alone, users can pick and choose the pattern jars they wish to install, insulating applications from the effects of particular licences.
  • No rebuilding required to add new pre-built hyphenation pattern trees. Adding a new pre-compiled hyphenation instance is as simple as dropping a new language jar onto the classpath.
  • Integration with Java 2D text processing is provided. The class au.id.pbw.hyfo.hyph.HyphenMarker extends java.text.AttributedCharacterIterator.Attribute.
  • The HyFo API includes methods to present hyphenation results in a FOP-compatible manner.
  • HyFo supports alphabets containing supplementary Unicode characters. There are no known requirements for Liang-style pattern hyphenation of such alphabets.


The primary documentation is the Javadocs. A good starting point is the package description of the au.id.pbw.hyfo.hyph package.

HyFo logo 48x48
Penn Library LogoLast modified: 20 January 2007
Folio Logo by permission of Schoenberg Center for Electronic Text & Image