Помощь - Поиск - Пользователи - Календарь
Полная версия: Секция академической GREPли :)
ProDTP > Графика и препресс > Adobe InDesign
Страницы: 1, 2, 3, 4
PAIN.(t)
Начиналось все с вопроса по GREP-у на форуме RuDTP… Посоветовавшись с Женей (langry) я решил стартовать подобный топик и у нас…

И начну, наверное, со старой проблемы, которая пока так и не решилась…

IPB Image

Итак, дан неформатированный текст в котором нужно найти определенный фрагмент.
1. Известно, что перед этим фрагментом обязательно идет строка, содержащая "Что говорит" и произвольное слово (в примере – "юрист"; также может быть "предприниматель", "налоговик" и др. и пр…)
2. Искомый текст может содержать произвольное количество абзацев.
3. За искомым текстом всегда находится фраза "А что на практике?"

При попытке описать positive lookbehind (пока речь только о нем) такой конструкцией:
Код
(?<=Что говорит\s\w+\?\r)

получаю Cannot find match… (если ищу вручную) или сбой в работе скрипта.
Добавляя-убирая элементы в конструкции, обнаружил, что сбой появляется при добавлении в запрос множества вхождений (+ или {1,}).
Исходя из этого, есть предположение, что выражения типа \w+ или \w{1,} недопустимы в lookbehind-е…
Иных объяснений происходящему я пока не вижу, хотя не сегодняшний день не нашел ни подтверждения ни опровержения этого…

Если кто-то сталкивался с подобным и знает решение проблемы, либо просто имеет какие-либо здравые соображения по сути вопроса – поделитесь, буду безмерно благодарен…

Имеющих проблемы с GREP-ом, и просто желающих в нем разобраться – прошу излагать все здесь…
Желающих пофлеймить – прошу сторониться этой темы, стучать модераторам буду лично. Без обид.


===================================

Здесь выложено все в одном флаконе: выдержка из руководства, видеоролик, свой скрипт по FindChangeByList и бонусом русский мануал по InDesign Tagged Text (скачать 47,5 Мб)
PAIN.(t)
Ну вот, пользуясь появившимся свободным временем… выполняю давнее обещание smile.gif
Познакомимся с GREP-ом поближе…
Что стоило бы порекомендовать для начала:

Википедия. Подстановочные знаки – подробно и вполне прилично изложены основы. Что такое регулярные выражения, базовые понятия, основны синтаксиса и проч. Рекомендую.
Подстановочные знаки в Word-e – немного не по нашей теме, но… Во-первых, случаи бывают всякие smile.gif и знать о таком мощнейшем инструменте в MS Word нужно (ну а применение уже найдете сами). Во-вторых, в материале опять-таки довольно популярно изложены основы работы с подстановочными знаками, приведены довольно наглядные примеры. Рекомендовано к ознакомлению.
Глава из официального русскоязычного руководства по InDesign CS3, посвященная работе с GREP-ом. Без комментариев. (UA-IX, 650 Kb)
То же, онлайн, русский раздел на Adobe LiveDocs.
Видеоролик с сайта YabbAdobeDoo. И зеркало в UA-IX Внимание, траффик!!! 48,5 Mb
GREP в InDesign. Что и как – ветка на RuDTP; собственно говоря – прародительница нашей ветки. Поскольку в мои планы не входит тупо передирать инфу оттуда – не ленитесь, и читайте первоисточник.

Вот, собственно говоря, пока и все. Если кому-нить есть чем дополнить данный список – прошу.
viko
Для Мака есть небольшая утилитка по проверке правильности регулярных выражений могу выслать по мылу или выложить куда-нибудь (но ни разу этого не делал, поээтому мыло предпочтительней)
PAIN.(t)
viko
Спасибо за инфу. Если утилитка бесплатная, м.с.м. лучше все-таки выложить (только желательно на какой-нить демократичный в плане free-аккаунтов обменник).
Мало ли кто захочет ее потестить…
С платной, конечно, сложнее… Скинь, пожалуйста, в ПМ лицензонное соглашение, посмотрим какие там условия rolleyes.gif
PAIN.(t)
Хинт для украиноязычных пользователей:
Конструкция "найти любой кириллический символ"
Код
[А-Яа-я]

