GREP стили для First / Last on Page

  • Автор темы Автор темы gasyoun
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

gasyoun

Санскритятина
Топикстартер
15 лет на форуме
Сообщения
926
Реакции
30
Господа,

Воплощение идей http://forum.rudtp.ru/threads/okonchanie-1-go-i-poslednego-slova-v-kolontitul.59968/ но уже в рамках InDesign. Хотел я его избежать, да не получается. Евгений, прошу Вас обратить внимание - я честно старался, вот уже три часа ночи, а я не сдаюсь, хотя и глаза слыпаются.

а) Четные страницы:
Абзацный стиль glossa создал согласно http://design.tutsplus.com/tutorial...unning-headers-in-adobe-indesign--vector-3808, работает (на вложенных стилях, как и другие), показывает певые четыре буквы слова (не то, что мне нужно было).

б) Нечетные страницы:
Абзацный стиль experiment создал согласно http://forum.rudtp.ru/threads/okonchanie-1-go-i-poslednego-slova-v-kolontitul.59968/, не работает grepовские стили, должен показывать до четырех последних букв слова (то, что нужно бы).
Доп. условия. Если последняя буква h, то 5 букв включительно. Но без учета (не забирать, игнорировать, как будто бы там пустое место) маюскулов [A-Z]; слов внутри "прямых палок", как в | ā |; троеточий ...

Что получилось - в приложении.
Над чем потел (input) - по ссылке.

Заранее спасибо,
М.Г.
 

Вложения

Вы хотите сделать колонтитулы словарного типа?
 
колонтитулы словарного типа
Да, именно так. Но так как у меня обратный словарь, то меня интересует именно конец слова.

Предложили
Код:
[[:alpha:]]{4}h?\b
, но тоже не работает, а что не нравится не знаю, тулзы для тестирования грепов я не знаю.
 
Могу ошибаться, но регулярные выражения не имеют понятия о том, где именно находятся границы фрейма.
Возможное решение - скриптование. Но оно, на мой взгляд будет уникальным - написанным под конкретное изделие.
Самый простой вариант алгоритма, который вижу - пробежаться по всем страницам. Зацепить нужный фрейм (например самый объемный). Внутри этого фрейма взять первое и последнее слово. Откусить от них окончания. Поставить эти окончания в новые фреймы в колонтитуле. Для этого потребуется знать точное расположение фреймов в колонтитуле и используемый стиль.
 
где именно находятся границы фрейма.
А зачем мне оно? Мне для начала нужно эти последние 4 буквы отхватить.

пробежаться по всем страницам
Не совсем пойму, что Вы имеете ввиду. Вручную, что ли? Там 1300 страниц по четыре колонки. Все работает в том плане, что в фрейм колонтитула уходит начало слова, а мне нужен конец.
 

Вложения

  • nnoy.PNG
    nnoy.PNG
    20.7 КБ · Просм.: 981
Создаете переменную типа Running Header. Нацеливаете ее на символьный (а не абзацный) стиль.
Этот стиль будет маркировать для колонтитула как раз ваши последние 4 буквы. Или пять (если надо).
Стиль прописываете в стиле абзаца вашего словника. Стиль такой, как вам сказали:
[[:alpha:]]{4}h?\b
или
[[:alpha:]]{4}h?\к
если каждое слово в отдельном абзаце.
Никаких других вещей, кроме названия, отличающихся по оформлению, этот стиль не делает.
Вопросы остались?
 
[[:alpha:]]{4}h?\к
если каждое слово в отдельном абзаце.
Так и есть.

Создаете переменную типа Running Header. Нацеливаете ее на символьный (а не абзацный) стиль.
Этот стиль будет маркировать для колонтитула как раз ваши последние 4 буквы. Или пять (если надо).
Стиль прописываете в стиле абзаца вашего словника.
Показал на видео, все это у меня уже было. Или не все?

Вопросы остались?
Множество, но для начала прошу просмотреть видео и файл. Файл приложен.
 

Вложения

Даже
Код:
[[:alpha:]]{4}h?\к -> [[:alpha:]]{4}h?\k
не помогло.
 
Ну неинформативно же. А просто в поиск забить выражение и нажать кнопку "Найти" — выделит что-нибудь? А если h? временно выкинуть — сработает хоть где-нибудь?
 
