Выравнивание по ширине
quittance.ru
документы
прочее
Выравнивание по ширине
   / реализация выравнивания на php

Возможности phpJustifier

Под­держ­ка пред­ва­ри­тель­но рас­став­лен­ных мяг­ких пе­ре­но­сов в ком­мен­та­ри­ях не нуж­да­ется.

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

Реа­ли­зо­ван до­воль­но гиб­кий ал­го­ритм вы­чис­ле­ния мест, ку­да луч­ше до­ба­вить до­пол­ни­тель­ный про­бел для вы­рав­ни­ва­ния строк по ши­рине. В ре­зуль­та­те рас­ши­рен­ные про­бе­лы в ка­кой-то сте­пе­ни со­от­вет­ству­ют кон­тек­сту. Наи­выс­ший при­о­ри­тет име­ют оди­ноч­ные про­бе­лы по­сле кон­ца пред­ло­же­ния; за ни­ми сле­ду­ют оди­ноч­ные про­бе­лы по­сле за­пя­той, двое­то­чия, точ­ки с за­пя­той. Сле­ду­ю­щий при­о­ри­тет име­ют оди­ноч­ные про­бе­лы по­сле длин­ных слов, по­сле сред­них слов, по­сле ко­рот­ких слов… Если по­сле это­го ре­зуль­тат не до­стиг­нут, то есть дли­на стро­ки всё еще мень­ше тре­бу­е­мой, то весь цикл по­вто­ря­ет­ся для двой­ных про­бе­лов, за­тем  для нераз­рыв­ных про­бе­лов, за­тем  для трой­ных про­бе­лов… И толь­ко в по­след­нюю оче­редь про­бе­лы бу­дут до­бав­ле­ны в лю­бые про­ме­жут­ки меж­ду сло­ва­ми неза­ви­си­мо от кон­тек­ста.

Для пра­виль­ной ра­бо­ты опи­сан­но­го ал­го­рит­ма с од­но­байт­ны­ми ко­ди­ров­ка­ми необ­хо­ди­мо уста­но­вить со­от­вет­ству­ю­щую ло­каль. При ра­бо­те в ко­ди­ров­ке UTF-8 ло­каль не ока­зы­ва­ет вли­я­ния на ре­зуль­тат.

Реа­ли­зо­ва­на под­держ­ка Unicode, точ­нее  ко­ди­ров­ки UTF-8. Для вклю­че­ния под­держ­ки ко­ди­ров­ки UTF-8 необ­хо­ди­мо пе­ре­дать флаг JST_UNICODE. Кро­ме то­го, для ра­бо­ты с тек­стом в ко­ди­ров­ке UTF-8 по­тре­бу­ет­ся рас­ши­ре­ние mbstring, ко­то­рое, впро­чем, яв­ля­ет­ся стан­дарт­ным для php5. Дру­гие муль­ти­байт­ные ко­ди­ров­ки не под­дер­жи­ва­ются.

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

24/07/2010
Добавить комментарий
Заполните форму, чтобы отправить свой комментарий. E-mail заполнять не обязательно, но имеет смысл, если Вы рассчитываете на ответ по почте. В любом случае, Ваш e-mail не будет опубликован.