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

  • Автор темы Автор темы sashamo
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Или, можно принудительно аттрибут нормал устанавливать
Не, это плохо. Ибо сбрасываться должно лишь то, что стилем выделено, а то, что выделено прямым заданием начертания, слетать не должно.
 
Ну, как выясняется, нужно не просто очистить текст от любого стиля, а еще и сбросить форматирование
А это внезапно не одно и то же ;)
 
Ну, как выясняется, нужно не просто очистить текст от любого стиля, а еще и сбросить форматирование
А это внезапно не одно и то же ;)
Сбросить форматирование не везде - а только там, где был явно задан символьный стиль. Как и происходит при нажатии мышкой на "Без стиля" в палитре символьных стилей.
 
Этот момент не совсем понял

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

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

symb-3.jpg и symb-4.jpg

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

symb-5.jpg

Локальное форматирование того, что было задано при помощи символьных стилей, сваливается на дефолтное для данного абзацного стиля. То, что мы задали явно, не меняется.
 
Код:
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
@Eugenyus, работает, но для образца
symb-3.jpg
надо запустить скрипт 2 раза: на первом прогоне уходит болд со слов "обычным видам", а при втором - курсив со слова "деятельности".

При запуске скрипта был выделен весь абзац.
 
Последнее редактирование:
  • Спасибо
Реакции: Eugenyus
Да, цикл таки с конца надо гнать. Поправил выше код, попробуйте ещё раз.
 
  • Спасибо
Реакции: LeonidB
@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

Можно вешать хоткеи и на один, и на другой :)
 
Последнее редактирование:
Вообще-то есть ещё один, с возможностями разными, интерфейсами и пр.

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

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