Математические уравнения в сети - PullRequest
43 голосов
/ 22 апреля 2009

Как я могу отобразить математические уравнения в Интернете? Я уже знаком с математическим режимом LaTeX.

Ответы [ 16 ]

28 голосов
/ 03 августа 2012

Остальные ответы устарели. По состоянию на 2012 год красивая математика легко писать и визуализировать. Технология называется MathJax . Вы можете увидеть это в тихом действии на MathOverflow и сотнях математических блогов.

MathJax - это движок JavaScript с открытым исходным кодом для математики, который работает во всех современных браузерах. Нет больше настроек для читателей. Нет больше плагинов для браузера. Больше никаких установок шрифтов ... Это просто работает.

Mathjax надежен и ненавязчив, поэтому вам просто нужно написать математику. Вы делаете это в Tex (Latex), лаконичном синтаксисе, с которым большинство ученых и математиков знакомы (и поделились десятилетиями хороших учебников). Для Mathjax вы просто пишете Tex-код в строке в своем HTML между двойными знаками доллара, например.

Когда $$ a \ ne 0 $$, есть два решения для $$ ax ^ 2 + bx + c = 0 $$, и они равны $$ x = {-b \ pm \ sqrt {b ^ 2- 4ac} \ over 2a}. $$

Чтобы использовать Mathjax для отображения математики, поместите строку Javascript в заголовок HTML:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>

Если вы публикуете на платформе, такой как Wordpress, Tumblr или Blogger, в их галереях есть плагины для этого ( Wordpress ).

Как Матякс рендерит математику? С Javascript он переводит вашу математику в красивый HTML и CSS (удивительно напоминающий латекс) за доли секунды. Если браузер поддерживает MathML, он может отображать и математику, но это не важно. Это популярный успех, потому что рабочий процесс для конечного пользователя прост, а не из-за технологии, стоящей за ним.

Вы можете использовать Mathjax (поверх изображений PNG) в Википедии, если у вас есть аккаунт. Ищите Special:Preferences / Внешний вид.


MathML - это просто смешно. Он не может быть прочитан человеком или человеком (квадратное уравнение занимает 800 символов - это 50 в тексах). Это просто другой бессмысленный язык XML . К счастью, он устарел до того, как большинство браузеров его поддержат. Он даже не выглядит так же хорошо, как Tex или CSS-код Mathjax!

25 голосов
/ 22 апреля 2009

Оказывается, это немного больно.

Вы можете использовать MathML , но поддержка браузера все еще сомнительна. Если вы начинаете с латекса, у вас есть несколько вариантов преобразования в html, но все они обычно заканчивают тем, что переводят реальные уравнения в изображения и вставляют их.

Ничего особенного (если вы не прибегаете к pdf или чему-то еще). Что будет лучше, будет зависеть немного от того, какое содержание, сколько уравнений и насколько сложны уравнения.

Здесь - приличное резюме.

18 голосов
/ 20 марта 2011

Мои два любимых подхода:

  • На стороне клиента: MathJax . См. некоторые примеры здесь . Он очень прост в использовании и установке, и его разработка поддерживается AMS и SIAM среди других научных учреждений. Я ожидаю, что это станет стандартом де-факто для отображения математики в Интернете.

  • На стороне сервера: LaTeXML . Это используется для создания цифровой библиотеки математических функций NIST . Он имеет тенденцию икать, если у вас есть собственные макросы в ваших источниках TeX, но в целом он дает очень хорошие результаты.

11 голосов
/ 24 апреля 2009

Пакет jsMath - это еще одна опция, использующая разметку LaTeX и собственные шрифты. Цитирование с их веб-страницы http://www.math.union.edu/~dpvc/jsMath/:

Пакет jsMath предоставляет метод включения математики в HTML-страницы это работает через несколько браузеров под Windows, Macintosh OS X, Linux и другие ароматы Unix. Это преодолевает ряд недостатков традиционного метода использования изображения для представления математики: jsMath использует родные шрифты, поэтому они изменить размер при изменении размера текст в вашем браузере, они печатают в полное разрешение вашего принтера, и вам не нужно ждать десятки изображений для загрузки, чтобы увидеть математику на веб-странице. Есть также преимущества для веб-страницы Авторы, так как нет необходимости предварительно обработать ваши веб-страницы для генерации любые изображения, и математика введено в форме TeX, так что это легко создавать и поддерживать свои веб-страницы.

См., Например, эту страницу или эту страницу .

7 голосов
/ 02 апреля 2015

Katex

Несколько разработчиков из Khan Academy выпустили молниеносную библиотеку на основе Tex под названием Katex :

  • Fast
  • Высокое качество
  • Автономные; и
  • Может быть оказано на сервере

