sZam5. Бета-тестирование

  • Автор темы Автор темы vbatushev
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ответ: sZam5. Бета-тестирование

Да именно "Book"... Я это пожелание давал еще в первых версиях зама... Но видимо не особо востребованно, скопом 15-30 документов обрабатывать.
По поводу заменны локальных выделений на стилевые, можно поподробней, я в ввиду отсутсвия справки с правилами особо не разбирался. Но уверен что такую функцию можно вынести в основной интерфейс в виде дополнительной галочки.
Пока дополнительно пользуюсь скриптом Дэва Сандерса.
Хотелось бы в идеале, всю эту предверстальную обработку сократить до одного клика, и перекура с кофем, пока работает машина.
 
Ответ: sZam5. Бета-тестирование

Про Дэва Сандерса можно подробнее?

С локальными выделениями есть засада: например, курсив в верхнем индексе.
 
Ответ: sZam5. Бета-тестирование

Курсив в верхнем индексе, как и в нижнем, у меня только в формулах, а они только как объекты маттайпа, так что для меня это не актуально, хотя разное бывает, но скорее как исключение.
А скрипт Сандерса, вот он
Код:
//DESCRIPTION: Convert local formatting to equivalent character styles

 /*
	This script works on the current text selection if there is one.
	If not, it checks with the user
 */

if (app.documents.length == 0) { exit() }
theRange = checkSelection();
if (theRange == null) exit();
convertFormatting(theRange);

function convertFormatting(range) {
	var myStyles = ["Italic", "Bold", "Bold Italic"];
	var myPosns = ["superscript", "subscript"];
	var aDoc = app.documents[0];
	switch (Number(String(app.version).split(".")[0])) {
		case 3 :
		case 4 :
			processStylesPreCS3(range, myStyles, aDoc);
			processPosnsPreCS3(range, myPosns, aDoc);
			break;
		case 5 :
			processStylesCS3(range, myStyles, aDoc);
			processPosnsCS3(range, myPosns, aDoc);
		}
	

} // end convertFormatting

function processStylesPreCS3(range, myStyles, aDoc) {
	var noCharStyle = aDoc.characterStyles[0];
	for (var j = 0; myStyles.length > j; j++) {
		var myCharStyle = aDoc.characterStyles.item(myStyles[j]);
		if (myCharStyle == null) {
			aDoc.characterStyles.add({name:myStyles[j],fontStyle:myStyles[j]});
		}
		app.findPreferences = app.changePreferences = null;
		range.search("", false, false, undefined, {appliedCharacterStyle:noCharStyle, fontStyle:myStyles[j]}, {appliedCharacterStyle:myStyles[j]});
	}
}

function processStylesCS3(range, myStyles, aDoc) {
	var noCharStyle = aDoc.characterStyles[0];
	for (var j = 0; myStyles.length > j; j++) {
		var myCharStyle = aDoc.characterStyles.item(myStyles[j]);
		if (myCharStyle == null) {
			aDoc.characterStyles.add({name:myStyles[j],fontStyle:myStyles[j]});
		}
		app.findTextPreferences = app.changeTextPreferences = null;
		app.findTextPreferences.appliedCharacterStyle = noCharStyle;
		app.findTextPreferences.fontStyle = myStyles[j];
		app.changeTextPreferences.appliedCharacterStyle = myStyles[j];
		searchText(range, "", undefined, false, false, true, true, true, false, true);
			}
}

function processPosnsPreCS3(range, myPosns, aDoc) {
	var noCharStyle = aDoc.characterStyles[0];
	for (var j = 0; myPosns.length > j; j++) {
		var myCharStyle = aDoc.characterStyles.item(myPosns[j]);
		if (myCharStyle == null) {
			aDoc.characterStyles.add({name:myPosns[j], position:Position[myPosns[j]]});
		}
		app.findPreferences = app.changePreferences = null;
		range.search("", false, false, undefined, {appliedCharacterStyle:noCharStyle, position:Position[myPosns[j]]}, {appliedCharacterStyle:myPosns[j]});
	}
}

