2012-01-01 8 views
5

के लिए m4 में स्वचालित रूप से स्लैश से बच निकल रहा है मैं HTML कोड में गणित को आसानी से एम्बेड करने के लिए एम 4 के साथ मैक्रोज़ लिख रहा हूं। स्लेश से बचने की जरूरत है और मैं इस प्रक्रिया को स्वचालित करना चाहता हूं लेकिन मुझे अभी तक एक अच्छा तरीका नहीं मिला है। अगर मैं \frac साथ \\\frac तो की जगह मैं वांछित परिणाम प्राप्तशैल कमांड

$ y = 
     rac{1}{2} x^{2.3} + 2 $ 

:

define(`_imath', `esyscmd(`echo "$ $1 $"')')dnl 
_imath(y = \frac{1}{2} x^{2.3} + 2) 

निम्नलिखित में मेरे उत्पादन:

निम्नलिखित पर m4 चल रहा है समस्या को दर्शाता है। मैं हर बार ऐसा कर सकता था, लेकिन अगर मैं कर सकता हूं तो मैं इस प्रक्रिया को स्वचालित करना चाहता हूं। वांछित परिणाम, वैसे,

$ y = \frac{1}{2} x^{2.3} + 2 $ 

जो एक और आदेश है कि एचटीएमएल कोड या एक छवि (इस न्यूनतम उदाहरण के बाहर) उत्पादन करेंगे करने के लिए पाइप है।

मुझे इस समस्या को हल करने के लिए एक असंतोषजनक तरीका पता है। मैं टीएक्स के \ के लिए एक अलग वर्ण (या वर्णों का संयोजन) का उपयोग कर सकता हूं और इसे स्वचालित रूप से बदलने के लिए एक और मैक्रो परिभाषित कर सकता हूं। यह असंतोषजनक है क्योंकि मैं संशोधन के बिना सीधे लाटेक्स कोड का उपयोग करना चाहता हूं और यह तीन स्लेशों का उपयोग करने से काफी आसान नहीं है।

मैं अपने मैक्रो को स्वचालित रूप से स्लैश से बचने के लिए कैसे बदल सकता हूं ताकि मैं सीधे लाटेक्स कोड का उपयोग कर सकूं?

उत्तर

4

यह मुझे काफी देर तक यह पता लगा लिया है, लेकिन यह काम करता है:

define(`_imath', `esyscmd(echo "$ patsubst(`$1',`\\',`\\\\\\') $")')dnl 
_imath(y = \frac{1}{2} x^{2.3} + 2) 
संबंधित मुद्दे