Интерлиньяж в Corel X3

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

silver

Участник
Топикстартер
Сообщения
5
Реакции
0
Подскажите пожалуйста, как изменять интерлиньяж абзаца в Corel X3?
 
Ответ: Интерлиньяж в Corel X3

в меню Text -> Paragraph properties (второя строка там), и в в докере Paragraph раскрыть свернутые Space/Indents и там все как раньше

а еще лучше перетянуть в кнопки все управление интерлиньяжем
 

Вложения

  • textToolbar.gif
    textToolbar.gif
    2.3 КБ · Просм.: 861
  • Options.gif
    Options.gif
    10.2 КБ · Просм.: 1 404
Ответ: Интерлиньяж в Corel X3

А я вот очень люблю с клавиатуры менять интерлиньяж, написал себе давнодавно такой вот комплект, учитывающий тип интерлиньяжа (точный или в процентах)

DecreaseLineSpacing минус 0.1 ед.изм (или 1%) Ctrl-NumPad 1
IncreaseLineSpacing плюс 0.1 ед.изм (или 1%) Ctrl-NumPad 7

DecreaseLineSpacing10 минус 1 ед.изм (или 10%) Ctrl-NumPad 3
IncreaseLineSpacing10 плюс 0.1 ед.изм (или 1%) Ctrl-NumPad 9

такое использование клавиш обусловлено тем, что в кореле уже есть полезные функции у Ctrl-Numpad 2,4,6,8

P.S. у абзацев эти макросы меняют только внутриабзацный интерлиньяж, а не перед/после абзаца - те меняю стандартным способом, т.к. редко надо

Код:
Sub DecreaseLineSpacing() : changeLineSpacingByStep -1, -0.1:  End Sub
Sub IncreaseLineSpacing() : changeLineSpacingByStep 1, 0.1: End Sub
Sub DecreaseLineSpacing10() : changeLineSpacingByStep -10, -1: End Sub
Sub IncreaseLineSpacing10() : changeLineSpacingByStep 10, 1: End Sub

Sub changeLineSpacingByStep(pct, inc)
   Dim sr As ShapeRange, s As Shape, p As TextRange, l
   Set sr = ActiveSelectionRange: On Error GoTo clsbsDONE
   ActiveDocument.BeginCommandGroup "change line spacing by " + CStr(pct) + "%" + " (" + CStr(inc) + " pt)"
   Optimization = True
   EventsEnabled = False
   ActiveDocument.SaveSettings
   ActiveDocument.PreserveSelection = False
   For Each s In sr
      If s.Type = cdrTextShape Then
         If s.Text.IsArtisticText Then
            With s.Text.Story
               l = 0
               Select Case .LineSpacingType
                  Case cdrPointLineSpacing: l = .LineSpacing + inc
                  Case cdrPercentOfPointSizeLineSpacing: l = .LineSpacing + pct
                  Case cdrPercentOfCharacterHeightLineSpacing: l = .LineSpacing + pct
                  Case cdrMixedLineSpacing: l = .LineSpacing
                  End Select
               If Round(l, 3) > 0 Then .LineSpacing = l
            End With
         Else
            For Each p In s.Text.Story.Paragraphs: l = 0
               Select Case p.LineSpacingType
                  Case cdrPointLineSpacing: l = p.LineSpacing + inc
                  Case cdrPercentOfPointSizeLineSpacing: l = p.LineSpacing + pct
                  Case cdrPercentOfCharacterHeightLineSpacing: l = p.LineSpacing + pct
                  Case cdrMixedLineSpacing: l = p.LineSpacing
                  End Select
               If Round(l, 3) > 0 Then p.LineSpacing = l
            Next p
         End If
      End If
   Next s
clsbsDONE:
   ActiveDocument.PreserveSelection = True
   ActiveDocument.RestoreSettings
   EventsEnabled = True
   Optimization = False
   Application.CorelScript.RedrawScreen
   ActiveDocument.EndCommandGroup
End Sub

для тех кто не любит коды - готовый gms внутри wx_TextSpacing.zip

Вот!
 

Вложения

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