Скрипт для размещения формул MathType в InDesign CS3, CS4, CS5

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

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

JAW сказал(а):
Вот такой вопросик для размышлений.

На второй вопрос о работе скриптов под CS3 лучше всех ответите именно Вы. Поставьте скрипты и запустите, напишите, что получится. Есть предположение, что все должно пройти успешно.

По поводу первого вопроса.
Интересно будет проверить, сохраняется ли MTEF-структура в таким образом внедренном файле. Если да, то с этим можно будет работать, если нет - увы.
Однако, в любом случае Ваш способ более быстр на первом этапе, но уверенно "отыграет" все трудозатраты в дальнейшем, так что покопаться все же интересно, а эффективность результата - сомнительна.
 

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Ув. участники форума!
Почему-то нет ни одного отзыва на MT-Script1-08 (равно как и на скрипты от eugene10901). Работает ли он у Вас, али нет? Что хорошо, а что - не очень?
Для себя уже несколько модернизировал скрипт. Теперь при работе в Word-е в MT-Convert не нужно указывать путь к папке Temp. Он передается в word-овские скрипты от MathType автоматически вместе с другими необходимыми установками. Но это, а также еще один скриптик (находящийся в стадии написания), преобразующий "простые однострочные формулы" типа x = 0, sin a = b, одиночно стоящие А, В и др. в обычный текст с учетом установок в Pref file смогу выложить после обсуждения уже сделанного. Заранее спасибо.
 

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
Ответ: Скрипт для размещения формул MathType в InDesign CS4

mvlad123 сказал(а):
Почему-то нет ни одного отзыва на MT-Script1-08 (равно как и на скрипты от eugene10901).
Владислав, к выходным освобожусь от забот этого года и немедленно (может уже в пятницу) приступлю. Пока завален по уши.
 

Onger

12 лет на форуме
Сообщения
389
Реакции
75
Ответ: Скрипт для размещения формул MathType в InDesign CS4

