Поменять местами знак сноски и точку

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

kassia

Топикстартер
15 лет на форуме
Сообщения
136
Реакции
22
а как с помощью GREP поменять местами знак сноски и точку (любой знак препинания)?

В макете сноска стоит после знаков, а нужно - до.

Пробовала
найти: (\.)(~F)
заменить на: ($2)($1)
находит, но не меняет.

если сноску искать как \d в позиции "суперскрипт", то вообще не находит...
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Ответ: GREP в InDesign. Что и как

так не получится. скобки во втором выражении не нужны, но маркер он поменяет на <?>
следовательно, надо избежать замены маркера вообще

можно сделать в два приема - сначала убрать эту точку
\.(?=~F)
меняем на пустоту

затем
(?<=~F).
меняем на .$0

(немного коряво, но вроде работает)

не забудьте исключить сноски из замен, а то он и в самих сносках после маркера точек понаставит.
 

kassia

Топикстартер
15 лет на форуме
Сообщения
136
Реакции
22
Ответ: GREP в InDesign. Что и как

не получается... На втором этапе после сносок ставятся точки везде, в том числе и в конструкциях "сноска+запятая" или "сноска+точка с запятой"

может попробовать перед этапом 1, конструкции \.(?=~F) присвоить какой-нибудь пустой символьный стиль?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Ответ: GREP в InDesign. Что и как

можно так. можно вместо . написать диапазон, исключающий ,; и т.д.

еще можно скриптом эти точки переместить.
 

kassia

Топикстартер
15 лет на форуме
Сообщения
136
Реакции
22
Ответ: GREP в InDesign. Что и как

Skvoznyak сказал(а):
можно вместо . написать диапазон, исключающий ,; и т.д.
потом придется прогонять по другому диапазону (напр. для запятых) исключающему точки и тд. Не, муторно очень.

еще можно скриптом эти точки переместить.
угу. Диалог из серии: - "А можно ли?" - "Можно!"
ладно, буду руками править. спасибо за попытку помощи)
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Ответ: GREP в InDesign. Что и как

накидал скрипт.. попробуйте

зы символы можно добавлять в 4 строчку
 

Вложения

  • footnotePunctuation.jsx.zip
    475 байт · Просм.: 358

kassia

Топикстартер
15 лет на форуме
Сообщения
136
Реакции
22
Ответ: GREP в InDesign. Что и как

Спасибо огромное :) Начала тестить.
В одностраничном документе с кусочком текста работает как надо!
Но когда запустила в рабочем файле (300 стр) завис намертво.
Скажите, а можно переделать так, чтобы он работал в выделенном куске текста?
Дело в том, что есть сочетания, где знак сноски не нужно ставить перед точкой (например 2009 г.* или XX в.*)

PS Забыла сказать что версия CS3
 

Guinness

Участник
Сообщения
1
Реакции
0
Знак препинания и знак сноски

Здравствуйте.
Как-то относительно давно (в прошлом году ещё) здесь обсуждалось, как поменять местами знак препинания и знак сноски. Недавно пришлось самому столкнуться с подобной проблемой, и вот что из этого получилось (сразу скажу, что решить задачу удалось только в два приёма).

Посоветовавшись со знакомыми корректорами, а также почитав Розенталя, выяснил, что такие знаки препинания, как точка, запятая, точка с запятой и двоеточие должны стоять после сноски (остальные -- перед). Далее экспериментальным путём было получено следующее условие поиска/замены:

Find what: (([.,;:])~F)
Change to: $1$2

После глобальной замены получается следующий результат: знак препинания дублируется после сноски, то есть конструкция вида <знак препинания><знак сноски> преобразуется в <знак препинания><знак сноски><знак препинания>. Далее всё просто. Надо найти все знаки препинания из списка (стоящие перед сносками) и удалить их. Пишем так:

Find what: [.,;:](?=~F)
Change to: <оставляем пустым>

После глобальной замены все сноски и знаки препинания оказываются на своих местах.
Спасибо за внимание.
 

kassia

Топикстартер
15 лет на форуме
Сообщения
136
Реакции
22
Ответ: Знак препинания и знак сноски

Как-то относительно давно (в прошлом году ещё) здесь обсуждалось, как поменять местами знак препинания и знак сноски. Недавно пришлось самому столкнуться с подобной проблемой, и вот что из этого получилось (сразу скажу, что решить задачу удалось только в два приёма).
Посоветовавшись со знакомыми корректорами, а также почитав Розенталя, выяснил, что такие знаки препинания, как точка, запятая, точка с запятой и двоеточие должны стоять после сноски (остальные -- перед).
...

Спасибо за способ!
А у меня теперь затруднение вызывает случай, когда сноски идут не подстрочные, а затекстовые. Тогда знак сноски в тексте представляет собой просто обычную цифру в позиции superscript.
Как нужно составить GREP-запрос, чтобы цифра сноски и знак препинания менялись местами? При этом каждый оставался в своей позиции: знак препинания - normal, знак сноски - superscript.
 

daxx

Участник
Сообщения
33
Реакции
0
Ответ: GREP в InDesign. Что и как

