Referenziare figure con i numeri di Sphinx e reStructuredText
-
30-09-2019 - |
Domanda
Quando si scrive RST che saranno trattati con uscita Sfinge , non posso ottenere Sfinge LaTeX usare numeri delle figure quando si fa riferimento figure. Per esempio, questo codice:
The lemmings are attacking, as can be seen in :ref:`figlem`.
.. _figlem:
.. figure:: _static/lemming_invasion.*
They're coming!
sarà convertito in questo modo:
I lemming stanno attaccando, come può essere visto in Stanno arrivando!
/ immagine va qui /
Figura 1.1:! Stanno arrivando
Ma quello che voglio è il modo in cui LaTeX "standard" di figure che fanno riferimento, in questo modo:
I lemming stanno attaccando, come può essere visto in Figura 1.1
Come faccio a raggiungere questo obiettivo? Il codice Attualmente sto usando è ciò che il manuale Sfinge raccomanda, ma non produce l'uscita che voglio.
Altri suggerimenti
Nelle ultime versioni di Sphinx (1.3+), la numerazione figure e li fanno riferimento da un testo ottenuto un po 'più facile, come il supporto per esso è ora incorporato.
Nel testo, si può fare qualcosa di simile:
.. _label:
.. figure:: images/figure.*
At :numref:`label` you can see...
Il risultato finale dovrebbe essere qualcosa del tipo "A Fig 1.1 è possibile vedere ...". Questa tecnica funziona sia con l'uscita di default HTML e l'output LaTeX.
Nel file conf.py
, assicurarsi di impostare il numfig = True
bandiera. Ci sono anche opzioni di configurazione per formato testo i riferimenti (numfig_format
e numfig_secnum_depth
).
References:
Per espandere sulla risposta accettata, è possibile ottenere rapidamente questo set up come segue. Inserire il file nella directory numfig.py
source
. Quindi aprire conf.py
e rimuovere il commento la riga che dice
sys.path.insert(0, os.path.abspath('.'))
Quindi aggiungere 'numfig'
alla lista extensions
.
Per usare nel documento rst
, prima etichetta la tua figura (ad esempio, fig-main
):
.. _fig-main:
.. figure:: main.png
This is the figure caption.
Infine, è possibile fare riferimento il suo numero di figura utilizzando la direttiva :num:
, in questo modo:
Refer to the main figure (Figure :num:`fig-main`).
Credo che fa riferimento a figure non è ancora implementato in riposo, ma qui è soluzione alternativa http://article.gmane.org/gmane.text.docutils.user/5623 che si avvicina.
Si può utilizzare il codice lattice grezzo, in linea. Per l'esempio precedente, un ruolo per codice lattice grezzo viene prima definito e da quello utilizzato per fare riferimento alla figura con il comando lattice \ref{}
, e impostare un'etichetta alla figura con il comando \label{}
lattice.
Il seguente dovrebbe funzionare:
.. 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}`
Si noti che verrà visualizzato il comando \label{}
all'interno del sottotitolo nel file tex, ma è ancora accettabile, almeno per pdflatex
. Si noti inoltre che non ci dovrebbe essere almeno uno spazio prima del :raw-latex
.