Форум программистов, компьютерный форум CyberForum.ru
С наступающим Новым годом!
CyberForum.ru - форум программистов и сисадминов > >
Восстановить пароль Регистрация
 
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
14.09.2009, 07:44     Как создать объект MathType (формулу) в MS Word?   #1
надо бы сделать програмку расчёта, которая генерировала отчёт в ворде в виде набора текста и формул, содежащих дроби, корни, степени, пределы и т.д. (объект MathType). к примеру:
x=(a+b)/c=(1+2)/3=1.
здесь a,b,c - переменные величины, т.е. цифры расчитываются/задаются ранее и подставляются в формулу.
имею давольно большой опыт примитивного программирования, но был бы признателен за подробный ответ
AdAgent
Объявления
14.09.2009, 07:44     Как создать объект MathType (формулу) в MS Word?
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
15.09.2009, 23:57     Как создать объект MathType (формулу) в MS Word?   #2
Доброго времени суток! Я сам уже пару месяцев ищу ответ на этот вопрос, но так ничего и не нашел... Единственное что пришло в голову - использовать LaTeX (там формулы записываются в текстовом виде) и затем конвертировать в формат Ворда. Но это тоже проблематично т.к. язык не учил этот, а учить ради такой задачки как-то лень... Может найдутся тут добрые люди...
Да, кстати, для Вас, limbir, я бы рекомендовал использовать "шаблон" документа, в котором в определенных местах стоят "маркеры", например "Значение001", "Значение002" и т.д., потом этот "маркер" легко заменить нужным текстом. Вобщем предлагаю развивать эту тему - она будет полезна многим, вылаживайте свои идеи, а я завтра выложу парочку примерчиков на замену текста, это не много, но все же лучше чем ничего...
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
16.09.2009, 04:16  [ТС]     Как создать объект MathType (формулу) в MS Word?   #3
Jora, спасибо за советы! с LaTeXом пытался разобраться, но как то не пошла у меня с ним дружба) да и по экспорту в ворд и латеха ничего найти не смог. По поводу шаблонов с маркерами мысль хорошая, но в mathtype маркер не поставить. Вчера наткнулся на книжку, много полезного для себя оттуда узнал, называется "ПРОГРАММИРОВАНИЕ ДОКУМЕНТОВ И ПРИЛОЖЕНИЙ MS OFFICE в DELPHI" Корнякова В. Н. Так же есть его статьи на сайтах www.kornjakov.ru либо www.kv.by, там практически вся полезная информация из книги. Только работе с объектами OLE посвящено всего пара страниц (и ни слова про MathType), прочёл их вскользь, сегодня попробую разобраться поподробнее. Попробовал написать автору, мож ответит. Как только заработает прога, создающая и редактирующая формулы обязательно всё сюда выложу.
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
16.09.2009, 07:17  [ТС]     Как создать объект MathType (формулу) в MS Word?   #4
получилось создать объект Equation (MathType) в Word'е:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComObj;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
W: variant;

implementation

procedure TForm1.Button1Click(Sender: TObject);
begin
W:=CreateOleObject('Word.Application');
W.Visible:=Visible;
W.Documents.Add;
W.ActiveDocument.Shapes.AddOleObject(ClassType:='Equation.3');
//у меня установлен MathType, он и запускается
end;
end.
Теперь, я полагаю, можно в открывшемся активном MathType что нибудь написать. Только пока никак не получается(.
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
16.09.2009, 20:12     Как создать объект MathType (формулу) в MS Word?   #5
я тоже так пробовал, но дальше дело не пошло...

Добавлено через 37 минут
Вот так выглядит документ LaTeX:

Код Code
1
2
3
4
5
6
7
8
9
10
\documentclass{article}
\usepackage{latexsym}
 
\begin{document}
 
\[
[COLOR="Red"]a=\frac{b}{c}[/COLOR]
\]
 
\end{document}
Красным выделена формула. При конвертировании документа обратно в .doc она принимает нормальный вид. Файл .tex набирается в обычном блокноте, т.е. можно без всяких
Цитата Сообщение от limbir Посмотреть сообщение
ComObj
отредактировать файл, что значительно уменьшает затраты системных ресурсов имхо, единственное что меня смущает - сам язык LaTeX... Очень долго все переписывать прийдется...
А вот и процедура для замены в текстовом файле:
Код Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TForm1.Button1Click(Sender: TObject);
var
 f, f1 : textfile;
 s : string;
begin
 {$i-}
 AssignFile(f, 1.tex);
 reset(f);
 AssignFile(f1, 'temp.tex');
 rewrite(f1);
 {$i+}
 if IOResult=0 then
  begin
   while not eof(f) do
    begin
     readln(f, s);
     s:=AnsiReplaceStr(s, Edit1.Text, Edit2.Text);
     writeln(f1, s);
    end;
   closefile(f);
   closefile(f1);
   erase(f);
   rename(f1, 1.tex);
  end else Label1.Caption:='Ошибка при открытии файла. Код ошибки '+FloatToStr(IOResult);
end;
Без особых наворотов, но зато интуитивно понятно. Жду встречных предложений.

Добавлено через 20 минут
Вот неплохая книга по LaTeX http://itbookz.ru/graphic/latex/81-n...eme-latex.html
AdAgent
Объявления
16.09.2009, 20:12     Как создать объект MathType (формулу) в MS Word?
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
16.09.2009, 23:25     Как создать объект MathType (формулу) в MS Word?   #6
вот еще что нашел: http://www.softsoft.ru/education/mathematics/14463.htm
может нужно еще и в таком направлении поработать?
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
17.09.2009, 04:28  [ТС]     Как создать объект MathType (формулу) в MS Word?   #7
Цитата Сообщение от Jora Посмотреть сообщение
Красным выделена формула. При конвертировании документа обратно в .doc она принимает нормальный вид.
Вот как конвертировать в .doc я бы и хотел узнать

Цитата Сообщение от Jora Посмотреть сообщение
хм, очень интересно
а есть полная бесплатная версия?)
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
17.09.2009, 07:16     Как создать объект MathType (формулу) в MS Word?   #8
Цитата Сообщение от limbir Посмотреть сообщение
Вот как конвертировать в .doc я бы и хотел узнать
В .doc не пробовал, а в .rtf этой программой - http://sourceforge.net/projects/latex2rtf/files/, она распространяется бесплатно и довольно неплохо конвертирует.

