Jump to content

Перенос строк и перенос слов

(Перенаправлено с переноса строк )
С переносом слов

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

Без переноса слов

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

Жестко закодированные символы новой строки

Важно заботиться о больном, больной будет следовать за больным, но это произойдет одновременно с родами и болью.
некоторые замечательные вещи Если говорить до мельчайших подробностей, кто наш?
выполнение любого труда, за исключением некоторых его частей
удачи Не спешите в дом
Он хочет критиковать в удовольствие, но хочет быть волоском от боли
пусть бежит, пусть никто не родится. Если они не ослеплены похотью
они не выходят, виноват тот, кто отказывается от своих обязанностей
Имейте в виду, что это работа.

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

Мягкая и жесткая отдача

[ редактировать ]

Мягкий возврат или мягкий перенос — это разрыв, возникающий в результате переноса строк или слов (автоматического или ручного), тогда как жесткий возврат или жесткий перенос — это преднамеренный разрыв, создающий новый абзац. При жестком возврате можно (и нужно) применить форматирование разрыва абзаца (либо отступы , либо вертикальные пробелы). Мягкая переноска позволяет автоматически регулировать длину строк с учетом ширины пользовательского окна или настроек полей и является стандартной функцией всех современных текстовых редакторов, текстовых процессоров и почтовых клиентов . Ручные мягкие разрывы не нужны, когда перенос слов выполняется автоматически, поэтому нажатие клавиши «Enter» обычно приводит к жесткому возврату.

В качестве альтернативы «мягкий возврат» может означать намеренный сохраненный разрыв строки, который не является разрывом абзаца. Например, почтовые адреса обычно печатаются в многострочном формате, но несколько строк считаются одним абзацем. Разрывы строк необходимы для разделения слов адреса на строки соответствующей длины.

В современных графических текстовых процессорах Microsoft Word и Libreoffice Writer пользователи должны вводить возврат каретки ( Enter) между каждым абзацем. Настройки форматирования, такие как отступы первой строки или интервалы между абзацами, вступают в силу, когда возврат каретки отмечает разрыв. Разрыв строки, не являющийся абзацем, который является мягким возвратом, вставляется с помощью Shift+ Enter или через меню и предусмотрен для случаев, когда текст должен начинаться с новой строки, но другие побочные эффекты начала нового абзаца нежелательны.

В текстовых языках разметки мягкий возврат обычно предлагается в виде тега разметки. Например, в HTML есть тег <br>, который имеет то же назначение, что и мягкий возврат в текстовых процессорах, описанный выше.

определяет Алгоритм разрыва строки Unicode набор позиций, известных как возможности разрыва , которые являются подходящими местами для начала новой строки. Фактические позиции разрыва строки выбираются из числа возможностей разрыва программным обеспечением более высокого уровня, которое вызывает алгоритм, а не самим алгоритмом, поскольку только программное обеспечение более высокого уровня знает ширину дисплея, на котором отображается текст, и ширину глифы, составляющие отображаемый текст. [1]

Набор символов Юникода предоставляет символ-разделитель строк, а также разделитель абзацев для представления семантики мягкого и жесткого возврата.

0x2028 РАЗДЕЛИТЕЛЬ СТРОК
* может использоваться для однозначного представления этой семантики
0x2029 РАЗДЕЛИТЕЛЬ АБЗАЦОВ
* может использоваться для однозначного представления этой семантики

Границы слов, расстановка переносов и пробелы

[ редактировать ]

Мягкие возвраты обычно размещаются после окончания полных слов или после знаков препинания, следующих за полными словами. Однако перенос слов может также произойти после дефиса внутри слова. Иногда это нежелательно, и его можно заблокировать, используя неразрывный дефис или жесткий дефис вместо обычного дефиса.

Слово без дефисов можно сделать переносимым, добавив в него мягкие дефисы . Если слово не перенесено (т. е. не разбито на строки), мягкий дефис не виден. Но если слово переносится по строкам, это делается на мягком дефисе, после чего оно отображается как видимый дефис в верхней строке, где слово разбито. (В том редком случае, когда слово предназначено для переноса путем разбиения его на строки, но без появления дефиса, пробел нулевой ширины в разрешенных точках разрыва в слове помещается .)

Иногда перенос слов между соседними словами нежелателен. В таких случаях перенос слов обычно можно заблокировать, используя жесткий или неразрывный пробел между словами вместо обычных пробелов.

Перенос слов в тексте, содержащем китайский, японский и корейский языки.

[ редактировать ]

