यह एक आसान काम नहीं है। यहां एक समाधान है जो काम करना चाहिए, बशर्ते आप केवल $
और $$
गणित delimiters के रूप में उपयोग करें, और यह मानते हुए कि आपके दस्तावेज़ में $
का कोई अन्य उपयोग नहीं है। (यदि आप इसे नहीं मान सकते हैं, तो आप निम्न में पेर्ल रेगेक्स को एडजस्ट करने का प्रयास कर सकते हैं।)
चरण 1: Haskell Platform इंस्टॉल करें, यदि आपके पास पहले से नहीं है, और 'कैबल इंस्टॉल पैंडोक' प्राप्त करने के लिए पैडोक पुस्तकालय (आप द्विआधारी इंस्टालर के साथ pandoc स्थापित हैं, तो आप केवल निष्पादन योग्य नहीं हास्केल पुस्तकालय है,।)
चरण 2: अब एक छोटा सा हास्केल स्क्रिप्ट लिखने - हम इसे फोन करता हूँ 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
इस संकलित करें:
ghc --make fixmath.hs
यह आपको एक निष्पादन fixmath
दे देंगे। अब, अपने इनपुट फ़ाइल संभालने input.html
है, निम्न आदेश गणित बरकरार साथ लेटेक्स से परिवर्तित करना चाहिए, output.html
में परिणाम डाल:
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
पहले भाग में एक पर्ल एक लाइनर कि में अपने गणित बिट्स डालता है विशेष HTML टिप्पणियां "MATH" चिह्नित की गईं। दूसरा भाग एचटीएमएल को दस्तावेज़ के अनुरूप पांडोक डेटा संरचना के JSON प्रतिनिधित्व में पार्स करता है। फिर fixmath
इस संरचना को बदलता है, विशेष HTML टिप्पणियों को कच्चे लाटेक्स ब्लॉक और इनलाइन में बदलता है। (स्पष्टीकरण के लिए Scripting with pandoc देखें।) अंततः हम JSON से वापस लाटेक्स में कनवर्ट करते हैं।
स्रोत
2012-07-12 21:59:08
कर वहाँ 'pandoc-ruby' के साथ निष्पादन योग्य' fixmath' काम करने के लिए कुछ रास्ता नहीं है? – Daniel
और '\ (\) 'द्वारा सीमित गणित को परिवर्तित करने के लिए हास्केल स्क्रिप्ट को कैसे लिखा जाना चाहिए? http://stackoverflow.com/questions/20492982/convert-html-and-inline-mathjax-math-to-latex-with-pandoc-ruby – Daniel
मेरा नवीनतम उत्तर देखें। –