- Сообщения
- 15 795
- Реакции
- 3 454
Вот здесь:
http://nedbatchelder.com/code/modules/hyphenate.html
Я нашел, вероятно, относительно простую для понимания реализацию алгоритма переносов Frank Liang'а реализованную в системе TeX.
Реализация на Python с фиксированным набором патернов.
Хотелось бы видеть ее реализацию в виде библиотеки (.dll) с возможностью подгружать внешние патерны для различных языков, ну и, естественно, с возможностью подключения к пакетам верстки (как следующий этап).
Брежу этой идеей давно. Эти алгоритмы бесплатные, наборы патернов переносов также открыты и редактируемы. НО НИКТО ИХ НЕ РЕАЛИЗУЕТ.
Проблема в том, что я уже "кастрированный" программист. Все забыл.
Может посмотрите?
Вторая проблема... В TeX (а он написан на нечто типа Паскаля) Кнут разбил все это дело на две части. Первая часть, это генерация структуры для быстрого поиска по ней, которая записывается уже в виде структуры.
Сам переносчик подгружает эту структуру и уже по ней работает.
Вот, честно говоря, в современных компьютерах может это и не особо критично, но реализовать бы Кнутовский алгоритм.
Однако... Исходники документированы прекрасно, но DEC, это хакер старой закалки. Там не смотря на документацию нефига не просечь.
Он явно строит дерево, но дерево на массивах и постоянно ссылается на алгоритмы рассмотренные в "Искусстве программирования".
P.S. Исходный пакет документации и то, что писал по этому поводу Кнут могу попробовать поискать..., Даже на русском.
http://nedbatchelder.com/code/modules/hyphenate.html
Я нашел, вероятно, относительно простую для понимания реализацию алгоритма переносов Frank Liang'а реализованную в системе TeX.
Реализация на Python с фиксированным набором патернов.
Хотелось бы видеть ее реализацию в виде библиотеки (.dll) с возможностью подгружать внешние патерны для различных языков, ну и, естественно, с возможностью подключения к пакетам верстки (как следующий этап).
Брежу этой идеей давно. Эти алгоритмы бесплатные, наборы патернов переносов также открыты и редактируемы. НО НИКТО ИХ НЕ РЕАЛИЗУЕТ.
Проблема в том, что я уже "кастрированный" программист. Все забыл.
Может посмотрите?
Вторая проблема... В TeX (а он написан на нечто типа Паскаля) Кнут разбил все это дело на две части. Первая часть, это генерация структуры для быстрого поиска по ней, которая записывается уже в виде структуры.
Сам переносчик подгружает эту структуру и уже по ней работает.
Вот, честно говоря, в современных компьютерах может это и не особо критично, но реализовать бы Кнутовский алгоритм.
Однако... Исходники документированы прекрасно, но DEC, это хакер старой закалки. Там не смотря на документацию нефига не просечь.
Он явно строит дерево, но дерево на массивах и постоянно ссылается на алгоритмы рассмотренные в "Искусстве программирования".
P.S. Исходный пакет документации и то, что писал по этому поводу Кнут могу попробовать поискать..., Даже на русском.