Итак, на данном этапе у нас в публикации секций ровно столько, сколько страниц- каждая страница является началом новой секции. Осталось выполнить последний шаг - переставить их в нужном порядке. Четные страницы (у них остаток от деления на 2 равен нулю) сдвигаем влево от корешка (BindingOptions. leftAlign), нечетные- вправо (BindingOptions. rightAlign), соблюдая определенные правила: четные идут с увеличением порядкового номера, нечетные- с уменьшением (LocationOptions. before). При этом количество сдвигов должно быть ровно в два раза меньше общего числа страниц.
ГЛАВА 5
Текстовые фреймы
До этого мы рассматривали работу с документом па уровне страниц, не затрагивая вопросы работы с текстом, а это- один из основных видов работ в InDesign. Как известно, в редакторе текст находится внутри контейнеров - текстовых фреймов, т. е. фрейм является родителем для его содержимого (при этом не только текста- во фрейме могут находиться иллюстрации, таблицы, т. е. фактически любой объект страницы). Обращаться к текстовым фреймам, как и к любым другим объектам, можно двумя путями: если он выделен, то непосредственно через selection[0], либо через обращение к родителю, если точка вставки находится в тексте.
Иерархические связи между текстовыми объектами публикации представлены на рис. 5.1.
На вершине иерархической лестницы, как и положено, - сам документ. Его содержимое может рассматриваться либо как набор отдельных материалов (stories), либо как набор страниц (разворотов), на которых расположены тек-товые фреймы. То есть нужно четко понимать, ч то фрейм принадлежит странице, а вот его содержимое - материалу. Это разные ветки объектной модели.
Материал может (но не обязан) иметь текстовую часть (кроме текста, в нем могут быть таблицы, объекты in-line, но это уже не texts); она же присутствует в любом фрейме. Текстовая часть может рассматриваться, в зависимости от потребностей, как набор абзацев, строк, слов или отдельных символов (insertionPoint здесь приведен лишь для демонстрации положения, занимаемого в иерархии местом установки курсора). Причем они могут рассматриваться как независимые объекты (например, слово № 9876 в материале), так и зависимые (абзац 123, и в нем выбранное слово имеет уже номер 567). Аналогичная картина и со всеми остальными текстовыми объектами.
Соответственно обращение может быть как полным:
(texts [0] .paragraphs [myparagraph].....characters [myCharacter_l]), ТЭК И сокращенным (characters [myCharacter_2]).
textFrames[0].parent -> page (document) textFrames[0].texts[0].parent -> story
Очень часто используется быстрый переход с отдельного фрейма на весь материал - parentStory.
Рис. 5.1. Иерархические связи между текстовыми объектами На самом низком уровне иерархии стоят объекты "символ" (character) и "точка вставки" (insertionPoint). Единственное отличие между ними в том, что точек вставки всегда на одну больше (insertionPoints [0] является ссылкой на самое начало родительского объекта, т. е. точка до первого символа). Например, myStory. insertionPoints[0] ссылается на самое начало материала, myTextFrame. insertionPoints [0]- на начало текстового фрейма И Т.Д. Объект insertionPoint незаменим при любых операциях, в которых происхо дит вставка чего-либо куда-либо: это касается как текста, так и заякоренных фреймов, таблиц и т. п.