не найдет литеры І, і, Ї, ї, Є, є, Ґ, ґ, со всеми вытекающими отсюда.
Чтобы запрос работал корректно, их нужно прописать явно:
Код
[А-Яа-яІіЇїЄєҐґ]

У русскоязычных пользователей подобные траблы наблюдаются только с литерами Ё, ё (по моим наблюдениям). Решаются аналогично.

Ну и напоследок smile.gif … вот так всем известную задачку можно решить с помощью GREP-а wink.gif
MrDesigner
Реально ли с помощью GREP создать выражения для "нормализации завёрстываемого текста"? Хотя бы "light"-аналог широко известного sZam'а?

P.S. Прошу заметить, что я знаю о существовании вышеупомянутого платного скрипта - вопрос в принципе.
PAIN.(t)
Да, вполне реально. И есть 2 варианта:
1. Переточить под эти задачи упомянутый в подзаголовке темы FindChangeByList. Постараюсь как-нить в обозримом будущем осветить эту тему (кстати, сам же Батушев как-то и назвал подобную переточку light-аналогом sZam-а).
2. Можно написать свой скрипт, со всеми нужными примочками, как то: возможность выборочно обработать материал/весь документ/все открытые документы; изменять список замен по своему усмотрению и т.д. (имею основания полагать, что 5-й sZam и сделан на основе GREP-a)
viko
Утилита называется RegExhibit 1.2 (бесплатная), поиском в Гугле обнаружилось, что скачать можно с разных мест. Я брал с сайта Apple
http://www.apple.com/downloads/macosx/deve...regexhibit.html
PAIN.(t)
Спасибо! Когда в следующий раз до Хакинтоша дорвусь – обязательно опробую.
Ну и по результатам отпишу, чего и как…
PAIN.(t)
Цитата
FindChangeByList… … …постараюсь как-нить в обозримом будущем осветить эту тему

Ну вот и наступило ближайшее будущее smile.gif
Когда-то давным-давно попался мне на глаза обзор кварковских экстеншнов, один из которых якобы умел делать т.н. Batch Replace (т.е. автоматически производить определенную последовательность замен в тексте)… И конечно же, он был "For Mac Users Only"… Ну что тут скажешь… нет гармонии в мире…
В этом отношении больше повезло ИнДизанерам – у них была возможность реализовать подобную функцию самостоятельно, через скрипт. Может быть, это даже и было реализовано – лично я не встречал подобных наработок. А время от времени такой продукт был ох как нужен…
И вот с выходом CS3 в наши руки наконец-то попал мощнейший инструмент, а вернее, даже два инструмента: GREP и скрипт FindChangeByList.
С первым мы уже немного разобрались, а второй покрутим-повертим сейчас. Ну, с Богом.

FCL входит в стандартный "боекомплект" ИнДеза. Реализован в виде связки из скрипта и заранее подготовленного списка замен (попросту говоря, текстового файла). Скрипт реализован в двух вариантах: на VBS и на ES (JS) – вы можете найти каждый в соответствующей папке панели скриптов.
И все бы хорошо, но… со скриптом поставляется один-единственный набор замен, который дан скорее для беглого ознакомления с синтаксисом FCL, нежели для работы (он "подчищает" грязь в наборе – множественные пробелы, пустые абзацы и еще кое-что)… Собственно говоря, такой подход и логичен – ибо угодить всем в даном случае просто нереально. Вот вам пример, знакомьтесь – и вы сами кузнечики своего счастьечка…
Поскольку б/м подробного руководства в сети я не нашел, сейчас и попробуем разобрать тему самостоятельного составления такого списка.
Как вы уже поняли, дело иметь мы будем с обычным текстовым файлом, поэтому лучшим другом на ближайшее время нам станет "Блокнот" (или более продвинутый редактор – это уж от ваших возможностей зависит). В целом, файл списка замен имеет табличную структуру: он содержит 5 колонок (четыре – опции поиска-замены; и одна – вспомогательная, в которую мы можем записывать свою информацию – комментировать запросы или просто писать стихи), и произвольное количество строк (в контексте – абзацев). Каждая такая строка-абзац содержит поисковый запрос. Взглянем на эту красоту в целом:

