Скрипт Indesign CC для применения стилей абзаца к нескольким абзацам

У меня есть документ Indesign со следующей структурой:

пункт 1 бла бла бла бла бла бла бла бла

пункт 2 бла бла бла бла бла бла бла бла

пункт 3 бла бла бла бла бла бла бла бла

пункт 4 бла бла бла бла бла бла бла бла

пункт 5 бла бла бла бла бла бла бла бла

. . . и так далее...

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

пункт 2: стиль А

пункт 3: стиль B

пункт 4: стиль А

пункт 5: стиль B

. . . и так далее (чередующийся шаблон)...

Я знаю, что это можно автоматизировать с помощью скриптов, и я также немного знаком с программированием в целом (JavaScript), но я понятия не имею, как это сделать в Indesign. Любое предложение?


person TheLearner    schedule 12.02.2015    source источник


Ответы (1)


Попробуйте этот скрипт:

при условии, что у вас есть текстовый фрейм, и вы ссылаетесь на него в переменной myFrame

    for (i=0; i < myFrame.paragraphs.length; i++)
    {
       if ( i%2 == 0 )
       {
        myFrame.parentStory.paragraphs[i].appliedParagraphStyle = app.activeDocument.paragraphStyles.item('Style B);
       }
       else
       {
        myFrame.parentStory.paragraphs[i].appliedParagraphStyle = app.activeDocument.paragraphStyles.item('Style A);
       }    

    }

Сохраните его как скрипт в папке скриптов и запустите из панели скриптов. Вам нужно будет добавить ссылку на кадр.

person Nicolai Kant    schedule 13.02.2015
comment
Спасибо за ответ! Оно работает. Последний вопрос, пока мы на этом: как вы ссылаетесь на стиль, если он сгруппирован внутри папки стилей? У меня есть группа Entry, содержащая стиль Head. Я пробовал Entry:Head, Entry(Head), Entry/Head... ни один из них не работал. - person TheLearner; 14.02.2015
comment
Вы ищете ParagraphStyleGroup со свойством paragraphStyles. Вы не можете называть свои объекты напрямую по имени без предварительной ссылки на них. Я настоятельно рекомендую проверить эту ссылку: jongware.com/idjshelp.html (Спасибо, Johgware) . Это даст вам InDesign DOM и адресует разные версии InDesign. - person Nicolai Kant; 16.02.2015
comment
Это должно работать: app.activeDocument.paragraphStyleGroups.item('Entry').paragraphStyles.item('Head') - person Nicolai Kant; 20.02.2015