function processPosnsCS3(range, myPosns, aDoc) {
	var noCharStyle = aDoc.characterStyles[0];
	for (var j = 0; myPosns.length > j; j++) {
		var myCharStyle = aDoc.characterStyles.item(myPosns[j]);
		if (myCharStyle == null) {
			aDoc.characterStyles.add({name:myPosns[j], position:Position[myPosns[j]]});
		}
		app.findTextPreferences = app.changeTextPreferences = null;
		app.findTextPreferences.appliedCharacterStyle = noCharStyle;
		app.findTextPreferences.position = Position[myPosns[j]];
		app.changeTextPreferences.appliedCharacterStyle = myPosns[j];
		searchText(range, "", undefined, false, false, true, true, true, false, true);
	}
}

function checkSelection() {
	if (app.selection.length == 0) {
			if (!confirm("Process the whole document?")) {
			exit();
		}
		theRange = app.activeDocument;
	} else {
		theRange = app.selection[0];
		try {
			if (theRange.constructor.name.indexOf("TableCell") != -1 &&
					theRange.insertionPoints.length == 1) {
				theRange = getParentTextFlow(theRange);
			}
		} catch (e) {
			// selection is not text so
			app.selection = null;
			checkSelection();
			return null;
		}
	}
	return theRange
} // end checkSelection

function getParentTextFlow(theTextRef) {
	if (theTextRef.parent.constructor.name == "Cell") {
		return theTextRef.parent.texts[0];
	} else {
		return theTextRef.parentStory;
	}
}

function searchText(range, from, to, caseSens, 
						WholeWord, foots, hidLayers, lockLayers, 
						lockStories, masterPages) {
	app.findTextPreferences.findWhat = from;
	try {app.changeTextPreferences.changeTo = to} catch(e) {};
	with (app.findChangeTextOptions) {
		caseSensitive = (caseSens == null ? false : caseSens);
		wholeWord = (WholeWord== null ? false : WholeWord);
		includeFootnotes = (foots == null ? false : foots);
		includeHiddenLayers = (hidLayers == null ? false : hidLayers);
		includeLockedLayersForFind = (lockLayers == null ? false : lockLayers);
		includeLockedStoriesForFind = (lockStories == null ? false : lockStories);
		includeMasterPages = (masterPages == null ? false : masterPages);
	}
	return(range.changeText());
}
 
Ответ: sZam5. Бета-тестирование

Ага, спасибо.

Не по теме:
У меня, как правило, много простых формул набрано в тексте.
 
Ответ: sZam5. Бета-тестирование

А вот интересно, как sZam5 на маке бегает.
 
Ответ: sZam5. Бета-тестирование

Как сообщила сегодня Psy, sZam5 отлично работает на маке.
Счастлив, смахиваю слезу :)
 
Ответ: sZam5. Бета-тестирование

vbatushev сказал(а):
Как сообщила сегодня Psy, sZam5 отлично работает на маке.
Счастлив, смахиваю слезу :)
Невозможно представить моё счастие :)))
Пока все обычные нормализации/замены работают хорошо, но надо погонять на чем-то посложнее, нежели мои биографии и статейки на околотеатральные темы. А то мало ли какие подвохи еще откроются :)
 
Ответ: sZam5. Бета-тестирование

vbatushev сказал(а):
А вот интересно, как sZam5 на маке бегает.

А я о чем писал?
 
Ответ: sZam5. Бета-тестирование

Разослана 25-я бета.
Исправления и изменения:
1. Не сохранялся параметр "Обработать знак минуса...". Сохраняется.
2. Номера телефонов и обозначений документов (типа, 45-156-опр7999) обрабатывались как диапазоны чисел, что, конечно же, недопустимо. Исправлено.
3. Возникло предложение добавить возможность указания запрещения вставки шпации, вставляемой между отдельными знаками препинания (точка и запятая) и тире. Добавил. Что привело к некоторым изменениям в интерфейсе sZamEditor'а.
4. Изменился формат языковых файлов. Файл sZamLanguage.xml больше не используется, вместо него файлы с расширением .xnl (внутри XML). Точнее они оформились иначе. Предполагаю постепенно добавлять различные языки интерфейса на сайт. Пока готов русский и английский. Понятно, что по-английски я говорю плохо. Так что правки перевода и переводы на другие языки с благодарностью принимаю.
5. Появилась возможность влиять на некоторые из настроек (обозначения валют и т. п.). См. закладку "Настройки исполнения".
6. Исправлены ошибки, обнаруженные в едва неразосланной всем 24-й бете.