В китайском , японском и корейском языках перенос слов обычно может происходить до и после любого символа Хань , но некоторые знаки препинания не могут начинать новую строку. [2] Японская кана рассматривается так же, как иероглифы хань ( кандзи ) в расширении, что означает, что слова могут и имеют тенденцию быть разбитыми без какого-либо явного указания на то, что слово продолжается на следующей строке.

Однако при определенных обстоятельствах перенос слов нежелателен. Например,

  • перенос слов может быть нежелателен в личных именах, и
  • перенос слов может быть нежелателен внутри составных слов (когда текст выравнивается по левому краю, но только в некоторых стилях).

Большинство существующих текстовых процессоров и программ для набора текста не могут справиться ни с одним из вышеперечисленных сценариев.

Пунктуация CJK может соответствовать или не соответствовать правилам, аналогичным вышеупомянутым особым обстоятельствам. это регулируется В CJK правилами нарушения линии .

Алгоритм

[ редактировать ]

Перенос слов является проблемой оптимизации . В зависимости от того, для чего необходимо оптимизировать, используются разные алгоритмы.

Минимальное количество строк

[ редактировать ]

Простой способ переноса слов — использовать жадный алгоритм , который помещает в строку как можно больше слов, а затем переходит к следующей строке и делает то же самое до тех пор, пока не останется слов для размещения. Этот метод используется многими современными текстовыми процессорами, такими как Libreoffice Writer и Microsoft Word. [ нужна ссылка ] Этот алгоритм всегда использует минимально возможное количество строк, но может привести к получению строк разной длины. Следующий псевдокод реализует этот алгоритм:

SpaceLeft := LineWidth
for each Word in Text
    if (Width(Word) + SpaceWidth) > SpaceLeft
        insert line break before Word in Text
        SpaceLeft := LineWidth - Width(Word)
    else
        SpaceLeft := SpaceLeft - (Width(Word) + SpaceWidth)

Где LineWidth ширина линии, SpaceLeft оставшаяся ширина места в строке для заполнения, SpaceWidth ширина одного пробела, Text это входной текст для перебора и Word это слово в этом тексте.

Минимальная рваность

[ редактировать ]

Другой алгоритм, используемый в TeX , минимизирует сумму квадратов длин пробелов в конце строк для получения более эстетичного результата, чем жадный алгоритм, который не всегда минимизирует квадраты пространства.

Примитивная функция разрыва строки была использована в 1955 году в «блоке управления страничным принтером», разработанном Western Union . В этой системе использовались реле, а не программируемые цифровые компьютеры, и поэтому требовался простой алгоритм, который можно было бы реализовать без буферов данных . В системе Western Union каждая строка разрывалась на первом пробеле, появлявшемся после 58-го символа, или на 70-м символе, если пробел не был найден. [3]

Жадный алгоритм разрыва строк появился раньше метода динамического программирования, изложенного Дональдом Кнутом в неопубликованной записке 1977 года, описывающей его систему набора текста TeX. [4] и позже более подробно опубликовано Кнутом и Плассом (1981). [5]

См. также

[ редактировать ]
  1. ^ Хенингер, Энди, изд. (25 января 2013 г.). «Алгоритм разрыва строк в Юникоде» (PDF) . Технические отчеты . Приложение № 14 (Предлагаемое обновление стандарта Unicode): 2 . Проверено 10 марта 2015 г. WORD JOINER следует использовать, если цель состоит в том, чтобы просто предотвратить разрыв строки.
  2. ^ Лунде, Кен (1999), Обработка информации CJKV: китайские, японские, корейские и вьетнамские вычисления , O'Reilly Media, Inc., стр. 352, ISBN  9781565922242 .
  3. ^ Харрис, Роберт В. (январь 1956 г.), «Стандартизация клавиатуры» , Технический обзор Western Union , 10 (1): 37–42, заархивировано из оригинала 03 августа 2015 г. , получено 7 апреля 2013 г.
  4. ^ Кнут, Дональд (1977), TEXDR.AFT , получено 7 апреля 2013 г. Перепечатано в Кнут, Дональд (1999), Цифровая типография , Конспект лекций CSLI, том. 78, Стэнфорд, Калифорния: Центр изучения языка и информации, ISBN.  1-57586-010-4 .
  5. ^ Кнут, Дональд Эрвин; Пласс, Майкл Ф. (1981), «Разбиение абзацев на строки», Программное обеспечение: практика и опыт , 11 (11): 1119–84, doi : 10.1002/spe.4380111102 , S2CID   206508107
[ редактировать ]

Алгоритм Кнута

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 30054747aa464fd21e843f3a771f841a__1721881860
URL1:https://arc.ask3.ru/arc/aa/30/1a/30054747aa464fd21e843f3a771f841a.html
Заголовок, (Title) документа по адресу, URL1:
Line wrap and word wrap - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)