C# version of Knuth-Liang hyphenation algorithm
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
NHyphenator.Tests
NHyphenator
.gitignore
LICENSE
NHyphenator.sln
NHyphenator.sln.DotSettings.user
NOTICE
README.md

README.md

NHyphenator

C# implementation of Frank Liang's hyphenation algorithm (also known as Knuth-Liang algorithm). Read more about algorithm on http://en.wikipedia.org/wiki/Hyphenation_algorithm

This implementation contains original TEX hyphenation patterns (see http://tug.org/tex-hyphen/) for British and American English, and Russian language

NuGet

https://www.nuget.org/packages/NHyphenator/

Example

Simple usage example:

var loader = new ResourceHyphenatePatternsLoader(HyphenatePatternsLanguage.Russian);
Hypenator hypenator = new Hypenator(loader, "-");
var result = hypenator.HyphenateText(text);

Adding new languages

This library contains build-in patterns for English and Russian languages (stored in .resx file)

You can add (or update) language patterns through using FilePatternsLoader and load patterns from files

var loader = new new FilePatternsLoader($"{patterns_path}", $"{exceptions_path}");

Also you can create own implementation of IHyphenatePatternsLoader interface

You can find patterns here: .pat.txt files contain patterns, .hyp.txt files contain exceptions

Licence

Source code are distributed under Apache 2.0 licence. Hyphenation patterns are distributed under LaTeX Project Public License.

A bit more information you can find in my blog http://alkozko.ru/blog/post/NHyphenator-en

Russian descripton

Подробнее о библиотеке можно прочесть (на русском) в моем блоге http://alkozko.ru/Blog/Post/liang-hyphenation-algorithm-on-c-sharp и http://alkozko.ru/blog/post/nhyphenator-12