Изменение отбивок горячими клавишами

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

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Если записать:
Код:
myParagraphs[i].spaceBefore += 0.1
то мы работаем с числовой переменной. В этом случае к численному значению spaceBefore прибавится число 0.1. И если, например, spaceBefore было равно 1 мм, то теперь оно станет равно 1.1 мм.

Если записать:
Код:
myParagraphs[i].spaceBefore += "0.1pt"
то мы имеем дело со строкой (т.е. текстом), и результат в таком случае будет "10.1pt". Т.е. к тексту "1" мы приплюсовали текст "0.1pt".

Если же в начале скрипта добавить строку:
Код:
app.scriptPreferences.measurementUnit = MeasurementUnits.POINTS;
и работать с первым вариантом (+= 0.1), то вычисления будут производиться в пунктах.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
да, так и есть, +="0.1pt" не сработает. В фотошопе можно прибавлять UnitValue(0.1,"pt"), а в индизайне не срабатывает тоже.

а просто присвоить ="0.2pt" можно

да, и myParagraphs.spaceBefore - нельзя так. myParagraphs - это коллекция абзацев, у нее нет свойства spaceBefore. см. выше
 

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
Неприятность состоит в том, что многие работают с геометрией полосы и ее элементов, используя размерность "мм", в при работе с текстом - "пункты". Соответственно не хочется менять единицы измерения в программе скриптом ради наращения отбивки с шагом 0,1pt. Хотелось бы эту проблему как-то решить локально.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Это и есть локальное решение. Попробуйте, проверьте.
 
  • Спасибо
Реакции: Dresden

d2-a

Топикстартер
10 лет на форуме
Сообщения
94
Реакции
1
У меня текст в пунктах, все остальное в миллиметрах - скрипт работает прекрасно. Спасибо еще раз. :)
 

d2-a

Топикстартер
10 лет на форуме
Сообщения
94
Реакции
1
@Skvoznyak, @MT,
На тестовых кусках из десятка-другого абзацев скрипт работает прекрасно.
Сегодня попробовал скрипт на реальном материале - несколько десятков полос по три колонки в каждой. Требуется, к примеру, разогнать одну колонку. Выделяю абзацы, вызываю скрипт - и можно идти курить. Все работает, но очень медленно. Может быть, каким-то образом скрипт обращается ко всем абзацам документа?
 

MT

15 лет на форуме
Сообщения
246
Реакции
93
На большом куске работает медленно, потому что накапливает Undo.
Этот скрипт увеличивает отбивки, даже если они разные у разных абзацев.
Если выделить большой кусок то вероятно всем абзацам надо присвоить одинаковое значение.
Ну так прицельтесь скриптом на одной колонке, а потом для большого куска задайте
нужное значение.
Можно, конечно, и скрипт ускорить, но поскольку скрипт применим только в пределах разворота,
пока видны результаты его работы (переползло что-нибудь в следующую колонку или нет),
то и возиться с ним не хочется.
 

d2-a

Топикстартер
10 лет на форуме
Сообщения
94
Реакции
1
@MT,
Спасибо за разъяснение и помощь.
 
Статус
Закрыто для дальнейших ответов.