Избранное »

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

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

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

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

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

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

Плагины

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

Скрипты

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

Скриптинг

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

Home » Скрипты

Замена текста с маршрутом к рисунку на сам рисунок — 3

Добавлено на 08.07.2010 – 01:27Без комментариев | 1 462 views

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

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

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

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

Подготовка данных

Информация о размерах и описании под рисунком сохраняется в программе Photoshop в области хранения метаданных, на вкладке свойств File > File Info (Alt+Shift+Ctrl+I).

Этот скрипт предполагает, что сотрудник, ответственный за работу с изображениями, поместит в поле Document Title текст, который должен быть под этой иллюстрацией, а в поле Description — размер фрейма в формате ширина/высота. Единицы измерения размеров те, что используются в программе.

zamena01

Пример записи информации о подписи и размере файла.

При записи информации в поле Description важно указать верные пропорции рисунка. Средствами Photoshop это делается очень просто: зная требуемую ширину или высоту картинки (обычно они определяются параметрами макета), второй параметр можно вычислить в окне Image Size. Допустим, у нас двухколонник с шириной колонки 97 мм, и предполагается иметь ширину всех иллюстраций равной этому значению.

В программе Photoshop нажатием клавиш Alt+Ctrl+I выводим на экран окно Image Size, вводим в поле Width значение ширины, в поле Height появляется нужное значение высоты. Берем это число в буфер, нажимаем Cancel и переносим данные в поле Description.

zamena02

Определение пропорций рисунка.

1. Групповое размещение картинок

Скрипт, размещающий все иллюстрации за один раз, называется  ProcessAllPictureNameLines.jsx. При его запуске ищется файл AllPicturesProcessing.ini, его содержимое выглядит примерно так:

5
4
C:\tmp\picts\

0
3
Рис.

Первая строка — индекс в списке стилей объектов для иллюстрации
Вторая строка — индекс в списке стилей объектов для фрейма с подписью
Третья строка — полный маршрут к иллюстрациям
Четвертая строка — индекс списка имен идентификаторов иллюстрации
Пятая строка — отбивка между иллюстрацией и текстовым фреймом, мм
Шестая строка — слово, выводимое перед порядковым номером рисунка

По умолчанию, величина отбивки между иллюстрацией и текстовым фреймом (пятая строка ini-файала) равна 3 мм. Это значение определено в переменной

myPictTxtGap = 3
и пользователь может ввести свое значение, но изменение типа единицы измерения ( миллиметры) — не предусмотрено.

Если этого файла не найдено, то программа создает его сама, устанавливает индексы равными нулю, и первый раз берет за основу параметры переменных

myDefaultDir = «C:\\tmp\\picts\\»;

myStartMarkerindex = 0;

myPictTxtGap = 3;

myGraphPrefix = «Рис.»;

Пользователь может сам изменить эти значения, как непосредственно в программе, так и в файле AllPicturesProcessing.ini.

Затем выводится окно диалога выбора каталога, в котором хранятся иллюстрации:

zamena03

После выбора каталога с иллюстрациями выводится меню выбора стилей:

zamena04

Именно использование объектных стилей для фрейма иллюстрации и текстового фрейма для подписи позволило быстро размещать на страницах картинки с подписями. Главное — правильно подготовить файл и эти стили.

Требования к подготовке текста с описанием иллюстраций

Описание картинки — отдельный абзац, соответствующий формату:

<IMG> Имя файла

здесь <IMG> — маркер описания рисунка.

Этот маркер должен совпадать с содержимым строки Идентификатор иллюстрации: в показанном выше окне. В скрипте предусмотрены такие варианты имен этих идентификаторов: <IMG>, <IMAGE>, <PICT>. Коль скоро они написаны прописными, то и в вёрстке эти маркеры должны быть написаны так же.

Пользователь должен позаботиться о создании стиля объекта для фрейма подписи под иллюстрацией и стиля объекта для иллюстрации. В первом обязательно должны быть определены стиль абзаца подписи и величина обтекания текста, во втором — параметры рамки рисунка, обтекание, вариант подгонки под размер фрейма.

zamena05

zamena06

zamena07

Некоторые установки стиля объекта для фрейма с рисунком.