Похоже, отличный современный вариант.

Katex sample

7 голосов
/ 22 апреля 2009

Вы можете сделать больше математики непосредственно в HTML, чем думает большинство людей. Смотрите эти заметки .

Единственный безопасный способ рендеринга LaTeX - сохранить вывод в виде изображения. Некоторые сайты пытаются использовать инструменты, чтобы сделать это на лету, и они никогда не работают надежно. Например, в некоторых блогах это работает, если вы посещаете веб-страницу напрямую, но не в случае, если вы заходите в Feedburner / Google Reader.

У меня был ужасный опыт поддержки браузеров MathML как в Firefox, так и в IE. Даже не пытайся. Еще нет. Может быть, через несколько лет.

Вот сайт , который я использую для компиляции LaTeX в gifs.

Если вы хотите использовать PDF вместо HTML, все становится намного проще. Просто создайте свой документ LaTeX и используйте pdflatex, чтобы скомпилировать его в PDF. Если вы пойдете по пути PDF, вас может заинтересовать как включить свойства PDF , такие как автор, ключевые слова и т. Д., В файл LaTeX. Кроме того, на этой странице объясняется, как разметить LaTeX для создания ссылок в вашем PDF.

1 голос
/ 20 марта 2011

Я написал для этого модуль javascript с открытым исходным кодом, названный jqmath. См. http://mathscribe.com/author/jqmath.html.. Вы вводите уравнения в упрощенном TeX-подобном синтаксисе, а jqmath преобразует их в MathML или простые HTML и CSS в зависимости от браузера. Это более эффективно и доступно, чем использование изображений.

Кстати, некоторые из резюме и примечаний, упомянутых в других ответах, здесь уже устарели. Кроме того, Firefox теперь поддерживает MathML, а webkit (Chrome и Safari) используют его в своих ночных сборках, хотя они еще не выпустили его. Internet Explorer отображает MathML, если у вас есть плагин MathPlayer. Opera подделывает MathML с помощью таблицы стилей. MathML является частью стандарта HTML 5, поэтому, вероятно, все эти браузеры будут поддерживать его раньше, чем раньше. Это правда, что до этого вывод jqmath будет выглядеть не так хорошо, как вывод TeX, но он, безусловно, читабелен и определенно является лучшим решением для веб-страниц в будущем.

1 голос
/ 22 апреля 2009

Я использовал ASCIIMathML для этого в прошлом. По сути, это библиотека JavaScript и может использовать плагин в IE для оптимизации производительности, но также работает и без него в IE и Firefox / Mozilla (хотя и немного медленнее). Синтаксис поддерживает подмножество LaTeX, но различия вызывают некоторую путаницу, поэтому он может запутать ваших пользователей, в зависимости от того, откуда они приходят.

Вот несколько ссылок, которые вы можете проверить сами:

Не идеально и не работает во всех браузерах (Safari и т. Д.), Но это то, что работает сегодня, по крайней мере, хотя и в некоторой выборочной части Интернета.

1 голос
/ 22 апреля 2009

Я отображаю формулы LaTeX "по требованию" в моей вики. По сути, я извлекаю код латекса из каждого раздела вики и помещаю его в файл .tex (имя файла которого представляет собой сумму md5 латекса, поэтому, если тот же код используется снова, будет использоваться тот же текст и, следовательно, то же изображение) , Затем tex-файл каждую минуту компилируется латексом с помощью задачи cron, чтобы сначала создать .ps, а затем с помощью программы конвертации .png (снова названный с оригинальным md5). В вики запись латексного текста заменяется тегом img, ссылающимся на этот png (с исходным латексным кодом как alt, для читателей текста).

Если вы хотите пойти по этому пути, будьте очень осторожными, чтобы максимально продезинфицировать ваш латекс. в латексе есть команды, такие как \ input, которые вы определенно не хотите пропускать, поскольку любой, кто сможет их использовать, сможет включить любой читаемый файл на диске вашего сервера и включить его в итоговый вывод латекса.

Чтобы решить эту проблему, в Mediawiki (известной википедии) есть специальный плагин, который очищает ввод латекса, но я не хотел использовать его по двум причинам: во-первых, я не использовал mediawiki, во-вторых, он написан на OCaml и Я не хотел связываться с языком, которого я не знаю.

1 голос
/ 22 апреля 2009

LaTeX и MathML - единственные «правильные» способы сделать это. Однако у каждого есть серьезные ограничения. Другими вариантами являются изображения (не совсем оптимальные, если вам нужно отредактировать уравнения позже) или сложный HTML (требует некоторого обучения, но его можно выполнить).

...