Bu kolay bir iş değildir. Burada, yalnızca $
ve 'u matematik sınırlayıcıları olarak kullanmanız ve belgenizin $
'un başka kullanımlarını içermediğini varsayarak çalışması gereken bir çözüm var. (Bunu başaramazsanız, perl regexini aşağıdaki gibi ayarlamayı deneyebilirsiniz.)
Adım 1: Zaten sahip değilseniz Haskell Platform'u yükleyin ve 'cabal install pandoc' pandoc kütüphanesi. (Ikili yükleyicisi ile Pandoc yüklediyseniz, değil, yalnızca Haskell kütüphane yürütülebilir vardır.)
Adım 2: Şimdi küçük bir Haskell senaryo yazmaya - biz onu ararım fixmath.hs:
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
bu derleme: Bu size bir yürütülebilir fixmath
verecektir
ghc --make fixmath.hs
.
cat input.html | \
perl -0pe 's/(\$\$?[^\$]+\$\$?)/\<!--MATH$1-->/gm' | \
pandoc -s --parse-raw -f html -t json | \
./fixmath | \
pandoc -f json -t latex -s > output.tex
ilk bölümü içinde matematik bitlerini koyar bir perl one-liner geçerli: Şimdi, giriş dosyasını varsayarak aşağıdaki komutu output.html
sonucu koyarak, bozulmamış matematik ile lateks dönüştürmek gerekir input.html
olduğunu özel HTML yorumları "MATH" olarak işaretlendi. İkinci kısım, HTML'yi belgeye karşılık gelen Pandoc veri yapısının JSON temsiline ayrıştırır. Sonra fixmath
bu yapıyı dönüştürür, özel HTML yorumlarını ham LaTeX blokları ve satır içi olarak değiştirir. (Bir açıklama için bkz. Scripting with pandoc.) Son olarak, JSON'dan LaTeX'e dönüşüyoruz.
Pandoc son sürümüne (1.12.2) ile
'Pandoc-ruby' ile çalıştırılabilir' fixmath' çalışması için bazı yolu var mı yapmak? – Daniel
Ve Haskell betiği '\ (\)' ile sınırlandırılmış matematiği dönüştürmemek için nasıl yazılmalı? http://stackoverflow.com/questions/20492982/convert-html-and-inline-mathjax-math-to-latex-with-pandoc-ruby – Daniel
Son cevabımı görün. –