вторник, 30 октября 2007 г.

Использование GREP в InDesign. Часть 1. Примеры использования регулярных выражений.

Самый простой способ познакомиться с регулярными выражениями, и убедиться в их превосходстве над обычным поиском по тексту – рассмотреть несколько примеров.
Стандартный поиск по тексту в InDesign CS2 позволяет использовать четыре шаблона (^9 - для любой цифры, ^$ - для любой буквы, ^? - для любого символа и ^w - для любого пробела). Эти же шаблоны можно использовать и в InDesign CS3 во вкладке поиска по тексту (Text). Эти без сомнения полезные шаблоны, однако имеют ряд очевидных ограничений: используя эти шаблоны нельзя организовать поиск повторяющихся элементов (например, чтобы найти все числа в тексте придется последовательно перебирать сначала все числа из одной цифры, затем из двух, из трех и т.д.), так же шаблоны нельзя использовать в строке замены (можно использовать Рисунок ^9 для поиска последовательности состоящей из слова “Рисунок” и следующей за ним цифры, однако замена данной последовательности на что-либо приведет к потере цифры).
При использовании же регулярных выражений, для замены всех слов “Рисунок” с последующей цифрой на слово “Фото” с сохранением цифры, достаточно в строке поиска указать Рисунок (\d), а в строке замены Фото $1. Последовательность $1 в строке замены является указателем на результат поиска заключенный в скобки в строке поиска. Более общий случай данного примера, выглядит так: строка поиска: Рисунок (\d+), строка замены: Фото $1, и позволяет найти и заменить все слова “Рисунок” с последующим целым числом (т.е. последовательностью из одной или более цифр) на слово “Фото” с сохранением следующего числа.
Еще один пример использования регулярных выражений для поиска последовательности символов. Довольно часто возникает задача поиска последовательности из прописных букв и применения к ней символьного стиля (обычно small caps для создания капителей). Эта задача так же имеет очень простое решение при использовании GREP. Строка поиска: \u\u+, строку замены в данном случае нужно оставить пустой (так как менять мы будем только форматирование), а в поле Change Format нужно указать символьный стиль который мы хотим применить к результату поиска. Метасимвол \u в данном примере обозначает все прописные буквы, знак + как и предыдущем примере означает (один или несколько), таким образом наш поисковый запрос найдет последовательность минимум из двух прописных букв.
Другая сильная сторона GREP – использование альтернатив. Например чтобы найти слова “слон” и “клон” можно использовать выражение (с|к)лон. Расширенная версия данного выражения – (с|к)лоны? может быть использована для поиска формы множественного числа (в результате будут найдены слова “слон”, “клон”, “слоны”, “клоны”). Знак вопроса в данном выражении означает, что буква “ы” может присутствовать на конце слова, а может и отсутствовать. Еще один пример простого, но одновременно мощного выражения – д[аоуеиыэюя]м. Данное выражение соответствует такой последовательности: буква “д”, затем гласная, затем буква “м”. Эта последовательность может быть как отдельным словом (дом, дым), так и встречаться внутри более длинного слова (задуматься, дымиться). В дальнейшем мы рассмотрим как осуществлять поиск только по словам целиком. Этот пример так же демонстрирует как определить свои собственные шаблоны, в данном случае шаблон для гласных букв.
В качестве последнего примера используем задачу которая может встретиться в реальной работе. По условию задачи у нас есть список контактов, в которых среди прочей информации указан адрес электронной почты. Наша задача добавить слово “E-mail:” перед каждым адресом. Убедимся что знак “@” в тексте больше нигде не встречается, т.е. если строка содержит знак “@”, то эта строка является адресом электронной почты. Теперь нам осталось записать выражение которое означает “если строка содержит знак “@”, добавить в начале слово “E-mail”. Данное выражение записывается следующим образом ^(.+@). В поле замены указываем слово “E-mail” за которым следует результат поиска по выражению заключенному в скобки (который в каждом случае является текстом между началом абзаца и символом “@”).

воскресенье, 21 октября 2007 г.

Техническое № 1

Я таки решился включить анонимные комментарии. Надеюсь спамом не засыпит. Так что комментари всячески приветствуются.

среда, 17 октября 2007 г.

Использование GREP в InDesign CS3 Часть 0. Введение.

Этим постом я начинаю серию постов посвященных использованию GREP в InDesign CS3, для того чтобы систематизировать свои знания в данной области и собрать их в одном месте. Так же надеюсь что эти посты окажутся полезны кому-нибудь еще. (На самом деле я не уверен что кто-то еще кроме меня читает этот блог, поэтому был бы рад увидеть хоть какие комментарии)

К сожалению GREP пользуется дурной славой сложного инструмента, доступного только программистам. В действительности регулярные выражения – самый мощный, на сегоднящний день, способ поиска текстовых фрагментов в электронных документах.

Сейчас регулярные выражения используются многими текстовыми редакторами и утилитами для поиска и изменения текста на основе выбранных правил. Многие языки программирования уже поддерживают регулярные выражения для работы со строками. Однако, несмотря на сложность изучения всех аспектов использования регулярных выражений, многие задачи с которыми сталкиваются пользователи InDesign в реальной работе могут быть решены с использованием удивительно простых выражений.

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

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

Само название GREP произошло от набора команд g/re/p используемых в текстовом редакторе ed операционной системы UNIX. Этот набор команд осуществлял поиск по файлу строк соответствующих заданному регулярному выражению и выводил их на печать.

