36

在编写将使用Sphinx处理的 RST 时,我无法让 Sphinx LaTeX 输出在引用数字时使用数字数字。例如,这段代码:

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

.. _figlem:

.. figure:: _static/lemming_invasion.* 

   They're coming!

会转换成这样:

旅鼠正在攻击,正如他们来了!

/图片在这里/

图 1.1:他们来了!

但我想要的是引用数字的“标准”LaTeX 方式,如下所示:

旅鼠正在攻击,如图 1.1 所示

我如何实现这一目标?我目前使用的代码是 Sphinx 手册推荐的,但它不会产生我想要的输出。

4

5 回答 5

33

在最新版本的 Sphinx (1.3+) 中,数字编号和从文本中引用它们变得更容易了,因为现在内置了对它的支持。

在您的文本中,您可以执行以下操作:

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


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

最终结果应该类似于“在图 1.1 中您可以看到...”。此技术适用于默认 HTML 输出和 LaTeX 输出。

在您的conf.py文件中,确保设置 flag numfig = Truenumfig_format参考文献的文本格式(和numfig_secnum_depth)也有配置选项。

参考:

于 2016-05-03T13:43:19.057 回答
18

numfig扩展正是这样做的。我试过了,它对我有用。

于 2012-08-22T21:42:34.620 回答
6

要扩展已接受的答案,您可以按如下方式快速进行此设置。将numfig.py文件放在您的source目录中。然后打开conf.py并取消注释显示的行

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

然后添加'numfig'extensions列表中。

要在您的rst文档中使用,首先标记您的图形(例如,fig-main):

.. _fig-main:

.. figure:: main.png

   This is the figure caption.

:num:最后,您可以使用该指令引用其图形编号,如下所示:

Refer to the main figure (Figure :num:`fig-main`).
于 2015-01-07T18:16:30.687 回答
0

我认为引用数字尚未在 reST 中实现,但这里有一个解决方法http://article.gmane.org/gmane.text.docutils.user/5623可以让您更接近。

于 2010-04-22T10:54:03.430 回答
0

可以使用原始乳胶代码,内联。对于上面的示例,首先定义了原始 Latex 代码的角色,然后使用 latex 命令引用图形,并使用\ref{}latex 命令为图形设置标签\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

于 2013-09-06T12:30:38.910 回答