Ну неинформативно же.
Я считал, что информативнее чем видео ничего не бывает, следовательно ошибался.

А просто в поиск забить выражение и нажать кнопку "Найти" — выделит что-нибудь?
Да, выделяет.

А если h? временно выкинуть — сработает хоть где-нибудь?
Никак не отржатается, смотрите.
 

Вложения

  • grep.png
    grep.png
    223.7 КБ · Просм.: 1 017
Более того, если символьному стилю "конец слова" для теста назначить цвет, то в тексте он выделяется как полагается. А вот в переменную значение не попадает.
 
Значит, выражение составлено правильно (если, разумеется, выделяет то, что нужно).
А вот в переменную значение не попадает.
А других текстовых фреймов (невидимых на видео) на сабжевой странице нет?

Не по теме:
Сам посмотреть не могу, ибо у меня по-прежнему CS5))
 
Значит, выражение составлено правильно (если, разумеется, выделяет то, что нужно).

А других текстовых фреймов (невидимых на видео) на сабжевой странице нет?
Не-а. Я покопошился несколько минут с прилагаемым примером. И так, и этак. Регулярку поправил - работоспособность проверил тем, что в стиле символа дал подсветку.

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

Извините, не знал, пересохранил для CS4.

других текстовых фреймов (невидимых на видео) на сабжевой странице нет
Разве что 3 штуки в самих мастер страницах в колонтитулах, а так - нет. По крайнее мере мне о них не известно. Ведь создавал с нуля, копипастил - откуда им там больше, чем одному было взятся? Не откуда.
 

Вложения

Извините, не знал, пересохранил для CS4.
Уже не надо.:)
Накидал макет с греп-стилями и переменными по ТЗ; оказывается, переменные просто "не видят" символьные стили, назначенные как греп-стили.
Выход вижу один — назначать их "вживую", без автоматики. Наиболее скоростной способ — назначить временно прописанному через греп-стиль символьному стилю "левый" цвет (по совету @kstati), после чего автозаменой найти этот цвет и заменить на символьный стиль, после чего в символьном стиле убрать цвет.
Но при внесении правок придётся вручную контролировать правильность расстановки стиля.
 
Поиск, грэп. Ищу - шаблон, меняю - пусто, параметры замены - нужный стиль. Но, чую, дело не решится.
 
Но, чую, дело не решится.
Список слов обновляется ежедневно. Не, я не сумасшедший. Помимо прочего нужно слова с ударениями в колонтитуле отображать без ударения.

переменные просто "не видят" символьные стили, назначенные как греп-стили
Век живы, век учись.
 
Список слов обновляется ежедневно. Не, я не сумасшедший. Помимо прочего нужно слова с ударениями в колонтитуле отображать без ударения.


Век живы, век учись.
Стоп-стоп. Требуется ещё и изменять текст в колонтитуле?
Возвращаемся к моему начальному предложению — скриптинг.
На мой взгляд это будет реально проще.
Оценив ситуацию алгоритм:
Подготовка:
В библиотеку (library) кидаются четыре фрейма с колонтитулом на нужных местах с нужным стилем абзаца.
Текст верстается как есть. Без выпендрёжа.

Код:
Для колонтитулов создаётся новый слой. При обновлении этот слой удаляется, создаётся снова пустым — все старые версии, если и были уходят в небытие.

Цикл для каждого разворота:
    Для левой страницы:
        Ищется первое слово из самого объемного textframe, от него отрезается нужная часть.
        Публикуется тот элемент из библиотеки, который соответсвует левому
        В этот элемент вставляется найденая нужная часть
       
        Ищется последнее слово из самого объемного textframe, отрезается нужная часть
        Публикуется тот элемент из библиотеки, который соответсвует второму слева.
        Вставляется нужная часть
    Для правой страницы аналогично.
При этом, необходимо:
1. Знать точные позиции блоков с «вырезками» слов. Я имею ввиду x,y. Кидать их в библиотеку с разворота проще всего — тогда можно будет использовать стандартную функцию — «поместить туда, откуда взял».

Если Вы не сильны в скриптинге — сделайте соответсвующий запрос. Лично я на халяву такое делать не собираюсь, но не исключаю, что кто-то решит проблему ради спортивного интереса.
 
Статус
Закрыто для дальнейших ответов.