findType <tab> {findProperties} <tab> {changeProperties} <tab> {findChangeОptions} <tab> description

Теперь разберемся, кто есть ху ©

IPB Image

<tab> – табулятор. Именно табуляцией разделяются опции поиска-замены наших запросов (помните про 5 колонок?).
findType – на скриншоте обозначен цифрой 1. Попросту говоря, это вкладки, которые вы видите вверху диалога Find/Change. С той лишь разницей, что вкладок в диалоге 4, а этот параметр может принимать одно из трех значений: text, grep либо glyph (и угадайте с трех попыток, куда "девалась" четвертая вкладка). Комментировать, когда и зачем вписывать то или иное значение, думаю, не нужно…
{findProperties} –(2). Здесь мы вписываем параметры поиска. Что мы хотим найти, каким стилем должен быть оформлен искомый текст, какого цвета он должен быть и т.д. – все эти значения прописываются здесь.
{changeProperties} – (3). То же, но для замещающего текста.
{findChangeOptions} – (4). Дополнительные опции поиска замены.
description – необязательный параметр. Ваши комментарии.

Обратите внимание, что опции 2, 3 и 4 заключены в фигурные скобки. Делается это потому, что в них могут быть заданы несколько параметров одновременно (например: искомый текст, гарнитура, цвет, определенный стиль абзаца). Сам параметр описывается следующим образом: указывается его имя (findWhat, fontStyle, appliedParagraphStyle), а затем через двоеточие – его значение (например: {findWhat:"Два литра пива"}).
Если вы выполняете сложный поиск по нескольким критериям, их описания разделяются запятыми.
Важно помнить, что даже если вы не указываете дополнительных параметров поиска, все равно в поисковом запросе на месте findChangeOption нужно прописать фигурные скобки.

Вроде все… Учитывая позднее время, буду я закругляться на сегодня… Примеры готовых запросов приводить не буду – вы их найдете в FindChangeList.txt
Пробуйте, делитесь результатами. Будут трудности – пишите, будем разбирать.

Хе, а вот и не все… Маленький бонус: взял я в руки напильник… и чуток подрихтовал скрипт.
Теперь при запуске скрипта есть возможность выбрать произвольный файл со списком замен (правда пока этот выбор жестко привязан к одной папке).
Установка:
Содержимое архива (скрипт и папка с набором замен) распаковать:
…\Documents and Settings\USER_NAME\Application Data\Adobe\InDesign\Version 5.0\Scripts\Scripts Panel\
(ребята, я не виноват… это адоба в такую ж* папку со скриптами засунула)
Файлы с наборами замен добавлять в …\FindChangeLists
Забрать можно здесь (UA-IX, 10Kb)
t34
Юр, может на рапидшару выложишь?..
PAIN.(t)
Вот на рапиду как раз и не могу… sad.gif Админы закрыли.
Но зеркал наделаю:
SendSpace
Depositfiles
MediaFire
WebFile
iFolder
PAIN.(t)
Обнаружилась еще одна бесплатная (вернее, donationware) софтюлина для проверки регулярных выражений – RegExpress (актуальная версия – 1.4; Mac Users Only):
Страничка программы
Прямой линк на закачку

PS. UB-шная она или нет – пока сказать не могу, Мака на работе нету.
Melnikoff
Господа, часть линков на материалы по GREP уже издохла  sad.gif

