В продолжение темы про отсутствие Flush Zone в Adobe InDesign

  • Автор темы Автор темы LeonidB
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

LeonidB

Их бин
Топикстартер
10 лет на форуме
Сообщения
2 471
Реакции
1 530
Поскольку тема http://forum.rudtp.ru/threads/flush-zone.18032/ закрыта, спрошу у уважаемого сообщества: а не появилось ли в природе скриптика, который бы умел применять Force Justify к абзацу, концевая строка которого вылезает во Flush Zone, то есть приближается к правому краю ближе, чем на заданную величину (например, кегельную)? В Кварке поставил значение, к примеру 10 пт, и забыл, а в индизайновской вёрстке надо визуально отслеживать (я создаю направляющую на нужном расстоянии от правой границы полосы набора и смотрю, не пересекла ли концевая строка эту направляющую), что неудобно, особенно если концевая строка почти полная.
 
Не совсем понимаю, если этого понятия вообще в индизайновских терминах нет, то как такого даже скриптом достичь можно. Грубо говоря, как поставить задачу и формализовать проблему в терминах индизайна? Проверять положение последнего символа абзаца относительно края? Так, кажется, даже такое не реализуемо, хотя, конечно, я могу и ошибаться... *(
 
Проверять положение последнего символа абзаца относительно края?

Именно! О том и вопрос :)

скриптика, который бы умел применять Force Justify к абзацу, концевая строка которого... приближается к правому краю ближе, чем на заданную величину
 
Проверять положение последнего символа абзаца относительно края
Можно определить положение символа на странице, вызвав свойство endHorizontalOffset. А дальше — простая, вроде бы, арифметика, но с огромной кучей разных "учитываний": правый отступ абзаца, правый отступ в свойствах фрейма, количество колонок фрейма и интервал между ними, положение фрейма на странице, определение колонки фрейма, в котором находится данный символ...
В общем, не очень интересная на сегодня задача (как для меня).
 
Можно определить положение символа на странице, вызвав свойство endHorizontalOffset. А дальше — простая, вроде бы, арифметика, но с огромной кучей разных "учитываний": правый отступ абзаца, правый отступ в свойствах фрейма, количество колонок фрейма и интервал между ними, положение фрейма на странице, определение колонки фрейма, в котором находится данный символ...

А зачем всё это? Достаточно же лишь сравнить положение последнего символа абзаца относительно правой границы неконцевых строк того же самого абзаца (при условии, конечно, что он выключен влево, то есть правый его край ровный).
 
А это, разве, не правая граница строки или параграфа?
Или сравнивать эти значения для всех строк в параграфе?
Вдобавок, как я понимаю, там возникают какие то потенциальные проблемы если последний символ служебный типа пробел, перевод строки и.т.д
 
А это, разве, не правая граница строки или параграфа?
Это свойство есть и у символа, и у слова, и у параграфа... Теоретически, можно сначала делать проверку на "правильную" выключку, и если да — сравнивать положение крайних символов предпоследней и последней строки. Что при этом может "выплыть" дополнительно — надо смотреть уже на практике тому, кто этим займётся.
 
  • Спасибо
Реакции: _MBK_
В принципе да, как вариант, может сойти.
 
Теоретически, можно сначала делать проверку на "правильную" выключку

И ещё на то, что у абзаца ненулевой абзацный отступ. Абзацы с нулевым абзацным отступом тоже обрабатывать не нужно.
 
Ну, по идее, если сравнивать по концам двух последних строк, то на отступ можно забить, единственно, проверять, собственно, что за символ в конце строки стоит.
 
на отступ можно забить

На отступ забить нельзя, потому что
Если текст в издании набирается без абзацных отступов, то все концевые строки обязательно должны быть неполными.

Другое дело, что в таком случае нужно наоборот увеличивать отступ от правой границы на величину, больше кегельной, либо переносить часть текста на новую строку, но это уже совсем другая задача. В рамках же этой задачи лучше такие абзацы вообще не трогать.
 
Похоже, Михаил Иванюшин в своём новом скрипте DoMakeupOK реализовал обработку абзацев с почти полными концевыми строками - растягивая их до Full (Force) Justify.

DoMakeupOK-0.jpg DoMakeupOK-1.jpg DoMakeupOK-2.jpg
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.