[ID CS4-CS6] Исправление свойств символа окончания абзаца (¶).

densen

Топикстартер
15 лет на форуме
Сообщения
753
Реакции
642
Нашел скрипт для приведения свойств символа окончания абзаца к свойствам символа, стоящего перед ним. Пару строк добавил, решил поделиться, вдруг кому понадобится.

JavaScript:
//DESCRIPTION: Change Glyph Size, Leading, Position and Tracking of Break Paragraph Symbols
//SOURCE https://github.com/GitBruno/Novelty/blob/master/Scripts/Fix_Paragraph_Endleading.jsx
// Latest github commit e8bb130 on May 21, 2018
// Improved in March 11, 2023


if (app.documents.length<1){exit()}
var doc = app.activeDocument;
for (var i=0;i<doc.stories.length;i++){
    var myStory = doc.stories[i];
    for (j=0;j<myStory.paragraphs.length;j++){
        var myPara = myStory.paragraphs[j];
        if (myPara.characters[-1].contents == "\r"){
            myPara.characters[-1].pointSize = myPara.characters[-2].pointSize;
            myPara.characters[-1].leading = myPara.characters[-2].leading;
            myPara.characters[-1].position = myPara.characters[-2].position; // imprvd
            myPara.characters[-1].tracking = myPara.characters[-2].tracking; // imprvd
            }
        }
    }

Что делает? Исправляет неприглядные окончания абзацев, которые либо затаскиваются с текстом из ворда, либо в больших количествах встречаются в чужих работах:

Fix_Paragraph_EndLeading.png

В архиве он же, чтобы не копировать текст.
Можно ещё добавить свойства "appliedLanguage", "baselineShift", "horizontalScale" и "verticalScale", но мне не приходилось встречать символы абзацев с такими дефектами, а с имеющимися четырьмя - сплошь и рядом.
 

Вложения

  • Fix_Paragraph_EndLeading.zip
    630 байт · Просм.: 109

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 529
Ошибка зачем-то вылезла:

error.jpg

:(
 
  • Спасибо
Реакции: densen

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 529

Не по теме:
Ты как-то их притягиваешь. =)


Не по теме:
Ага, я альфа-самец бета-тестер всех возможных граблей вопреки собственному желанию. Самому противно :D


Может быть в новых ИнДизайнах свойство "pointSize" в DOM поменяли?
Попробовал в СС2017 (выше - скрин из СС2020). То же самое.
 

densen

Топикстартер
15 лет на форуме
Сообщения
753
Реакции
642
Посмотрел в DOM-ах последних, всё на местах, ничего не потерялось.
Вырежи, пожалуйста, кусок текста в отдельный файл, сохрани в idml и выложи. Интересно же.
 

densen

Топикстартер
15 лет на форуме
Сообщения
753
Реакции
642
Спасибо!
Исправил.
 

Вложения

  • Fix_Paragraph_EndLeading_v2.zip
    655 байт · Просм.: 112
  • Спасибо
Реакции: xenOnn, ~RA~ и LeonidB

LeonidB

Их бин
10 лет на форуме
Сообщения
2 470
Реакции
1 529
Супер!
Всё работает, спасибо!
 

Любимцев

15 лет на форуме
Сообщения
4 208
Реакции
2 058
Тогда добавить возможность удаления пустых, с присвоением тексту отбивкт after велмчиной межстрочно (опционально)
А с настройкой величины оной, так и вообще -- песня
Ну... просто такая доп.фишка сама напрашивается подобному скрипту
 
  • Спасибо
Реакции: densen

densen

Топикстартер
15 лет на форуме
Сообщения
753
Реакции
642
такая доп.фишка сама напрашивается подобному скрипту
Это скрипт не для глобальных изменений в тексте, а для эстетических целей в случаях, если текст никак не размечен (бывает и такое), и нужно всего лишь убрать раздражающие глаз несуразности.
Если подходить с умом, то в тексте нужно заранее убрать все пустые абзацы, разметить поиском-заменой абзацы опорными стилями в тех случаях, где можно; затем на основе опорных стилей абзацев разметить весь остальной текст (завтра выложу скрипт), и когда уже весь текст будет размечен, можно избавляться от вышеуказанных недочетов в абзацах (и многого другого) заменой абзацного стиля на самого себя при пустых значениях "Найти" и "Заменить" (см. скриншот).
Change.png
Это процедура аналогична OverrideType.PARAGRAPH_ONLY. Все изменения в оформлении, которые не заданы в абзацном стиле, будут убраны, в том числе и в оформлении знаков параграфа.
Нет смысла усложнять маленький скрипт для маленьких целей! =)
 
Последнее редактирование:
  • Спасибо
Реакции: sztaishuo и LeonidB