Впрочем, у меня есть конкретный и достаточно срочный вопрос. В телепрограмме есть время в формате 00.00. Надо перевести на два часа вперёд, то есть на 02.00. Реально это сделать через GREP или всё-таки надо скрипт писать?

А то старые скрипты в  ID CS3 не работают по причине серьёзных изменений команд (связанных с поиском), а писать новые пока толком некогда...
Evgen
Михаил, а почему простая замена не устраивает?

А! кажется, понял!
Приведен формат записи времени, а не конкретное время 00.00. smile.gif
PAIN.(t)
Melnikoff
Увы, нельзя… GREP может быть основой для более удобной работы с динамическими данными, но сам он не динамичен… Увы… увы…

К сожалению, у меня нет времени за этим следить (как и развивать топик)… Кое-что уже прописали (правда еще не обнародовали) здесь на портале, остальное есть у меня – стучитесь, материалы из открытых источников; следовательно, опасаться нечего.
PPS. Скрипты от ЦС2 довольно-таки легко перетачиваются (Visual Basic)
Melnikoff
Evgen, да, там надо все варианты времени менять. Да и не только это, это я в качестве примера.

PAIN.(t), да, скрипты под VB. Но навскидку я не разобрался, как их менять. Раньше было FindPreferences, ChangePreferences и потом Search c параметрами. Вот с двумя первыми понял - теперь FindTextPreferences, ChangeTextPreferences. А как изменился сам Search - я не понял. И подробной документации по скриптам для CS3 на сайте Адоба не нашёл (списка команд, в смысле)
Evgen
Ха-ха. А ведь можно и простой заменой сделать.
Всего-ничего: 24 замены. ;)
Melnikoff
Ну дык можно и обычными заменами  smile.gif
Evgen
Ни разу не заглядывал в скрипты для ИнДизайна, но предполагаю, что там JS-ориентированный язык (?).

Воткнуть в скрипт поиск цифирек с замыкающей точкой и парой любых цифр с заменой... что-нибудь вроде этого:
Код
switch('str')
{
case '00':
  return ('02');
case '01':
  return ('03');
.....
}

Здесь синтаксис условный, конечно.

Update
Заглянул.
Есть не только JavaScript, но и VisualBasic.
Думаю, что можно вовсю использовать вышеупомянутый оператор switch вместе с поиском и работой со строками.
PAIN.(t)
Melnikoff
Ну, не совсем так, как ты пишешь… FindPreferences не переименовались так себе, с доброго дива – расширился функционал ИнДеза, и их попросту раздробили… Посмотри скриншот:

IPB Image

Тебе, в контексте, нужны FindGrepPreference и FindTextPreference… а соответственно, ChangeGrepPreference и ChangeTextPreference (на одном скриншоте у меня не уместились, а вставлять два – было бы чересчур).
Сама замена (то, что было Search) выполняется методами .ChangeText или .ChangeGrep, например, myDocument.ChangeGrep или myStory.ChangeText

Evgen
В каждой шутке есть доля правды… "Всего-то ничего 24 замены" раз и навсегда прописываются в текстовый файлик… и юзаем FindChangeByList – чуть выше все довольно подробно расписано…
Цитата
Есть не только JavaScript, но и VisualBasic

Там их целых три, по два на каждую платформу (Мак/ПЦ): ExtendScript (JavaScript) – кроссплатформенный, VB/VBS – ПЦ, AppleScript – Мак…
Evgen
> прописываются в текстовый файлик… и юзаем FindChangeByList