Как принципиально решаются такие вопросы: например нужно найти что либо имеющее character style и следом за ним что-нибудь не имеющее character style?

Например, ищем цифры стиля А, а следом за ними точку без стиля. Если искать без стиля вообще greb найдет все цифры с точкой. Если искать со стилем -- не найдет ничего, так как точка без стиля. В данном случае искать точку через look ahead/behind не получается, т.к. точка -- также объект замены (например, ее нужно поставить перед цифрами).

Немного длинно написал, но хочу понять, как в принципе искать объекты с разным character style.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Ответ: GREP в InDesign. Что и как

скриптом - находим цифры стиля А, затем проверяем, стоит ли за ними точка без стиля, в зависимости от этого обрабатываем
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Ответ: GREP в InDesign. Что и как

его написать надо, вы ж принципиальное решение спрашивали.

вот в таком духе

Код:
myStory = app.selection[0].parentStory;

myParagraphs = myStory.paragraphs;
myEnd=0;

while (myEnd<(myParagraphs.length - 1))

{
	
if (myParagraphs.item(myEnd).numberingResultNumber >1 && myParagraphs.item(myEnd-1).numberingResultNumber == -1) 
	myParagraphs.item(myEnd).numberingContinue=false;
myEnd++;
}
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Ответ: GREP в InDesign. Что и как

Тут, разумеется, другой случай, рестарт нумерации. Более близкого не нашлось под рукой, сорри
 

A**Z

Участник
Сообщения
527
Реакции
627
Ответ: GREP в InDesign. Что и как

Как принципиально решаются такие вопросы: например нужно найти что либо имеющее character style и следом за ним что-нибудь не имеющее character style?

Например, ищем цифры стиля А, а следом за ними точку без стиля. Если искать без стиля вообще greb найдет все цифры с точкой. Если искать со стилем -- не найдет ничего, так как точка без стиля. В данном случае искать точку через look ahead/behind не получается, т.к. точка -- также объект замены (например, ее нужно поставить перед цифрами).
Можно и без скрипта, но в два прогона.
Ищите что-либо имеющее character style и следом за ним ставите что-нибудь из неиспользуемого в верстке (символ, набор символов и т.п.). Потом это неиспользуемое плюс то, что нужно (точку без стиля)
 

daxx

Участник
Сообщения
33
Реакции
0
Ответ: GREP в InDesign. Что и как

Можно и без скрипта, но в два прогона.
Ищите что-либо имеющее character style и следом за ним ставите что-нибудь из неиспользуемого в верстке (символ, набор символов и т.п.). Потом это неиспользуемое плюс то, что нужно (точку без стиля)

хитро. но скажем что менять в случае если 123. надо превратить в .123
меняю 123. на 123@. - и как потом сказать превратись в .123 не используя поиск 123 как цифр со стилем?

Тут, разумеется, другой случай, рестарт нумерации. Более близкого не нашлось под рукой, сорри

да, круто. к сожалению в этом я не понимаю. вместо этих параметров надо прописать свои?
 

imma

15 лет на форуме
Сообщения
3 089
Реакции
2 185
Ответ: GREP в InDesign. Что и как

daxx

Вы бы описали свою задачу по-подробнее -- быстрее получите результат. Тогда и разберетесь "Как принципиально решаются такие вопросы..."
 

A**Z

Участник
Сообщения
527
Реакции
627
Ответ: GREP в InDesign. Что и как

но скажем что менять в случае если 123. надо превратить в .123
меняю 123. на 123@. - и как потом сказать превратись в .123 не используя поиск 123 как цифр со стилем?
Универсального способа нет. Для вашего так:
(\d+)(@)(\.) на это $3$1
 

dhead

Участник
Сообщения
48
Реакции
0
Ответ: GREP в InDesign. Что и как

Можно и без скрипта, но в два прогона.
Ищите что-либо имеющее character style и следом за ним ставите что-нибудь из неиспользуемого в верстке (символ, набор символов и т.п.). Потом это неиспользуемое плюс то, что нужно (точку без стиля)
хитро. но скажем что менять в случае если 123. надо превратить в .123
меняю 123. на 123@. - и как потом сказать превратись в .123 не используя поиск 123 как цифр со стилем?
Я бы чуть скорректировал метод A**Z и сделал все в 3 прохода. Тогда, наверное, получится:

1.Ищете что-либо имеющее character style и обрамляете его чем-нибудь из неиспользуемого в верстке.
2.Ищете все любое "нечто", обрамленное только что, за которым следует то, что нужно (ваша точка, к примеру) и заменяете на то, что нужно.
3.Ищете оставшееся нечто, обрамленное, но не обработанное на этапе 2 (то есть то, что не удовлетворяло вашему 2-му условию) и заменяете на него же, но без обрамления.

P.S.
Есть подозрение, что за счет конструкций if-then-else все три шага можно записать одной строкой и выполнить одним проходом.
 

dhead

Участник
Сообщения
48
Реакции
0
Ответ: GREP в InDesign. Что и как

P.P.S
Точнее, 2 и 3 шаг записать одной строкой. Увлекся )
 
Статус
Закрыто для дальнейших ответов.