Думаю, что на красивой цифре не грех и закончить бета-тестирование.
Тем более, что с форматом файлов нормализаций и языковых файлов в моей голове все утряслось.
Теперь займусь хелпом, после выхода хелпа и исправления возможных недочетов, найденных к тому времени, ставлю на попе сезама штамп "Готово" и выпускаю в люди.
Цена релиза изменится. Несильно, но изменится. Покупать заново тем, кто купил бета, не нужно, пришлю релиз как очередное обновление.
 
Ответ: sZam5. Бета-тестирование

vbatushev сказал(а):
Разослана 25-я бета.
На почта@yandex.ru пришло два письма – с 24 бетой и с 25 бетой, и оба – без вложений 'hz'
 
Ответ: sZam5. Бета-тестирование

Аналогично 'hz'
 
Ответ: sZam5. Бета-тестирование

Спецом создал себе яндексовый адрес, тоже пришло только кусок текста и никакого вложения. Все вокруг в борьбе со спамом, так что, видимо, и я под раздачу попадаю. Адресов пять вообще отбились тем, что их нет. Действительно нет или просто такой ход почтового сервака – мне неизвестно.
Пожалуйста, кто не получил, отпишитесь мне, сообщите альтернативные адреса. Знаю, что на гмыловые адреса уходят письма нормально (пока никто не пожаловался).
 
Ответ: sZam5. Бета-тестирование

Да!
Накосячил я с русским интерфейсом – в Russian.xnl попала часть испанского перевода. Правильные переводы доступны на http://szam.adobescripts.info.

Ну, и в связи с косяком + нашлась досадная ошибка с тире, которую уже исправил, разошлю я сегодня, думаю, к вечеру 26-ю бету.
 
Ответ: sZam5. Бета-тестирование

26-я бета в процессе рассылки пользователям.

Исправления и изменения:
1. Возникла проблема: "Есть небольшая проблема: мне приходится делать 30% пробелы вокруг тире(длинных), при этом диапазон чисел разделяется коротким тире без пробелов после применения скрипта короткое тире становится тоже 30% (сохраняет стиль 30% пробела)". Исправлено.
2. Исправлена обработка испанских перевернутых вопросительного и восклицательного знаков.
3. Исправлен файл русского языка.
4. Исправлен sZamEditor, а то кнопки "Исправить" в списках слов отображались как "Добавить".
 
Ответ: sZam5. Бета-тестирование

Уважаемый Виталий!
Использую sZam 5. IDCS3 англоязычный. Вот такое окно выскакивает при попытках обработать скриптом выделенный фрагмент текста. При этом обработка прерывается. Скрипт запускаю из контекстного меню. При запуске скрипта из панели все проходит, кажется гладко. Можно ли каким либо образом объяснить причину появления данного окна?
Рассылки не получал не одной.
 

Вложения

  • sZam.gif
    sZam.gif
    30.8 КБ · Просм.: 1 108
Ответ: sZam5. Бета-тестирование

Бета какая? Актуальная бета – 30.
Отпиши мне на szamsupport@gmail.com. Рассылки мог не получать, потому что у меня несколько адресов (видимо, из-за спам-фильтров) письма возвращают с наглым утверждением, что таких адресатов нет.
 
Ответ: sZam5. Бета-тестирование

Виталий, мой вопрос по sZam5 в следующем. Допустим, мне нужно сделать замену не во всем тексте, а только применительно к определенному стилю (к примеру, ParagraphStyles называется "stroka_zag"). Или же присвоить слову "телефон" в тексте определенный стиль. Как правильно прописать в Правилах "Настройки поиска и/или замены"?

paragraphStyles: stroka_zag - ничего не дает.
 

Вложения

  • CreateRule.png
    CreateRule.png
    19.8 КБ · Просм.: 1 108
Ответ: sZam5. Бета-тестирование

nmkr сказал(а):
paragraphStyles: stroka_zag - ничего не дает.

Без пробелов и название стиля в кавычках.
 
Ответ: sZam5. Бета-тестирование

Спасибо, нашла сама. Но работает только когда вот так:

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