50286 (Отображение математических формул в формате LaTeX на форуме PHPBB3), страница 3
Описание файла
Документ из архива "Отображение математических формул в формате LaTeX на форуме PHPBB3", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "50286"
Текст 3 страницы из документа "50286"
К настоящему времени созданы все необходимые технологические условия для решения этих проблем. Созданы нужные открытые стандарты как для работы с текстами произвольного характера, так и для представления таких специфических объектов, как математические формулы. В частности, можно говорить и о решении вышеперечисленных проблем через создание «канонического» формата представления математических и естественнонаучных текстов на основе имеющихся сегодня открытых стандартов. Канонический формат представления научных и образовательных текстов, это такой формат, который
-
базируется на принципе разделения представления и содержания документа.
-
основан на разметке текстов логического уровня.
-
использует для представления документов открытые широко признанные стандарты.
-
удобен для автоматической обработки, распространения и хранения информации.
-
предоставляет возможность конверсии текстов, представленных в каноническом формате, в другие распространенные форматы представления естественнонаучной информации и обратно.
-
допускает трансляцию в различные (поли) графические представления, как электронные, так и бумажные.
-
допускает богатую «интеллектуальную» обработку документа достаточно легкими онлайновыми программными средствами.
Базой для создания такого формата служит расширяемый язык разметки XML. Очень существенным шагом в этой области является появление диалекта XML – языка MathML, ориентированного на описание математических формул. MathML интересен по многим причинам. Во-первых, формат MathML основан на языке разметки XML, что позволяет использовать большое количество наработанных компонент и библиотек. Во-вторых, формат MathML реализует два вида представления: презентационное и содержательное. В-третьих, формат MathML является открытым стандартом, поддерживаемым консорциумом W3, что очень важно для построения сложных систем, ориентированных на использование широкими массами пользователей. В своей «презентационной» части MathML идеологически весьма близок TeX-формату.
С учетом вышеперечисленных плюсов, оптимальным решением является принятие формата 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:
x
=
-
b
±
b
2
-
4
⁢
a
⁢
c
2
⁢
a
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-разметке.
Общие положения
-
Исходный код математической формулы записывается внутри тега ….
-
Шаблоны, переменные и параметры MediaWiki не функционируют внутри этого тега.
-
Пробелы игнорируются (ТеХ их сделает сам).
-
Пустые строки не разрешаются.
-
Буквы должны быть набраны только латинским шрифтом. В случае написания даже одной буквы кириллицей программа сообщает об ошибке.
-
Каждая буква считается переменной и воспроизводится курсивом, а цифры – прямым шрифтом (исключение – название функций и операций). Чтобы не допустить курсивного начертания для прочего текста, используйте команды \mbox или \mathrm. Например, запись \mbox{abc}_\mathrm{def} отображается как abcdef.
-
Символы записываются с помощью «команд» [2], которые начинаются с «обратного слэш» (\) и состоят либо из командного слова из латинских букв, либо из символа (не буквы). В первом случае после командного слова должен быть обязательно пробел или другая команда.
-
Команды могут иметь аргументы: {обязательные} и [необязательные].
-
Переводы строк внутри тега … не отображаются, поэтому, чтобы сделать код более читабельным, можно вставлять переводы строк после каждого выражения или строки матрицы.
-
Если в настройках пользователя не выбрана опция «Всегда генерировать PNG», то простые формулы будут отображаться как в HTML-разметке. Чтобы заставить их всегда отображаться как PNG-рисунки, следует в начале или в конце формулы вставить один из знаков принудительного пробела (~ \, \!). Cравните:
a (1 + e^2 / 2) a (1 + e2 / 2) ~a (1 + e^2 / 2) | df(x) = f'(x) dx df(x) = f'(x) dx df(x) = f'(x) dx\,
|
-
Чтобы создать выражения вида , используйте команду \stackrel{выражение1} {выражение2}, где выражение1 – то, что будет отображаться над строкой, выражение2 – то, что останется в строке. Код приведённой формулы:
A\stackrel{f} {\longrightarrow} B.
-
Десятичную запятую в десятичных дробях рекомендуется заключать в фигурные cкобки, чтобы избежать ненужного тонкого пробела после запятой. Сравните:
~\pi=3,1415\dots |
|
~\pi=3 {,} 1415\dots |
|
Исходные команды
Служебные значки
-
\ сигнальный символ (команд);
-
{начало группы;
-
} конец группы;
-
_ нижний индекс;
-
^ верхний индекс;
-
~ неразрывный пробел.
Шрифты
Буква | Команда | Буква | Команда | Буква | Команда |
| \Alpha \alpha |
| \Iota \iota |
| \Sigma \sigma |
| \Beta \beta |
| \Kappa \kappa |
| \varsigma |
| \Gamma \gamma |
| \Lambda \lambda |
| \Tau \tau |
| \Delta \delta |
| \Mu \mu |
| \Upsilon \upsilon |
| \Epsilon \epsilon |
| \Nu \nu |
| \Phi \phi |
| \varepsilon |
| \Xi \xi |
| \varphi |
| \Zeta \zeta |
| \Pi \pi |
| \Chi \chi |
| \Eta \eta |
| \varpi |
| \Psi \psi |
| \Theta \theta |
| \Rho \rho |
| \Omega \omega |
| \vartheta |
| \varrho |
С помощью соответствующих команд можно изменять вид шрифта (гарнитуру) и его размеры:
Вид шрифта | Команда | Изображение |
Жирный шрифт (греческий) | \boldsymbol |
|
Жирный шрифт (векторы) | \mathbf |
|
Ажурный шрифт | \mathbb |
|
Рубленый шрифт | \mathsf |
|
Готический шрифт | \mathfrak |
|
Рукописный шрифт | \mathcal |
|
Прямой шрифт | \mathrm | abcd |
Прописные наклонным шрифтом | \mathit |
|
Бинарные операции
|
|
|
Символы математических функций
При написании стандартных функций обратите внимание:
Правильно: | \sin x + \ln y +\operatorname{sgn}\, z |
|
Неправильно: | sin x + ln y + sgn z |
|
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|