2010-04-21 3 views
23

आरएसटी लिखते समय Sphinx के साथ संसाधित किया जाएगा, मुझे आंकड़ों का संदर्भ देते समय चित्र संख्याओं का उपयोग करने के लिए स्फिंक्स लाटेक्स आउटपुट नहीं मिल सकता है। उदाहरण के लिए, इस कोड:स्फिंक्स में संख्याओं के साथ संदर्भों को संदर्भित करना और पुन: संरचित पाठ

The lemmings are attacking, as can be seen in :ref:`figlem`. 

.. _figlem: 

.. figure:: _static/lemming_invasion.* 

    They're coming! 

इस में कनवर्ट कर दिया जाएगा:

lemmings हमले कर रहे हैं, के रूप में किया जा देखा जा में वे आ रहे हैं!

/छवि यहाँ जाता है/

चित्र 1.1: वे आ रहे हैं! ,

lemmings हमले कर रहे हैं के रूप में किया जा चित्र 1.1 में

कैसे देखा जा सकता है:

लेकिन क्या मैं चाहता हूँ संदर्भित आंकड़ों के "मानक" LaTeX तरह से, इस तरह है क्या मैं इसे प्राप्त करूं? कोड जो मैं वर्तमान में उपयोग कर रहा हूं वह है स्फिंक्स मैनुअल की सिफारिश करता है, लेकिन यह आउटपुट का उत्पादन नहीं करता है।

+0

अनुरोध करने के लिए एक महत्वपूर्ण विशेषता की तरह लग रहा। – fccoelho

+0

क्या आपको कभी इसका समाधान मिला? मुझे वास्तव में इस सुविधा की ज़रूरत है। – jterrace

+0

@ जेटर्रेस नोप, समाधान कभी नहीं मिला। – Lucas

उत्तर

17

numfig एक्सटेंशन बिल्कुल यही करता है। मैंने कोशिश की और यह मेरे लिए काम किया।

+0

धन्यवाद! यह मेरे लिए एक आकर्षण की तरह काम करता है। –

+1

यह शुरुआत में मेरे लिए (HTML के लिए) काम नहीं करता था, लेकिन मैंने यहां 'rrieber' द्वारा फिक्स का उपयोग किया: https://bitbucket.org/arjones6/sphinx-numfig/issue/6/notimplementederror-unknown-node-num_ref और इसे काम करने में सक्षम था। धन्यवाद! –

+0

आप इसे कैसे काम करने के लिए मिला? Rrieber द्वारा प्रदान की गई diff फ़ाइल उस बिटबकेट रिपॉजिटरी से पकड़े गए numfig.py से मेल नहीं खाती है। –

0

मुझे लगता है कि आंकड़े संदर्भित करना अभी तक आरएसटी में लागू नहीं किया गया है, लेकिन यहां वर्कअराउंड http://article.gmane.org/gmane.text.docutils.user/5623 है जो आपको करीब ले जाता है।

+0

अफसोस की बात है, यह स्फिंक्स के साथ काम नहीं कर रहा है। हालांकि कोशिश करने के लिए धन्यवाद। – Lucas

0

कोई कच्चे लेटेक्स कोड, इनलाइन का उपयोग कर सकते हैं। ऊपर दिए गए उदाहरण के लिए, कच्चे लेटेक्स कोड की भूमिका को पहले परिभाषित किया गया है और \ref{} लेटेक्स कमांड के साथ आकृति को संदर्भित करने के लिए उपयोग किया गया है, और \label{} लेटेक्स कमांड के साथ आकृति में लेबल सेट करने के लिए।

निम्नलिखित काम करना चाहिए:

.. role:: raw-latex(raw) 
    :format: latex 

The lemmings are attacking, as can be seen in :ref:`figlem` 
on figure :raw-latex:`\ref{pic:lem}`. 

.. _figlem: 

.. figure:: _static/lemming_invasion.* 

    They're coming! :raw-latex:`\label{pic:lem}` 

ध्यान दें कि \label{} आदेश tex फ़ाइल में शीर्षक के अंदर दिखाई देगा, लेकिन यह अभी भी स्वीकार्य है, कम से कम pdflatex द्वारा। यह भी ध्यान रखें कि :raw-latex से पहले कम से कम एक स्थान होना चाहिए।

5

स्वीकृत उत्तर पर विस्तार करने के लिए, आप इस सेट को जल्दी से प्राप्त कर सकते हैं। numfig.py फ़ाइल को source निर्देशिका में रखें। तब conf.py खोलने के लिए और लाइन

sys.path.insert(0, os.path.abspath('.')) 

फिर extensions सूची 'numfig' जोड़ने का कहना है कि uncomment। , पहले लेबल अपने आंकड़ा

अपने rst दस्तावेज़ में उपयोग करने के लिए (जैसे, fig-main):

.. _fig-main: 

.. figure:: main.png 

    This is the figure caption. 

अंत में, आप :num: निर्देशों का उपयोग अपने आंकड़ा संख्या संदर्भित कर सकते हैं, इस तरह:

Refer to the main figure (Figure :num:`fig-main`). 
+1

यह अब बनाया गया है और इनलाइन भूमिका को कहा जाता है: numref http://www.sphinx-doc.org/en/stable/markup/inline.html#cross-referencing-figures-by-figure-number –

12

स्फिंक्स के नवीनतम संस्करणों में (1।3+), संख्याओं को आंकड़े और पाठ से संदर्भित करना थोड़ा आसान हो गया है क्योंकि इसके लिए समर्थन अब अंतर्निहित है।

अपने पाठ में, आप की तरह कुछ कर सकते हैं:

.. _label: 
.. figure:: images/figure.* 


At :numref:`label` you can see... 

अंतिम परिणाम की तरह कुछ होना चाहिए "आप देख सकते हैं कि चित्र 1.1 पर ..."। यह तकनीक डिफ़ॉल्ट HTML आउटपुट और लाटेक्स आउटपुट दोनों के साथ काम करती है।

अपनी conf.py फ़ाइल में, ध्वज numfig = True सेट करना सुनिश्चित करें। संदर्भों के टेक्स्ट प्रारूप (numfig_format और numfig_secnum_depth) के लिए कॉन्फ़िगरेशन विकल्प भी हैं।

संदर्भ:

+0

आप सही हैं। यह एचटीएमएल और लाटेक्स दोनों के लिए काम करता है (भले ही स्फिंक्स दस्तावेज कहता है कि यह केवल HTML के लिए काम करता है)। – mzjn