Есть ли какой-либо инструмент, который может преобразовывать документы Latex в документы HTML, чтобы все математические данные были представлены вMathJax?
(Очевидно, что довольно легко написать быстрый скрипт на Perl, способный выполнить грубое преобразование, но меня интересуют более надежные решения — по крайней мере, они должны автоматически корректно обрабатывать все перекрестные ссылки.)
решение1
Обновление 07/2020:
Код ниже больше не нужен. TeX4ht теперь полностью поддерживает вывод MathJax. Эквивалент кода ниже:
make4ht filename.tex "mathml,mathjax"
Если вы хотите сохранить математические данные LaTeX в виде обычного текста, используйте просто:
make4ht filename.tex "mathjax"
make4ht
является заменой для htlatex
того, что по умолчанию преобразуется в HTML5 и UTF-8, поэтому никаких специальных настроек, как в старом ответе, не требуется.
Оригинальный ответ:
Вы можете использовать TeX4ht
. Он может выводить математику как, mathml
которая затем может быть отображена с помощью mathjax
. Вы также можете настроить html
заголовок для загрузки mathjax
скрипта из mathjax's cdn
:
\Preamble{xhtml,mathml}
\Configure{VERSION}{}
\Configure{DOCTYPE}{\HCode{<!DOCTYPE html>\Hnewline}}
\Configure{HTML}{\HCode{<html>\Hnewline}}{\HCode{\Hnewline</html>}}
\Configure{@HEAD}{}
\Configure{@HEAD}{\HCode{<meta charset="UTF-8" />\Hnewline}}
\Configure{@HEAD}{\HCode{<meta name="generator" content="TeX4ht
(http://www.cse.ohio-state.edu/\string~gurari/TeX4ht/)" />\Hnewline}}
\Configure{@HEAD}{\HCode{<link
rel="stylesheet" type="text/css"
href="\expandafter\csname aa:CssFile\endcsname" />\Hnewline}}
\Configure{@HEAD}{\HCode{<script type="text/javascript"\Hnewline
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"\Hnewline
></script>\Hnewline}}
\Configure{@HEAD}{\HCode{<style type="text/css">\Hnewline
.MathJax_MathML {text-indent: 0;}\Hnewline
</style>\Hnewline}}
\begin{document}
\EndPreamble
С помощью этого файла конфигурации мы запрашиваем вывод математики как mathml
, затем настраиваем html
заголовок так, чтобы результирующий файл был html5
. Сохраните его как, например, ht5mjlatex.cfg
и затем вызовите из командной строки:
htlatex filename.tex "ht5mjlatex.cfg, charset=utf-8" " -cunihtf -utf8"
или вы можете использовать Уильяма Ф. Хэммондасценарий(внизу страницы)
решение2
Я бы лично предпочел использоватьpandoc
для этой задачи это одношаговое решение, и результат, на мой взгляд, гораздо лучше.
Для преобразования файлов из одного формата разметки в другой pandoc — ваш швейцарский армейский нож.
Эта команда подойдет для большинства целей:
pandoc document.tex --standalone --mathjax --output document.html
Он создаст один HTML-файл с javascript-ссылкой на mathjax.js. Pandoc подробно документирован идругие методы отображения математики в HTMLдоступны.