我正在尝试使用pandoc从markdown文件生成一个html幻灯片,其中包含一些乳胶。
该文件为here at 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.
答案 0 :(得分:10)
这是known issue:--mathjax
与--self-contained
不兼容。我还没有足够的研究来提出修复方案,但欢迎提出建议。
答案 1 :(得分:1)
我刚写了一个python脚本,用于将markdown文件编译成一个独立的(需要互联网连接)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编译markdown,然后将结果放在以下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>