Как втянуть окончание слова на предыдущую строку?

  • Автор темы Автор темы dersk
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

dersk

Участник
Топикстартер
Сообщения
13
Реакции
0
Часто со строчки съезжает на следующую конец слова в 3-5 букв и потом приходится уменьшать межбуквенное расстояние вручную, что бы ужать текст.
Я только начал интересоваться скриптингом и поэтому хочу спросить: насколько сложная эта задача - искать и исправлять подобное автоматически?
 
Ответ: Как втянуть окончание слова на предыдущую строку?

Это не столь сложная задача. Вопрос в быстроте работы, поскольку перебор всех абзацев текста - долгая процедура.
 
Ответ: Как втянуть окончание слова на предыдущую строку?

Эта не сфера деятельности скриптов, мне кажется.
Есть прекрасные клавиатурные сокращения Alt+стрелка влево/вправо для втягивания/выдавливания строк. Есть также настройки, задающие диапазон для автоматического трекинга.
 
Ответ: Как втянуть окончание слова на предыдущую строку?

Скорость работы скрипта все же должна быть выше, чем пресловутый Alt- или Alt+.
Непонятно только, почему это не предусматривается в Indesigne изначально, ведь когда висит этих самых 3 буквы на строке, то никто этому не обрадуется.
 
Ответ: Как втянуть окончание слова на предыдущую строку?

Попробуйте это...
Скрипт растягивает трекингом абзац вплоть до значения трекинга <20


Public InDesign As InDesign.Application

Sub Main()
Set myInDesign = CreateObject("indesign.application.cs")
Set myDoc = myInDesign.Documents.Item(1)
Set myTxtFrame = myInDesign.Selection.Item(1)
Set myStory = myTxtFrame.ParentStory

For i = 1 To myStory.Paragraphs.Count
Set CurPara = myStory.Paragraphs(i)
NumLinesOfPara = CurPara.Lines.Count
NumCharsInEndLinePara = CurPara.Lines(CurPara.Lines.Count).Characters.Count
If NumCharsInEndLinePara < 6 And NumLinesOfPara <> 1 Then
Do While tTrack <> 20
tTrack = tTrack + 1
NumCharsInEndLinePara = CurPara.Lines(CurPara.Lines.Count).Characters.Count
If NumCharsInEndLinePara > 7 Then
Exit Do
End If
CurPara.Tracking = tTrack
Loop
End If
Next
End Sub
 
Ответ: Как втянуть окончание слова на предыдущую строку?

ps. если что-то непонятно пишите на e-mail...
 
Ответ: Как втянуть окончание слова на предыдущую строку?

Спасибо огромное!

Я его немного переделал и теперь это работает вот в таком виде

Set myInDesign = CreateObject("indesign.application.cs")
Set mySelection = myInDesign.selection.Item(1)
for i = 1 to mySelection.Paragraphs.Count
Set CurPara = mySelection.Paragraphs(i)
NumLinesOfPara = CurPara.Lines.Count
NumCharsInEndLinePara = CurPara.Lines(CurPara.Lines.Count).Characters.Count
If NumCharsInEndLinePara < 7 And NumLinesOfPara > 1 Then
tTrack = CurPara.Tracking
Do While tTrack > -25
tTrack = tTrack - 1
NumCharsInEndLinePara = CurPara.Lines(CurPara.Lines.Count).Characters.Count
if NumCharsInEndLinePara > 8 Then
Exit Do
End If
CurPara.Tracking = tTrack
Loop
End If
Next
 
Статус
Закрыто для дальнейших ответов.