zamena08

zamena09

Некоторые установки стиля объекта для рамки с текстом.

Имена этих стилей будут выведены в меню.

В текстовой цепочке с полными именами файлов не должно быть переполнения, число строк описаний должно совпадать с числом текстовых фреймов, последним символом в тексте описания иллюстраций должен быть знак перевода строки (это требование актуально для случая, когда последняя строка текста — это описание картинки; во всех остальных случаях это условие выполняется автоматически).

Если на вкладке свойств иллюстрации поле Document Title пустое, то фрейм для подписи не создается.

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

Нумерация рисунков

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

Если надо подготовленное описание каждого рисунка предварять словом «Рис.» и очередным номером, то надо в поле Нумеровать рисунки, начиная с указать, с какого числа начать эту нумерацию. Это может быть любое положительное целое число.

Если в этом поле будет число, то подпись под рисунком будет начинаться с «Рис. #.+» (тут знак # обозначает очередной номер рисунка, а знак плюс — символ завершения вложенного стиля). Если надо выделить написание «Рис. #.» (цветом или другим начертанием), то надо сделать символьный стиль для выделения (пусть он называется, например, PictPrefix), и на вкладке Drop Cap and Nested Styles в поле Nested Styles выбрать этот стиль и выбрать для него указатель окончания действия символьного стиля (End Nested Style Character).

zamena10

Определение вложенного стиля в абзацном стиле для подписи под рисунком.

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

Выводимое перед слово определено в переменной
myPictureNumberPrefix = «Рис.»
и его можно при необходимости изменить (например, готовя книги на другом языке).

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

2. Поштучное размещение картинок

Скрипт, размещающий на текущей странице иллюстрацию, имя которой выделено в тексте, называется ProcessSelectedPictureNameLine.jsx.

Работа скрипта тоже начинается с окна диалога выбора каталога с иллюстрациями. Затем идет окно выбора объектных стилей, оно отличается от окна предыдущего скрипта.

zamena11

Теперь ищется файл OnePictureProcessing.ini, его содержимое выглядит примерно так:

5
4
C:\tmp\picts\
3
Рис.
7

Первая строка — индекс в списке стилей объектов для иллюстрации
Вторая строка — индекс в списке стилей объектов для фрейма с подписью
Третья строка — полный маршрут к иллюстрациям
Четвертая строка — отбивка между иллюстрацией и текстовым фреймом, мм
Пятая строка — слово, выводимое перед порядковым номером рисунка
Шестая строка — номер очередной иллюстрации. Если номер не задан, то эта строка пустая. В этом примере нумерация будет продолжена с номера 7

Из-за того, что пользователь теперь сам указывает строку с именем файла, идентификатор иллюстрации не нужен. Но этом режиме работы важно при нумерации рисунков автоматически запоминать, каким будет очередной номер. Эта информация сохраняется в шестой строке файла OnePictureProcessing.ini.

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

Примеры работы программы

zamena12

Описание левого рисунка отсутствует, поэтому текстового фрейма под рисунком нет. Текст под вторым рисунком оформлен стилем абзаца, указанном в объектном стиле для текстового фрейма.

zamena13

Выбрана нумерация рисунков. Описание левого рисунка отсутствует, поэтому в текстовом фрейме под рисунком только обозначение, оформлено символьным стилем, вложенным в стиль абзаца, указанный в объектном стиле для текстового фрейма. Текст под вторым рисунком: указатель рисунка оформлен символьным стилем, а подпись оформлена стилем абзаца.

zamena14

Нумерация рисунков не выбрана, но в объектном стиле для фрейма подписи указан абзацный стиль с вложенным символьным стилем. В результате текст под вторым рисунком полностью оформлен этим символьным стилем.

Результат работы программы можно увидеть, распаковав содержимое архива. Чтобы повторить пример, надо поместить в вёрстку текст со ссылками на рисунки. Это описание лежит на рабочем столе рядом с примером работы скрипта.

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

ivanyushin#yandex.ru

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

Скачать «русский архив»;

Download English scripts and materials

Дополнительно читайте:

Замена текста с маршрутом к рисунку на сам рисунок-2

Замена текста с маршрутом к рисунку на сам рисунок


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

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