Алгоритм расстановки переносов - Hyphenation algorithm

А алгоритм расстановки переносов - это набор правил, в частности, кодифицированный для реализации в компьютерной программе, который определяет, в каких точках слово может быть разбито на две строки с дефис. Например, алгоритм расстановки переносов может решить, что импичмент может быть сломан как импичмент или импичмент но нет препятствие.

Одна из причин сложности правил разбиения слов заключается в том, что разные «диалекты» английского языка имеют тенденцию различаться при расстановке переносов.[нужна цитата ]: Американский английский имеет тенденцию работать со звуком, но Британский английский имеет тенденцию смотреть на происхождение слова, а затем звучать. Также существует большое количество исключений, что еще больше усложняет дело.

Некоторые практические правила можно найти в книге майора Кири: «О расстановке переносов - анархия педантизма».[1] Среди алгоритмический подходы к расстановке переносов, реализованные в Система набора TeX широко используется. Это подробно описано в первых двух томах Компьютеры и набор текста и в диссертации Франклина Марка Ляна.[2] Целью работы Ляна было сделать алгоритм настолько точным, насколько это возможно, и сделать любой словарь исключений небольшим.

В оригинальных шаблонах расстановки переносов для американского английского языка TeX список исключений содержит только 14 слов.[3]

В TeX

Порты алгоритма расстановки переносов TeX доступны в виде библиотек для нескольких языков программирования, включая Haskell, JavaScript, Perl, PostScript, Python, Рубин, C #, а в TeX можно настроить отображение дефисов в журнале с помощью команды showhyphens.

В Латекс, пользователи могут добавить исправление переносов, используя:

 hyphenation {слова}

В перенос команда объявляет допустимые точки переноса, в которых слова представляют собой список слов, разделенных пробелами, в которых каждая точка переноса обозначена знаком - характер. Например,

 hyphenation {fortran er-go-no-mic}

заявляет, что в текущей работе «fortran» не следует переносить через дефис и что если «эргономичный» должен быть расставлен через дефис, он будет в одном из указанных пунктов.[4]

Однако есть несколько ограничений. Например, акции перенос команда принимает только ASCII буквы по умолчанию, поэтому его нельзя использовать для исправления переносов слов с символами, отличными от ASCII (например, ä, é, ç), которые очень распространены почти на всех языках, кроме английского. Однако существуют простые обходные пути.[5][6]

использованная литература

  1. ^ Майор Кири. «О переносах - анархия педантизма». Обновление ПК. Австралия: Мельбурнская группа пользователей ПК. Архивировано из оригинал 10 марта 2005 г.. Получено 6 октября, 2005.
  2. ^ Лян, Франклин Марк (август 1983 г.), "Слово Hy-phen-a -tion от Com-pu-ter", Кандидатская диссертация, Стэндфордский Университет Департамент Информатика, STAN-CS-83-977
  3. ^ "Таблицы переносов Plain TeX". Получено 23 июня, 2009.
  4. ^ "перенос". Гипертекстовая справка с LaTeX. Йель.
  5. ^ «Слова с ударением не переносятся». TeX FAQ.
  6. ^ "Как расстановка переносов работает в TeX?". Tex FAQ.

внешние ссылки