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

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

d2-a

Топикстартер
10 лет на форуме
Сообщения
94
Реакции
1
Здравствуйте, уважаемые! :)

Работаю с очень многостраничным справочником, в котором информация располагается в таблицах. Они помещаются в обычную текстовую колонку одна за другой. Вгонка-выгонка осуществляется уменьшением/увеличением отбивок у этих таблиц.

Насколько я понимаю, горячих клавиш на подобную операцию (по аналогии с увеличить/уменьшить кегль или интерлиньяж) нет.

Как можно полуавтоматизировать вгонку/выгонку? Существует ли, к примеру, скрипт, позволяющий это делать? Например "К выделенным абзацам (а моя таблица в данном случае абзац) применить увеличение отбивки на 0,1 pt".
На полутора тысячах страниц вбивать вручную отбивки - та еще работенка... Подскажите, пожалуйста, в какую сторону копать.
 

Вложения

  • More_tables.jpg
    More_tables.jpg
    377.8 КБ · Просм.: 850
Последнее редактирование модератором:

d2-a

Топикстартер
10 лет на форуме
Сообщения
94
Реакции
1
Спасибо, но не то: этот скрипт работает в таблице, мне же нужен скрипт, который бы работал с абзацами, выполняющий такую задачу:
"У выделенных абзацев увеличить/уменьшить отбивку сверху/снизу на NN,NN pt".
 

Цорь

Участник
Сообщения
27
Реакции
13
Можно, если ничего лучше не найдётся, создать несколько стилей абзацев (с горячими кнопками) и назначать эти стили "выделенным абзацам".
 

d2-a

Топикстартер
10 лет на форуме
Сообщения
94
Реакции
1
@Цорь, спасибо.
Не получится: у абзацев могут быть изначально разные отбивки. Задача в том, чтобы изменить отбивки у некоторого количества идущих подряд абзацев.
 

MT

15 лет на форуме
Сообщения
246
Реакции
93
Вот скрипт увеличивающий отбивки на 0,1
для выделенного текста.

var myParagraphs = app.activeDocument.selection[0].paragraphs;
for (var i = 0; i < myParagraphs.length; i++)
{myParagraphs.spaceBefore += 0.1}
 
  • Спасибо
Реакции: d2-a

d2-a

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

Цорь

Участник
Сообщения
27
Реакции
13
А интересно, вгонку-выгонку обязательно делать отбивкой, или достаточно будет текстовому блоку назначить вертикальную выключку (Vertical Justification) не "Top", а "Justify"?
 

d2-a

Топикстартер
10 лет на форуме
Сообщения
94
Реакции
1
@Цорь,
так и делается, но на последнем этапе (бывает, что, к примеру, дыра на полколонки - в этих случаях и нужна вгонка/выгонка).
 

d2-a

Топикстартер
10 лет на форуме
Сообщения
94
Реакции
1
@MT,
Не подскажете, где можно найти уроки по азам скриптинга? Надо же как-то с Вашим кодом разобраться...
ссылка с форума на уроки Виталия Батушева http://www.adobescripts.info/thinkjs.html нbrelf не ведет...
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
не надо вам азов.

копируете вышеприведённый текст.
вставляете в текстовый файл.
даёте ему расширение .js
копируете в папку типа C:\Users\имя пользователя\AppData\Roaming\Adobe\InDesign\Version 8.0\en_US\Scripts\Scripts Panel
и скрипт появится в той панели.

шорткат на него назначайте в Edit->Keyboard Shortcuts
 

d2-a

Топикстартер
10 лет на форуме
Сообщения
94
Реакции
1
@MT,
@andrejK,
Спасибо. Так и сделал.
Но...
More_tables02.jpg
:(
 
Последнее редактирование:

MT

15 лет на форуме
Сообщения
246
Реакции
93
У меня работает. Ошибок не выдает.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
У меня работает. Ошибок не выдает.

это очень странно, так как в скрипте явная ошибка. должно быть

Код:
var myParagraphs = app.activeDocument.selection[0].paragraphs;
for (var i = 0; i < myParagraphs.length; i++)
{myParagraphs[i].spaceBefore += 0.1}

ну или проще (за работоспособность не ручаюсь, не проверял :) )
Код:
app.activeDocument.selection[0].paragraphs.everyItem().spaceBefore+=0.1;
 
  • Спасибо
Реакции: LeonidB и d2-a

d2-a

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

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
А если единицы измерения в программе заданы не в пунктах, что будет? Их (пункты) можно напрямую в скрипт прописать? (Простите за глупый вопрос, если что.)
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
+="0.1pt" наверное?

а так можно добавить в начало строчку

app.scriptPreferences.measurementUnit = MeasurementUnits.POINTS;
 
  • Спасибо
Реакции: Dresden
Статус
Закрыто для дальнейших ответов.