Цитата Сообщение от limbir Посмотреть сообщение
а есть полная бесплатная версия?)
Полной версии пока что не нашел, но еще не сдаюсь))
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
17.09.2009, 08:27  [ТС]     Как создать объект MathType (формулу) в MS Word?   #9
Jora, для конвертирования в .rtf мне необходима только эта программка и файл *.tex, так? или надо устанавливать дополнительно какой то компилятор?
и вот ещё проблемка: устанавливал LaTeX Wid, LeD, но ни один у меня вывести какой нибудь результат не смог, пишут ошибки. чую чего то всё таки не хватает. можешь подсказать чего?)
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
17.09.2009, 18:55     Как создать объект MathType (формулу) в MS Word?   #10
дело в том - что я сам пока разбираюсь, начинаю с нуля, подсказать пока нечего, но для конвертирования в .rtf достаточно только той программы и теха (проверял сам). вот код, который я конвертировал с успехом:
Код Code
1
2
3
4
5
6
7
8
9
10
11
\documentclass[12pt]{article}
\usepackage{weird,queer,amssymb,amsmath}
\begin{document}
поехали!
 
\LaTeX
 
\begin{equation}
\sqrt{c}=b\cdot m
\end{equation}
\end{document}
Проблема которую я пока не понял как решить - под корнем стоит ",а" вместо "а". Времени не хватает... Но думаю надо работать именно в этом направлении.
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
18.09.2009, 04:19  [ТС]     Как создать объект MathType (формулу) в MS Word?   #11
Jora, в ЛаТеХ2РТФ на закладке Расширенные поставь галочку напротив использовать ';' вместо ',' и проблемка решена)
в целом мне нравиться что получается, ещё б ту прогу полную найти, очень там удобно из готовых формул ЛаТеХные исходники получать.
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
18.09.2009, 07:44     Как создать объект MathType (формулу) в MS Word?   #12
Спасибо за подсказку. А вот и тебе подарочек! У MathType есть функция транслирования на латех!!! включается таким образом: Preferences>Translators... дальше галочку ставь на "Translation to other language (text)"
Теперь при копировании из окна MathType в блокнот - получаешь транслированный на латех код!!!
Теперь стоит вопрос: у тебя работает конвертирование формул с \frac ? У меня что-то не получается...

Добавлено через 9 минут
Все, работает!) Теперь надо заняться составлением документа... 50 страниц текста Ворда перевести на латех... Вот поэтому и не хотелось его использовать...

Добавлено через 2 минуты
нашел еще бочину....
попробуй отконвертировать такую формулу:
Код Code
1
2
3
\[
\sqrt {{a^2} + {b^2}}
\]
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
18.09.2009, 09:23  [ТС]     Как создать объект MathType (формулу) в MS Word?   #13
Jora, спасибо, действительно подарочек, порадовал очень сильно!)
не знаю даже в чем у тебя может быть проблема, и \фрак работает нормально и корень суммы квадратов у меня тоже получился. ты напиши что у тебя получается
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
18.09.2009, 19:50     Как создать объект MathType (формулу) в MS Word?   #14
Вот что получается у меня (скрин в аттаче). Если коротко - во-первых индексы квадратов стоят внизу, во-вторых - они ооочень маленькие...
Миниатюры
Как создать объект MathType (формулу) в MS Word?  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2009, 10:44     Как создать объект MathType (формулу) в MS Word?
Еще ссылки по теме:

Delphi Как программно создать объект на другой форме?
Delphi Как преобразовать формулу введенную в Edit типа String в решаемую формулу
Delphi Создать обЪект класса , у которого в параметрах конструктора объект этого же класса

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
19.09.2009, 10:44     Как создать объект MathType (формулу) в MS Word?   #15
Все, разобрался, проблема была в том, что я указал в программе язык, а нужно было только кодировку указать. Теперь можно работать! Удачи всем!
Yandex
Объявления
19.09.2009, 10:44     Как создать объект MathType (формулу) в MS Word?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Опции темы

Текущее время: 19:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Яндекс.Метрика