3. Создание математических формул в Web с помощью MathBuilder

Программа MathBuilder (рис.1) представляет собой приложение к системе создания математических формул MathType 5 . При публикации математических формул в web без использования языка математической разметки MathML, с помощью представления формулы в формате *.bmp, (*.gif ) возникает проблема, связанная с неверным расположением формулы,

(рис.2) эту проблему можно решить с помощью некоторого HTML кода, а именно

<HTML>

<TABLE>

<TD>Текст1</TD>

<TD ALIGN=BOTTOM><IMG SRC=Имя_Файла.bmp></TD>

<TD>Текст2</TD>

</HTML>

 Но учитывая объёмы формул, используемые в математической литературе, встаёт необходимость автоматизации этого процесса. Автоматизировать этот процесс может MathBuilder. Сама программа имеет простой интерфейс (рис.2), меню «Файл» и «Редактировать». Меню «Файл» содержит в себе «Открыть» (Открытие файла в формате *.txt), «Сохранить» (Сохранение файла в формате *.txt), «Экспортировать» (Экспорт файла в формат *.html),

«Выход» (Выход из программы). Меню «Редактировать» \содержит в себе следующие функции: «Просмотр» (Открывается окно браузера, в котором без сохранения можно просмотреть результат работы),

 «Вставить рисунок» (позволяет вставить ссылку в файл на нужный рисунок), «Гиперссылка» (вставляет ссылку на интернет документ, помещая в файл ссылку на документ).

Сам набор документа ничем не отличается от набора текстового документа в редакторе «Блокнот». При нажатия «вставить рисунок» программа предлагает выбрать файл рисунка (в данном случае математическую формулу) и в поле набора текста появляется запись <img src=Имя файла>

Это означает что в HTML файл будет включена ссылка на картинку. Надо отметить что при сохранении математической формулы, требуется сохранить её в каталог, в котором находится сама программа MathBuilder. Эта процедура предназначена для корректного отображения картинки браузером,

Ведь если, к примеру, сохранить её в каталоге «мои документы» и указать программе на этот каталог то в ссылке на картинку пропишется путь в этот каталог. А на сервере, на котором будет находится той или иной документ, не будет этого каталога, следовательно картинка отображаться не будет. Программа MathBuilder предусматривает этот момент и поэтому она записывает ссылку на картинку так, как будто она находится в текущем каталоге. Если воспользовавшись встроенным броузером картинка отображаться не будет, то это означает что нужная математическая формула не находится в каталоге с программой.

При разработке программы возникла одна проблема: Если пользователь, создав математическую формулу с системе MathType сохранит её в формате *.bmp (хотя MathType не предлагает сохранение в таком формате) то как ни странно файл сохранится в заданном формате, даже ярлык у этого файла будет таким, какой характерен для файлов с таким форматом, однако броузер Internet Explorer отображать этот рисунок не будет, т.к. в самом деле MathType сохранит файл с заданным расширением (bmp) но в формате gif. Следовательно, следует сохранять файл в формате *.gif, тогда проблем такого типа не будет.

Пояснение к исходному коду программы:

 

procedure TForm1.N2Click(Sender: TObject);

 begin

With OpenDialog1 do

If Execute Then

Begin

memo1.lines.loadfromfile(Filename);

ExtractFilename(Filename);

SaveDialog1.FileName := Filename;

Filename := ' ';

End;

 end;

этот код обеспечивает открытие файла.

procedure TForm1.N3Click(Sender: TObject);

begin

Memo1.Lines.SaveToFile(SaveDialog1.FileName); // Сохранение файла

end;

procedure TForm1.N4Click(Sender: TObject);

begin

with SaveDialog1 do

If execute Then

Memo1.Lines.SaveToFile(SaveDialog1.FileName); // Меню «Сохранить как.»

End;

//сейчас идёт описание самой главной части программы

procedure TForm1.N5Click(Sender: TObject);

var list: TStringList;

tmpString: string;

i,CurrentSymbol,SeekSymbol, lastTag: integer;

notFound: boolean;

begin

 With SaveDialog2 do

 If execute then

Begin

list:=TStringList.Create;