Да, я вчера как раз его и смотрел. ))
Насколько я по-быстрому понял, нужно изменить
\Program Files\Adobe\Adobe InDesign CS3\Scripts\Scripts Panel\Samples\JavaScript\FindChangeSupport\FindChangeList.txt
PAIN.(t)
Не обязательно. Если пользоваться не штатным скриптом, а моей доработкой оного (см. в конце поста #10) – таких файликов с пресетами замен можно наплодить сколько душа пожелает, и выбирать нужный при запуске скрипта.
Если же пользоваться штатным, то ты прав – нужно изменить содержимое FindChangeList.txt
Melnikoff
Цитата(PAIN.(t) @ Mar 17 2008, 16:50) *

FindPreferences не переименовались так себе, с доброго дива – расширился функционал ИнДеза, и их попросту раздробили…


Дык, причины изменений и раздробление поиска - это я заметил и понял. Я не понял как теперь в новых условиях работать с командой поиска. Так что за .ChangeText и .ChangeGrep спасибо. Респект.

А нормального справочника команд для VB нигде не пробегало? (ну не дружу я с Java, хоть и поклонник OpenSource, и знаю четыре языка программирования)  smile.gif
Для CS1 был нелохой Scripting Guide... Вот для CS3 я пока не видел.
PAIN.(t)
Если честно тебе сказать…
Кое в чем мы с тобой товарищи по несчастью – Java/Extend и мне не особо дается…
А в ВБ я, чаще всего, заместо справочников F2 пользуюсь…
Дома посмотрю, может и нарою че-нить для CS3 – чесслово, сам не знаю, что у меня есть на эту тему…
putnik
Цитата(PAIN.(t) @ Dec 6 2007, 03:17) *

Хе, а вот и не все… Маленький бонус: взял я в руки напильник… и чуток подрихтовал скрипт.


Я тут тоже по своему подрихтовал его (JS).  В текстовом файле FindChangeList.txt можно создавать списки поиска/замены, которые потом выбираются из диалогового окна скрипта. Подробнее (и скачать) на странице http://www.indesign.dezigner.ru/RealScript...geByListsScript.
arhip
Несколько рядовых примеров использования GREP. Делались либо для себя, либо по просьбе.

1. Вставка неразрывного пробела между инициалами и между инициалом и фамилией.
Задумывалось для случая, когда однобуквенные инициалы (не "Дж.", например) стоят перед фамилией, так что для универсальности потребует доводки.
Find what: (?<=\b\u\.) (?=\u)
Объяснение здесь и далее в духе for dummies  wink.gif:
Ищем обычный пробел. Он здесь посередине, между скобками.

Первое условие: ПЕРЕД пробелом должна стоять (?<=) прописная буква \u с точкой \.

Дополнительное условие: перед этой прописной \u должна проходить "граница слова" \b. В противном случае, GREP найдет пробел после аббревиатуры в конце предложения: "...заявил представитель США. М. Петров ответил на это, что..."
А вот скобка, например, не повлияет на поиск: "...заявил представитель США. (М. Петров это предсказывал.)"

Второе условие: ПОСЛЕ найденного пробела должна быть (?=) прописная буква \u.


Change to: ~< [+ опция No break]
Или любой другой пробел, по вкусу.


2. Активация автоматических переносов для иностранных слов в русском тексте.
При большом количестве иностранных слов они могут нарушить набор, если не будут автоматически переноситься. А они не будут, пока им не назначен соответствующий язык. Проблема решается очень просто, на примере русско-английского текста:
Find what: [A-z]
Ищется любой символ латиницы.
ЛИБО
Find what: \b[A-z]+
Оптимизированный вариант поиска. Поиск идет не посимвольно, а по словам.
Change to: $0 [+ опция Language:English:USA]
Каждому найденному вхождению присваивается опция "американский англ. язык".


3. Неразрывный пробел между числом и именем месяца.
Find what: (?<=\d) (?=январ|феврал|март|апрел|мая|мае|маю|июн|июл|август|сентябр|октябр|ноябр|декаб)
Поиск пробела, перед которым стоит любая цифра, а после него – один из перечисленных вариантов текста.
Change to: $0 [+ опция No break] либо просто ~S
Найденному пробелу назначается опция неразрывности, либо он меняется на неразрывный гибкий пробел, кому как нравится.


Буду благодарен за поправки, указание на ошибки или оптимизацию.


UPD:
Сам нашёл у себя ошибку. Искать слова латиницей надо не через "\w" (=any word character), а выражением "\b[A-z]+" (=набор любых лат. символов в границах слова). Исправил!
PAIN.(t)
arhip
Спасибо! Еще одна плюшка от меня:

1. Удаление пустого "хвоста" материала.
При импорте текста в ИнДизайн в конце материала образуется "хвост" из пустых абзацев; абзацев, содержащих только пробелы и т.д. Избавляемся от всего этого мусора одним махом:
Find what: \s+\Z
Change to: ничего

Комментарий: \s – "Any white space", к которым относятся все пробелы, табуляции, переводы каретки, break-символы. Знак "+" обозначает, что быть их может "One of more", т.е. "один или более", но максимальное количество не ограничено.
И, наконец, \Z – это, собственно, End of Story – конец материала (спасибо Виталию за подсказку).

PS. Правильнее было бы оформить запрос так: \s+(?=\Z), но в данном случае смысла в этом я не вижу, т.к. заменить "End of Story" на "ничего" не получится при любых раскладах…  wink.gif
arhip
А существует ли наборы для скрипта FindChangeByList, которые выполняют нормализацию русского текста? Или стоит сделать? Полезная получилась бы вещица.
PAIN.(t)
Существует sZam… получится, может, и полезно… но как-то нехорошо…
arhip
Чем же нехорошо? Я лично пользуюсь sZam'ом, но кто-то не может купить, а у кого-то на Маке... exe-шник не запускается.
Любимцев
Есть вот такой скрипт. Функционал пониже, но для CS3 бесплатно. Вероятно тов. Иванюшин может его доработать, при определенных условиях.
arhip
Насколько я могу судить, все замены, предложенные Михаилом, несложно решить и через GREP (что не уменьшает удобства скрипта, конечно). При этом, в GREP'е разобраться проще, чем в JS, а значит, гораздо большее число людей сможет развивать FindChangeByList, дополняя его по своему вкусу и потребностям.
arhip
В коллекцию.
У "новых соседей" в разделе Загрузок, в самом низу страницы, есть ссылка на 2 постера с перечислением спецсимволов и правил построения выражений GREP (PDF в архиве 100+ кб)
arhip
Задача: сделать неразрывным пробел после некоторых 1- и 2-буквенных слов.

Вариант 1
Find what: \  b(А|a|В|в|Во|во|Да|До|до|За|за|И|и|Из|из|Их|К|к|Ко|ко|На|на|Не|не|Ни|ни|Но|но|О|
о|Об|об|От|от|По|по|С|с|Со|со|То|У|у|Уж|Я)(\s)

В качестве исходного перечисления взят набор 1- и 2-буквенных слов из sZam 4.1 Виталия Батушева. Сокращайте/дополняйте по вкусу и потребностям.
Change to: $1~S
Т.е. заменить найденный предлог, частицу или союз на него же + неразрывный гибкий пробел.


Вариант 2
Find what: (?<=\  b(А|a|В|в|Во|во|Да|До|до|За|за|И|и|Из|из|Их|К|к|Ко|ко|На|на|Не|не|Ни|ни|Но|но|О|
о|Об|об|От|от|По|по|С|с|Со|со|То|У|у|Уж|Я))(\s)

Ищется только пробел после перечисленных вариантов слов.
Change to: $0 [+ опция No break] или ~S
Найденному пробелу назначается опция неразрывности, либо он меняется на неразрывный гибкий пробел, кому как нравится.


Внимание! Форум почему-то не даёт правильно написать код. В сочетании "\  b" в обоих вариантах пробел надо убрать!
Параметры поиска сохранить для повторного использования. Например, как No Break After. Enjoy.
putnik
С немецкого сайта Das Indesign FAQ можно скачать 14-страничный PDF-файл, в котором для некоторых команд GREP-Wildcards на раскладке клавиатуры (+спецсимволы) отмечены те символы, на которые действет данная команда. Информация приведена раздельно для Win и Mac. Смотреть и скачать здесь. На этом же сайте есть интересные скрипты
yann777
Как применить [опция No break] в FindChangeList.txt?
PAIN.(t)
В нужной секции прописать:
Код
noBreak:true
yann777
Это в FindChangeList.txt работает:
grep {findWhat:"(?<=\\d) (?=январ|феврал|март|апрел|мая|мае|маю|июн|июл|август|сентябр|октябр|ноябр|декаб)"} {changeTo:"", noBreak:true} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false} Неразрывный пробел между числом и именем месяца.

