Курсовая работа: Отображение математических формул в формате LaTeX на форуме PHPBB3
С учетом
вышеперечисленных плюсов, оптимальным решением является принятие формата MathML
в качестве канонического формата обработки и представления математических
формул. Вообще, когда говорят об обработке математических формул, то
подразумевают всю цепочку: ввод формул пользователем, хранение формул,
обработка формул, отображение формул.
Когда речь
идет о вводе формул пользователем, то можно рассматривать две основные
ситуации: создание, редактирование и представление математических текстов, и
ввод формул в различных прикладных приложениях и Web-сервисах, в частности,
электронных форумах и учебных программных комплексах. Решение задач обработки
естественнонаучной информации является самостоятельной и весьма объемной
проблемой.
TeX
TEΧ (обычным текстом – TeX) –
система компьютерной вёрстки, разработанная американским профессором
информатики Дональдом Кнутом в целях создания компьютерной типографии. В неё
входят средства для секционирования документов, для работы с перекрёстными
ссылками и для набора сложных математических формул.
Название
произносится как «тех» (от греч. τέχνη – «искусство», «мастерство»).
В написании буква E опущена ниже T и X.
Документы
набираются на собственном языке разметки в виде обычных ASCII-файлов,
содержащих информацию о форматировании текста или выводе изображений. Эти файлы
(обычно имеющие расширение «.tex») транслируются специальной
программой в файлы «.dvi»
(device independent – «независимые от устройства»),
которые могут быть отображены на экране или напечатаны. DVI-файлы можно
специальными программами преобразовать в PostScript, PDF, или другой
электронный формат.
Ядро
TeX’а представляет собой язык низкоуровневой разметки, содержащий команды
отступа и смены шрифта. Огромные возможности в TeX’е предоставляют готовые
наборы макросов и расширений. Наиболее распространённые расширения стандартного
ТеХ’а (наборы шаблонов, стилей и т.д.): LaTeX (произносится
«лате́х») и AMS-TeX. При использовании пакета расширения LaTeX
можно превратить разросшуюся статью в книгу изменением одного слова в исходнике,
вставлять оглавление одной командой, не задумываться о нумерации разделов,
теорем, рисунков. Есть много пакетов для оформления химических формул
(например, пакет XymTeX), диаграмм (xypic), создания презентаций и визитных
карточек и тому подобного.
Распространённые
комплекты вёрстки на основе ТеХ’а: для Windows – TeX Live или MikTeX, для UNIX-подобных
систем – TeX Live или teTeX.
Для
создания шрифтов совместно с TeX’ом используется специально разработанная
система METAFONT, в которой шрифты описываются программами на
специализированном языке Meta. Могут также использоваться векторные шрифты в
формате PostScript Type 1, TrueType и OpenType.
TEΧ применяется в исходных
текстах Википедии для набора математических формул.
История
Первый
том книги «Искусство программирования» Д. Кнута был опубликован в 1969
году и печатался методом монотипии, технологии XIX века, которая давала на
выходе издание в «хорошем классическом стиле», что нравилось Кнуту. Когда в
1976 году публиковалось второе издание второго тома, всю книгу пришлось
набирать вновь, поскольку монотипия почти повсеместно была замещена
фотографической техникой, и оригинальные шрифты больше не использовались.
Однако, когда 30 марта 1977 года Кнут получил новые оттиски, он увидел что они
выглядят ужасно. Примерно в это же время Кнут впервые увидел результат работы
высококачественной цифровой типографической системы, и заинтересовался
возможностями цифровой типографии. Не оправдавшие ожиданий оттиски дали ему
дополнительный толчок к тому чтобы решить проблему раз и навсегда, разработав
свою типографическую систему. 13 мая 1977 года он написал заметку самому себе,
описывающую базовые возможности TeX.
Он
планировал завершить систему в свой творческих отпуск 1978 года, но получилось
так что язык был зафиксирован лишь в 1989 году, более 10-ти лет спустя. Летом
1978 года, когда Кнут писал первую версию TeX, Guy Steele был в
Стэнфорде; осенью того же года он вернулся в МТИ и переписал систему ввода /
вывода TeX под операционную систему ITS. Первая версия TeX была написана на
языке программирования SAIL и работала на PDP-10 под операционной системой
WAITS. Для следующих версий Кнут изобрёл концепцию «грамотного
программирования» (англ. literate programming), способ получения
совместимого исходного кода и документации к нему (в виде текста на TeX,
конечно) из одного и того же оригинального файла. Этот язык был назван WEB и
производил программы на Паскале.
Новая,
переписанная с нуля версия TeX была издана в 1982 году и названа TeX82. Помимо
других изменений, первоначальный алгоритм переносов был заменён новым,
написанным Frank Liang. TeX82 также использовал арифметику с
фиксированной запятой вместо арифметики с плавающей запятой, с тем чтобы
обеспечить воспроизводимость результата на различном оборудовании. Помимо
этого, под нажимом Guy Steele, в TeX82 появился настоящий,
тьюринг-полный язык программирования.
В
1989 году Дональд Кнут выпустил новую версию TeX и METAFONT.
MathML
MathML (от англ. Mathematical Markup Language, язык математической
разметки) – это приложение XML, используемое для представления математических
символов и формул в документах WWW. MathML рекомендован математической группой
W3C.
Спецификация
MathML версии 1.01 вышла в июле 1999, в феврале 2001 появилась версия 2.0. В
октябре 2003 была опубликована вторая редакция MathML версии 2.0, которая
является на настоящий момент последней спецификацией, выпущенной математической
группой W3C.
MathML
рассматривает не только представление, но и смысл элементов
формулы. Также разрабатывается система разметки математической семантики,
призванная дополнить MathML. Она называется OpenMath.
MathML имеет 2 версии – Presentation MathML и Content MathML.
Пример:
В TeX описание
x = \frac {-b \pm \sqrt {b^2 – 4ac}} {2a}
используется
для представления формулы

