Расстановка мягких переносов
quittance.ru
документы
прочее

Расстановка мягких переносов

 

Мяг­кий пе­ре­нос (англ. soft hyphen спе­ци­аль­ный неви­ди­мый сим­вол для ука­за­ния мест внут­ри сло­ва, по ко­то­рым это сло­во мо­жет быть пе­ре­не­се­но на дру­гую строку.

Глав­ная за­да­ча пе­ре­но­са слов  эс­те­ти­че­ская. Пере­но­сы поз­во­ля­ют до­бить­ся бо­лее ров­ной пра­вой гра­ни­цы тек­ста в на­бо­ре с вы­ключ­кой вле­во. Или из­бе­жать несо­раз­мер­но боль­ших рас­сто­я­ний меж­ду сло­ва­ми  так на­зы­ва­е­мых «ко­ри­до­ров»  при на­бо­ре с пол­ной вы­ключкой.

Пред­став­лен­ный сер­вис мож­но ис­поль­зо­вать для рас­ста­нов­ки мяг­ких пе­ре­но­сов в про­из­воль­ном тек­сте (по­ка толь­ко на рус­ском язы­ке), а так­же для де­мон­стра­ции воз­мож­но­стей сво­бод­ной биб­лио­те­ки рас­ста­нов­ки пе­ре­но­сов phpHypher.

Исполь­зу­ет­ся ал­го­ритм Ляна-Кну­та  по­жа­луй, один из наи­бо­лее со­вер­шен­ных ал­го­рит­мов рас­ста­нов­ки пе­ре­носов.

Исходный текст для расстановки мягких переносов:
Ограничения
Режим



Пояс­не­ния к ин­тер­фей­су сер­ви­са рас­ста­нов­ки мяг­ких пе­ре­но­сов

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

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

Пред­ла­га­ет­ся три пред­уста­нов­ки: без огра­ни­че­ний  рас­став­лять пе­ре­но­сы без огра­ни­че­ний вез­де, где до­пу­сти­мо; для вы­ключ­ки вле­во  для тек­ста, пред­на­зна­чен­но­го к на­бо­ру с вы­ключ­кой вле­во; для пол­ной вы­ключ­ки  для тек­ста, пред­на­зна­чен­но­го к на­бо­ру с пол­ной вы­ключ­кой. Не сто­ит при­ни­мать по­след­ние две пред­уста­нов­ки за объ­ек­тив­ные пра­ви­ла. Они  не бо­лее чем лич­ные пред­по­чте­ния ав­то­ра, ос­но­ван­ные на его вку­се и опыте.

Избе­гать небла­го­звуч­ных или ис­ка­жа­ю­щих смысл пе­ре­но­сов. Пра­ви­ла рас­ста­нов­ки пе­ре­но­сов в рус­ском язы­ке не до­пус­ка­ют, чтобы остав­ша­я­ся или пе­ре­не­сен­ная часть сло­ва об­ра­зо­вы­ва­ла с со­сед­ни­ми сло­ва­ми небла­го­звуч­ные или ис­ка­жа­ю­щие смысл со­че­тания.

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

Режим  спо­соб отоб­ра­же­ния ре­зуль­тата.

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

В де­мон­стра­ци­он­ном ре­жи­ме ме­ста воз­мож­ных пе­ре­но­сов обо­зна­ча­ют­ся крас­ным де­фисом.

Режим html пред­на­зна­чен для фор­ми­ро­ва­ния ре­зуль­та­та в ви­де html-тек­ста, го­то­во­го к ис­поль­зо­ва­нию в html-до­ку­мен­тах. Мяг­кие пе­ре­но­сы пред­став­ля­ют­ся как “&shy;”, а пе­ре­вод стро­ки  как “<br>”.

Режим xhtml ана­ло­ги­чен ре­жи­му html с той лишь раз­ни­цей, что пе­ре­вод стро­ки пред­став­ля­ет­ся как “<br />” и слу­жит для ис­поль­зо­ва­ния в xhtml-до­ку­ментах.

Служ­бы про­ек­та quittance.ru предо­став­ля­ют­ся бес­плат­но, «как есть». Про­ект со­здан, под­дер­жи­ва­ет­ся и раз­ви­ва­ет­ся с доб­ры­ми на­ме­ре­ни­я­ми и на­деж­дой на его по­лез­ность. Одна­ко ав­тор не при­ни­ма­ет на се­бя ни­ка­ких обя­за­тельств в от­но­ше­нии про­ек­та. В част­но­сти, ав­тор не несет ни­ка­кой от­вет­ствен­но­сти за со­дер­жа­ние под­го­тов­лен­ных к пе­ча­ти до­ку­мен­тов, не га­ран­ти­ру­ет от­сут­ствия оши­бок ни в верст­ке, ни в ко­де, ни в на­пол­не­нии сай­та. Даль­ней­шая под­держ­ка и раз­ви­тие про­ек­та пла­ни­ру­ют­ся, но не га­ран­ти­ру­ются.
Copyright 2008–2010 Sergey Kurakin