[ID CS4-CS6] Вставка кавычек через Поиск/Замена

Статус
Закрыто для дальнейших ответов.

Deniks

Участник
Топикстартер
Сообщения
112
Реакции
0
Друзья, выручайте. Задача такая: на странице имеется несколько текстовых фреймов с одним или двумя словами (подписи к изображениям). Необходимо доставить кавычки к тексту. Как это можно реализовать через поиск/замену.
 

azz

alexey
15 лет на форуме
Сообщения
711
Реакции
359
grep find: ^(\w+|\w+ \w+)\z
change: "$1"
 

Deniks

Участник
Топикстартер
Сообщения
112
Реакции
0
Низкий поклон, большое вам спасибо, всё получилось. Правда появилась ещё одна трудность - текстовые фреймы не вмещают текст, нужен видно скрипт который перебирает каждый фрейм и увеличивает его ширину, чтобы текст влез. Текст во фрейме отцентрирован и не должен переходить на вторую строку. Может есть решение?
 

azz

alexey
15 лет на форуме
Сообщения
711
Реакции
359
есть решение в самом Индизайне
Text frame options/auto size/width only
 

azz

alexey
15 лет на форуме
Сообщения
711
Реакции
359
ну или если не озаботились стилями для подписей, можно и скриптом пройтись
не уверен, правда, что в cs5.5 был уже автосайз...

Код:
#target Indesign
try {
    var doc = app.activeDocument;
    var myItems = doc.allPageItems;
    for (var i = 0; i<myItems.length; i++) {
        if (myItems[i].hasOwnProperty("overflows") && (myItems[i].overflows== true)) {
            myItems[i].textFramePreferences.autoSizingType = AutoSizingTypeEnum.WIDTH_ONLY;
        };
    };
} catch(e) {};
 
Последнее редактирование:

suntory

Administrator
15 лет на форуме
Сообщения
23 438
Реакции
12 479

Deniks

Участник
Топикстартер
Сообщения
112
Реакции
0
В CS 5.5. нет функции автосайза по ширине. К сожалению скрипт не работает. Ещё интересно логическое объяснение конструкции: "^(\w+|\w+ \w+)\z", дело в том, что некоторые подписи через такой запрос не удаётся найти.

ну или если не озаботились стилями для подписей
Кстати, да, стиль абзаца имеется и применён к подписям. Это что-то может изменить?
 

Вложения

  • QIP_Shot_-_Screen_035.jpg
    QIP_Shot_-_Screen_035.jpg
    163.6 КБ · Просм.: 804
Последнее редактирование:

Flame

Unregistered user
20 лет на форуме
Сообщения
1 323
Реакции
58
в скрипте первую строку уберите и запускайте через ExtendScript toolkit, выбрав индизайн в выпадающем списке наверху.
Или поставьте в первой строке скрипта вашу версию индизайна (#target "Indesign-11.064" для CC2015 64-битного; #target "Indesign-11.032" для CC2015 32-битного, например).

Происхождение греп конструкции очень простое.
\w+ - это одно слово, а \w+ \w+ - два слова. Где не находит - там, наверное, другое количество слов.
 

Deniks

Участник
Топикстартер
Сообщения
112
Реакции
0
Это не помогает, подозреваю, что необходимого функционала в версии CS 5.5 нет.
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 530
а \w+ \w+ - два слова. Где не находит - там, наверное, другое количество слов.

Либо какой-нибудь хитрый пробел между словами, отличающийся от простого. Если написать так:
^(\w+|\w+\s\w+)\z
- то будут отрабатываться все пробелы.
 

Deniks

Участник
Топикстартер
Сообщения
112
Реакции
0
Вот пример файла, в котором конструкция:^(\w+|\w+\s\w+)\z не находит текст - Пример.indd
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
@Deniks, у вас там везде после последнего слова стоит пробел.
потому и не находит.

space.jpg
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
@Deniks, ищите так

^(\w+|\w+\s\w+)\s?\z
 

Deniks

Участник
Топикстартер
Сообщения
112
Реакции
0
Спасибо, получилось. А что делать с автосайзом, который не работает в CS5.5?
 

Deniks

Участник
Топикстартер
Сообщения
112
Реакции
0
Ещё не находит текст типа"Домик у горной реки".
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218

Deniks

Участник
Топикстартер
Сообщения
112
Реакции
0
Да, виноват, не совсем точно сформулировал задачу, действительно встречается текст более чем с одним и двумя словами. Это конечно исключение, но всё же.
 

Deniks

Участник
Топикстартер
Сообщения
112
Реакции
0
А возможно ли составить конструкцию, которая бы закавычивала весь текст независимо от количества слов, наличия предлогов, пробелов, точек в тексте? При условии, что каждый текст находится в отдельном фрейме.
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218

Deniks

Участник
Топикстартер
Сообщения
112
Реакции
0
Большое спасибо, получилось.
 
Статус
Закрыто для дальнейших ответов.