Быстрое форматирование
В жизни каждого верстальщика наступает момент, когда он получает на вёрстку текст со специфической стилевой разметкой, которую невозможно провести доступными средствами автоматизации. И тогда, сверяясь с рукописным текстом и вспоминая добрым словом автора, так и не научившегося назначать в Word словам разные виды подчёркивания, приходится проходить руками десятки страниц, назначая тексту поочерёдно, либо вперемешку несколько символьных стилей.
Если при этом верстальщик отдаёт предпочтение «скоростному» стилю работы, остаётся только представить, какие его ждут эмоции от алгоритма "двойной клик на слове —> навести мышь на стиль —> клик мышью —> посмотреть в рукопись —> найти слово на экране —> двойной клик на слове —> повторить цикл". Сколько раз он промахнётся мимо нужного стиля? А если он использует "горячие" кнопки — сколько раз ему придётся оторвать правую руку от мыши и не промахнуться (режим-то "скоростной") по нужной клавише? А слов, мы помним, десятки, если не сотни...
И если в таком случае невозможно полностью автоматизировать процесс форматирования, то можно ли, по крайней мере, сократить количество телодвижений до минимума, заставив программу назначать нужное форматирование прямо в момент выделения нужного текста? Т.е. было бы здорово, если бы верстальщик двойным кликом выделял текст — и текст сам бы форматировался, получая нужный стиль. Тогда нужно было бы только прощёлкать мышью нужные слова и больше ничего не делать, а это огромная экономия времени и нервов верстальщика.
Именно эту задачу и решает алгоритм, представленный ниже.
#targetengine "quickformatting" var myEventHandler = function(ev){ try{ //Здесь выполняется нужное действие, у меня, например, назначается символьный стиль множеству последовательно выделяемых символов: app.activeDocument.selection[0].appliedCharacterStyle = "Нужный символьный стиль"; w.text = "It's working!"; } catch(e){w.text = "It doesn't work!";} }//function var w = new Window("palette"); var butStart = w.add("button",undefined,"Start"); //Этой кнопкой будем включать/выключать отслеживание события var started = false; //С помощью этой переменной мы определяем, включено отслеживание события, или нет butStart.onClick = function(){ if (!started){ //Если отслеживание события не включено - включаем app.activeDocument.addEventListener('afterSelectionChanged', myEventHandler); butStart.text = "Stop"; //Меняем текст на кнопке } else{ //Если отслеживание события включено - выключаем app.activeDocument.removeEventListener('afterSelectionChanged', myEventHandler); butStart.text = "Start"; //Меняем текст на кнопке } started = !started; //При нажатии на кнопку переключаем переменную } w.onClose = function(){ if (started){ app.activeDocument.removeEventListener('afterSelectionChanged', myEventHandler); } } w.show();
Кнопка запуска/остановки отвечает за поведение программы в момент, когда происходит выделение текста — будет ли выбранный текст получать прописанное в скрипте форматирование, или нет. А из приведенных ниже видео, думаю, ясно, что возможности такого кода позволяют применять его не только для назначения символьного стиля, но и для более сложных задач.
Обновление от 16.12.2015. В скрипт добавлено условие, при котором действие скрипта будет остановлено, если пользователь закроет окно с кнопкой, забыв перед этим нажать Stop. Эти строки должны быть помещены перед последней строкой — строкой показа окна w.show();
w.onClose = function(){ if (started){ app.activeDocument.removeEventListener('afterSelectionChanged', myEventHandler); } } w.show();
Комментариев: 6
Джангозы (12.10.2018 9:22) E-mail |
А где можно скачать или купить скрипт который ставит ударение? А то не разобрался с кодом. Заранее спасибо! d.s.zhan@mail.ru |
Ответить |
Admin (17.10.2018 8:13) E-mail |
Джангозы, в статью добавлено видео с пояснениями по установке и настройке скрипта. |
Ответить |
Дмитрий (25.04.2019 23:23) E-mail |
Мне кажется не совсем эргономичный метод расстановки ударений. Я делал по-другому... В любом нормальном (некривом) шрифте уже есть знаки ударения как для ЗАГЛАВНЫХ букв так и для прописных. берете любой из скриптов Insert-A-Glyph’o-matic или GID_Injects или MultiplicationInjects или UnicodeInjector, и назначаете ему хоткей... Ставите курсор позади ударной гласной, ТЫНЦ по хоткею и все... 4 учебника русского для иностранцев по 300 полос каждый делал именно так. |
Ответить |
Михаил (24.04.2020 22:23) E-mail |
У Вас на видие пример работы скрипта, где есть выпадающий список различных вариантов форматирования. А в скачанном скрипте доступен лишь один вид. Приходится каждый раз править скрипт ручками, чтобы применять разные виды форматирования. Как сделать такой список? |
Ответить |
Admin (25.04.2020 16:41) E-mail |
Михаил, приветствую! Пример того, как создаются выпадающие списки стилей, можно посмотреть, например, в скрипте: eugenyus.rudtp.ru/ru/applyParStyleWithNextStyle Строки 3-19 - создание массивов, окна и выпадающего списка в этом окне; строка 30 - получение доступа к выбранному пользователем стилю после того, как была нажата кнопка выполнения. Там происходит обращение к абзацным стилям. Чтобы организовать список символьных стилей, нужно просто заменить везде в этих строках paragraph на character. |
Ответить |
bartbin (11.06.2021 21:22) E-mail |
Eugenyus, I use your two scripts with great joy and benefit: Split Table Row by Paragraphs and Split Text By Paragraphs. Thank you very much for them. They have saved me time and work many times. I found another very interesting Quick Formatting script on your blog. I copied the code into the Sublime text editor and saved it as a .jsx file type Unfortunately, it does not perform the main function. After pressing start, the inscription -not working- is displayed and the window with the choice of style does not appear. The script still does not make any changes to the text. I have Indesign 2020 Please, write if it's the program's fault or if I wrote something wrong. Thank you so much. Bartholomew |
Ответить |
Ещё статьи:
- Быстрое вращение разворота
- Перекрёстная ссылка в два клика
- Доступ к скрипту из локализованного меню
- Экспорт из InDesign в html: тегируем символьные стили
- Экспорт из InDesign в html-2: тегируем абзацы
- Экспорт из InDesign в html-3: таблицы
- Скрипт не появился в меню, или Ещё раз о локализации
- Экспорт из InDesign в html-4: работа с изображениями и гиперссылками
- Локализованное меню: приключения продолжаются
- Как организовать доступ к списку стилей через Пользовательский интерфейс