Referenzierung Zahlen mit Zahlen in Sphinx und reStructuredText
-
30-09-2019 - |
Frage
Wenn RST zu schreiben, die verarbeitet werden mit Sphinx , kann ich Sphinx LaTeX-Ausgabe nicht Figur-Nummern zu verwenden, wenn Zahlen verweisen. Zum Beispiel dieses Code:
The lemmings are attacking, as can be seen in :ref:`figlem`.
.. _figlem:
.. figure:: _static/lemming_invasion.*
They're coming!
Wird in diese umgewandelt werden:
Die Lemminge angreifen können wie sein gesehen in Sie kommen!
/ Bild geht hier /
Abbildung 1.1: Sie kommen
Aber was ich will, ist der „Standard“ LaTeX Art und Weise der Referenzierung Zahlen wie folgt aus:
Die Lemminge angreifen können wie sein gesehen in Abbildung 1.1
Wie kann ich das erreichen? Der Code, den ich zur Zeit bin mit ist es, was das Sphinx Handbuch empfiehlt, aber es produziert nicht den Ausgang ich will.
Lösung
Die numfig Erweiterung tut genau dies. Ich versuchte es und es funktioniert für mich.
Andere Tipps
In den neuesten Versionen von Sphinx (1.3+), Zahlen Nummerierung und Referenzierung von Text wurde ein wenig leichter als Unterstützung für sie jetzt eingebaut ist.
In Ihrem Text können Sie wie etwas tun:
.. _label:
.. figure:: images/figure.*
At :numref:`label` you can see...
Das Endergebnis sollte so etwas wie „In Bild 1.1 Sie sehen können ...“. Diese Technik funktioniert sowohl mit der Standard-HTML-Ausgabe und der LaTeX-Ausgabe.
In Ihrer conf.py
Datei, stellen Sie sicher, dass das Flag numfig = True
einzustellen. Es gibt auch Konfigurationsoptionen für die Textformat Referenzen (numfig_format
und numfig_secnum_depth
).
Referenzen:
auf der akzeptierte Antwort zu erweitern, können Sie schnell diesen Satz aufstehen wie folgt. Legen Sie die numfig.py
Datei in Ihrem source
Verzeichnis. Dann öffnen conf.py
und Kommentar- der Zeile, die sagt,
sys.path.insert(0, os.path.abspath('.'))
Dann 'numfig'
auf die extensions
Liste hinzuzufügen.
Um in Ihrem rst
Dokument verwenden, zuerst beschriften Sie Ihre Figur (zum Beispiel fig-main
):
.. _fig-main:
.. figure:: main.png
This is the figure caption.
Schließlich können Sie ihre Zahl Nummer mit der :num:
Richtlinie, wie diese Referenz:
Refer to the main figure (Figure :num:`fig-main`).
Ich denke Referenzierung Figuren ist noch nicht in reST implementiert, aber hier ist Abhilfe http://article.gmane.org/gmane.text.docutils.user/5623 , die Sie näher kommt.
Man kann Rohlatex Code verwenden, Inline. Für das obige Beispiel, wird eine Rolle für Rohlatex Code zuerst definiert und als die Figur mit dem \ref{}
Latex Befehl Bezug zu nehmen, und ein Etikett auf die Figur mit dem \label{}
Latex Befehl einzustellen.
In der folgenden sollte funktionieren:
.. 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}`
Beachten Sie, dass der \label{}
Befehl innerhalb der Beschriftung in der tex-Datei angezeigt werden, aber es ist immer noch akzeptabel, zumindest von pdflatex
. Beachten Sie auch, dass es vor :raw-latex
mindestens ein Leerzeichen sein.