Ниже
приведено описание этой формулы с помощью MathML:
<mrow> <mi>x</mi> <mo>=</mo> <mfrac> <mrow> <mrow> <mo>-</mo> <mi>b</mi> </mrow> <mo>±</mo> <msqrt> <mrow> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo>-</mo> <mrow> <mn>4</mn> <mo>⁢</mo> <mi>a</mi> <mo>⁢</mo> <mi>c</mi> </mrow> </mrow> </msqrt> </mrow> <mrow> <mn>2</mn> <mo>⁢</mo> <mi>a</mi> </mrow> </mfrac> </mrow>
XML-структура
MathML обеспечивает широкую область использования и позволяет быстро отображать
формулы в приложениях, таких как браузеры, а также легко интерпретировать их
значения в математических программных продуктах.
Поддержка
программного обеспечения
Существует
множество утилит для преобразования математических выражений в MathML, включая
конвертеры между TeX и MathML.
Основными
браузерами, непосредственно поддерживающими MathML, являются последние версии
Mozilla и его разновидности. Начиная с бета-сборки 9656 (от 16 ноября 2007),
этот язык поддерживает также Opera. Многие другие браузеры поддерживают этот
формат при установке соответствующих плагинов. Например, в Internet Explorer
для поддержики MathML используется плагин MathPlayer.
Кроме
того, MathML поддерживается основными офисными программами, такими как
Microsoft Word и OpenOffice.org, а также математическими программными
продуктами, например, Mathematica, Maple.
Ряд
решений
Рассмотрим
2 варианта решения проблемы отображения формул на конкретных примерах.
Википедия
(http://ru.wikipedia.org)
Для
математических формул MediaWiki использует разметку TeX'а. Но, в зависимости от
пользовательских настроек и сложности выражения, они могут отображаться либо
как PNG-рисунки, либо в обычной HTML-разметке.
Общие положения
·
Исходный
код математической формулы записывается внутри тега <math>…</math>.
·
Шаблоны,
переменные и параметры MediaWiki не функционируют внутри этого тега.
·
Пробелы
игнорируются (ТеХ их сделает сам).
·
Пустые
строки не разрешаются.
·
Буквы
должны быть набраны только латинским шрифтом. В случае написания даже одной
буквы кириллицей программа сообщает об ошибке.
·
Каждая
буква считается переменной и воспроизводится курсивом, а цифры – прямым
шрифтом (исключение – название функций и операций). Чтобы не допустить
курсивного начертания для прочего текста, используйте команды \mbox
или \mathrm.
Например, запись <math>\mbox{abc}_\mathrm{def}</math>
отображается как abcdef.
·
Символы
записываются с помощью «команд»[2], которые начинаются с «обратного
слэш» (\) и состоят либо из командного слова из латинских букв, либо из символа
(не буквы). В первом случае после командного слова должен быть обязательно
пробел или другая команда.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |