left menu mob button

Новое на канале:


Комментарии

Jeanette Ashman
(09.11.2021 16:37):

Hi! I have several documents that use the same paragraph styles. I have all the files in a book so if I change something I can synchronies. But in the heat of the moment I sometimes make changes in one of the documents and forgets to synchronize. So... I am looking for a script where I can compare paragraph styles from different files (same name on paragraph style) and only see the difference between them. Do you know if there is something like that existing? Kind regards Jeanette

(Сравнить стили)

hadi
(10.08.2021 9:44):

Hi. If there is a group style, its subset style will not be displayed.

(Скопировать ГРЕП-стили)

hadi
(24.06.2021 9:04):

hi. It is a perfect script.

(Общее форматирование нескольких таблиц)

только нужной информации

(серия статей):

Локализованное меню: приключения продолжаются

Проблема получения доступа к скрипту из контекстного меню разных локализаций была подробно рассмотрена в статье «Доступ к скрипту из локализованного меню» и конкретизирована годом позже. Предлагаемые в этих материалах методы решения, мягко говоря, далеки от совершенства: в них предлагается вручную искать индекс нужного меню и указывать его в скрипте. Понятно, что при таком подходе, в случае переноса скрипта на другой компьютер, на котором установлена другая версия программы, с другой локализацией и набором обновлений, пользователю каждый раз нужно будет заново выполнять поиск индекса и исправлять скрипт.

На днях тема вновь была затронута на форуме. В одном из обсуждений Виталий Батушев, автор скриптов, среди которых известный многим sZam, поделился своим решением:

Локализация меню-2

Перебор объектов — cпособ, конечно, не самый скоростной, а, по словам, Виталия, «к сожалению, весьма медленный». Тем не менее, он позволяет одним махом решить имеющуюся проблему сразу для всех версий и локализаций InDesign.

Ниже приведен один из примеров того, как можно осуществить поиск индекса нужного меню, как контекстного, так и главного, независимо от версии и локализации. Следует иметь ввиду, что под тем или иным индексом может «скрываться» совсем не то, что мы можем преполагать. Например, нужный в данном случае объект из главного меню («Таблица») будет содержать строку: «$ID/Table,$ID/kTablePanelTitle,$ID/kPreflightOD_Table,$ID/XML_TableName». А при попытке получить контекстное меню «$ID/RtMouseTable» помехой может выступить, например, «$ID/RtMouseTableStrokeWidget». Код ниже составлен с учётом этих особенностей.

var menuName = "Новый пункт меню таблиц";
var myMenuItem = app.scriptMenuActions.add(menuName);
myMenuItem.addEventListener('onInvoke', function(){main();});
function getCurMenu(m, mn){ //Нужный нам объект находится в коллекции объектов m и называется mn
	var mi = 0;
	var s = app.findKeyStrings(m[mi].name).toString();
	while (!(s.match(mn))){
		mi++;
		s = app.findKeyStrings(m[mi].name).toString();
		}
	return mi; //Возвращаем индекс найденного меню
	}
var mnu = app.menus[0].submenus[getCurMenu(app.menus[0].submenus, "kTablePanelTitle")]; //Главное меню
var rMouseMnu = app.menus[getCurMenu(app.menus, "RtMouseTable$")]; //Контекстное меню
mnu.menuItems.add(myMenuItem);
rMouseMnu.menuSeparators.add();
rMouseMnu.menuItems.add(myMenuItem);

При таком алгоритме, для встраивания скрипта в меню достаточно один раз подобрать регулярное выражение для строки s.match(mn), где s — полное имя текущего пункта меню (как в примерах выше), mn — строка, составленная так, чтобы она могла содержаться в имени только нужного меню.

Скрипты на сайте, которые встраиваются в различные меню, обновлены. Если вы скачали их ранее, и попытка встраивания в меню у вас успехом не увенчалась, скачайте новые версии, попробуйте ещё раз и, по возможности, сообщите в комментариях о результатах.


Скрипты, доступные на сайте, которые встраиваются в различные меню:

Комментариев нет.