Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2017, 17:50   #1
bdfy
Форумчанин
 
Регистрация: 12.11.2009
Сообщений: 258
По умолчанию Как редактировать макросом формулы Mathtype ?

Очень часто возникает необходимость как то по мелочи поправить формулы в Mathtype.
В частности очень часто нужно убрать в конце формулы ед. измерения, добавить их рядом текстом (ну или хотя бы пробел добавить перед ед. измерения).
Например в прилагаемом файле нужно обработать формулы на стр 13
Как вообще работать с формулами Mathtype ? Как сделать в них например автозамену текста ?
Вложения
Тип файла: doc MAthtype.doc (197.0 Кб, 23 просмотров)
bdfy вне форума Ответить с цитированием
Старый 20.12.2017, 21:57   #2
bdfy
Форумчанин
 
Регистрация: 12.11.2009
Сообщений: 258
По умолчанию

На панели Mathtype есть кнопка Toggle Tex
Оно преобразует формулу Mathtype в редактируемое поле, но преобразует плохо - очевидно не понимает кириллицу и убивает формулу если там есть русские буквы
bdfy вне форума Ответить с цитированием
Старый 22.12.2017, 14:52   #3
bdfy
Форумчанин
 
Регистрация: 12.11.2009
Сообщений: 258
По умолчанию

кое-что новое накопал.
Есть Math Type SDK где-то вроде бы есть нужный функционал.
можно на оф. сайте скачать, но нужна регистрация минимальная

залил сюда http://rgho.st/6WNMjf7HZ

samples/MTVarSub.dot

Text Substitution

Макросы там открыты для просмотра/редактирования

Попробовал сделать простейшую замену "м" на " м" - глючит макрос. Вместо "м" вставляется ">"
Кириллические символы может в виде кода можно представить как-то ?

Последний раз редактировалось bdfy; 22.12.2017 в 15:12.
bdfy вне форума Ответить с цитированием
Старый 22.12.2017, 21:54   #4
bdfy
Форумчанин
 
Регистрация: 12.11.2009
Сообщений: 258
По умолчанию

Код:
Sub TextSubstitution1()
    Dim stat
    Dim sub1$, sub2$, sub3$
    sub1$ = "%MathType!MTEF!1!1!+-" + _
"%feaagCart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuL" + _
"%wBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDha" + _
"%rqqtubsr4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpe" + _
"%ea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0F" + _
"%irpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaaiaabeqaamaaba" + _
"%abaaGcbaacbaGaa8hiaiaadYdbaaa!3764!"

sub1$ = " м"


   Selection.Copy
    
    'Init API, reset transform
    'If MTUtil.CheckMTDLLVersion = 0 Then Exit Sub
    If Not SDKIsDLLVersionOK() Then
      Exit Sub
    End If
    MTXFormReset
    
    'first substitution
    stat = MTXFormAddVarSub( _
        mtxfmSUBST_ONE, _
        mtxfmVAR_SUB_PLAIN_TEXT, "м", 0, _
        mtxfmVAR_SUB_PLAIN_TEXT, sub1$, Len(sub1$), mtxfmSTYLE_TEXT)
    If stat <> 0 Then
        MsgBox "1st MTXFormAddVarSub returned: " + Str(stat)
        Exit Sub
    End If
  


    'do the substitution
    stat = TransformGraphicEquation
    If stat <> 0 Then
        MsgBox "TransformGraphicEquation returned: " + Str(stat)
        Exit Sub
    End If
    
    MTTermAPI
    
    'Paste new equation
    Selection.Collapse Direction:=wdCollapseEnd
    Selection.PasteSpecial Placement:=wdInLine
End Sub
Если пробовать заменить "м" на " м" работает плохо - вместо русского "м" вставляется ">". Если заменять на MTEF код - все работает корректно.
Но как MTEF код получить я пока не разобрался (кроме как руками для всех выражений).
В принципе используемых ед. измерения то не больше десятка, но код будет индуский
bdfy вне форума Ответить с цитированием
Старый 28.12.2017, 20:39   #5
bdfy
Форумчанин
 
Регистрация: 12.11.2009
Сообщений: 258
По умолчанию

GrindEQ Math Utilities 2007
https://grindeq-math-utilities.soft32.com/
демо бесплатно.
Формулы Mathtype оно корректно конвертирует в формулы Word 2007 (MAth type to Equation)
Потом можно провести нужные манипуляции с текстом.
Потом конвертировать назад в Mathtype (Math type - convert equations)

Вопрос как вызвать макросом обе команды конвертации ?
bdfy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как редактировать видео? jetyb C# (си шарп) 1 12.07.2011 17:11
Заменить формулы макросом tgm Microsoft Office Excel 5 06.11.2010 21:46
Как пакетно редактировать MS Equation\mathtype ? bdfy Microsoft Office Word 1 08.06.2010 02:28
Как правильно редактировать? AK BULLETS Общие вопросы Delphi 1 22.03.2010 18:41
Как редактировать видео? Николай11 Софт 1 10.09.2009 14:18