我正在尝试在这里实现 John MacFarlane 的 Haskell 解决方案,它应该允许我将带有 MathJax(乳胶)输入的 HTML 文件转换为 .tex,同时保留数学。脚本是:
import Text.Pandoc
main = toJsonFilter fixmath
fixmath :: Block -> Block
fixmath = bottomUp fixmathBlock . bottomUp fixmathInline
fixmathInline :: Inline -> Inline
fixmathInline (RawInline "html" ('<':'!':'-':'-':'M':'A':'T':'H':xs)) =
RawInline "tex" $ take (length xs - 3) xs
fixmathInline x = x
fixmathBlock :: Block -> Block
fixmathBlock (RawBlock "html" ('<':'!':'-':'-':'M':'A':'T':'H':xs)) =
RawBlock "tex" $ take (length xs - 3) xs
fixmathBlock x = x
我安装了 64 位 OSX 版本的 Haskell,还给出了cabal install pandoc
获取 pandoc 函数的命令。但是,在执行时
ghc --make fixmath.hs
我收到以下错误:
[1 of 1] Compiling Main ( fixmath.hs, fixmath.o )
fixmath.hs:9:26:
Couldn't match expected type `Format' with actual type `[Char]'
In the pattern: "html"
In the pattern:
RawInline "html"
('<' : '!' : '-' : '-' : 'M' : 'A' : 'T' : 'H' : xs)
In an equation for `fixmathInline':
fixmathInline
(RawInline "html"
('<' : '!' : '-' : '-' : 'M' : 'A' : 'T' : 'H' : xs))
= RawInline "tex" $ take (length xs - 3) xs
fixmath.hs:10:13:
Couldn't match expected type `Format' with actual type `[Char]'
In the first argument of `RawInline', namely `"tex"'
In the expression: RawInline "tex"
In the expression: RawInline "tex" $ take (length xs - 3) xs
fixmath.hs:14:24:
Couldn't match expected type `Format' with actual type `[Char]'
In the pattern: "html"
In the pattern:
RawBlock "html"
('<' : '!' : '-' : '-' : 'M' : 'A' : 'T' : 'H' : xs)
In an equation for `fixmathBlock':
fixmathBlock
(RawBlock "html"
('<' : '!' : '-' : '-' : 'M' : 'A' : 'T' : 'H' : xs))
= RawBlock "tex" $ take (length xs - 3) xs
fixmath.hs:15:12:
Couldn't match expected type `Format' with actual type `[Char]'
In the first argument of `RawBlock', namely `"tex"'
In the expression: RawBlock "tex"
In the expression: RawBlock "tex" $ take (length xs - 3) xs
出了什么问题,我该怎么办?