Инициалы и фамилии

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

Manul2

Участник
Топикстартер
Сообщения
12
Реакции
0
Люди добрые, помогите с решением такой задачки (собственного ума и опыта не хватает):
Есть нумерованный список литературы. Первая фамилия с инициалами, или первое слово в названии должны быть выделены курсивом. Все было бы хорошо, но в иностранных изданиях бывают такие инициалы '%)' Например, Lo E. Y. Y. Molecular Reappraisal of
Хоть пошлите в нужную сторону ')'
Спасибо!
 
Ответ: GREP в InDesign. Что и как

Ну сходите в сторону вложенных стилей (Nested Styles) :). Насоздавайте абзацных стилей со стилем курсива through 1/2/3 words, и поназначайте где какой надо. Фамилию с инициалами в начале абзаца можно найти например так:

^.+?\.\s\u\.\s\u\.\s

где ^ - начало абзаца;
. - любой символ;
+? - повтор один или много раз по самому короткому варианту;
\. - точка;
\s - любой пробел;
\u - заглавный символ.
 
Ответ: GREP в InDesign. Что и как

Eugenyus, после DoTextOK Nested Styles "прихватывают" следующее за инициалами слово-другое. :(
Если это побороть, то как можно автоматизировать назначение стилей абзацам внутри выделенного фрагмента?
 
Ответ: GREP в InDesign. Что и как

Nested Styles "прихватывают"...
Это (99%) происходит потому, что слова, разделенные неразрывным пробелом, в данном случае (Nested Style) воспринимаются как одно слово. Можно в параметрах вложенного стиля "word" заменить на . (точка). Тогда стиль будет назначаться до 1/2/3 точек.

как можно автоматизировать...
В параметрах поиска задать выражение, а в параметрах замены - абзацный стиль.
 
Ответ: GREP в InDesign. Что и как

Задайте GREP-стиль на такое выражение: ^\w+?\s\u\.(\s\u\.)*
Ищет с начала абзаца слово с 1 или 2 инициалами после него.
 
Ответ: GREP в InDesign. Что и как

Ищет с начала абзаца слово с 1 или 2 инициалами после него.
Ещё есть с 3 инициалами :)
А есть слова без инициалов.
Не срабатывает, если фамилия двойная.
 
Ответ: GREP в InDesign. Что и как

Manul2, Вам нужно четко сформулировать поисковой критерий, который бы затронул все, что Вам надо. А потом думать, как сделать хитрую замену с помощью GREP - пусть даже в несколько шагов.
Понимаю, что это "только теория", но без этого задача слишком размыта.
 
Ответ: GREP в InDesign. Что и как

Правильно ли будет двойную фамилию а-ля Петров-Водкин для GREP записать таким образом \w[-]\w ?
 
Ответ: GREP в InDesign. Что и как

неправильно.

что вам вот так не ищется?

Код:
^.+?\s(\u\.\s)+

или вообще вот так (если есть без инициалов)

Код:
^.+?\s(\u\.\s)*
 
Ответ: GREP в InDesign. Что и как

Ага. Ищем совпадения по первому пробелу перед инициалами, фамилия пофигу (извините).
А подвыражение - это может быть, а может не быть? Я правильно понял?
 
Ответ: GREP в InDesign. Что и как

это к вашему поиску. чё тыкать-то? возьмите и проверьте.



Не по теме:
учитель вон тихонько на форуме сидит. молча. бросил всех. ничему не учит.
слинял в каракос(((

 
Ответ: GREP в InDesign. Что и как


Не по теме:
Manul2, да Вы не паникуйте :). В окне замены кроме кнопки "Change" есть еще кнопка "Find". Наберите Ваше выражение в поиск, нажмите эту кнопку и посмотрите, что у Вас найдется. В своем посте (№677) я Вам расшифровал несколько символов. В инете полно руководств по регулярным выражениям. Плюс в самом окне грепа напротив полей ввода есть кнопки с набором выражений. Туда Вам надо заглянуть...
 
Ответ: GREP в InDesign. Что и как

А сейчас уже не на чем проверить. Я дома, "тренируюсь на кошках". С понедельника возьмусь, засучив рукава, проверять и реализовывать.
 
Ответ: GREP в InDesign. Что и как


вам практически всё выше евгений объяснял с этими знаками.

до скобки - ищем любой набор символов, заканчивающийся пробелом и начинающийся с начала строки.

скобки - заглавная буква, точка, пробел

звездочка после скобочной группы - этой группы может быть сколько угодно, а может и не быть
 
Ответ: GREP в InDesign. Что и как

andrejK, спасибо. Мне было непонятно для чего скобки, как обрабатывается группа внутри них.
 
Ответ: GREP в InDesign. Что и как

Здравствуйте,
grep {findWhat:" \l\u\l\u"} {changeTo:" $1~S"}
grep {findWhat:" [\l\u][\l\u]"} {changeTo:" $1~S"}
как верно?
нужна привязка двух буквенных единиц
спасибо
 
Ответ: GREP в InDesign. Что и как

Ни то, ни другое… Первое ничего не найдёт, второе отобьет пробелом все первые две буквы от остального слова…
grep {findWhat:"(\s)([\l\u][\l\u]\s)"} {changeTo:"~S$2"}
Но это не правильно, если только не все конструкции в тексте типа 100 кг, прибьются все двухбуквы…
Если нужно после цифр, то:
grep {findWhat:"(\d+)(\s)([\l\u][\l\u]\s)"} {changeTo:"$1~S$3"}
 
Ответ: GREP в InDesign. Что и как

Ни то, ни другое… Первое ничего не найдёт, второе отобьет пробелом все первые две буквы от остального слова…
grep {findWhat:"(\s)([\l\u][\l\u]\s)"} {changeTo:"~S$2"}
Но это не правильно, если только не все конструкции в тексте типа 100 кг, прибьются все двухбуквы…
Если нужно после цифр, то:
grep {findWhat:"(\d+)(\s)([\l\u][\l\u]\s)"} {changeTo:"$1~S$3"}
Спасибо, сори, я не совсем в теме
всегда делал в GREP
([\l\u][\l\u])
с заменой на:
$1~S
тем самым привязывая двухбуквы к последующему слову, чтобы они не висели последними в строке
сейчас хочется тоже самое реализовать через скрипт
grep {findWhat:"(\s)([\l\u][\l\u])(\s)"} {changeTo:"$1~S"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}
так не работает
 
Статус
Закрыто для дальнейших ответов.