Избранное »

22.09.2014 – 07:27 | 2 комментария | 8 155 views

Здравствуйте все, кто работает в Индизайне!
Извещаем вас о том, что на youtube.com начал работу канал «InDesign Мастерская вёрстки». Там уже размещены более 60 видео с полным описанием как работать с программой DoTextOK. Другие интересные темы, касающиеся работы …

Читать полностью »
Работа в InDesign

Хитрости и секреты, приемы работы, уроки

Новая версия!

Особенности новой версии Индизайна

Плагины

Описание плагинов, информация о плагинах для работы с Adobe InDesign

Скрипты

Готовые к использованию скрипты для Adobe InDesign

Скриптинг

Описание языка, приёмов и методов программирования для Adobe InDesign

Home » Скрипты

Обновление скриптов упорядочения верстки

Добавлено на 20.05.2011 – 00:4420 комментариев | 5 753 views

То, как программа размещает текст на полосе, обычно далеко от того, что должно быть. Собственно после размещения текста в полосах и начинается вёрстка. Это достаточно кропотливый процесс, и устав, мы нередко перестаём видеть исполнительские огрехи, глаз, что называется, «замыливается». Чтобы пропущенные ляпы не попали в тираж, сделаны эти скрипты. По сути, это развитие мыслей, обсуждавшихся в опубликованной ранее статье.

Скрипт Widow&Orphans#BadHyphenations#LastLines.jsx выполняет проверку верстки на наличие:

  • висячих строк,
  • абзацев с одним словом в последней строке,
  • абзацев, внутри которых есть строки, начинающиеся с тире, минуса или дефиса,
  • переносов в последней строке разворота (или страницы, если опция ‘Facing Pages’ неактивна)
  • последних строк на странице, заканчивающихся одно- или двухбуквенным словом. Поиск в пространстве разворота (или страницы, если опция ‘Facing Pages’ неактивна).

После выполнения скрипта на экран выводится сообщение о результатах работы:

anyscripts01

Висячие строки. С ними всё ясно. Их в тираже не должно быть. Точка.

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

Абзац с одним словом в последней строке. Если в последней строке абзаца только одно слово, или это часть слова, то верстка выглядит плохо:

anyscripts02

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

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

Переносы в последней строке. Надо избавить читателя от случаев, когда на развороте переносится последнее слово нижней строки на правой странице. То же самое можно сказать про случай, когда верстка постраничная. Переносы слов в рамках смежных страниц и разворотов не создают дискомфорта. Чтобы эта проверка работала, надо, чтобы в описании текстовых стилей были установлены флажки Hyphenate Last Word и Hyphenate Across Column. Об этом достаточно сказано в упомянутой выше статье.

В приведенном выше окне скрипт сообщает, что обнаружено семь таких переносов. Что делать дальше? Для решения этой задачи есть скрипт LastWord_NOT_Hyphenated.jsx, о нём будет рассказано дальше.

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

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


Скрипт LastWord_NOT_Hyphenated.jsx запрещает переносы в последнем слове нижней строки правой страницы разворота. Если для решения этой задачи ставить перед словом дискреционный пробел, то невозможно потом узнать — поставил этот пробел пользователь во время верстки или эта программа. Поэтому скрипт ставит перед словами пару знаков: символ нулевой ширины и дискреционный перенос. Это позволяет при необходимости возврата к исходному состоянию найти все эти пары символов и удалить их. Для такого отката предусмотрен скрипт LastWord_Hyphenated.jsx.

(Эти скрипты — развитие публиковавшегося ранее скрипта LastWordInColumnNotHyphenated.)

Процедура удаления этих переносов вызовет переверстку текста, и в результате могут появиться новые такие переносы.

Например, до запуска скрипта правая полоса выглядела так:

anyscripts03

После выполнения скрипта появился новый перенос:

anyscripts04

Поэтому скрипт после завершения работы проверяет текст еще раз и в случае обнаружения новых переносов сообщает об этом:

anyscripts05

Для устранения новых переносов можно запустить скрипт еще раз, или как-то поработать с трекингом проблемных абзацев.

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


Работа с неполными последними строками абзаца CorrectionOfSomeLastLinesInParagraph.jsx

Иногда в результате верстки получаются такие абзацы:

anyscripts06

Взгляните, на последнюю строку абзаца, на неё указывает курсор — насколько невнятно пустое пространство в конце абзаца, оно намного меньше абзацного отступа!

Надо или трекингом втягивать текст, или доводить абзац до формата полосы. Выбрано второе решение.

Надо поставить курсор в текст и запустить скрипт. Появится окно:

anyscripts07

Тут можно задать минимальный размер отступа справа последней абзацной строки. По умолчанию там ставится значение абзацного отступа. Эта установка работает только для параграфов, имеющих ненулевой абзацный отступ и с выключкой ‘Left Justify’, размеры измеряются в миллиметрах. Если фактический отступ справа последней строки меньше введенного значения, выключка этого абзаца изменяется на ‘Full Justify’. На картинке указано, казалось бы, какое-то странное значение абзацного отступа, но это не так — такое значение получено описанным тут скриптом .


Цвета перемен. Эти скрипты маркируют сделанные изменения цветом. По умолчанию это яркий красный цвет 0-100-100-0. После завершения верстки необязательно удалять их, достаточно изменить их формулу на 0-0-0-100, и весть текст станет черным.

