Алгоритм переносов представляет собой набор правил, особенно один кодифицированный для реализации в компьютерной программе, которая решает на что указывает слово может быть разбита на две строки с дефисом. Например, алгоритм расстановки переносов может решить, что импичмент может быть отменен как импичмент или импичмент, но не импичмент.
Одна из причин сложности правил разбиения слов заключается в том, что разные «диалекты» английского языка имеют тенденцию различаться при расстановке переносов: американский английский обычно работает со звуком, а британский английский имеет тенденцию смотреть на происхождение слова, а затем звучать. Также существует большое количество исключений, что еще больше усложняет дело.
Некоторые практические правила можно найти в книге майора Кири: «О расстановке переносов - анархия педантизма». Среди алгоритмических подходов к расстановке переносов широко используется тот, который реализован в системе набора текста TeX. Это подробно описано в первых двух томах книги « Компьютеры и набор текста» и в диссертации Франклина Марка Ляна. Целью работы Ляна было сделать алгоритм настолько точным, насколько это возможно, и сделать любой словарь исключений небольшим.
В оригинальных шаблонах расстановки переносов для американского английского языка TeX список исключений содержит только 14 слов.
Порты алгоритма расстановки переносов TeX доступны в виде библиотек для нескольких языков программирования, включая Haskell, JavaScript, Perl, PostScript, Python, Ruby, C # и TeX, которые можно настроить для отображения дефисов в журнале с помощью команды \showhyphens
.
В LaTeX исправление переносов может быть добавлено пользователями с помощью:
\hyphenation{words}
Команда \hyphenation
объявляет разрешенные точки переноса, в которых слова представляют собой список слов, разделенных пробелами, в котором каждая точка переноса обозначена -
символом. Например,
\hyphenation{fortran er-go-no-mic}
заявляет, что в текущем задании слово «fortran» не должно переноситься через дефис и что если слово «эргономичный» должно быть расставлено через дефис, оно будет в одном из указанных пунктов.
Однако есть несколько ограничений. Например, стандартная \hyphenation
команда по умолчанию принимает только буквы ASCII, поэтому ее нельзя использовать для исправления переносов слов с символами, отличными от ASCII (например, ä, é, ç), которые очень распространены почти во всех языках, кроме английского. Однако существуют простые обходные пути.