Подтвердить что ты не робот

Каков наилучший способ встраивания LaTeX в веб-страницу?

Я не спрашиваю о преобразовании документа LaTeX в html.

Я хотел бы иметь возможность использовать математические команды LaTeX в html-документе и правильно отображаться в браузере. Это может быть сделано на стороне сервера или клиента.

4b9b3361

Ответ 1

MediaWiki может делать то, что вы ищете. Он использует Texvc (http://en.wikipedia.org/wiki/Texvc), который "проверяет (AMS) математические выражения LaTeX и преобразует их в HTML, MathML или PNG-графику". Похоже на то, что вы ищете.

Ознакомьтесь с статьей Википедии о том, как они обрабатывают математические уравнения здесь: http://en.wikipedia.org/wiki/Help:Formula. Они также имеют обширную ссылку на LaTeX и плюсы/минусы различных типов рендеринга (PNG/MathML/HTML).

MediaWiki использует подмножество TeX-разметки, включая некоторые расширения от LaTeX и AMS-LaTeX, для математических формулы. Он генерирует либо PNG изображений или простой разметки HTML, в зависимости от пользовательских настроек и сложность выражения. в будущее, поскольку больше браузеров умнее, он сможет генерировать расширенные HTML или даже MathML во многих случаях. (См. Blahtex для получения информации о текущая работа над добавлением MathML поддержка.)

Точнее, MediaWiki фильтрует разметку через Texvc, которая, в свою очередь, передает команды TeX для фактический рендеринг. Таким образом, только ограниченный частью полного языка TeX является поддерживается; см. ниже....

Плюсы HTML

  • Встраиваемые HTML-формулы всегда правильно выравниваются с остальной частью HTML текст.
  • Формульный фон, размер шрифта и лицо соответствуют остальной части HTML содержание и внешний вид CSS и настройки браузера.
  • Страницы с использованием HTML будут загружаться быстрее.

Плюсы TeX

  • TeX семантически превосходит HTML. В TeX "x" означает "математическая переменная x", тогда как в HTML "x" может означать что угодно. Информация была безвозвратно потеряна. Это имеет несколько преимуществ:
    • TeX можно преобразовать в HTML, но не наоборот. Это означает, что на на стороне сервера мы всегда можем преобразуют формулу, основанную на ее сложность и текст, пользовательские настройки, тип браузером и т.д. Поэтому, где возможно, все преимущества HTML могут сохраняются вместе с преимущества TeX. Это правда, что нынешняя ситуация не идеальна, но это не повод для падения информация/содержание. Это больше причина для улучшения ситуации.
    • TeX можно преобразовать в MathML для браузеров, которые его поддерживают, таким образом сохраняя свою семантику и позволяя ей для визуализации в виде вектора.
  • TeX специально разработан для набора формул, поэтому ввод проще и естественнее, а выход более эстетично.
  • При написании в TeX редакторы не должны беспокоиться о поддержке браузера, поскольку он отображается в изображении сервер. HTML-формулы, с другой стороны рука, может оказаться оказанной несовместимые с намерениями редактора (или вообще не), некоторыми браузерами или более старые версии браузера.

Ответ 2

Я предпочитаю MathJax над решениями, которые выбирают рендеринг изображений (что вызывает проблемы с псевдонимом).

MathJax - движок рендеринга Javascript с открытым исходным кодом для математики. Он использует CSS и Webfonts вместо изображений или флэш и может отображать LaTeX или MathML. Таким образом, у вас нет проблем с масштабированием и даже совместимым с прошивкой.

Ответ 3

Однажды я разработал плагин jQuery, который фактически делает это: jsLaTeX

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

$(".latex").latex();


<div class="latex">  
    \int_{0}^{\pi}\frac{x^{4}\left(1-x\right)^{4}}{1+x^{2}}dx =\frac{22}{7}-\pi  
</div>

Приведенное выше сгенерирует следующее уравнение LaTeX на вашей странице:

Equation

Демо-страница плагина содержит больше примеров кода и демонстраций.

Ответ 4

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

Если вы предпочли бы, чтобы математика была вставлена ​​на страницу в основном в виде текста (используя изображения только при необходимости), jsMath может быть тем, что вы ищете.

Ответ 5

Исторически, рендеринг LaTeX и извлечение изображения были лучшим выбором для кросс-платформенных кроссбраузерных математических материалов. Все больше и больше MathML становится разумной альтернативой. Вот онлайн-конвертер, который выдает MathML из разметки Tex, которую вы затем можете вставлять на свою веб-страницу. Я знаю, что браузеры на базе Gecko, такие как Firefox и Camino, отлично смотрятся с MathML, также как и Opera. IE не работает из коробки, но есть доступные плагины (например, этот).

Texvc - отличная находка! HTML-выход ванили должен хорошо работать, если вас больше всего интересуют надстрочные/индексы/курсивы/общие символы, но для более сложных вещей имейте в виду, что наиболее популярные сайты, ориентированные на математику (например, Wolfram) генерирует изображения, поэтому может быть только столько, что вы можете сделать, если вы заинтересованы в совместимости с несколькими браузерами: - (

Ответ 6

Здесь я прочитал все ответы, и я удивлен, что никто не упомянул о конверсии из PDF в HTML. Если вы используете pdf2htmlEX, он будет создавать идеальные веб-страницы из pdf. Вам просто нужно скомпилировать ваш латекс в формате pdf (pdflatex).

По умолчанию создается один html файл с содержимым вашего PDF файла, сделанным из CSS, javascript и html. Я попробовал много инструментов для преобразования латекса в html, и это, безусловно, лучшее и простое решение, которое я нашел.

Ответ 7

Вы можете попробовать LaTexRenderer. Я не знаю, лучше ли это, но он работает.

Ответ 8

Я сам начинаю изучать это, и кажется, что все изменилось. Я сталкивался с этим демо сравнения KaTeX и MathJax.


Короче говоря (на момент написания статьи):

  • Фракции внутри матрицы сталкиваются друг с другом в KaTeX, но не в MathJax (см. "Перекрестное произведение")
  • Внутри квадратного (или n-го) корневого символа экспоненты и вложенные квадратные корни, кажется, сталкиваются с горизонтальной верхней линией (см. "Повторяющиеся дроби" и "n-й корень".)
  • MathJax имеет немного более смелый и крупный шрифт, а KaTeX немного стройнее.

Но, пожалуй, самое решающее из всех, я обнаружил, что общая обработка MathJax для страницы в среднем составляла 1674 мс за три запуска. В отличие от KaTeX в среднем 128 мс, что на порядок лучше!


Есть несколько других точек сравнения, которые следует учитывать при просмотре соответствующих веб-сайтов:

  • Основной веб-сайт KaTeX утверждает, что поддерживает большинство, но не все, LaTeX. Они перечисляют свои поддерживаемые функции здесь. MathJax также выражает некоторые ограничения. Хотя трудно понять, кто из тех, у кого, в конце концов, есть "лучшая" поддержка. В некоторых блогах, с которыми я сталкивался, говорится, что KaTeX имеет меньшую поддержку, но другие говорят, что в последние годы KaTeX значительно улучшил поддержку.
  • Сайт MathJax рекламирует поддержку MathML как для ввода, так и для вывода. Некоторые проблемы KaTeX на его сайте github здесь и здесь указывают на то, что они поддерживают MathML для вывода, но не для ввода (я не знаю много о MathML, но, по крайней мере, это кажется важным, если вы хотите помочь пользователям с нарушениями зрения).
  • KaTeX рендерится синхронно, поэтому он не переформатирует страницу (часть того, что делает ее быстрее). Но взамен он временно блокирует браузер.
  • StackOverflow является партнером MathJax (см. Здесь). Он использовался на некоторых сайтах StackExchange, но не на самом StackOverflow из-за производительности загрузки страницы. Напротив, KaTeX был разработан Kahn Academy.

Ответ 9

Я бы определенно рекомендовал вам взглянуть на MathML, если это соответствует тому, что вы ищете, но небольшая работа с JsTeX могла бы дайте вам все, что вам нужно.

Ответ 10

Вы можете использовать tex2gif. Он использует фрагмент LaTeX, запускает LaTeX и создает PNG (или GIF). Легко встраивается, легко script. Это работает для меня.

Вы также можете проверить tex2png.