Перенос и выключка с учетом нескольких строк

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

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

Такое движение взад-вперед требует значительного времени и компьютерных ресурсов, зато и результат гораздо лучше, чем у построчных переноса и выключки. Нагрузку компьютера можно уменьшить, регулируя диапазон строк, которые про­грамма просматривает одновременно. Диапазон обрабатываемых строк все время меняется: например, получив значение 20 строк, программа работает с текущей строкой плюс 19 предыдущих строк. Другими словами, она не обрабатывает диск­ретные блоки по 20 строк, а каждый раз усредняет относительно текущей строки значения пробелов в последних 20 строках, которые уже сверстаны.

Построчная выключка (H&J)

If a box is square, it is obvious that it cannot, strictly speaking, be more square. Nevertheless, forms like full­est, rounder, more perfect, etc., are in general use colloquially.

Многострочная выключка (H&J)

If a box is square, it is obvious that it cannot, strictly speaking, be more square. Nevertheless, forms like full­est, rounder, more perfect, etc., are in general use colloquially.

РИС. 10.5. В левой колонке программа выполнила пере­нос и выключку построчно, поэтому первая строка полу­чилась сжатой, а вторая раз­реженной. Программа не мо­жет перенести слово square для исправления ситуации, и это вынуждает ее оставить строку ослабленной. В правой колонке весь абзац верстался программой как единое це­лое. Обрабатывая тот же текст, она слегка разрядила первую строку и перенесла одно слово, чтобы чуть-чуть сжать вторую строку

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

Updated: 24.11.2011 — 14:53