Documentation/SL/Using TeX hyphenation patterns in OpenOffice.org

From Apache OpenOffice Wiki
Jump to: navigation, search

Summary: this document describes how to use TeX hyphenation patterns in OpenOffice.org.

Written by Martin Srebotnjak; some portions of text contributed by László Németh and Mojca Miklavec.

Introduction

OpenOffice.org uses Hyphen, part of the Hunspell project, as its hyphenation engine.

The hyphenation files are represented by three files:

  • the dictionary file (a text file with all the patterns; hyph_xx_YY.dic),
  • the rules file (a text file with hyphenation rules for the language; hyph_xx_YY.idx) and
  • the release notes (a text file with all the credits and licensing information; hyph_rel_notes_xx_YY.txt).

The language descriptor xx_YY is ISO-code, you can look it up in the following table: http://wiki.services.openoffice.org/wiki/Languages

From OpenOffice.org 3.0 onwards the hyphenation patterns are packed as an OpenOffice.org extension, usually as a part of a dictionary lang pack (with a spell-checking dictionary and, optionally, a thesaurus). A list of dictionary language pack is available here: http://extensions.services.openoffice.org/en/dictionaries

Using Tex Patterns

Hyphen can use TeX hyphenation patters for hyphenation, but because of differences between TeX hyphenation and Hyphen the TeX hyphenation patterns must be first converted. If conversion is not applied, several issues can surface:

  • not all TeX patterns will work in OpenOffice.org - which means that TeX patterns will perform substandardly;
  • if code-page is not set correctly the TeX patterns can behave erratically in OpenOffice.org;

Conversion of TeX patterns

The following conversion process must be followed step-by-step:

1. Download up-to-date TeX hyphenation patterns Tex hyphenation repository contains up-to-date TeX hyphenation patterns. They are located here: http://tug.org/svn/texhyphen/trunk/hyph-utf8/

Example: for Slovenian language one would download file hyph-sl.pat.txt from the SVN repository.

2. Convert TeX hyphenation patterns file into proper character set Hyphen for OpenOffice.org (prior to version 3.4) uses ISO-8859-X code-pages while TeX hyphenation patterns are in UTF-8. So conversion of downloaded patterns into right ISO-8859-X code-page is necessary.

Example: Slovenian language uses ISO-8859-2 code-page, so one would open the UTF-8 file in a code-page savvy text editor and convert&save it into ISO-8859-2 code-page.

3. Run the substrings.pl conversion script Hyphen library (based on libhnj from Raph Levien) uses a time optimized implementation of the original Liang's algorithm of TeX, and substring.pl conversion is a requirement of this implementation. You can download the latest version of substrings.pl conversion script from the Hyphen repository. At the time of writing this was: http://sourceforge.net/projects/hunspell/files/Hyphen/2.5/hyphen-2.5.tar.gz/download hyphen-2.5.tar.gz

The script takes the following parameters: the input file name, the output file name, the code-page setting and the LEFTHYPHENMIN and RIGHTHYPHEMIN values that define the minimum left and right length of hyphenated words.

Example: for Slovenian the ISO-8859-2 code page is used and left and right hyphenmin values are 2. So one would use:

./substrings.pl hyph-sl.pat.txt hyph_sl_SI.dic ISO8859-2 2 2

Warning: note how ISO8859-2 is used and not ISO-8859-2! Remember to omit the first hyphen in the ISO-2 codepage name!

4. Add hyphenation rules for special characters Special characters (apostrophe, hyphen, n-dash, m-dash ...) are word characters in OpenOffice.org, but not boundary characters in the hyphenation of OpenOffice.org which is an incompatibility with the TeX boundary hyphenation patterns. It results in potentially bad hyphenation for words with hyphens and other special characters. Please consider adding the following lines at the end of the converted hyphenation patterns file (.dat):

8-8
8a8-8
8b8-8
8c8-8
...
-a8
-b8
-c8
...
Note: "
...
" represents all missing lines for other characters of your alphabet.

5. Create the appropriate rules file

      • missing in action

6. Create the appropriate release notes

Official TeX hyphenation patterns are

7. Create an OpenOffice.org dictionary extension Package the converted hyphenation patterns in a OpenOffice.org extension and upload it to the OOo extension repository. Try extensively if it works properly in OpenOffice.org. If the patterns perform well and the patterns are licensed under LGPL, the patterns can make it into the vanilla OpenOffice.org.

On the roadmap

With OpenOffice.org 3.4 support for UTF-8 patters will be introduced, which would make the Step 2 (from above) obsolete and change the conversion line from Step 3 into: ./substrings.pl hyph-sl.pat.txt hyph_sl_SI.dic UTF-8 2 2 But patterns in UTF-8 will not work with older OpenOffice.org versions (prior to 3.4). However, if you do decide to make an extension version with hyphenation patterns for OOo in UTF-8, do not forget to set the required version of OpenOffice.org in the extension description.xml to 3.4 or higher!

Conclusion

Since Hyphen/Hunspell is used also by other open-source software projects (as well as the OpenOffice.org hyphenation patterns files), following these instructions will provide patterns for programs like ...

See also

Automatic non-standard hyphenation in OpenOffice.org by László Németh

Personal tools