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

StackOverflow https://stackoverflow.com/questions/116054

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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

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

Плюсы HTML

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

Плюсы TeX

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

Другие советы

я предпочитаю МатДжакс над решениями, которые предпочитают отображать изображения (что вызывает проблемы с псевдонимами).

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

Однажды я разработал плагин 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

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

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

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

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

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

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

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

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

Я сам начинаю в этом разбираться, и кажется, что ситуация изменилась.я столкнулся этот сравнительная демонстрация КаТекс и МатДжакс.


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

  • Дроби внутри матрицы сталкиваются друг с другом в 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 был разработан Академией Кана.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top