restructuredtext - software - sphinx search
Referencia a figuras con nĂºmeros en Sphinx y reStructuredText (5)
Al escribir RST que se procesará con Sphinx , no puedo obtener la salida de Sphinx LaTeX para usar números de figuras al hacer referencia a figuras. Por ejemplo, este código:
The lemmings are attacking, as can be seen in :ref:`figlem`.
.. _figlem:
.. figure:: _static/lemming_invasion.*
They''re coming!
Se convertirá en esto:
Los lemmings están atacando, como se puede ver en ¡ Vienen!
/ la imagen va aquí /
Figura 1.1: ¡Están llegando!
Pero lo que quiero es la forma "estándar" de LaTeX de referenciar figuras, como esta:
Los lemmings están atacando, como se puede ver en la Figura 1.1.
¿Cómo logro esto? El código que estoy usando actualmente es lo que recomienda el manual de Sphinx, pero no produce la salida que quiero.
Creo que aún no se ha implementado la referencia a Figuras en reST, pero aquí hay una solución http://article.gmane.org/gmane.text.docutils.user/5623 que lo acerca más a usted.
En las últimas versiones de Sphinx (1.3+), la numeración de las cifras y su referencia a partir del texto se hicieron un poco más fáciles, ya que el soporte para ellas está ahora integrado.
En tu texto, puedes hacer algo como:
.. _label:
.. figure:: images/figure.*
At :numref:`label` you can see...
El resultado final debería ser algo como "En la Fig. 1.1 se puede ver ...". Esta técnica funciona tanto con la salida HTML predeterminada como con la salida LaTeX.
En su archivo conf.py
, asegúrese de establecer la numfig = True
. También hay opciones de configuración para el formato de texto de las referencias ( numfig_format
y numfig_secnum_depth
).
Referencias:
La extensión numfig hace exactamente esto. Lo probé y funcionó para mí.
Para ampliar la respuesta aceptada, puede obtener rápidamente esta configuración de la siguiente manera. Coloque el archivo numfig.py
en su directorio de source
. Luego abre conf.py
y descomenta la línea que dice
sys.path.insert(0, os.path.abspath(''.''))
Luego agrega ''numfig''
a la lista de extensions
.
Para usar en su rst
documento, primero etiquete su figura (por ejemplo, fig-main
):
.. _fig-main:
.. figure:: main.png
This is the figure caption.
Finalmente, puede hacer referencia a su número de figura usando la directiva :num:
como esta:
Refer to the main figure (Figure :num:`fig-main`).
Uno puede usar código de látex en bruto, en línea. Para el ejemplo anterior, primero se define una función para el código de látex sin procesar y luego se usa para referirse a la figura con el comando de látex /ref{}
, y para establecer una etiqueta a la figura con el comando de látex /label{}
.
Lo siguiente debería funcionar:
.. 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}`
Tenga en cuenta que el comando /label{}
aparecerá dentro del título en el archivo tex, pero aún es aceptable, al menos por pdflatex
. También tenga en cuenta que debe haber al menos un espacio antes :raw-latex
.