Математические уравнения в сети

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

16 ответов

Решение

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

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

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

Вот достойное резюме.

Другие ответы устарели. Начиная с 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} \ свыше 2а}.$$

Чтобы использовать 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. К счастью, он устарел до того, как большинство браузеров его поддержат. Он даже не выглядит так же хорошо, как HTML-CSS от Tex или Mathjax!

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

Katex

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

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

Выглядит как отличный современный вариант.

Образец катекса

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

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

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

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

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

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

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

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

texvc может конвертировать математические уравнения LaTeX в png или HTML.

Я написал для этого модуль 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, поэтому, вероятно, все эти браузеры будут поддерживать его раньше, чем раньше. It's true that until then, jqmath's output will not look as good as TeX's, but it's certainly readable, and is definitely a better solution for web pages going forward.

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

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

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

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

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

Вот несколько ссылок, чтобы вы могли проверить это сами:

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

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

У вас есть root-доступ к вашему собственному серверу? Вам удобно устанавливать на него программное обеспечение? В этом случае вы можете визуализировать ваши собственные изображения. Если вы используете программное обеспечение для ведения блогов или вики, обычно вы можете найти плагин, который будет использовать возможности ваших платформ. Обычно это сценарий идеи, если вы планируете написать много математических выражений.

Если вы размещаете свои собственные изображения, вы можете либо предварительно отрендерить их, либо использовать расширение, например mimetex.cgi. Если вы разрешаете отображать произвольные выражения MathML, вы рискуете, что другие веб-сайты будут ссылаться на ваш рендерер изображений. Если вы установите фильтр на своем веб-сервере для предотвращения горячих ссылок, то люди, просматривающие ваш сайт через программу чтения каналов, также будут заблокированы.

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

Примеры других служб (как упоминалось в других комментариях) включают в себя: * http://www.artofproblemsolving.com/LaTeX/AoPS_L_TeXer.php: http://alt2.artofproblemsolving.com/Forum/latexrender/pictures/a/f/c/afc183343d84d030898f589bac12a8d9cf04558a.gif* http://www.forkosh.com/mimetex.html: http://www.forkosh.dreamhost.com/mimetex.cgi?c=%5Csqrt%7Ba%5E2+b%5E2%7D

Преимущество использования mimetex заключается в том, что можно легко изменить формулу и перерисовать ее.

Если вы используете изображения, сможет ли читатель для слепого пользователя прочитать уравнение? Некоторые могут захотеть.

Вы можете генерировать изображение уравнения на лету через сервер LaTeX.

http://www.forkosh.com/mimetex.html

Если вы используете WordPress, вы можете использовать плагин LaTeX для WordPress ( http://wordpress.org/extend/plugins/latex/).

У меня сложилось впечатление, что MediaWiki позволит вам вводить разметку LaTeX (или что-то подобное) и динамически выбирать лучший способ ее отображения. В настоящее время я думаю, что использует HTML, где это возможно, для небольших выражений и изображений для более сложных выражений, которые нельзя представить иначе; Я подозреваю, что однажды он может использовать преимущества любых других методов, ставших передовыми, например, MathML, если браузеры начнут его поддерживать. Поэтому я думаю, что вы можете обнаружить, что если вы будете использовать MediaWiki, как если бы это был движок вашего сайта, вы будете напрямую совместимы с тем, что произойдет в будущем.

Существует небольшое приложение для Mac под названием LatexIt, которое позволяет очень легко преобразовывать уравнения LaTeX в PDF, PNG и т. Д.

(Я использую его для создания уравнений для моих слайдов в Keynote или PowerPoint. Это очень хорошо, с поддержкой drag 'n drop, так что вы можете просто "перетащить" уравнения в любое место, чтобы вставить их.)

Другие вопросы по тегам