// FormatFollowSignAsWord.jsx
// InDesign CS3, InDesign CS4
//
// В статье ищется слово, выделенное символьным стилем, знак препинания после него (без стиля или с другим символьным)
// и заменяется стиль знака препинания на стиль находящегося перед ним слова.
// Знаки препинания перечислены в стоке myPunctiationSigns, которую можно пополнять. Новый знак отделяется от предыдущего вертикальной линией.
// Перечень символов в строке myCharacters. Сейчас учитываются русские, латинские, немецкие буквы и цифры. Можно дополнить эту строку французскими, чешскими, польскими и др. буквами,
//
myCharacters = "[а-яА-Яa-zA-Z0-9üäößÜÄÖ]";
myPunctiationSigns = "[.|,|;|!|:|?|…]";
var myChar;
var mySign;
if(app.documents.length != 0) { // doc = 0
var myDocument = app.documents.item(0);
var mySelection = app.selection[0];
if(app.selection.length != 0) { // selection = 0
switch(mySelection.constructor.name) { // switch
case "Text":
case "InsertionPoint":
case "Character":
case "Word":
case "Line":
case "TextStyleRange":
case "Paragraph":
case "TextColumn":
case "TextFrame":
var myStory = mySelection.parentStory;
var myPattern = myCharacters + myPunctiationSigns;
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat =myPattern;
var myFound = myStory.findGrep ();
if (myFound.length != 0) { // if
for (i=0; i<myFound.length; i++) { // for
myChar = myFound[i].characters[0]; // найденная буква
mySign = myFound[i].characters[1]; // знак пунктуации после найденной буквы
mySign.appliedCharacterStyle= myChar.appliedCharacterStyle; // присвоение символьного стиля найденной буквы символьному стилю знака препинания
} // for
} // if
alert("Теперь символьные форматы знаков препинания и слов одинаковые.");
exit();
} // switch
} // selection = 0
alert("Перед запуском скрипта поместите курсор в текст.");
exit();
} //doc = 0
alert("Нет открытых документов.");
exit();