Каков наилучший способ встраивания LaTeX в веб-страницу? - PullRequest
39 голосов
/ 22 сентября 2008

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

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

Ответы [ 10 ]

19 голосов
/ 03 июня 2012

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

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

15 голосов
/ 22 сентября 2008

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 «х» означает «математическая переменная х», тогда как в HTML «х» может означать что угодно. Информация была безвозвратно утеряна. Это имеет несколько преимуществ:
    1. TeX можно преобразовать в HTML, но не наоборот. Это означает, что на на стороне сервера мы всегда можем преобразовать формулу, основанную на сложность и расположение в пределах текст, пользовательские настройки, тип браузер и т. д. Поэтому где возможно, все преимущества HTML могут быть сохранены вместе с Преимущества TeX. Это правда, что текущая ситуация не идеальна, но это не хорошая причина, чтобы отказаться информация / содержание. Это больше причина, чтобы помочь улучшить ситуацию.
    2. TeX может быть преобразован в MathML для браузеров, которые его поддерживают, таким образом сохраняя свою семантику и позволяя ей будет отображаться как вектор.
  • TeX был специально разработан для формул набора текста, поэтому ввод проще и естественнее, а вывод более эстетично.
  • При написании в TeX редакторам не нужно беспокоиться о поддержке браузера, поскольку он отображается в виде сервер. HTML-формулы, с другой рука, может в конечном итоге оказываться не соответствует намерениям редактора (или не совсем), некоторыми браузерами или старые версии браузера.
13 голосов
/ 22 января 2010

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

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

10 голосов
/ 23 сентября 2008

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

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

4 голосов
/ 22 сентября 2008

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

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

3 голосов
/ 18 марта 2014

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

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

1 голос
/ 31 октября 2018

Я начинаю изучать это сам, и кажется, что все изменилось. Я встречал это сравнение демо 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.
1 голос
/ 22 сентября 2008

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

0 голосов
/ 05 января 2009

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

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

0 голосов
/ 22 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...