А это не хочет  mad.gif :
grep {findWhat:"& #092;b(А|а|В|в|Во|во|Да|До|до|За|за|И|и|Из|из|Их|К|к|Ко|ко|На|на|Не|не|Ни|ни|Но|
но|О|о|Об|об|От|от|По|по|С|с|Со|со|То|У|у|Уж|Я)(\s)"} {changeTo:"$1~s"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false} пробел после некоторых 1- и 2-буквенных слов.

Есть соображения? Внимание! Форум не даёт написать \b без пробела между кавычкой и открывающей скобкой, получается & #092b;
PAIN.(t)
Слеши, будь они счастливы… Продублируйте их во втором примере
grep {findWhat:"\\b(бла-бла-бла)(\\s)"} …
Ну и далее по тексту…
yann777
Встречал где-то в темах, что \d не проходит - нада набирать \\d. Подумал глюк только на \d распространяется. Оказывается все слэши двоить нада  wink.gif . Спасибо, заработало.
PAIN.(t)
Да у нас тоже как-то об этом упоминали
Виталий тогда говорил, что это Джавовская заморочь… имею подозрения, что и форумный движок по той же причине так на "\b… вызверился.

Кстати, по ходу пьесы… Кто-нить знает, поддерживает ли VB6 вот это контрол:

