Возникли проблемы с pandoc и mathjax

Я пытаюсь использовать pandoc для создания слайд-шоу html из файла уценки с некоторым количеством латекса в нем.

Файл находится здесь, на github.

Если я запустил следующую команду pandoc:

pandoc -s -t s5 --mathjax apresentacao.md -o index.html

Математика отлично отображается с помощью MathJax, но я получаю только веб-страницу со всеми слайдами и без функции слайд-шоу.

Если я запустил следующую команду:

pandoc -s --self-contained -t s5 --mathjax apresentacao.md -o index.html

Я получаю отличную презентацию, но MathJax не загружается. Результирующий html-файл (что непонятно) полон двоичных файлов для загружаемых изображений и библиотек javascript. Но похоже, что MathJax неправильно включен.

Ребята, у вас была эта проблема? Есть ли простой способ исправить это?

Я использую следующую версию pandoc:

$ pandoc --version
pandoc 1.11.1
Compiled with citeproc-hs 0.3.8, texmath 0.6.1.3, highlighting-kate 0.5.3.8.
Syntax highlighting is supported for the following languages:
    actionscript, ada, apache, asn1, asp, awk, bash, bibtex, boo, c, changelog,
    clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css, curry, d,
    diff, djangotemplate, doxygen, doxygenlua, dtd, eiffel, email, erlang,
    fortran, fsharp, gnuassembler, go, haskell, haxe, html, ini, java, javadoc,
    javascript, json, jsp, julia, latex, lex, literatecurry, literatehaskell,
    lua, makefile, mandoc, matlab, maxima, metafont, mips, modula2, modula3,
    monobasic, nasm, noweb, objectivec, objectivecpp, ocaml, octave, pascal,
    perl, php, pike, postscript, prolog, python, r, relaxngcompact, rhtml, ruby,
    rust, scala, scheme, sci, sed, sgml, sql, sqlmysql, sqlpostgresql, tcl,
    texinfo, verilog, vhdl, xml, xorg, xslt, xul, yacc, yaml
Default user data directory: /home/calsaverini/.pandoc
Copyright (C) 2006-2013 John MacFarlane
Web:  http://johnmacfarlane.net/pandoc
This is free software; see the source for copying conditions.  There is no
warranty, not even for merchantability or fitness for a particular purpose.

person Rafael S. Calsaverini    schedule 25.04.2013    source источник
comment
Я предполагаю, что вы намеревались поместить --self-contained во вторую командную строку. См. github.com/jgm/pandoc/issues/682.   -  person John MacFarlane    schedule 25.04.2013
comment
Хорошо указал, исправлю.   -  person Rafael S. Calsaverini    schedule 25.04.2013


Ответы (2)


Это известная проблема: --mathjax не работает с --self-contained. Я еще не изучил его достаточно, чтобы придумать исправление, но предложения приветствуются.

person John MacFarlane    schedule 25.04.2013
comment
Вау! Ответ самого Джона Макфарлейна! : D Спасибо, что указали на это. Есть идеи, почему первая команда не может создать рабочую презентацию? Я пробовал это с s5, slidy и некоторыми другими бэкэндами, и все они просто привели к простой веб-странице со всем контентом и без презентации. - person Rafael S. Calsaverini; 25.04.2013
comment
Цитата из README: для Slidy, Slideous, discover.js и S5 файл, созданный pandoc с параметром -s/--standalone, включает ссылку на файлы javascripts и CSS, которые, как предполагается, доступны по относительному пути s5/default (для S5), ... Полагаю, у вас там нет файлов s5. - person John MacFarlane; 26.04.2013

Я просто написал сценарий python для компиляции файла разметки в автономный (требуется подключение к Интернету) html-файл с поддержкой mathjax:

#!/usr/bin/env python
'''
pandoc_compile.py

Usage:
pandoc_compile.py markdown_file template_file
'''
import subprocess, re, sys, os

print("Compiling Markdown file: "+sys.argv[1])
print("Using template: "+sys.argv[2])
print("Output file: "+sys.argv[1]+".html")
pandoc_result = subprocess.Popen(['pandoc','--mathjax',sys.argv[1]], stdout=subprocess.PIPE).stdout.read()
with open(sys.argv[2]) as f: template = f.read()
final_result = re.sub('{{pandoc_output}}', pandoc_result, template)
with open(sys.argv[1]+".html", "w") as f: f.write(final_result)

Он компилирует уценку с помощью pandoc, а затем помещает результат в следующий шаблон html.

<html>

<head>
<script type="text/javascript"
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
</head>

<body>

{{pandoc_output}}

</body>
</html>
person Giuseppe Galano    schedule 05.02.2015
comment
Примечание из будущего: срок службы cdn.mathjax.org приближается к концу, проверьте mathjax.org/ cdn-shutting-down для получения советов по переносу. - person Peter Krautzberger; 13.04.2017