2025-etpgrf/README.md

31 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

| in progress // в процессе разработки |
|--------------------------------------|
| -------6 |
# Типограф для Web
Экранная типографика для веба -- способствует повышению читабельности текста в интернете,
приближая его к печатной типографике.
### Переносы слов
В основе переносов слов лежит фонетический принцип — деление по слогам. И этот принцип типограф решает.
Однако регение не идеально, т.к. на эту основу накладывается множество других факторов:
1. Морфологический принцип -- переносы стараются не разрывать значащие части слова (морфемы: приставки, корни, суффиксы, окончания).
2. Устоявшиеся практики (традиция) -- Для многих слов существуют традиционные, общепринятые варианты переноса, которые могут не всегда строго следовать фонетическим или морфологическим правилам. Эти традиции формировались десятилетиями и закреплены в словарях и справочниках по типографике.
3. Удобочитаемость и эстетика -- иногда правила переноса корректируются для улучшения внешнего вида текста и легкости чтения. Например, стараются не оставлять или переносить слишком короткие части слова (в типографе-etpgrf, это решается с помощью настроек по умолчанию:
* `defaults.etpgrf_settings.hyphenation.MAX_UNHYPHENATED_LEN` -- длинна части слова не подлежащего переносам;
* `defaults.etpgrf_settings.hyphenation.MIN_TAIL_LEN` -- длинна части слова которое недопустимо переносить или оставлять на строке ("хвост", "сироты").
4. Избегают переносов, создающих неблагозвучные или двусмысленные сочетания букв на стыке строк.
5. А еще, любые правила, особенно в языке, имеют исключения и существуют слова, которые переносятся вопреки общим закономерностям.
Etpgrf -- работает только на эвристических правилах, основанных на буквенных паттернах. Этого недостаточно, особенно для английского языка. Возможные пути улучшения (TODO):
* Использование словарей переносов (hyphenation dictionaries): Это наиболее точный подход. Существуют готовые словари (часто в формате, используемом TeX), где для каждого слова указаны возможные точки переноса. Интеграция такого словаря — сложная, но самая надежная задача.
* Алгоритмы на основе паттернов (например, алгоритм Франклина Ляна, используемый в TeX): Эти алгоритмы не хранят все слова, а используют набор паттернов и их "весов" для определения оптимальных точек переноса. Они очень эффективны и дают высокое качество, но их реализация или адаптация — нетривиальная задача.
* Гибридный подход: Комбинация эвристических правил для простых случаев и обращение к словарю или более сложному алгоритму для неоднозначных или длинных слов.
* Расширение набора эвристических правил: Можно продолжать добавлять более специфичные правила (например, для диграфов, триграфов, более сложных приставок и суффиксов), но это путь с убывающей отдачей — правил становится много, они могут конфликтовать, а покрытие всех случаев все равно не гарантировано.
* Учет морфологии: Более глубокий анализ морфемной структуры слова.