- Сообщения
- 3 161
- Реакции
- 665
Исследовал файлы eps с кириллицей, генерируемых Маттайпом. Результаты мне показались очень интересными. Возможно с помощью специалистов по скриптам можно заставить Маттайп делать правильные eps.
Что выяснилось. Во-первых, разные версии MathType по-разному обращаются с кириллицей. Я тестировал две версии - 6.0a и 6.0c. 6.0a ведет себя, очевидно, так же, как 5.2 (точно проверить не могу). В 6.0c кое-что изменили, в результате чего нормальную кириллицу в eps получить в ней мне не удалось никакими способами. Но об этом чуть позже.
В прикрепленном файле cyr-alfabet-mt6a.eps имеется русский алфавит, набранный через Insert Symbol в МТ 6.0а шрифтом Minion Cyr. Кириллица отображается и выводится нормально. Содержимое файла можно посмотреть в блокноте. Обратите внимание на то, что в комментарии к ps-коду Маттайп использует в явном виде юникодные обозначения для символов кириллицы (в секции %MathType!MathML!1!1!+-). Например, x0430 - это кириллическая "а", x0431 - "б" и т. д.
В ps-коде в секции 320 /MinionCyr-Regular f1 для тех же букв используются обозначения \340, \341 и т. д. Почему так - не знаю, но работает.
Теперь откройте в блокноте файл cyr-alfabet-mt6a_uncor.eps, в котором тот же алфавит набран просто с клавитатуры (шрифт NewtonC). В %MathType!MathML!1!1!+- остались те же юникодные обозначения, а вот в секции 320 /NewtonC-Italic f1 все изменилось. Вместо кошерных обозначений \340, \341 стоят последние символы из юникодных обозначений, т. е. "0" из x0430, "1" из x0431 и т. д.
Я провел простой эксперимент - заменил прямо в eps-файле неправильные коды в секции 320 /NewtonC-Italic f1 на правильные, т. е. на \340, \341 и т. д., после чего импортировал этот eps в ИД, отправил на ps-принтер с печатью в файл и отдистиллил. Кириллица работает.
Естественно, eps сохранялся в МТ с опцией Encapsulated PostScript/none, т. е. без превью, чтобы получить чисто текстовой файл.
Осталось только сделать скрипт, который бы обрабатывал уже сгенеренные Маттайпом eps, заменяя неправильные коды на правильные, ориентируясь на порядок расположения юникодных кодов кириллических букв, содержащихся в комментарии %MathType!MathML!1!1!+-.
Если кто-то сделает такой скрипт, я первым его купить. Думаю, он будет очень полезен многим.
Очень желательно было бы совместить его со скриптом Макса Цофина, предусмотрев, в частности, повторную обработку отдельных файлов после их редактирования из ИД.
Что выяснилось. Во-первых, разные версии MathType по-разному обращаются с кириллицей. Я тестировал две версии - 6.0a и 6.0c. 6.0a ведет себя, очевидно, так же, как 5.2 (точно проверить не могу). В 6.0c кое-что изменили, в результате чего нормальную кириллицу в eps получить в ней мне не удалось никакими способами. Но об этом чуть позже.
В прикрепленном файле cyr-alfabet-mt6a.eps имеется русский алфавит, набранный через Insert Symbol в МТ 6.0а шрифтом Minion Cyr. Кириллица отображается и выводится нормально. Содержимое файла можно посмотреть в блокноте. Обратите внимание на то, что в комментарии к ps-коду Маттайп использует в явном виде юникодные обозначения для символов кириллицы (в секции %MathType!MathML!1!1!+-). Например, x0430 - это кириллическая "а", x0431 - "б" и т. д.
В ps-коде в секции 320 /MinionCyr-Regular f1 для тех же букв используются обозначения \340, \341 и т. д. Почему так - не знаю, но работает.
Теперь откройте в блокноте файл cyr-alfabet-mt6a_uncor.eps, в котором тот же алфавит набран просто с клавитатуры (шрифт NewtonC). В %MathType!MathML!1!1!+- остались те же юникодные обозначения, а вот в секции 320 /NewtonC-Italic f1 все изменилось. Вместо кошерных обозначений \340, \341 стоят последние символы из юникодных обозначений, т. е. "0" из x0430, "1" из x0431 и т. д.
Я провел простой эксперимент - заменил прямо в eps-файле неправильные коды в секции 320 /NewtonC-Italic f1 на правильные, т. е. на \340, \341 и т. д., после чего импортировал этот eps в ИД, отправил на ps-принтер с печатью в файл и отдистиллил. Кириллица работает.
Естественно, eps сохранялся в МТ с опцией Encapsulated PostScript/none, т. е. без превью, чтобы получить чисто текстовой файл.
Осталось только сделать скрипт, который бы обрабатывал уже сгенеренные Маттайпом eps, заменяя неправильные коды на правильные, ориентируясь на порядок расположения юникодных кодов кириллических букв, содержащихся в комментарии %MathType!MathML!1!1!+-.
Если кто-то сделает такой скрипт, я первым его купить. Думаю, он будет очень полезен многим.
Очень желательно было бы совместить его со скриптом Макса Цофина, предусмотрев, в частности, повторную обработку отдельных файлов после их редактирования из ИД.