Код:
/*Скрипт удобно вешать на ctrl+alt+cursorLeft;
поджимает абзац на строку уменьшая трекинг по единице.
при верстке, скажем, телепрограммы - экономит весьма приличное количество времени. /*
with (app)
{if (selection[0].constructor.name == "TextFrame")
{var myStory = selection[0].parentStory;}
else {var myStory = selection[0];}
}
var LeaveFirstChars = 0; // Сколко символов в начале обзаца нужно удержать в исходном трекинге (0 - чтобы не удерживать)
var myPar = (myStory.paragraphs);
MyLines = myPar.anyItem ().lines.count(0);
/* тут можно настроить удержание по табуляции в данном примере удерживается первых 6 символов, если 5м или 6м символом в параграфе идет табулятор */
if ((myPar.anyItem ().characters.item(5).contents == "\u0009")||(myPar.anyItem ().characters.item(6).contents == "\u0009"))
{var LeaveFirstChars = 6}
else {LeaveFirstChars = 0}; /* конец настроек удержания табуляции*/
var minTrack = -80; // минимальный трекинг (в верстке подобной телесетке - бывает доходит и до -90. в обычной лучше ставить не менее -30)
var myTrack = myPar.anyItem ().words.lastItem().tracking; // Начальное значение трекинга берецца с текущего абзацу
if (myPar.anyItem ().lines.count(0) <= 1) alert ("CAUTION!!! Всего одна строка в абзаце!!! CAUTION!!!!")
else
do {
if (myTrack<minTrack) break;
myPar.anyItem ().characters.itemByRange (LeaveFirstChars, -1).tracking =myTrack;
myTrack--; //Шаг трекинга минус единица. Для большего шага можно юзать, например: {myTrack -=5;} - где 5 - шаг.
} while (myPar.anyItem ().lines.count(0) != (MyLines-1));
//alert(myTrack);