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

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

mvlad123

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

Для Denver
Проблема с запуском формул без ассоциации с MathType и из папок с любой кодировкой символов успешно решена. Завтра-послезавтра, видимо, выложу очередной раз весь MT-Script.
 

mvlad123

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

Для eugene10901
Как решить 1-й Ваш вопрос внутри самого MathType, я не знаю, хотя можно попытаться поразбираться с MTEF-структурой. На данном этапе самое простое - сделать простенький скриптик, позволяющий crop-ить фрейм с формулой с нужной стороны и на нужную величину, чтобы эта проблема ушла.
Если все-же удастся что-то сделать с MTEF-структурой, то все-равно это будет делаться не внутри MT, а опять же скриптом, только более аккуратно, чем в предложенном выше случае.
Однако, зачем все это, если, как уже было сказано ранее, проще знаки препинания набирать в формуле, тем более что править ее также легко, как и обычный текст.
 

eugene10901

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

mvlad123 сказал(а):
Для eugene10901
Как решить 1-й Ваш вопрос внутри самого MathType, я не знаю, хотя можно попытаться поразбираться с MTEF-структурой. На данном этапе самое простое - сделать простенький скриптик, позволяющий crop-ить фрейм с формулой с нужной стороны и на нужную величину, чтобы эта проблема ушла.
Если все-же удастся что-то сделать с MTEF-структурой, то все-равно это будет делаться не внутри MT, а опять же скриптом, только более аккуратно, чем в предложенном выше случае.
Однако, зачем все это, если, как уже было сказано ранее, проще знаки препинания набирать в формуле, тем более что править ее также легко, как и обычный текст.
Например, в текстовый eps от MT можно добавлять описание формулы. Знаки препинания в самой формуле мешают, если эти формулы автоматически выносить в Указатель математических формул с их описаниями.
 

mvlad123

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

eugene10901 сказал(а):
Например, в текстовый eps от MT можно добавлять описание формулы.
Такая информация в версиях 6 и выше добавляется самим MT. Называется это MathML - универсальный язык описания формул, однако вызывающая у Вас проблема связана, скорее всего, с обработкой template при формировании MTEF-структуры. Поэтому, если даже можно будет скриптом поправить эти шаблоны в MTEF, то после любого редактирования MT все это восстановит, увы...
 

eugene10901

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

mvlad123 сказал(а):
Такая информация в версиях 6 и выше добавляется самим MT. Называется это MathML - универсальный язык описания формул, однако вызывающая у Вас проблема связана, скорее всего, с обработкой template при формировании MTEF-структуры. Поэтому, если даже можно будет скриптом поправить эти шаблоны в MTEF, то после любого редактирования MT все это восстановит, увы...
А делать crop - это не для меня: все равно мои скрипты делают fittocontent и выравнивают формулы по базовой линии. Да и как определить программно, на сколько пунктов сокращать bounding box для каждой отдельной формулы... Только визуально, наверное. На мое письмо с вопросами техподдержка matthype так и не ответила.
 

mvlad123

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

Специально для Denver
Вариант скрипта Start-App, поддерживающий латиницу и пробелы в пути к файлам. Это же применено в новом варианте MT-Script.
Кстати, на предыдущей странице выложен MT-Converter, позволяющий преобразовывать формулы в текстовый формат для дальнейшей обработки в Word-е. Интересны Ваши замечания по этому скрипту, ибо это технология должна лечь в основу пакетного преобразования формул по новому pref-файлу.
 

Вложения

  • Start_App.zip
    1.3 КБ · Просм.: 492

Dresden

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

Видимо, это ко мне. Владислав, спасибо. Проблема в том, что у меня сейчас самое горячее время - сдаем все, что нужно выпустить в этом году. Будет окошко - посмотрю. Но реально освобожусь числу к 10 декабря.
 

mvlad123

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

Особо спешить не будем, пусть все идет своим чередом, ибо у меня работ тоже не в проворот, "кувыркаюсь" со скриптами, чтобы отдохнуть от основной работы.

