Я ищу образец проекта, который будет выполнять перенос текста на C #. В идеале это должно быть получено из алгоритма расстановки переносов TeX или аналогичного. В настоящее время меня интересует английский, хотя в будущем могут потребоваться другие языки. Кто-нибудь видел что-то подобное? фон Я планирую включить это в проект MonoTouch с использованием CoreText.
Расстановка переносов в c #
Ответы (2)
Очевидно, алгоритмы Дональда Кнута превосходны. Хотя реализации C # нет, рассматривали ли вы возможность преобразования другой реализации на C #? (Например, вы можете преобразовать реализацию Java, которая довольно близка к C #.)
Другой вариант - использовать более простую реализацию, которую можно найти по адресу этот ответ здесь, на StackOverflow < / а>.
person
JasCav
schedule
04.05.2011
Спасибо, Джейсон. Я действительно надеялся, что кто-то уже преобразовал версию TeX в C #, и мне, возможно, придется пойти по пути ее преобразования. Вы знаете, где я могу найти нисходящую версию Java для начала?
- person Ethan; 18.05.2011
Для реализации Java работы Ляна вы можете взглянуть на TeXHyphenator-J: davidashen.net/texhyphj. html
- person Jeremy; 23.04.2013
Я нашел C # реализацию алгоритма расстановки переносов Кнута-Лянга на https://github.com/alkozko/NHyphenator и вроде нормально работает.
Но на данный момент есть два недостатка:
- Он не может загружать файлы шаблонов расстановки переносов TeX из коробки (однако добавление поддержки для них кажется тривиальным).
- Неясно, какая лицензия применяется к исходному коду.
person
Lukas Pokorny
schedule
11.02.2014
Если бы вы могли подсказать, как конвертировать подобные файлы mirror.ctan.org/language/hyph-utf8/tex/generic/hyph-utf8/ в формат, который использует NHyphenator, для людей, которые понятия не имеют, что содержимое файла любого формата означает, что это было бы здорово. Я обнаружил, что тоже хочу использовать эту библиотеку, и я боюсь, что если я начну читать детали алгоритма, чтобы понять содержимое файла, я, вероятно, в конечном итоге сам перепрограммирую эту вещь ... :(
- person NoOne; 04.06.2017
Заглянув внутрь обоих форматов файлов, я бы (вполне безопасно) предположил, что вам просто нужно скопировать содержимое
\hyphenation{}
в файл hyph-***.hyp.txt
, а содержимое \patterns{}
в файл hyph-***.pat.txt
. Хм ... Не так много работы, чтобы построить для этого парсер ...
- person NoOne; 04.06.2017