50286 (Отображение математических формул в формате LaTeX на форуме PHPBB3), страница 3

2016-07-30СтудИзба

Описание файла

Документ из архива "Отображение математических формул в формате LaTeX на форуме PHPBB3", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "50286"

Текст 3 страницы из документа "50286"

К настоящему времени созданы все необходимые технологические условия для решения этих проблем. Созданы нужные открытые стандарты как для работы с текстами произвольного характера, так и для представления таких специфических объектов, как математические формулы. В частности, можно говорить и о решении вышеперечисленных проблем через создание «канонического» формата представления математических и естественнонаучных текстов на основе имеющихся сегодня открытых стандартов. Канонический формат представления научных и образовательных текстов, это такой формат, который

  1. базируется на принципе разделения представления и содержания документа.

  2. основан на разметке текстов логического уровня.

  3. использует для представления документов открытые широко признанные стандарты.

  4. удобен для автоматической обработки, распространения и хранения информации.

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

  6. допускает трансляцию в различные (поли) графические представления, как электронные, так и бумажные.

  7. допускает богатую «интеллектуальную» обработку документа достаточно легкими онлайновыми программными средствами.

Базой для создания такого формата служит расширяемый язык разметки 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

Бинарные операции

Команда

Изображение

+ –

\amalg \setminus

\pm \mp

\ast \star *

\centerdot \cdot \bullet

\circ \bigcirc

\odot \circleddash \circledast \circledcirc

\oplus \otimes \ominus \oslash

\boxplus \boxtimes \boxminus \boxdot

Команда

Изображение

\sqcap \sqcup

\cap \cup \uplus

\Cap \Cup

\doublecap \doublecup

\dagger \ddagger

\times \div \divideontimes

\ltimes \rtimes

\leftthreetimes \rightthreetimes

\vartriangle \triangledown

\triangle \mathcal 5

Команда

Изображение

\bigtriangleup \bigtriangledown

\triangleright \triangleleft

\diamond

\bowtie

\vee, \lor \wedge, \land

\veebar \barwedge

\doublebarwedge

\curlywedge \curlyvee

\wr

\intercal

\dotplus



Символы математических функций

При написании стандартных функций обратите внимание:

Правильно:

\sin x + \ln y +\operatorname{sgn}\, z

Неправильно:

sin x + ln y + sgn z

Тригонометрические

\sin

\cos

\tan

\cot

\sec

\csc

\arcsin

\arccos

\arctan

\arccot

\arcsec

\arccsc

Гиперболические

\sinh

\cosh

\tanh

\coth

Прочие

\arg

\deg

\det

\dim

\exp

\lg

\ln

\log

\max

\min

\mod

\bmod

\pmod

\gcd

\hom

\inf

\ker

\lim

\liminf

\limsup

\Pr

\sup




Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4125
Авторов
на СтудИзбе
667
Средний доход
с одного платного файла
Обучение Подробнее