Михаил Иванюшин

Скачать скрипты для приведения в порядок верстки.

Обновление скриптов упорядочения верстки

Вот что значит коллективный разум! : )
Благодаря трем пользователям, Татьяне Прокофьевой, Олегу Ященко и Павлу (фамилию не знаю) найдены несколько тонких ошибок в алгоритме работы этих скриптов.
Возникающее в результате работы программы переполнение текстовой цепи раньше не отлавливалось. Просто в голову не приходило, что такое может быть. Теперь эта ситуация контролируется.
Обновленные скрипты в архиве для скачивания. Теперь нет вариантов для разных версий — каждый скрипт работает в программах InDesign CS3-CS5.
И по результатам тестирования можно сформулировать еще такое дополнительное правило работы с этими скриптами: если вы хотите с их помощью контролировать висячие строки, то исключите из описания стилей установки Keep Options. Если они есть, и встретится перенос в последней строке, то избавление от него, как оказалось, может обернуться в книге добавлением страницы. Никогда бы не поверил, если бы сам не увидел, хотя это все легко объяснимо.
И еще маленькое усовершенствование работы со скриптами — в начале каждого из этих скриптов есть оператор //DESCRIPTION, благодаря чему при наведении курсора строку с названием скрипта в панели Scripts на экран выводится его описание.

Скачать обновленный набор скриптов для приведения в порядок верстки.

20 комментариев »

  • alhimik:

    Спасибо, чудесные скрипты. Но у меня скрипт Widow&Orphans#BadHyphenations#LastLines.jsx выдает такую ошибку:
    [URL=http://radikal.ru/F/s51.radikal.ru/i134/1105/a9/8058ef4689ee.png.html][IMG]http://s51.radikal.ru/i134/1105/a9/8058ef4689eet.jpg[/IMG][/URL]

  • iv-mi:

    Пришлите мне этот проблемный файл.

  • День добрый!

    также проблема в строке 118
    в Widow&Orphans#BadHyphenations#LastLines(CS5)

    var myFirstWordInNextColumn = myNextColumn.words[0].contents; // первое слово в следующей колонке

    возможно. будет ругаться дальше…

    подозреваю что в Widow&Orphans#BadHyphenations#LastLines — то же самое…

  • вот скриншот http://d.pr/8wMi к Widow&Orphans#BadHyphenations#LastLines

  • iv-mi:

    Пришлите на адрес ivanyushin#yandex.ru
    файл или ссылку на него в файлообменнике

  • gupenets:

    Таже ошибка в скрипте

  • Я туплю или на самом деле, только один скрипт в архиве?
    ImproveWinSoft.jsx

  • Ая-яй! Простите, глаз замылился, не туда смотрел.

  • enaj:

    такая проблема при запуске:
    http://s018.radikal.ru/i514/1210/42/0a09bce9381b.jpg
    «В текстовой цепочке есть переполнение»
    И что с этим делать?
    ИнДи ЦС 5

  • iv-mi:

    enaj: «В текстовой цепочке есть переполнение»
    И что с этим делать?

    Избавиться от него. 🙂

  • enaj:

    спс, кэп)
    что есть «переполнение» и где его искать?

  • iv-mi:

    Переполнение — это ситуация, когда текст не поместился в отведенный объем. Но это букварь. Странно, что возникают такие вопросы.
    Но с другой стороны, раз задались вопросом, обязательно найдете ответ.
    Ищите учебник и читайте.
    Сэнди Коэн и Дэвид Блатнер Вам в помощь.

  • enaj:

    ну что ж тут странного? кто-то бордюр поребриком называет)
    мне никогда не приходило в голову, что недостаточное количество страниц или фреймов можно так «В текстовой цепочке есть переполнение» обозвать)

  • enaj:

    и еще, по первому скрипту. заранее прошу извинения, если вдруг опять вопрос из букваря)
    есть ли возможность все найденные станицы сделать ссылками или кнопочками чтобы не вбивать руками номера? А так же менять размер окошка с найденными страницами?

  • Mr.Burmin:

    Где, модно скачать этот скрипт?

  • iv-mi:

    Как скачать? — Над блоком комментариев есть строка «Скачать …», вот в ней щелкните мышкой на первом слове.

  • luninv:

    Здравствуйте! На мой взгляд, уместным дополнением к этим скриптам был бы автоматический поиск страниц, содержащих строки с нарушением компоновки текста (H&J Violations), которые при отображении на экране могут быть подсвечены градациями жёлтого цвета, что удобно и достаточно при условии, что вёрстка содержит одну–несколько страниц или работа идёт плотно и последовательно, однако на заключительных этапах и/или когда «глаз замыливается» и т.п. неплохо было бы иметь средство контроля опрятности вёрстки, позволяющее сразу переходить к проблемным местам, а не «пропахивать носом» несколько сотен страниц в поисках «жёлтых следов».
    Пробовал поразмыслить, как это можно было бы сделать в принципе, и, признаться, не представляю.
    Возможно, у кого-нибудь есть какие-нибудь соображения на этот счёт. Поделитесь, пожалуйста!

    • iv-mi:

      Да, меня тоже посещала эта идея. Но я так и не докопался, где и как Индизайн красит плотный текст.

      • luninv:

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

Оставить комментарий!

Вы должны быть в системе чтобы оставить комментарий.