Так как вы хотите, сделать не получится. Неспособность искать конструкции с использованием разрывов фреймов, страниц, колонок, четных и нечетных страниц забетонирована глубоко в индизайне и связана с тем, что разрывы являются одновременно и возвратом каретки - "\r". Если вы выделите символ разрыва страницы в тексте, который имеет GREP-код ~P
, и вставите его в поле поиска, то вставится символ "\r", а не ~P
. И то же самое произойдет с остальными символами разрыва. Вам на первой странице написали, как выкрутиться - поменять символ нужного разрыва на его же плюс невстречающийся %#символ#% в тексте, затем сделать нужные действия при поиске текста между этими двумя %#символами#%, и третим ходом удалить этот символ из всего текста.
Не совсем так. Поиск между двумя точками -- это просто. У меня задействована третья точка -- маркер разрыва колонки, который должен быть внутри.
Но вашу идею понял.
Сначала вопрос удивления. Как же так: сами по себе маркеры и разрыва страницы, и перехода на другую колонку ловятся, а внутри GREP-конструкции не работают? Это же как-то неправильно? Более того, маркер перехода на другую колонку работает в простой конструкции .~M. (что как раз ловит по одному символу до и после маркера -- и это было бы решением моей задачи, если бы в условии между разрывом страницы и маркером перехода на другую колонку был только один абзац).
Во-первых, делаем вывод, что заложить конструкцию в стиль (в виде GREP-инструкции) невозможно. Вот это я и хотел от кого-то опытных услышать.
Во-вторых, делаем вывод, что одним прогоном замен решить проблему тоже не получится. Это уже жаль, потому что хотелось решить её изящно.
В-третьих, менять маркер разрыва страницы на "его же плюс невстречающийся %#символ#% в тексте" -- это лишняя конструкция. Достаточна замена на уникальный символ (без оставления маркера разрыва; он нам был нужен только как указатель начальной и конечной границ текста, который следует разложить на две колонки). Назовём его "уникальный символ 1" или УС1.
Такая же ерунда получается с маркером перехода на другую колонку. Заменяем его на "уникальный символ 2" или УС2.
Тогда последний вопрос.
А как найти ближайший УС1 до УС2? Дело в том, что в тексте может быть много УС1, но не после каждого из них встретится УС2. (И не забываем, что между ними куча абзацев текста.) Как найти ближайшую связку "УС1 текст УС2"?