[ID CC-CC2021] Как повесить хоткей на стиль символа "Без стиля"

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

LeonidB

Их бин
10 лет на форуме
Сообщения
2 469
Реакции
1 528
Или, можно принудительно аттрибут нормал устанавливать
Не, это плохо. Ибо сбрасываться должно лишь то, что стилем выделено, а то, что выделено прямым заданием начертания, слетать не должно.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844
Ну, как выясняется, нужно не просто очистить текст от любого стиля, а еще и сбросить форматирование
А это внезапно не одно и то же ;)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 188
Реакции
10 844

LeonidB

Их бин
10 лет на форуме
Сообщения
2 469
Реакции
1 528
Ну, как выясняется, нужно не просто очистить текст от любого стиля, а еще и сбросить форматирование
А это внезапно не одно и то же ;)
Сбросить форматирование не везде - а только там, где был явно задан символьный стиль. Как и происходит при нажатии мышкой на "Без стиля" в палитре символьных стилей.
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 469
Реакции
1 528
Этот момент не совсем понял

Вот просто выделение шрифтом, символьный стиль не трогаем:
symb-1.jpg и symb-2.jpg

Вот со стилем:

symb-3.jpg и symb-4.jpg

А вот жмакаем на "Без стиля":

symb-5.jpg

Локальное форматирование того, что было задано при помощи символьных стилей, сваливается на дефолтное для данного абзацного стиля. То, что мы задали явно, не меняется.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Код:
try {
    var tsr = app.activeDocument.selection[0].textStyleRanges;
    for (i = tsr.length - 1; i >= 0; i--){
        if (tsr[i].appliedCharacterStyle.index != 0){
            tsr[i].appliedCharacterStyle = app.activeDocument.characterStyles[0];
            tsr[i].clearOverrides();
            }
        }
    }catch (e) {exit()};
 
Последнее редактирование:
  • Спасибо
Реакции: LeonidB

LeonidB

Их бин
10 лет на форуме
Сообщения
2 469
Реакции
1 528
@Eugenyus, работает, но для образца
symb-3.jpg
надо запустить скрипт 2 раза: на первом прогоне уходит болд со слов "обычным видам", а при втором - курсив со слова "деятельности".

При запуске скрипта был выделен весь абзац.
 
Последнее редактирование:

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
А перед запуском что было выделено?
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 469
Реакции
1 528
  • Спасибо
Реакции: Eugenyus

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Да, цикл таки с конца надо гнать. Поправил выше код, попробуйте ещё раз.
 
  • Спасибо
Реакции: LeonidB

LeonidB

Их бин
10 лет на форуме
Сообщения
2 469
Реакции
1 528
@Eugenyus, получилось!

Спасибо!!!

Итак, благодаря @_MBK_ и @Eugenyus у нас есть два варианта для сброса символьного стиля на "Без стиля" в выделенном фрагменте текста:

1) с сохранением локального форматирования в местах, выделенных символьными стилями:
Код:
try {app.selection[0].appliedCharacterStyle = app.activeDocument.characterStyles.item(0)}catch (e) {exit()};

2) и со сбросом оного на дефолт:
Код:
try {
    var tsr = app.activeDocument.selection[0].textStyleRanges;
    for (i = tsr.length - 1; i >= 0; i--){
        if (tsr[i].appliedCharacterStyle.index != 0){
            tsr[i].appliedCharacterStyle = app.activeDocument.characterStyles[0];
            tsr[i].clearOverrides();
            }
        }
    }catch (e) {exit()};

Сохранил их под именами ApplyNoneCharStyle_SaveLocalFormat.jsx и ApplyNoneCharStyle_NoLocalFormat.jsx

Можно вешать хоткеи и на один, и на другой :)
 
Последнее редактирование:

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589

LeonidB

Их бин
10 лет на форуме
Сообщения
2 469
Реакции
1 528
Вообще-то есть ещё один, с возможностями разными, интерфейсами и пр.

Ну вот, ещё одно подтверждение того, что
...всё новое, оказывается, - это хорошо забытое старое

И какое-то дежавю даже шевелится, что всё это даже когда-то уже и видел... Но склероз крепчает :)
 
Статус
Закрыто для дальнейших ответов.