аналогично (
Пока могу сказать, что все работает... Есть нарекания только по удобству использования. Завтра-послезавтра подробнее распишу что и как.

Не по теме:
Владислав, еще одна просьба, можно ли сделать скрипт подсчета объема формул в учетно издательских листах (расчет в кв. см, 1 уч. изд. л. = 3000 кв. см)? Можно даже не разделять с другой графикой, а считать все скопом.
А то сейчас это можно сделать только в надстройке для Word-a - Перестройка 2002.

 

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Потестил немного.
Впечатления: вставляет формулы без проблем, редактируются без проблем, МТ запускается при наличии другого редактора для eps по умолчанию.
Но у меня проявились некоторые ошибки (WinXP sp3 pro rus, ID 6.04, МТ 6.0с):
1. При попытке отловить дублированные формулы первый запуск скрипта ClearDoubleLinks был успешным (дублей не было). Второй - со странным результатом (найден 1 дубль, формула была переименована в EqnNaN.undefined и помещена в папку C:\Program Files\Adobe\Adobe InDesign CS4\Scripts\XHTML For Digital Editions. Сделал еще один дубль, запустил в третий раз - создана формула EqnNaN.undefined и записана поверх прежней. На четвертом запуске скрипт выдал ошибку (см. вложение).
2. К сожалению, совсем не запускается скрипт MT-NewEq1-08. Когда ничего не выделено выдает ошибку (см.вложение MT-NewEq1-08_error1), когда выделен кадр - просто не запускается, когда курсор в тексте - пишет TypeError: null is not an object. Когда выделена формула - как ни в чем не бывало открывает МТ, т. е. как бы работает.

Пожелание по оформлению. Мне кажется избыточным появление окна подтверждения (Если Вы исправили формулу, продолжаем).

В следующем письме напишу о впечатлениях о конверторе.
 

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Впечатления о MT-Convert1-08 (текстировался на документе со 175 формулами):
Все операции проходят нормально, кроме последней - вставки обновленных формул из папки Temp-MTEF-Export. Скрипт трудится, но обновления не происходит - формулы остаются старыми из исходной папки (у меня это подпапка ch1-2 папки Eqn, лежащей там же, где публикация Индизайна).

Скорость вполне удовлетворительная (но и компьютер неслабый).

Да, забыл об одном пожелании: при тестировании я пакетно обрабатывал формулы МТ, увеличивая размер шрифта в формулах на полпункта (ну, так захотелось). На последнем этапе (обновление скриптом формул в ИД), скрипт ругнулся на то, что в публикации остался неразмещенный текст и туда формулы вставлены не будут ("запустите еще раз"), хотя все равно что-то он потом делал. На практике, как я понимаю, следует удалить временную папку и повторить всю процедуру. Об этом стоит, наверно, написать в предупреждении. Перед вторым прогоном скрипта я добавил пустое место, так что сбой, о котором написал выше, это повлиять не могло.
 

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
Ответ: Скрипт для размещения формул MathType в InDesign CS4

eugene10901
Потестил Ваш скрипт для выравнивания формул.
Если выделена формула - выравнивает без проблем. Если выделен фрагмент текста с формулами - работает странно, одни фрагменты выравнивает, другие - нет. Если ничего не выделено, то в документе из 58 страниц со 175 формулами выдавал сообщение (смотри вложение) или вообще закрывал ИД с ошибкой.
 

Вложения

  • arr_error.jpg
    arr_error.jpg
    57.6 КБ · Просм.: 1 192

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Владислав, прошу прощения, забыл приложить файлики с сообщениями в пост 145. Исправляюсь.
 

Вложения

  • ClearDoubleLinks_error.jpg
    ClearDoubleLinks_error.jpg
    42.3 КБ · Просм.: 677
  • MT-NewEq1-08_error1.jpg
    MT-NewEq1-08_error1.jpg
    42.2 КБ · Просм.: 1 092

eugene10901

Участник
Сообщения
84
Реакции
17
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Dresden сказал(а):
eugene10901
Потестил Ваш скрипт для выравнивания формул...
Спасибо. Буду исправлять.
 

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Dresden сказал(а):
Все операции проходят нормально, кроме последней - вставки обновленных формул из папки Temp-MTEF-Export. Скрипт трудится, но обновления не происходит

Есть подозрение, что дело было так. Запустили скрипт. Открылся Word и одновременно открылось информационное окно. Вы щелкнули по "ПРОДОЛЖИТЬ", чтобы не мешалось и стали работать с Word-ом, а далее ничего не произошло. И не должно произойти. Это инф. окно открывается, либо после закрытия Word-а, либо когда скриптовый движок вашей системы дает сбой (а это бывает, увы, очень часто и от меня и моего скрипта не зависит. Для восстановления его нормальной работы требуется перегрузка компьютера.) и срывается с активного приложения (в данном случае с Word). Скрипт пытается продолжить работу далее, не обращая внимание на все еще работающий Word. И единственной преградой становится это окно. Если вы щелкнули "Продолжить", скрипт закончил свою работу, поняв, что никаких изменений сделано не было. А все что поправилось потом само уже никак не подлинкуется, поэтому жмите "Продолжить", когда в Word-е сделано все необходимое и он закрыт с сохранением текстового файла MTEF-Export.txt. А не делать ничего скрипт просто не может, ибо следующей операцией после закрытия Word и щелкания "Продолжить" идет запуск MT-Treat как отдельного скрипта строкой doScript(***) с передачей ему выделенной области. Если он у Вас вне зависимости от MT-Convert работает, то и здесь должен работать.
 

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Dresden сказал(а):
Пожелание по оформлению. Мне кажется избыточным появление окна подтверждения (Если Вы исправили формулу, продолжаем).
"Неудобные" окна, предлагающие "ПРОДОЛЖИТЬ" введены в скрипты, где запускаются MT и Word, чтобы в случае сбоя скриптового движка вашей системы скрипт не пошел трудиться дальше, ничего путного не делая. Увы, это неудобство я удалять пока не буду. Единственным здравым способом обойти это я вижу в использовании не диалогового окна, а окна-палитры, которое бы работало, не переключая все ресурсы InD на себя. Это сделать возможно, используя ScriptUI, однако это не так быстро, так как потребует изменения идеологии построения всей системы скриптов. В дальнейшем, может быть, сделаю, а пока оставим как есть.
 

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Dresden сказал(а):
скрипт ругнулся на то, что в публикации остался неразмещенный текст и туда формулы вставлены не будут ("запустите еще раз"), хотя все равно что-то он потом делал.

Это "ругнулся" я уже убрал. Проблема в том, что скрипт кроме установки режима обтекания изменяет интерлиньяж области Character, в котором размещен Rectangle с формулой. Когда скрипт пытается изменить интерлиньяж для формул в области неразложенного текста, это вызывает ошибку. Теперь в скрипте никакие сообщения не выдаются, однако изменение интерлиньяжа для "невидимых" формул также не происходит. Изменение режима обтекания выполняется для всех формул, как видимых, так и невидимых. Это прошу учитывать.
 

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
Ответ: Скрипт для размещения формул MathType в InDesign CS4

mvlad123 сказал(а):
Есть подозрение, что дело было так. Запустили скрипт. Открылся Word и одновременно открылось информационное окно. Вы щелкнули по "ПРОДОЛЖИТЬ", чтобы не мешалось и стали работать с Word-ом, а далее ничего не произошло.
Нет, этого не было. Все делал по инструкции. Закрыл Ворд, потом нажал "продолжить".
 

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Проверьте, нормально ли работает MT-Treat.
Кстати, сначала измененные формулы попадают в папку Temp, далее скрипт их переносит в рабочую папку. Если они перенесены, то в Temp формул не должно быть. И запуск MT-Treat их обновит и обработает.
Если же после окончания работы MT-Convert папка Temp полна, то значит, либо все-таки случился вариант ранее описанный, либо возникли какие-то (не знаю какие) проблемы с путями. Третьего здесь нет, ибо у меня этот скрипт на компьютерах с Vista и XP SP3 Rus работает как часы.
 

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Dresden сказал(а):
1. При попытке отловить дублированные формулы первый запуск скрипта ClearDoubleLinks был успешным (дублей не было). Второй - со странным результатом (найден 1 дубль, формула была переименована в EqnNaN.undefined и помещена в папку C:\Program Files\Adobe\Adobe InDesign CS4\Scripts\XHTML For Digital Editions. Сделал еще один дубль, запустил в третий раз - создана формула EqnNaN.undefined и записана поверх прежней. На четвертом запуске скрипт выдал ошибку (см. вложение).
2. К сожалению, совсем не запускается скрипт MT-NewEq1-08. Когда ничего не выделено выдает ошибку (см.вложение MT-NewEq1-08_error1), когда выделен кадр - просто не запускается, когда курсор в тексте - пишет TypeError: null is not an object. Когда выделена формула - как ни в чем не бывало открывает МТ, т. е. как бы работает.
С этим попытаюсь разобраться, ибо ничего подобного у меня не случалось, тем более, что путь \Program Files\Adobe\Adobe InDesign CS4\Scripts\XHTML For Digital Editions вообще нигде в скрипте не прописан. Откуда он возник, даже интересно.
С MT-NewEq также попытаюсь разобраться. У меня никогда ничего подобного не было. Если выделена формула, то MT-NewEq запускает скрипт MT-EditEq, так как зачем делать пустую формулу, проще исправить или перенабрать существующую.
При первом запуске MT-NewEq для нового файла публикации должен идти запрос на создание пустой формулы. Это у Вас было?
Видимо, проблемы "растут" именно оттуда. Нет шаблона - нет и работы.

Вот код процедуры, проверяющей дублированные формулы:
function DetectAllDoubleLink() {

var win = new Window("palette", "MT-Script 1-08", undefined);
win.stText = win.add("statictext", undefined);
win.stText.text = "Проверяю все дублированные формулы"
win.show()

var NumberOfLinks
var NumberOfBadLinks = 0
var ToRelink = new Array
var AllLinks = new Array
var FindPart = new Array

var myDocumentLinks = app.activeDocument.links;

if (myDocumentLinks.length > 0) {

for (var i = 0; i < myDocumentLinks.length; i++) {AllLinks.push(myDocumentLinks.name+"*"+String(i))}

AllLinks.sort()

for (var i = 0; i < AllLinks.length-1; i++) {
FindPart = String(AllLinks[i+1]).split("*")
if ((AllLinks.search(FindPart[0]) != -1)&&(AllLinks.search("Eqn") != -1)) {
//alert(AllLinks + " " + AllLinks[i+1])
ToRelink.push(FindPart[1])
}
}
}

for (var i = 0; i < ToRelink.length; i++) {
NumRel = parseInt(ToRelink)
myNewFilePathForRelink = DoCopyFile(myDocumentLinks[NumRel].filePath) //???????????????????
var NewCopyFile = new File(myNewFilePathForRelink)
if (NewCopyFile.exists == true) {myDocumentLinks[NumRel].relink(NewCopyFile)}
else {NumberOfBadLinks++}
}

return ToRelink.length - NumberOfBadLinks; //Сообщает количество перелинкованных формул

win.close()

}

Ошибка у Вас возникла в строке 382. Здесь это //???????????????????. Это проблемы с путями. Постараюсь понять, в чем проблема.

Попутно вопрос: у Вас файлы названы Eqn****.eps, "E" заглавная или строчная?
 

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Dresden сказал(а):
скрипт ругнулся на то, что в публикации остался неразмещенный текст и туда формулы вставлены не будут ("запустите еще раз"), хотя все равно что-то он потом делал. На практике, как я понимаю, следует удалить временную папку и повторить всю процедуру. Об этом стоит, наверно, написать в предупреждении.
Скрипт размещает новые формулы везде, а вот обрабатывает только в "видимой" области.
Удалять временную папку нет смысла, так как одноименные формулы при запуске скрипта MT из Word затираются новыми и скрипт берет только нужные формулы, а не все, что там есть.
 

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Для запуска MT-NewEq нужно либо вообще ничем никак не выделять, щелкнуть стрелкой вне страницы, тогда новая формула появится в левом верхнем углу страницы в виде свободно лежащего Rectangle.
Если выделен TextFrame, ничего не происходит.
Если выделен Rectangle с формулой то редактируется эта формула.
Если текстовым курсором выделен текст, то он весь заменяется новой формулой.
Если курсор установлен в тексте без выделения, то в позиции InsertionPoint вставляется новая формула.

Для Denver
Пожалуйста, если будет свободное время, опишите более детально, как Вы запускаете MT-New во всех подробностях. Как называются файлы, как называются папки, что происходит после каждой из команд, есть ли смесь разноформатных формул, какие еще есть линки, хотя бы приблизительно, они расположены в той же папке, что и формулы, или нет. Есть ли в папке с формулами файл Eqn0000.eps (число нулей может быть разным). Со сколькими формулами Вы работаете и каков шаблон формул, например, Eqn***.eps, Eqn****.eps. Возможно, чтобы не загромождать форум, отправьте информацию по e-mail. В общем всего и побольше. Каждое движение и его результат играют роль, ибо с таких проблем у меня действительно не было и мне очень тяжело понять, почему скрипт не понимает путей и файлов. С уважением, Владислав.
 

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Возможно, причина проблем у Вас связана с тем, что в именах формул "eqn" набрано со строчной "e". В скрипте учтена возможность обоих вариантов. Кроме того, теперь пути к Temp-папке передаются в Word автоматически. Выкладываю эту версию MT-Script.
 

Вложения

  • MT-Script1-08(11-12-2009).zip
    38.4 КБ · Просм.: 407

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
Ответ: Скрипт для размещения формул MathType в InDesign CS4

mvlad123 сказал(а):
Проверьте, нормально ли работает MT-Treat.
Кстати, сначала измененные формулы попадают в папку Temp, далее скрипт их переносит в рабочую папку. Если они перенесены, то в Temp формул не должно быть.
MT-Treat не проверял пока вообще. А вот переноса в рабочую папку после работы скрипта конвертирования формул не происходило. Папка Temp оставалась полной.

В выходные проверю на домашней машине с XP (правда, сконфигурирована она почти также, как на работе) и с практически чистой Вистой х64 (она установлена второй системой). В понедельник-вторник проверю на работе один из компьютеров со свежеустановленной ХР.

Хотя странно, остальное все у меня работает без проблем.
 

mvlad123

Топикстартер
12 лет на форуме
Сообщения
167
Реакции
95
Ответ: Скрипт для размещения формул MathType в InDesign CS4

Да, конечно, скрипт должен нормально работать при всех возможных условиях. Будем разбираться. Сейчас я обнаружил и исправил проблему, возникающую, если в названиях все буквы были только строчные (хотя по умолчанию в настройках MT как раз стоит шаблон "Eqn###"). Этот вариант выложен выше. Теперь исправлю так, чтобы скрипт работал с любыми шаблонами, а не только с Eqn.

Попутно выкладываю по просьбе Onger скрипт, рассчитывающий площадь формул в кв. см. Однако, он не учитывает уменьшение площади за счет пересечения рисунков.
 

Вложения

  • BoundingBox_Square.zip
    1.5 КБ · Просм.: 409
Статус
Закрыто для дальнейших ответов.