Скрипт, который меняет местами соседние буквы
В тексте для верстки иногда попадаются ошибки, где две соседние буквы поменяны местами. Например, должно быть «Пётр» а набрано «Пёрт», должно быть «У меня», а набрано «У мнея» Такое случается при быстром наборе. Править подобные ошибки позволит скрипт ToggleChars (автор Dave Saunders), если вы сохраните его себе в папку скриптов и сделаете для вызова «горячие клавиши». Для исправления ошибки поставьте курсор между неправильно стоящими буквами, вызовите скрипт, и у вас всё придет в норму.
Удивляюсь мастерству Дэва Сандерса. Вопрос «А нет ли такого скрипта…» прозвучал на mail-конференции по InDesign и буквально через час Дэв выложил для всех этот скриптик:
// Check for a selection of the right type
if (app.selection.length > 0 && app.selection[0].constructor.name == «InsertionPoint») {
toggleChars(app.selection[0]);
}
/*First thing the toggleChars function must do is check is that the
insertion point is not first or last (get text flow reference along
the way */
function toggleChars (myIP) {
myTextFlow = myIP.parent; // gives story or cell, as appropriate
if (myIP != myTextFlow.insertionPoints[0] && myIP != myTextFlow.insertionPoints[-1]) {
reallyToggleChars (myTextFlow, myIP);
}
}
/*But even the reallyToggleChars function still has a check to do,
to see if the character to the right of the insertion point is a
paragraph marker; ask user if so */
function reallyToggleChars (myTextFlow, myIP) {
myIndex = myIP.index
myChar = myTextFlow.characters[myIndex]; // Char to right has same index as insertion point
if (myChar.contents == «\r») {
if (confirm(«Are you sure you want to move the paragraph marker?») == false) {
// User said No, so get out of here
return;
}
}
// Finally, we’re ready to rumble
myTextFlow.characters[myIndex].move(LocationOptions.before,
myTextFlow.insertionPoints[myIndex-1]);
app.select(myTextFlow.insertionPoints[myIndex]);
}
Последние комментарии