2012-07-05 26 views

cevap

12

, bunu yapabilirsiniz:

pandoc -f html+tex_math_dollars+tex_math_single_backslash -t latex 

Çok güzel! Eğer matematik \( ve \) tarafından sınırlandırılmış dönüştürmek istemiyorsanız, sadece

pandoc -f html+tex_math_dollars -t latex 
9

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
+0

'Pandoc-ruby' ile çalıştırılabilir' fixmath' çalışması için bazı yolu var mı yapmak? – Daniel

+0

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

+1

Son cevabımı görün. –

İlgili konular