Поджимаем абзац трекингом на строку.

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

BoomKa

Участник
Топикстартер
Сообщения
9
Реакции
0
Код:
/*Скрипт удобно вешать на 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);
 

iv-mi

15 лет на форуме
Сообщения
565
Реакции
381
Ответ: Поджимаем абзац трекингом на строку.

Видимо, этот скрипт - развитие штатных возможностей программы изменять трекинг/кернинг и интерлиньяж выделенного текста.
В программе предусмотрено, что сочетание клавиш Alt+стрелка_влево или Alt+стрелка_вправо меняет трекинг/кернинг с шагом, установленном в поле Kerning/Tracking вкладки Units & Increments окна установок Preferences.
Сочетание клавиш Alt+стрелка_вверх или Alt+стрелка_вниз меняет интерлиньяж с шагом, установленном в поле Baseline Shift вкладки Units & Increments окна установок Preferences.
 

BoomKa

Участник
Топикстартер
Сообщения
9
Реакции
0
Ответ: Поджимаем абзац трекингом на строку.

iv-mi сказал(а):
Видимо, этот скрипт - развитие штатных возможностей программы изменять трекинг/кернинг и интерлиньяж выделенного текста.
В программе предусмотрено, что сочетание клавиш Alt+стрелка_влево или Alt+стрелка_вправо меняет трекинг/кернинг с шагом, установленном в поле Kerning/Tracking вкладки Units & Increments окна установок Preferences.
Сочетание клавиш Alt+стрелка_вверх или Alt+стрелка_вниз меняет интерлиньяж с шагом, установленном в поле Baseline Shift вкладки Units & Increments окна установок Preferences.
ctrl+alt+cтрелки влево право меняют теркинг х5
alt+shift+cтрелки влево право меняют теркинг х1
насколлько помню навскидку. словом первая комбинация больше меняет - вторая меньше.
скрипт удобен тем, что не нужно выделять абзац, или часть абзаца - стартует от позиции курсора - уменьшая пошагово трекинг всего абзаца - пока строчка не уйдет наверх.
Предусмотрено удержание исходного трекинга в первых символах абзаца, где, допустим идет время 00:00<tab> или 00:00,<tab>.
Мне лично при верстке телепрограммы, или частных объявлений кихнить - экономит дофига времени, избавляя от мороки с выделением текста
 

Fog_patch

12 лет на форуме
Сообщения
3 163
Реакции
998
Ответ: Поджимаем абзац трекингом на строку.

Когда я поджимаю абзац, то юзаю не только трекинг, а еще и горизонтальное масштабирование. Обычно не меньше 96%, но в некоторых случаях до 90%. Мне кажется что можно в скрипт добавить возможность горизонтального масштабирования в пропорции -10 tracking -1 scale. Оно визуально лучше будет смотреться чем только трекинг.
 

BoomKa

Участник
Топикстартер
Сообщения
9
Реакции
0
Ответ: Поджимаем абзац трекингом на строку.

Fog_patch сказал(а):
Когда я поджимаю абзац, то юзаю не только трекинг, а еще и горизонтальное масштабирование. Обычно не меньше 96%, но в некоторых случаях до 90%. Мне кажется что можно в скрипт добавить возможность горизонтального масштабирования в пропорции -10 tracking -1 scale. Оно визуально лучше будет смотреться чем только трекинг.
Да. Имеет смысл.
в свободное время напишу с возможностью опционально настраивать.
 

LeshikSan

15 лет на форуме
Сообщения
266
Реакции
185
Ответ: Поджимаем абзац трекингом на строку.

вот моя ужималка (в цс4 работает):

Код:
//Ужимает выделеный параграф или параграф, в котором стоит курсор до тех пор пока параграф не ужмется на 1 строку, но не менее мин. значения трекинга. 
//Если ужать не удалось - возвращается начальное значение трекинга
//Если параграф уже имеет минусовой трекинг - просто обнуляет трекинг; это можно оключить (resetTracking = false)
var resetTracking = true;
var minTracking = -20;//минимальный трекинг
var step = 2;//шаг ужимки

var mySelect = app.selection[0];
switch (mySelect.constructor.name){
	case "InsertionPoint": 
	var myPara = mySelect.insertionPoints[0].paragraphs[0]; 
	break;
	case "Paragraph": 
	var myPara = mySelect; 
	break;
	default:
	alert("Необходимо выделить параграф");
	exit();
	}
if(resetTracking && myPara.tracking <0){
	myPara.tracking = 0;
	exit();
	}
thisParaLines = +myPara.lines.length;//запоминаем исходное кол-во строк
thisParaTracking = +myPara.tracking;//запоминаем исходный трекинг
thisTracking = 0;
while(myPara.tracking >-20){
	myPara.tracking = (thisTracking -= step);//уменьшаем трекинг
	if(myPara.lines.length<thisParaLines)//если кол-во линий стало меньше - заканчиваем и выходим
		exit();
	}
myPara.tracking = thisParaTracking;//восстанавливаем исходный трекинг если ужать не удалось
 
Статус
Закрыто для дальнейших ответов.