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

  • Автор темы Автор темы d2-a
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Если записать:
Код:
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), то вычисления будут производиться в пунктах.
 
да, так и есть, +="0.1pt" не сработает. В фотошопе можно прибавлять UnitValue(0.1,"pt"), а в индизайне не срабатывает тоже.

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

да, и myParagraphs.spaceBefore - нельзя так. myParagraphs - это коллекция абзацев, у нее нет свойства spaceBefore. см. выше
 
Неприятность состоит в том, что многие работают с геометрией полосы и ее элементов, используя размерность "мм", в при работе с текстом - "пункты". Соответственно не хочется менять единицы измерения в программе скриптом ради наращения отбивки с шагом 0,1pt. Хотелось бы эту проблему как-то решить локально.
 
Это и есть локальное решение. Попробуйте, проверьте.
 
  • Спасибо
Реакции: Dresden
У меня текст в пунктах, все остальное в миллиметрах - скрипт работает прекрасно. Спасибо еще раз. :)
 
@Skvoznyak, @MT,
На тестовых кусках из десятка-другого абзацев скрипт работает прекрасно.
Сегодня попробовал скрипт на реальном материале - несколько десятков полос по три колонки в каждой. Требуется, к примеру, разогнать одну колонку. Выделяю абзацы, вызываю скрипт - и можно идти курить. Все работает, но очень медленно. Может быть, каким-то образом скрипт обращается ко всем абзацам документа?
 
На большом куске работает медленно, потому что накапливает Undo.
Этот скрипт увеличивает отбивки, даже если они разные у разных абзацев.
Если выделить большой кусок то вероятно всем абзацам надо присвоить одинаковое значение.
Ну так прицельтесь скриптом на одной колонке, а потом для большого куска задайте
нужное значение.
Можно, конечно, и скрипт ускорить, но поскольку скрипт применим только в пределах разворота,
пока видны результаты его работы (переползло что-нибудь в следующую колонку или нет),
то и возиться с ним не хочется.
 
@MT,
Спасибо за разъяснение и помощь.
 
Статус
Закрыто для дальнейших ответов.