2012-03-15 15 views
9

के भीतर लाटेक्स गणित मैक्रोज़ बनाना मैं पाइथन में कुछ गणितीय कोड लिख रहा हूं और प्रलेखन का उत्पादन करने के लिए स्फिंक्स का उपयोग कर रहा हूं। मुझे पता है कि स्फिंक्स पाइथन डॉकस्ट्रिंग में लाटेक्स कोड को संभाल सकता है; http://sphinx.pocoo.org/latest/ext/math.html#module-sphinx.ext.mathbase देखें। पाइथन डॉकस्ट्रिंग में उपयोग करने के लिए, मैं \newcommand{\cG}{\mathcal{G}} जैसे लाटेक्स मैक्रोज़ कैसे बना सकता हूं?स्फिंक्स

उत्तर

3

अहा, मैं एक समाधान है कि स्फिंक्स pngmath विस्तार के साथ काम करता पाया । यह चाल है कि ऋषि (ओपन सोर्स गणित सॉफ्टवेयर) का उपयोग करता है; http://www.sagemath.org/doc/reference/sage/misc/latex_macros.html से प्रेरणा।

एक स्फिंक्स दस्तावेज़ में अपने स्वयं के लेटेक्स मैक्रो जोड़ने के लिए:

1) एक फ़ाइल बनाने कहते हैं, 'latex_macros.sty' आपके मैक्रो (प्रति पंक्ति एक), युक्त और उस में एक ही शब्दों में कहें, कहते हैं, निर्देशिका को आपकी स्फिंक्स conf.py फ़ाइल के रूप में;

2) अपने स्फिंक्स conf.py फाइल करने के लिए निम्न कोड जोड़ें:

# Additional stuff for the LaTeX preamble. 
latex_elements['preamble'] = '\usepackage{amsmath}\n\usepackage{amssymb}\n' 

##################################################### 
# add LaTeX macros 

f = file('latex_macros.sty') 

try: 
    pngmath_latex_preamble # check whether this is already defined 
except NameError: 
    pngmath_latex_preamble = "" 

for macro in f: 
    # used when building latex and pdf versions 
    latex_elements['preamble'] += macro + '\n' 
    # used when building html version 
    pngmath_latex_preamble += macro + '\n' 

##################################################### 
1

आप pngmath एक्सटेंशन का उपयोग कर रहे हैं, आपको लगता है कि प्रस्तावना में conf.py स्क्रिप्ट में इस डालने से रख सकते हैं:

pngmath_latex_preamble = r"\newcommand{\cG}{\mathcal{G}}" 
5

आप MathJax का उपयोग कर रहे हैं, तो यहाँ एक संभव समाधान है। मैं अभी भी एक अच्छा समाधान ढूंढ रहा हूं, लेकिन अगर आपको त्वरित हैक की आवश्यकता है तो यह मदद कर सकता है।

  1. निर्देशिका html_static_path विन्यास विकल्प (आमतौर पर _static) में निर्दिष्ट के तहत एक फ़ाइल बनाएँ, mathconf.js का कहना है। इसमें MathJax के लिए जेएस कॉन्फ़िगरेशन होगा। उदाहरण (MathJax documentation से) के लिए:

    MathJax.Hub.Config({ 
        TeX: { 
        Macros: { 
         RR: '{\\bf R}', 
         bold: ['{\\bf #1}', 1] 
        } 
        } 
    }); 
    

    आप उपरोक्त वाक्य रचना निम्नलिखित अधिक आदेशों जोड़ सकते हैं। दिखाए गए सामग्रियों में मैक्रोज़ \RR और \bold{#1} परिभाषित किया गया है, यह अंतिम एक तर्क स्वीकार कर रहा है।

  2. layout.html फ़ाइल _templates निर्देशिका पर जोड़ें। विचार वर्तमान विषय को विस्तारित करना है, इसलिए यह पिछली MathJax कॉन्फ़िगरेशन फ़ाइल की खोज करता है। इस प्रकार, सामग्री हैं:

    {% extends "!layout.html" %} 
    {% set script_files = script_files + ["_static/mathconf.js"] %} 
    

    ध्यान दें कि इस मामले में यह _static निर्देशिका है, क्योंकि इस मामले में यह निर्माण के बाद खोज करने के लिए जहां को दर्शाता है। स्फिंक्स ने बिल्ड निर्देशिका के तहत से _static निर्देशिका में फ़ाइल को स्थानांतरित कर दिया होगा।

+0

मुझे (स्फिंक्स = 1.3.1) शायद के लिए काम नहीं किया था, क्योंकि मैं करने के लिए '' ( देखें http://docs.mathjax.org/en/latest/configuration.html#using-in-line-configuration- विकल्प)। – user511

संबंधित मुद्दे