В следующей части будут рассмотрены примеры простых выражений и преимущества которые имеет GREP перед стандартным текстовым поиском.

воскресенье, 15 апреля 2007 г.

Маленькие радости

В новую версию InDesign инженеры Adobe добавили множество новых замечательных функций. В их числе: встроенные эффекты Photoshop, стили ячеек и таблиц, текстовые переменные, возможность выбора нескольких файлов для помещения в InDesign, возможность помещать в InDesign файлы InDesign в качестве объектов, и т.д. Однако гораздо большеее значение для увеличения эффективности работы имеют "маленькие" изменения внесенные в уже существующие инструменты. Именно эти "маленькие радости" позволяют сэкономить значительную часть рабочего времени дизайнера или верстальщика.
Даллее я постараюсь описать некоторые из них.

1. Панель "Pages". В панель "Pages" теперь отображается preview страницы, что значительно упрощает навигацию по документу. Удерживая нажатой кнопку мыши, теперь можно прокручивать содержимое панели (так же работает колесо прокрутки мыши или two-finger scroll на ноутбуках).

2. Control Panel. Теперь автоматически подстраивается под разрешение вашего монитора, чем шире монитор - тем больше опций на ней присутствует. Если какие-то опции не используются (например кнопка Bridge), ее можно убрать с панели через меню Customize.

3. Double Click. В CS2 двойной щелчок мышью, с выбранным инструментом Selection на текстовом фрейме приводил к автоматическому изменению инструмента на инструмент Text. В CS3 эта возможность была расширена. Двойной щелчок на объекте с выбранным инструментом Selection изменяет инструмент на Direct Slection, двойной щелчок с Direct Slection - на Selection. Так же двойной щелчок инструментом Selection на группе объектов, позволяет выбрать один объектов в группе.

4. Step and Repeat Preview. В диалоге Step and Repeat появилась возможность просмотра результата (галочка Preview).

5. Fit Frame to Content. Функция позволяющая изменить размер фрейма, так чтобы он полностью отбражал содержимое была еще в Indie 1.0. В CS3 она была расширена. Теперь подогнать размеры фрейма можно двойным щелчком на его границе или углу. Так двойной щелчок на правом нижнем углу текстового фрейма увеличит фрейм в ширину и высоту, двойной щелчок на правой границе фрейма - только в ширину.

6. Align to Page. Полезная функция, отсутствие которой до версии CS3 трудно объяснить. Теперь объекты можно выравнивать относительно страницы, разворота или относительно полей страницы.

7. Master Pages. При включенном режиме Show Frame Edges объекты на "мастерах" теперь обозначаются пунктирной обводкой. Master Page'и теперь можно загружать из других документов (Load Master из меню панели Pages) или синхронизировать во всех документа при использовании Book. Добавлена возможность обтекания текстом объектов на "мастерах".

8. Find Font. Поиск и замена шрифта теперь также возможна и в определениях стилей. (Галочка Redefine Style When Changing All).

9. Style Groups. Символьные стили, стили абзацев и объектов, теперь можно собирать в группы, причем в разных группах могут быть стил с одинаковыми именами.

10. Looping Nested Styles. Nested Styles один из лучших методов форматирования текста абзаца с использованием различных символьных стилей. В CS3 добавлена команда "repeat", позволяющая зациклить применение стиля до конца абзаца. Например, можно применить один символьный стиль для первого слова, другой - для второго и затем повторять эту последовательность стилей до конца абзаца.

11. Full-Featured Fitting. Теперь параметры маштабирования такие как Fill Frame Proportionally можно применять к пустым фреймам, InDesign автоматически применит эти параметры к любым изображениям помещенным во фрейм. Так же можно записать эти параметры в определение стиля объекта.

12. JPEG Resolution. Экспорт в PSD файлы высокого разрешения с использованием слоев все еще недоступен, зато теперь можно задавать разрешение для экспортируемых jpeg файлов.

13. Print Booklet. Взамен InBooklet SE от компании ALAP купленной в прошлом году Quark, на том же месте появился Print Booklet, незаменимый инструмент при изготовлении простого спуска полос.

Конечно это далеко не полный список изменений и улучшений в InDesign (например, совершенно не освещен вопрос применения XSLT при импорте XML), тем не менее если этот документ оказался вам полезен, или вы хотите что-то уточнить или добавить, буду рад видеть ваши комментарии.

вторник, 6 марта 2007 г.

Презентация CS 3

Официальная презентация продуктов Creative Suite 3 состоится 27 марта, однако реальные продажи начнутся позже. Скорее, скорее бы. Уже руки чешутся попробовать все эти Nested style looping, Table and cell styles вместе с Text variables и прочими Productivity enhancements. Взято отсюда.

Клавиатурные сокращения (версия для Mac OS)

Для тех, кто как и я, не имеет возможности купить правильный постер. Сделал свой (только для Mac OS). Брать можно тут (PDF 1.1 Mb). Распечатываем и вешаем на стену. Об ошибках сообщайте в комментариях или по почте.

четверг, 15 февраля 2007 г.

Поворот текста в фрейме

Для создания повернутого текста в фрейме достаточно в внутри готового фрейма создать еще один маленький фрейм, повернуть его на нужный градус и объединить эти два фрейма с помощью Pathfinder > Add. Теперь попробуйте напечатать что-нибудь в новом фрейме...