Избранное »

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

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

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

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

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

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

Плагины

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

Скрипты

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

Скриптинг

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

Home » Работа в InDesign

Курсивим авторов в Списке литературы

Добавлено на 28.10.2011 – 01:157 комментариев | 3 423 views

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

Для ускорения «наклона авторов» придумалось такое Grep-выражение

которое ищет несколько идущих подряд фамилий с двумя инициалами, например: Иванов В.В., Сидоров Н.Н., Титов Г.П. … , и присваивает найденному символьный стиль Italic.

Здесь знак ^ говорит, что результатом поиска будет только та фамилия или ряд фамилий, который начинается с начала абзаца. Фамилия для поиска задаётся выражением (\u\l+) — заглавная буква, после которой идут несколько строчных. Два инициала —  это \u\.\u\.

Запятая после фамилии и инициалов (если авторов несколько) ищется при помощи \,? где знак вопроса говорит о том, что запятой может и не быть (т.е. встречается 0 или 1 раз). И, наконец, плюсик в конце позволяет искать несколько авторов подряд.

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

Если вы верстаете список литературы отдельным абзацным стилем, то можно такое Grep-выражение сделать как Grep-стиль (только для версий ID CS4 и более поздних).

Еще интересно, как бы эту задачу решили профи. Было бы здорово получить некое универсальное решение, и конечно, с расшифровкой.

Обновление темы

Нашлась в интернете страница толкового человека, на которой очень интересно и познавательно приведено полное решение проблемы «наклона авторов», описаны и объяснены все стадии процесса разработки Grep-выражения для Grep-стиля. Читайте об этом здесь, а мы приведем лишь конечный результат этой работы.

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

  • Manul:

    Я не профи 🙁 Использую отдельный абзацный стиль с грип-стилем: ^.+?\s(\u\.\s)*

  • alex:

    Я тоже не профи… И действую просто. Привожу в порядок текст, в том числе и список литературы (спасибо за скрипт Do_Text_OK!). Между фамилиями и инициалами проставляется неразрывный пробел, а между инициалами — тонкая шпация. Это учитывается при их поиске и замене на курсивное начертание. Но все приходится делать в три этапа.
    Первый. Ищем и заменяем фамилии с двумя инициалами с помощью выражения (\u\l+)~s(\u\.~<\u\.\,?)+
    Второй. Ищем и заменяем фамилии с одним инициалом с помощью выражения (\u\l+)~s(\u\.\,?)+
    Третий. Ищем и заменяем фамилии типа Цандер Дж. с помощью выражения (\u\l+)~s(\u\l\.\,?)+
    Возникало опасение: в списке литературы эти выражения могут поменять на курсив не то что надо. Пока такого не случилось не разу!
    Достоинство такого метода: порядковые номера в списке остаются нормальными, не курсивными.
    Конечно, хорошо бы свести три этапа в один. У меня не получилось. Вся надежда на профи в этом интересном и нужном для верстальщиков деле!

  • anzim:

    Я вот такую конструкцию использую
    ^((\u\l+ )*(\u\l+\-)*(\u\l+)+ (\u\-)*\u\l?\. ?(\u\l?\.)?(, )?)+

    Ищет и двойные фамилии (Петров-Водкин Х. З., De Vries P. J.) и двойные инициалы (Картер Дж.) и такую экзотику как инициалы через дефис (Namour M-A.).

  • anzim:

    Доработка

    ^(((\u)*\l+\s)*(\u\l+\-)*(\u\l+)+\s(\u\-)*\u\l?\.(\s?(\u\l?\.)?)*(,\s)?)+

    Эта работает и после прогона sZam. Обрабатывает как «De Vries P. J.» так и «de Vries P. J.»
    Тройные инициалы (Hoekstra J. B. L.) тоже причесывает.

    • LeonidB:

      Поскольку инициалы через дефис, как правило, бывают с точкой перед дефисом (Namour M.-A.), то предлагаю немного дополнить конструкцию anzim’а:

      ^(((\u)*\l+\s)*(\u\l+\-)*(\u\l+)+\s(\u\.?\-)*\u\l?\.(\s?(\u\l?\.)?)*(,\s)?)+

  • iv-mi:

    anzim, LionidB, спасибо. Учту Ваш опыт в очередном обновлении скрипта DoTextOK.

  • Ai-Rien:

    Этот же способ отлично работает если в сносках надо сделать авторов курсивом: задаем сноскам стиль абзаца «Сноски», в ГРИПе пишем: (((\u)*\l+\s)*(\u\l+\-)*(\u\l+)+\s(\u\.?\-)*\u\l?\.(\s?(\u\l?\.)?)*(,\s)?)+ (без первого символа ^, иначе будет искать только в начале параграфа), а дальше меняем формат найденного на стиль символов «курсив». Работает корректно в 99% — преверено в книге с 1435 сносками 🙂

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

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