IPB ImageIPB Image

И как это чудо зовется и где живет?
yann777
Цитата(PAIN.(t) @ Aug 9 2008, 22:50) *

1. Удаление пустого "хвоста" материала.
При импорте текста в ИнДизайн в конце материала образуется "хвост" из пустых абзацев; абзацев, содержащих только пробелы и т.д. Избавляемся от всего этого мусора одним махом:
Find what: \s+\Z
Change to: ничего


Ивзиняюсь, может лучше так:

Find what: \s+$
Change to: ничего

Эта комбинация ещё и удаляет символ конца обзаца перед #.
vbatushev
\s+\Z предпочтительнее, если нужно удалить именно в конце Story.
\Z – абсолютный конец текстового потока (stream), в нашем случае, Story,
$ – конец строки (string), в нашем случае, конец содержимого Paragraph.
yann777
\s+\Z сожрал конец абзаца перед таблицей, и строка перед таблицей вытянулась на всю ширину фрейма. Решенье?
yann777
GREP не ищет английские буквы. Чё делать? Как быть? Где копать?
IPB Image
vbatushev
А зачем так выделываться?
Просто v написать слишком мало?
yann777
А толку...
IPB Image
Ещё варианты?

Вообще-то я искал @ (сабачку) - ну никак, хоть тресни. Попробовал англицкие буквы - та же петрушка.
Помогите  unsure.gif
arhip
Так Индизайне же русскоязычный! В поле поиска надо писать "в (нерусск.)"

Шучу. А этот фрейм не в шаблоне лежит, случайно? По умолчанию в шаблоне текст не ищется.
yann777
Чуть сердце не прихватило.  blink.gif Во, думаю весело - устанавливаешь два ID (рус. и англ.). Захотел поискать русские буковки - открываешь рус. ID. Нада англицкие - лезешь в англ. ID.  biggrin.gif
Фрейм на НЕ шаблонной полосе.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2012 Invision Power Services, Inc.

Реклама

   Rambler's Top100    Яндекс цитирования