Идея в "полупакетном преобразования формул" следующая. Выделяем область с формулами. Проверяем сдвоенные линки на формулы и убираем их, чтобы случайно где-нибудь расположенная формула, являющаяся копией изменяющейся не претерпела модификации. Далее формируется текстовый файл, содержащий строки вида
<<Путь к формуле, вставленной в InD>>=текстовая MTEF структура формулы.
И так по всем замеченным в вашем выделении формулам.
Тестовый файл, например, назовем его MT-Convert.txt сохраняется в каталог с активной публикацией.
Скрипт открывает Word и загружает этот файл. Устанавливает Word поверх всех программ.
Пользователь (можно попробовать и автоматически, но может и не получиться!) осуществляет восстановление формул, затем преобразует их по своему усмотрению, а также экпортирует формулы к какой-то каталог. Этот каталог желательно должен отличаться от основного, содержащего все формулы активной публикации.
Далее сохраняем файл Mt-Convert.txt как txt туда, откуда он родом, т.е. в каталог активной публикации. Теперь в нем содержаться строки вида
<<Путь к формуле, вставленной в InD>>=<<Eqn0010.eps>>, например, и т.д.
Запускается еще один скрипт, назовем его MT-RelinkEq, которому указываем новый каталог, содержащий экспортированные новые формулы, а путь к Mt-Convert.txt известен - это путь к активной публикации. Этот скрипт копирует новые формулы взамен старых, проверяя не изменился ли их формат, перелинковывает связи на новые формулы и обрабатывает их.
В результате получаем в публикации новые формулы, обработанные в соответствии с новым pref-установками MT, размещенные на тех же местах, еще и обработанные.
Планирую реализовать эту идею в следующей версии MT-Script, которую надеюсь выставить скорее всего на выходные (если хватит сил и времени, но на следующей неделе уж точно).
Если есть замечания, пожалуйста, сообщите.
 

Onger

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

mvlad123 на первый взгляд все достаточно запутанно))), но думаю после нескольких раз руку набить можно и все будет тип-топ)))) Главное что появиться такая возможность. Сейчас у меня люди просто переформатируют формулы в ворде и экспортируют их еще раз, при этом периодически вылазят разные косяки. Надеюсь что технология реализованная тобой будет иметь меньше подводных камней.
 

mvlad123

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

В скрипте MT-Converter обнаружен досадный недочет. Он понимает формулы только до версии 6. А 6 и 6.5 - не распознаются и не обрабатываются. Структура WMF-файлов в этих версиях совершенно разная.
Скрипт исправлен и выложен в этом сообщении. Он преобразует любые формулы (EPS и WMF) версий от 5 до 6.5 включительно.
Прошу обратить ОСОБОЕ ВНИМАНИЕ на то, что в начале работы скрипта в диалоге идет запрос на применение символьного стиля к создаваемому тексту формул. Шрифт этого стиля ОБЯЗАТЕЛЬНО должен быть стандартным Windows-шрифтом (у меня, например, TimesNewRoman), ибо, если на этапе создания текста-заменителя формулы в InD не будет применен стандартный шрифт, то уже в Word-е MathType отказывается корректно обрабатывать текст формулы. Это связано, видимо, с передачей через Clipboard. Пока уточнением причины этого не занимался.
 

Вложения

  • MTEF-Converter1-9.zip
    5.8 КБ · Просм.: 534

eugene10901

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

На свой вопрос
1. Ширина формулы, полученной из mathtype (eps/none), при вставке в indesign больше, чем если открыть ее в illustrator, т.е. появляются лишние поля (за счет bounding box), которые отдаляют от символов формулы, например, запятую. Можно ли с этим бороться в самом mathtype?
получил ответ от DesignSoft.
Итак, эти поля называются PicturePadding и по умолчанию составляют 2 pt. Их можно полностью убрать, если задать значение HKEY_CURRENT_USER\Software\Design Science\DSTM6\Windows\PicturePadding как нуль (0). При этом в InDesign может казаться, что края формулы чуть-чуть "отгрызаны", однако в pdf выводится все корректно.
Может, кому-то это тоже будет полезно узнать.
 

Dresden

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

Ух ты! Спасибо, очень интересно.

Не по теме:
Раз уж с ними общаетесь, попросите, чтобы пофиксили баг, который описан здесь в п. 1
 

eugene10901

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

