mirror of
https://github.com/apache/xmlgraphics-fop.git
synced 2024-09-01 17:55:11 +02:00
![]() git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@426576 13f79535-47bb-0310-9956-ffa450edef68 |
||
---|---|---|
.. | ||
hyphenation.dtd | ||
readme |
Hyphenation FOP uses Liang's hyphenation algorithm, well known from TeX. It needs language specific patterns and other data for operation. Because of licensing issues (and for convenience), all hyphenation patterns for FOP are made available through the Objects For Formatting Objects project <http://offo.sourceforge.net/hyphenation/index.html>. To install a custom hyphenation pattern for use with FOP: 1. Convert the TeX hyphenation pattern file to the FOP format. The FOP format is an xml file conforming to the DTD found at {fop-dir}/hyph/hyphenation.dtd. The most important source of TeX hyphenation pattern files is the CTAN TeX Archive <http://www.ctan.org/tex-archive/language/hyphenation/>. 2. Name this new file following this scheme: languageCode_countryCode.xml. The country code is optional, and should be used only if needed. For example: - en_US.xml would be the file name for American English hyphenation patterns, - it.xml would be the file name for Italian hyphenation patterns. The language and country codes must match the XSL-FO input, which follows ISO 639 <http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt> (languages) and ISO 3166 <http://www.ics.uci.edu/pub/ietf/http/related/iso3166.txt> (countries). NOTE: The ISO 639/ISO 3166 convention is that language names are written in lower case, while country codes are written in upper case. FOP does not check whether the language and country specified in the FO source are actually from the current standard, but it relies on it being two letter strings in a few places. So you can make up your own codes for custom hyphenation patterns, but they should be two letter strings too (patches for proper handling extensions are welcome) 3. There are basically three ways to make the FOP-compatible hyphenation pattern file(s) accessible to FOP: a. Download the precompiled JAR from OFFO <http://offo.sourceforge.net/hyphenation/index.html> and place it either in the {fop-dir}/lib directory, or in a directory of your choice (and append the full path to the JAR to the environment variable FOP_HYPHENATION_PATH). b. Download the desired FOP-compatible hyphenation pattern file(s) from OFFO <http://offo.sourceforge.net/hyphenation/index.html>, and/or take your self created hyphenation pattern file(s), - place them in the directory {fop-dir}/hyph, - or place them in a directory of your choice and set the Ant variable user.hyph.dir to point to that directory (in build-local.properties), and run Ant with build target jar-hyphenation. This will create a JAR containing the compiled patterns in {fop-dir}/build that will be added to the classpath on the next run. When FOP is built from scratch, and there are pattern source file(s) present in the directory pointed to by the user.hyph.dir variable, this JAR will automatically be created from the supplied pattern(s). c. Put the pattern source file(s) into a directory of your choice and configure FOP to look for custom patterns in this directory, by setting the hyphenation-dir configuration option. Either of these three options will ensure hyphenation is working when using FOP from the command-line. If FOP is being embedded, remember to add the location(s) of the hyphenation JAR(s) to the CLASSPATH (option 1 and 2) or to set the hyphenation-dir configuration option programmatically (option 3). If you would like to build your own hyphenation pattern files, or modify existing ones, the section entitled 'Hyphenation Patterns' of the 'FOP: Hyphenation' page at the FOP web site <http://xmlgraphics.apache.org/fop/hyphenation.html#patterns> will help you understand how to do so. Even when creating a pattern file from scratch, it may be beneficial to start with an existing file and modify it. See OFFO's Hyphenation page <http://offo.sourceforge.net/hyphenation/index.html> for examples. If you have made improvements to an existing FOP hyphenation pattern, or if you have created one from scratch, please consider contributing these to OFFO so that they can benefit other FOP users as well. Please inquire on the FOP User mailing list.