当编写将使用Sphinx处理的RST时,我无法在引用数字时使用Sphinx LaTeX输出来使用图号。例如,这段代码:
The lemmings are attacking, as can be seen in :ref:`figlem`.
.. _figlem:
.. figure:: _static/lemming_invasion.*
They're coming!
将转换成这个:
旅鼠正在进行攻击 在中看到他们来了!
/ image到这里/
图1.1:他们来了!
但我想要的是“标准”LaTeX引用数字的方式,如下所示:
旅鼠正在进行攻击 见图1.1
我如何实现这一目标?我目前使用的代码是Sphinx手册推荐的代码,但它不会产生我想要的输出。
答案 0 :(得分:22)
在Sphinx(1.3+)的最新版本中,编号数字和从文本引用它们变得更容易,因为它现在已经内置了对它的支持。
在您的文字中,您可以执行以下操作:
.. _label:
.. figure:: images/figure.*
At :numref:`label` you can see...
最终结果应该是“在图1.1中你可以看到......”。此技术适用于默认HTML输出和LaTeX输出。
在conf.py
文件中,请务必设置标记numfig = True
。参考文档格式(numfig_format
和numfig_secnum_depth
)也有配置选项。
参考文献:
答案 1 :(得分:18)
numfig扩展正是如此。我试过了,它对我有用。
答案 2 :(得分: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`).
答案 3 :(得分:0)
我认为引用数字尚未在reST中实现,但这里有解决方法http://article.gmane.org/gmane.text.docutils.user/5623,可以让您更接近。
答案 4 :(得分:0)
可以使用原始乳胶代码,内联。对于上面的示例,首先定义原始乳胶代码的角色,而不是用于使用\ref{}
latex命令引用该图,并使用\label{}
latex命令将标签设置为图。
以下内容应该有效:
.. 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
之前至少应有一个空格。