На свой вопрос
1. Ширина формулы, полученной из mathtype (eps/none), при вставке в indesign больше, чем если открыть ее в illustrator, т.е. появляются лишние поля (за счет bounding box), которые отдаляют от символов формулы, например, запятую. Можно ли с этим бороться в самом mathtype?
получил ответ от DesignSoft.
Итак, эти поля называются PicturePadding и по умолчанию составляют 2 pt. Их можно полностью убрать, если задать значение HKEY_CURRENT_USER\Software\Design Science\DSTM6\Windows\PicturePadding как нуль (0). При этом в InDesign может казаться, что края формулы чуть-чуть "отгрызаны", однако в pdf выводится все корректно.
Может, кому-то это тоже будет полезно узнать.
Да, и базовая линия в текстовом eps пересчитывается тоже корректно в зависимости от PicturePadding.
 

Dresden

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

eugene10901 сказал(а):
Да, и базовая линия в текстовом eps пересчитывается тоже корректно в зависимости от PicturePadding.
Т. е. получается, что это поля во все стороны (в том числе сверху и снизу), так?
 

eugene10901

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

Dresden сказал(а):
Т. е. получается, что это поля во все стороны (в том числе сверху и снизу), так?
Левое и правое поля при значении 0 указанного ключа реестра действительно становятся нулевыми, а сверху и снизу меньше, чем при стандартных 2 pt. Но в иллюстраторе они тоже есть и такие же (верхнее и нижнее) за счет, как я понимаю, параметров шрифта. А может, для того, чтобы baselinesfift, указываемое mathtyp'ом в eps/none, было целочисленным.

Dresden сказал(а):
Ух ты! Спасибо, очень интересно.

Не по теме:
Раз уж с ними общаетесь, попросите, чтобы пофиксили баг, который описан здесь в п. 1
Насчет <<</ns {cf sf} bdef>>> сообщу. По поводу кириллицы - наверное. так и предусмотрено разработчиком (через файл кодировки), если они используют только первые 255 символов шрифтов (как я понял).
 

eugene10901

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

Кстати, есть еще одно пожелание к разработчикам: сделать модуль пакетного форматирования формул. Например, у вас 2000 формул, и необходимо вдруг стало изменить шрифт основного текста и его размер в equation preferences. Применять к каждому файлу новые equation preferences и сохранять его... Цензурной лексикой не обойтись. Ну и конечно, обеспечить работу mathtype со всеми таблицами OT-PS шрифтов (это по моему вопросу номер 2).
 

Dresden

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

eugene10901 сказал(а):
Кстати, есть еще одно пожелание к разработчикам: сделать модуль пакетного форматирования формул.
В смысле для Индизайна или отдельно лежащих eps с формулами? О, конечно, хорошо бы.
 

eugene10901

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

Dresden сказал(а):
В смысле для Индизайна или отдельно лежащих eps с формулами? О, конечно, хорошо бы.
Нет, не для ID, а для каталога .eps-файлов. Кстати, на AutoHotKey я сделал скрипт, который все eps каталога последовательно открывает в MathType, применяет последние использовавшиеся equation preferences к файлу и перезаписывает этот файл. Это, по сути, зацикленная имитация движений "мышки" при задании новых параметров для одной формулы. Я не занимаюсь версткой профессионально - это как хобби с пользой для близких людей. Вот сейчас делаю книгу 600 стр. с химическими и математическими формулами. При моем подходе все eps мат. формул лежат в одной директории, хим. структурных формул (рисуются в ChemBioDraw) - в другой, растр - в третьей, иллюстрации - четвертой и т.п. Для автоматизации создания этой книги написан целый пакет скриптов и меню для ID. Практически все, кроме ввода текста, ID делает за меня.
 

eugene10901

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

В принципе, у меня осталась одна проблема по MathType - это то, что приходиться набирать формулы со смесью, например Newton, и Symbol шрифтов: ведь и по тексту книги те же символы и греческие буквы я вынужден брать из шрифта Symbol для полной гармонии :). При этом фактические размеры этих двух шрифтов, пусть и не значительно, но различаются. И еще вопрос по ChembioDraw - http://forum.rudtp.ru/showthread.php?t=41548
 

Dresden

20 лет на форуме
Сообщения
3 161
Реакции
665
Статус
Закрыто для дальнейших ответов.