for i:=0 to memo1.Lines.Count-1 do list.Add(memo1.lines[i]);

list.Insert(0,'<HTML>');

list.Add('</HTML>');

// в этой части (смотрите выше) происходит вставка тэгов

//<html> перед набранным текстом и </html>после текста.

for i:=1 to memo1.Lines.Count do

begin

lastTag:=1; tmpString:='';

for CurrentSymbol:=1 to Length(List[i]) - 9 do

if Copy(List[i], CurrentSymbol, 9) = '<img src=' then

begin

SeekSymbol:=CurrentSymbol; notFound:=true;

while (SeekSymbol <= Length(List[i])) and (notFound) do

begin

if Copy(List[i], SeekSymbol, 1) = '>' then

begin

tmpString := tmpString+'<td>'+

Copy(List[i],lastTag,CurrentSymbol-lastTag)+

'</td><td align=bottom>'+

Copy(List[i],CurrentSymbol,SeekSymbol-CurrentSymbol+1) +'</td>';

lastTag:=SeekSymbol+1; notFound:=false;

end;

inc(SeekSymbol);

end;

end;

if tmpString<>'' then

begin

tmpString:=tmpString+'<td>'+Copy(List[i],lastTag, Length(List[i])-lastTag+1)+'</td>';

List[i]:='<table>'+tmpString+'</table>';

end;

end;

List.SaveToFile(Filename);

list.Free;

End;

end;

//В этой части происходит вставка таблицы (смотрите стр. 9).

//Чтобы обеспечить корректное отображение формулы браузером.

В общем, код программы основан на нескольких принципах: на поиске тэга, в котором находится ссылка на математическую формулу, вставка таблицы, и экспортировании текста в формат HTML. При написании программы самой сложной частью оказалась вставка таблицы. В начале программа могла находить нужные тэги только в том случае, если он находился отдельно в какой либо строчке. Далее, после устранения вышеописанной ошибки, второй проблемой стала невозможность вставки в документ сразу несколько картинок, что непосредственно важно для математического документа. Самой последней проблемой была невозможность работы программы на других машинах. Эта проблема была вызвана некорректным обращением компонента программы со средой Windows. Решение оказалось банальным – я использовал браузер, отображающий результаты работы без сохранения (а в нём была проблема), который назначен Windows по умолчанию. И вот все проблемы были решены.

Заключение:

Изучение языка математической разметки «MathML» содержит в себе некоторые минусы:


Информация о работе «Особенности создания математических формул в Web»
Раздел: Информатика, программирование
Количество знаков с пробелами: 22050
Количество таблиц: 0
Количество изображений: 4

Похожие работы

Скачать
56202
22
2

... + C_{n-1}^{k-1}$[/math] 3. Постановка задачи   Передо мной была поставлена задача: создать решение проблемы отображения математических и других формул для форума физико-математического факультета Орловского государственного университета, используя установленный форумный движок phpBB3, издательскую систему TeX, пакет расширений LaTeX и пакет для обработки графических файлов ImageMagick. ...

Скачать
139168
3
0

... . Таким образом предлагается рассматривать компьютерную технологию обучения как основную составляющую информационной технологий обучения. 1.2 Дидактические принципы, свойства и особенности использования компьютерных технологий в педагогическом процессе Применение средств КТ в современном образовании основано на дидактических принципах, свойствах и особенностях их использования. Под ...

Скачать
31311
1
23

ок. Математическая модель составляется в MathCad, где получатся графики зависимости силы и момента, и в результате анализ данной задачи. 1 Математическое моделирование технических объектов 1.1 Понятие математической модели Моделирование представляет собой процесс замещение объекта исследования некоторой его моделью и проведение исследование на модели с целью получения необходимой ...

Скачать
89611
3
4

... не зависимый от языка способ создания кода и привязки его к запросам Web-страниц, — .NET Web Forms — управляемую событиями программную модель взаимодействия с элементами управления. Она дела­ет программирование Web-страниц аналогичным программи­рованию форм Visual Basic. ASP.NET содержит развитые сред­ства управления сеансами и функции защиты. Она надежнее, и производительность ее значительно выше ...

0 комментариев


Наверх